Wake up on GPIO event

Which system do you use? Android, Ubuntu, OOWOW or others?


Which version of system do you use? Khadas official images, self built images, or others?

Khadas official installed via OOWOW

Please describe your issue below:

My setup with the vim4 consists of an old cassette deck I want to transform into a HTPC, seamlessly integrating with the rest of the hifi chain.
The vim4 is the brains with an aduino pro mini as assistant handling the display and the front buttons.
They communicate over the serial pins 15 and 16. Now I have a led-lighted power button in front that I’d like to use in the same sense as for the other components, which means a press switches between stand-by (led is on, vim4 in deep sleep) and running (led is off, vim4 is running).
I can easily determine the state of the vim4 from the arduino by inspecting one of the 3.3v pins and set the led accordingly. But I have not clue how to wake up/send to sleep the vim via a GPIO. I saw docs indicating that it is possible but I did not find any on how to exactly achieve that. If there is one, can s.o. please provide me with the link?
I saw in VIM4 Hardware | Khadas Documentation a GPIO pin named PWR_HOLD_EXT. Is that the correct pin? If yes, how can it be used?

Thanks in advance,


So, I did some further research, but still did not find anything. I saw that for VIM3, there is PIN 38 (MCU_PA1) which serves the purpose. It can be enabled with

kvim3# kbi trigger gpio w 1
kvim3# kbi forcereset gpio w 1

in uboot. Short circuiting it to ground will then trigger a reset.
In vim4 uboot there is also this option. However, both

kvim4# kbi trigger gpio r
kvim4# kbi forcereset gpio r

indicate that they are enabled. But even if I disable them via “w 0” they stay enabled.
So does that mean that vim4 does not support this? Can anyone of the khadas team confirm this?
@numbqq or @Frank ?


Hello @cpickart

VIM4 doesn’t support reset on GPIO.

@numbqq thanks for the reply.

So I’d go the way via the pogo pins. Was hoping that I could avoid it.