Have you tried turning it off and on again?

Launched at the tail end of last year, our Raspberry Pi 400 computer has a unique feature that is completely new to Raspberry Pi products. You can turn it off and on again. Or rather, it has an on/off button, which lets you turn it off and on again.

The internals of a Raspberry Pi 400 don’t look like a normal Raspberry Pi

We’ve talked about the design of Raspberry Pi 400 on the blog before, but a recent question on Twitter made us realise that we haven’t really talked about how we implemented the on/off button in any sort of detail.

As you can see on some of the teardowns of the Raspberry Pi 400 that have been published, we use a Holtek HT45R0072 chip as a controller chip for the Raspberry Pi 400’s keyboard. The HT45R0072 is an 8-bit microcontroller chip specifically designed for, and widely used by, computer peripherals like keyboards.

The Holtek controller chip is always powered when USB power is connected to your Raspberry Pi 400, and we use a custom firmware that scans the keyboard when the system is switched off. If the power key (F10 or Fn+F10) is pressed, it wakes up the Power Management Unit (PMU) chip via the GLOBAL_EN pin.

Alternatively, if Fn+F10 is pressed while the system is booted and Raspberry Pi OS is running, it sends a 0x66 USB HID message to the Linux kernel to tell it to shut down the computer. Linux will shut down all running applications, and then send an acknowledgement message (an ACK message) via a GPIO pin to the Holtek chip to tell it to cut the PMU power.

The Holtek HT45R0072 chip on the Raspberry Pi 400 PCB

One thing to note is that there was a bug in our custom Holtek firmware where you have to press the button twice to shut down if you’d already used the button to shut your system down in an earlier session. The bug was found pretty quickly, and then fixed in a later version of the silicon.

So, in the immortal words of every sysadmin ever: Hello, IT, have you tried turning it off and on again?

15 comments

Avatar

Thanks. So if you say “later version of the silicon” that would presumably mean that there is no way to update the first version via software alone? Because yes, I had noticed mine will require two key presses.

Avatar

the datasheet say:
“The HT45R0072 is a One-TimeProgrammable, OTP, memory type device…”

Alasdair Allan

There is no way to update the firmware.

Avatar

Two hits on the key seems like a good safety measure, because you don’t want to accidentally shut it down, now do you :)

Just saying, for us fat fingered dudes and dudettes

Avatar

how to know or check, which version the silicon (in the Pi 400) you buy or bought?

Avatar

… i meant which version of firmware the silicon has.

Alasdair Allan

If you have to push the on/off button twice, you have the old firmware.

Avatar

and how to know, befor i buy a Pi400?
is there a different revision number or something similar?

it was already unknown what you get in the shops with the RPi4 – do i get the “broken” usb-c port with bad id resistor or the updated version with the fix and “good” id resistors…

Avatar

Hi Allan, is it possible to check F10 wakeup reason (GLOBAL_EN) at boot time so feature https://forums.raspberrypi.com/viewtopic.php?t=324115 could be implemented? I.e shutdown immediately when powered on and allow only controlled wakeup via F10 key? (to avoid corrupting sd card when power is lost repeatedly while being ‘off’ by using F10)

Avatar

So much space on the board and then still the micro-HDMI.
WHY?
How many screens have micro-HDMI, or how many micro-HDMI cable do you find in the stores?
I hate that I have to use a weak addapter to connect to a HDMI cable.
I don’t think I will ever buy this product like this.

Avatar

Well, no one was asking you to buy one…

Avatar

When purchasing the 400 from an Official Re-seller you could of bought the Official Cables, not the cheapest but quality costs.
Blaming RPT for your mistake is a bit rich.
Actually full size HDMI will not fit in the circuit board footprint, despite your assumptions.

Avatar

Hi Alasdair,
Is the 400’s Holtek’s firmware open source? Not because it’s practical for most to replace their 400’s chip with a freshly programmed one, but because it would be interesting to be able to look at the source for such a device and learn from it.
Cheers, Ralph.

Avatar

I have been told by various people on the Raspberry Pi forums that the Raspberry Pi, (and presumably this one too), is absolutely *NOT* open source, and you get what you get by the Grace of God.

Not sure of the reasoning behind this, it might be part of the Broadcomm licensing for a lot of their stuff. for example, I’ve never seen the “first” page of the schematics that show the actual processor or memory circuitry.

Stinks being us.

Avatar

Correct. The Raspberry PI Foundation went to a lot of time, trouble and effort to get Broadcom to publish some details about the GPU, for example. The Foundation does a pretty good job of publishing the stuff they own – schematics, mechanicals, bootloader etc.

Leave a Comment

Comments are closed