Keybow not working

Got the Keybow all set up but there’s nothing being output from it. On attaching to a Windows PC it returns the message that the USB device is not recognised. Device Manager reports

Windows has stopped this device because it has reported problems. (Code 43)
A request for the USB device descriptor failed.

Attaching a screen you can see the messages
OK Started Account Root and Kernel File Systems
FAILED failed to start load Kernel Modules
See ‘systemctl status system-modules-load.service’ for details

When it’s finished booting it stops on a line reading
21.440360 random: 7 urandom warning(s) missed due to ratelimiting

I’ve tried booting on 2 different PiZeros to the one supplied with the same Fail.

I get the same errors in both OS v0.0.1 and 0.0.2 and have tried the files in the zip and tar in case there was some corruption in one.

Any suggestions on next steps?


I guess then that there’s nothing that can be done except to return it as DOA?


Have you got it plugged into a USB hub?
I know from my experience these can cause issues with USB HID devices.

Try plugging it into a main port if it is.

That was the 2nd thing I tried Nothing to do with that. The OS fails on boot.

Hi Rob. This isn’t an error I’ve come across before, but here are a couple of other things to try/check before we replace your kit:

  1. Can you confirm that nothing at all works? Do the lights animate?
  2. Do you have another SD card you could try?
  3. Do you have another machine that you could connect it to, to rule out an issue with the host machine?

Hi Sandy, I’m an IT pro with 34 years in the business (from Hollerith Cards (Fortran IV and George II OS) via DOS 1.0 to where we are today) so everything you suggested I’ve tried before asking for help :-)
All the lights are on and rippling as expected. A different SD card makes no difference (I tried 3, one which had had Stretch Lite on that I deleted for testing purposes) and I’ve tried two other Pi-Zeros, albeit ones without the sockets. The OS fails to get loaded onto the RAM disk, at least that’s how I’m interpreting that message. I have noticed that the Kernel file size is different to the current Stretch variant but that shouldn’t matter too much as the support files seem OK. The only thing I can try now is to get another PiZero with the socket soldered in I guess.

If the lights are rippling I would have thought that the SD card is being read (default.png).
I’ve now created 6 different microSD cards loaded with different .png and .lua files. At any one time 2 or 3 of these seem to work reasonably OK. With the others I get the LEDs operating (more or less) in the expected manner.

[ When I look at the 'dmesg log(running on xubuntu 18.04) the usb is not being registered - no interrupt!. The computer just does not see the Keybow being attached. ] Correction 3 hours later - On further checking I find that all the current cards are being recognised by the linux system :-

[25217.776430] usb 1-1.6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[25217.776433] usb 1-1.6: Product: Bar Gadget
[25217.776436] usb 1-1.6: Manufacturer: Foo Inc.
[25217.776438] usb 1-1.6: SerialNumber: 0123456789
[25217.780120] input: Foo Inc. Bar Gadget as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6:1.0/0003:1D6B:0104.0023/input/input45
[25217.839752] hid-generic 0003:1D6B:0104.0023: input,hidraw5: USB HID v1.01 Keyboard [Foo Inc. Bar Gadget] on usb-0000:00:1a.0-1.6/input0

but the major changes are still not working.

I cannot see any significant difference between the layout .lua files that work and those that don’t.

I’m also having problems with sd cards going ‘readonly’ - I can only put them right by running DISKPART on a Windows machine. Gparted won’t touch them.

I would agree that the SD card is being read or it would not have booted at all :-) However, the FAILED message would indicate that the kernel.img is not being loaded to the RAMDisk. Windows also reports that the USB device descriptor is being requested but not returned. This also would indicate that the OS is not being loaded into the RAMDisk. Of course it may also show that the RAMdisk is not being created in the first place.

How are you formatting the SD card? At this point, and with the things you’ve tried (different Zeroes, different host machines, different versions of the software), something related to the SD card seems like a possible cause.

If it comes to it, then we’d be happy to send you a pre-prepared SD card for you to test in your setup, after the New Year, just to rule out any hardware issues.

I’ve tried using the Windows 10 storage manager, then tried the SD Formatter, then tried using an existing and working Raspbian Stretch image (deleting the existing file and removing the excess partitions). OSX Mojave doesn’t support FAT32 but I created a new partition on an SD card under it, transferred it to a Win10 machine, used your recommended formatter to set up the filing system and it failed at exactly the same point. if you have a prepared, and working, card I’d be happy to try it :-) My order number was PI298542.

Just as a last resort, after testing, and failing, on a brand new PiZero I had another shot at the SD card. This time I used DiskPart to clean the drive and create a new primary partition, formatted using the SD Association formatter. Still failed. Is it creating the RAMDisk or just not loading the Kernel files?

Can you email sandy at pimoroni dot com, Rob, and I’ll get that SD card sent out to you tomorrow morning?

Count me in as having the same problem. The Keybow lights up but does not get recognized as a keyboard on Mac OS and Windows machines.

Perhaps unrelated but I noticed that the included Raspberry Pi Zero has GPIO pins 1 and 2 shorted with a solder bridge. Is that normal?


Definitely not, that’s connecting the 5V and 3.3V pins!

Ditto, shouldn’t be like that. As mentioned, its sending 5V on the 3.3V bus, bypassing the 3V regulator. Not good. The PI Zero is likely toast, and might have also damaged anything plugged into it that uses 3 V.
Did it even Boot up? If you have a soldering iron I’d remove it, then see if that Pi boots up. I’m doubtful but can’t hurt to try I guess. An exacto knife will do with a bit of patience and careful cutting. Solder is pretty soft, just don’t cut into the circuit board if you can help it.

Hi Sandy,
It arrived this morning. Unfortunately its still got the same problem. Tried it with a brand new piZero as well.

Please email and we’ll arrange for a replacement Pi Zero WH. That bridged solder joint could cause hardware damage, so please don’t use it!

Well, this is really odd! It’s the exact same error?

Yes exactly the same, same place, same results. I get nice twinkling lights and that’s it :-)

What’s getting me here is that if I change the default.png to the one that’s in the Keybow folder the light display changes. In addition, if you copy the keys.lua from that same folder, view the pad with the USB cable at the top nd the word Keybow to the left then press on the bottom row the 2nd key in from the right, all the other keys lights go out. This also happens on the key above, but not consistently. Is there something in the set up that I’m missing? But I’m also concerned about that Fail message that occurs trying to load the kernel module. It happens with every piZero I have regardless of whether or not the Keybow is attached.

changing the default.png to the heartbeat.png confirms it is reading that file but doesn’t do anything else :-(