Be aware that the volume keys cause the keyboard to stop responding and turning on NumLock prevents the F-keys from working. By default the brightness is at ~50% so it's a bit dark. Oh...and the keyboard and trackpad are , so you'll probably want an external mouse and keyboard if you want to use it beyond gaming. There's also no speakers, I'm using headphones, but you might want the official pi-top speaker which is not too expensive but they sting you on postage. Finally, you'll want a WiFi to CAT5 dongle if you want to connect it to WiFi, I've got mine inside the case but I'm not sure if there's enough room to also fit a speaker.

I've written the SPI code to adjust the screen brightness, but I'm not going to release this until I've also implemented a replacement USB keyboard driver with extended HID support to handle the volume keys, the brightness keys will then work as expected. I'll also add the ability to swap the F-keys/Fn+F-keys around so you don't have to hold Fn to use F-keys, which I find particularly irritating!

I'll resolve the NumLock issue if possible - I've not looked at the USB data yet to see what it's doing, hopefully it's just sending invalid key codes that need translating.

A few other features I intend to add are to make it power down if left on the Wimp "Restart" prompt and dim the screen if left idle.

I really should buy an official pi-top speaker and add support for that as well, it was on my Christmas list, but Santa seems to have skipped our house this year

JonAbbott wrote:I'll resolve the NumLock issue if possible - I've not looked at the USB data yet to see what it's doing, hopefully it's just sending invalid key codes that need translating.

This can't be resolved without reprogramming the keyboard (I need to track down the keyboard manufacturer). With NumLock on, it forces the Fn key on so F8/F9/F10 always return the volume keys and aren't modified if Fn is subsequently held.

I've coded the USB/HID drivers, so the volume and brightness keys now work. I need to add a timed shutdown and finish coding the ability to swap the F/P keys around so you don't have to hold Fn for the F-keys, before I make it available.

Additional modifiers I've implemented are:

left pi-top+SHIFT+| now produces | instead of ¦

left pi-top+Left Arrow is Home

left pi-top+Right Arrow is End/Copy

left pi-top+Up Arrow is Page Up

left pi-top+Down Arrow is Page Down

right pi-top is the middle mouse button

I'm not sure what to do with the three rogue keys up the top right, which I'll describe as: Folder, Command Prompt and Num Lock

There's a near feature complete test version in the OP, I've implemented everything I'd planned with the exception of screen dimming and support for the pi-top speaker.

Altering the brightness is flacky as hell, you have to bash the SPI interface repeatedly until it finally accepts data. A side effect of this is that you can't be 100% certain that the brightness it's telling you it's currently at, is actually correct. The pi-top board also has a bug in its firmware, where it doesn't reset the state of some of the status bits after power on. So it can for example report the lid is closed, when it's actually open.

The only solution I can think of for these issues is to set the brightness to a known level, so I may add a *command for this at some point.

I purchased a pi-top speaker, so will add support for it at some point. For future compatibility I'll probably use the Linux script to configure it and just write a script interpreter.

What to do about volume control though? RISCOS' volume control is pretty pointless as it relies on software scaling; you can't change the volume in most games for example as they don't use the scaling tables. I'll probably switch the volume buttons to control the amp in the pi-top speaker if it's present.