OSMC raspDAC overlays gpio-shutdown pin 17 &22

Hi,
I’m making my own amp with rPI 3. I’m using I-SABRE V4 from audiophonics (ES9023) as DAC (which use hifiberry-dac-overlay) and Hypex UCD180HG amp. I would like customize the led’s behaviors from the DAC and to do that i need to use a customized firmware for attiny45/85.
Sir Unhold provide a great firmware and an “HOW TO” to run on VOLUMIO and/or OSMC http://forum.audiophonics.fr/viewtopic.php?p=8766#p8766
Unfortunatly i’m stuck with the latest version (Oct 2018) of OSMC. I can run/start OSMC by pushing the button, but i can’t shutdown osmc. RaspDAC blinking, but it seem’s that OSMC ignore the signal on gpio 17 (pin 11).
/boot/config.txt was modified as Unhold said, but i’have also see in the README of overlays that command should be
dtoverlay=gpio-shutdown,gpio_pin=17,active_low=0
dtoverlay=gpio-poweroff,gpiopin=22
but anyway, it doesn’t work. Also rules not be mandatory for this current version of OSMC.

Then, if any body have idea, I wiil really appreciate ! thanks all

Perhaps @sam_nazarko will be better able to answer this one, since the kernel is forever changing and this might already be out of date, but OSMC doesn’t have CONFIG_POWER_RESET set in the kernel.

I’m Adding that Unfold’s script work as expected on latest version of VOLUMIO (i mean, it’s not hardware issue :slight_smile: )

@dillthedog That’s mean i need to recompile a kernel ? or just set CONFIG_POWER_RESET in the config-4.14.78-2-osmc ?
@sam_nazarko any idea ?

It would be best if Sam includes this change in the OSMC kernel.

I will make these changes available and let you mnow when it is ready for testing.

Thanks

Sam

Great news ! many thanks @sam_nazarko

Hi

Hopefully the issue is now addressed with the following commit:

I’d appreciate it if you could test this and provide feedback before we potentially release this as an update to other users. To test this update:

  1. Login via the command line
  2. Edit the file /etc/apt/sources.list
  3. Add the following line: deb http://apt.osmc.tv stretch-devel main
  4. Run the following commands to update: sudo apt-get update && sudo apt-get dist-upgrade && reboot
  5. Your system should have have received the update.

Please see if the issue is resolved.

I also recommend you edit /etc/apt/sources.list again and remove the line that you added after updating. This will return you to the normal update channel.

Cheers

Sam

2 Likes

Many thanks,
I’ve reinstall osmc (November 2018) and followed your instructions, so my rPi is running osmc version 4.14.78-4. :slight_smile:
Unfortunately, after set the dtoverlay (gpio-shutdown), i’m not able to shutdown as expected the rPi. (GPIO3 & GPIO5 as default => do nothing, GPIO5 & GPIO17 as wished => nothing). I haven’t enough knowledge :frowning: , but I continue to investigate :wink:
If you have any idea or informations, let’s me know :slight_smile: many thanks in advance

This will be very difficult for us to debug from a distance.

I think your next step should be to install Raspbian, ideally on a separate SD card if you have one, and see if you can get it to work. If it works, it will at least prove that the firmware you flashed onto the DAC is working and that your hardware is generally ok.

Hi @dillthedog,

I’ve successfully installed the latest version of Rasbian (lite & desktop) and do nothing else except adding these lines to /boot/config.txt & reboot :
dtoverlay=gpio-shutdown:gpio_pin=17,active_low=0
dtoverlay=gpio-poweroff:gpiopin=22
The firmware flashed is working as expected, this confirm that issue is NOT caused by the firmware.

That’s useful information…

As I said, this is very difficult to debug from a distance, since I/we have no easy way to replicate your set-up. Nevertheless, I’ll see if I can find anything that might be missing or configured differently in OSMC.

I understand. If you have a rPI 3 and if you can initiate a shutdown with the regular gpio 5&3 (shunt these pins with a push button and a resistor, no need DAC) then you will probably solve the issue. Else I wish you a lot of courage to compare the both OS :). I really apreciate your helps @dillthedog and @sam_nazarko

What numbering system is this for the pins: BCM?

I do have a Pi3 that I use as a sandbox but won’t have physical access to it until the weekend – and then very little free time :slight_smile: . I also don’t have any jumper wires to attach to the GPIO pins (though I guess it’s about time I bought some!)

So unless there’s any way I can emulate over SSH what you’re proposing, I’m afraid physically reproducing it is not going to be possible for a while.

I’m afraid that i’ve made a mistake when namming gpio pin. It’s NOT gpio pin 3 & 5, sorry for that, but it’s gpio pin 5 (BCM 3) and gpio pin 6 (GND) that’s the default behavior for shutdown:

Name: gpio-shutdown
Info: Initiates a shutdown when GPIO pin changes. The given GPIO pin
is configured as an input key that generates KEY_POWER events.
This event is handled by systemd-logind by initiating a
shutdown. Systemd versions older than 225 need an udev rule
enable listening to the input device:

            ACTION!="REMOVE", SUBSYSTEM=="input", KERNEL=="event*", \
                    SUBSYSTEMS=="platform", DRIVERS=="gpio-keys", \
                    ATTRS{keys}=="116", TAG+="power-switch"

    This overlay only handles shutdown. After shutdown, the system
    can be powered up again by driving GPIO3 low. The default
    configuration uses GPIO3 with a pullup, so if you connect a
    button between GPIO3 and GND (pin 5 and 6 on the 40-pin header),
    you get a shutdown and power-up button.

Load: dtoverlay=gpio-shutdown,=
Params: gpio_pin GPIO pin to trigger on (default 3)

    active_low              When this is 1 (active low), a falling
                            edge generates a key down event and a
                            rising edge generates a key up event.
                            When this is 0 (active high), this is
                            reversed. The default is 1 (active low).

    gpio_pull               Desired pull-up/down state (off, down, up)
                            Default is "up".

                            Note that the default pin (GPIO3) has an
                            external pullup.

Note, in my case i need to replace BCM3 by BCM17 but doesn’t matter for this test

1 Like

Some progress.

Using WiringPI, with dtoverlay=gpio-shutdown set in /boot/config.txt, I found that I was able to shutdown Raspbian (4.14.90-v7+) using the command gpio -g mode 3 out. Without the dtoverlay, it has no effect.

Moving to OSMC (4.14.78-2), I was able to reproduce the same behaviour as above.

With dtoverlay=gpio-shutdown,gpio_pin=17, running gpio -g mode 3 out has no effect, but shutdown does work with gpio -g mode 17 out, so it all appears to work as expected.

Finally, with dtoverlay=gpio-shutdown,gpio_pin=17,active_low=0, running gpio -g mode 17 out no longer works, so the active_low=0 part has disabled the shutdown.

So my first suggestion is to see if it works with only dtoverlay=gpio-shutdown,gpio_pin=17. If not, I’ll investigate further.

Hi and merry christmas 2018 :slight_smile: ,

I don’t understand how this can work.
I expect gpio_pin 17 as INPUT but you configure as OUTPUT “gpio -g mode 17 out”. How OSMC can detect somethign with output pin ? :neutral_face:

Best wishes, :star_struck:

I assume that it detects a change in the state of the pin. It’s not crashing the system, since this appears in the log when I run the command:

Dec 27 16:44:31 osmc systemd-logind[330]: Power key pressed.
Dec 27 16:44:31 osmc systemd-logind[330]: Powering Off...
Dec 27 16:44:31 osmc systemd-logind[330]: System is powering down.

You haven’t said whether removing active_low=0 or using active_low=1 makes a difference.

As I mentioned, I don’t have any jump wires right now, so can’t test by physically shorting pins. You’ll have to do that yourself to confirm that it works. I’d suggest that you start with the default (BCM 3 → GND) and work up from there.

Hope you enjoy what’s left of the festive holiday!

Update: I came across this thread on GitHub Gpio-shutdown overlay not working on pi 3b or 3b+ · Issue #434 · osmc/osmc · GitHub where it was suggested that Kodi was (still is?) capturing the events and doing nothing with them. What’s the current state of play @sam_nazarko?

@oliv1 What happens if mediacenter is shut down first? Does it then work?

Hi @dillthedog and @sam_nazarko - has there been any progress on this project?

I had previously (before the systemd update) had GPIO shutdown working, but since rebuilding the system, and rc.local not working any more under systemd, I find I’m now stuck as to how to re-engineer it.

My application is a Raspberry Pi Zero (not W) with HiFiBerry DAC installed in a car. To configure it it over ssh I use an Ethernet to USB adaptor.

I have made some analogue circuitry to pull down a GPIO pin about 1 minute after the ignition key is removed (to cater for stalling / re starting the engine). Then a second timer turns off the 5V power supply after 4 minutes to save the car battery, but allowing plenty of time for the Pi to shut down after the first 1 minute timer. (I found this circuitry a lot more straightforward to figure out than the software minefield!)

We have a very long car journey coming up soon, the OSMC install really makes this possible by entertaining the kids, for parts of the journey, but I can’t see that I’m going to succeed in time for this trip. (I jut purchased a new OSMC remote for this as my eldest lost the last OSMC remote on our last trip to France… grrr…)

ANY help is really really appreciated… I really hope I can get this working in time…

Many thanks… Scott.

Please see the update to my previous post regarding Kodi possibly capturing the events. Does it work when mediacenter is shut down?