Hacker News new | ask | show | jobs
by mtlynch 2152 days ago
Thanks for reading!

>Would a Pi Zero W work for this, or do you need a full-size Pi 4?

I tested Key Mime Pi (the keyboard-only version) on the Pi Zero W and it worked great. I haven't tested TinyPilot on the Pi Zero W, but I think it will work. The video encoding is happening in the HDMI dongle, so it doesn't hammer resources much. I don't have a USB to microUSB adaptor on hand, but I'll order one now and see if it works.

>be able to package everything into a tiny 3D printed case.

Yeah, that would be neat! One of the biggest issues I have with TinyPilot's setup right now is that it looks kind of like a bunch of random hobbyist parts stuck together. A 3D printed case would be good and wouldn't have the heat issues that Pi 4 has.[0]

[0] https://www.jeffgeerling.com/blog/2019/best-way-keep-your-co...

2 comments

You might also be able to use the "standard" radio kit metal boxes - tap some standoffs, carefully drill some holes for wires etc. Dunno which works out better for the world - ordering a pre-fab metal box that you have to do some work on (or perhaps use https://www.frontpanelexpress.com/ to get a customised enclosure), or printing something from plastic. Might depend on production volume, metal used etc.
Do you happen to have any idea, whether older RPIs like 1 or 2 could work for this fast enough? Have some of those laying around.
The video capture part should work, but I don't believe they support USB OTG, so they wouldn't be able to impersonate the keyboard.

The official documentation[0] says all Pi devices have USB OTG, but I'm not sure if there's something else about the Pi 4 and Pi Zero W that allows USB gadget mode because I've never found anyone talking about using it before recent generations of Pi. This StackExchange answer says the A and the A+ had it, but that the 2 doesn't.[1]

[0] https://www.raspberrypi.org/documentation/hardware/raspberry... [1] https://raspberrypi.stackexchange.com/questions/71613/how-to...

Any Pi with just one USB port (zero, A, A+, 3A) is capable of USB gadget mode because there is no hub between the SOC and the port.

Those with multiple ports have a hub in between and are not capable of gadget mode.

The pi 4 is an exception, it is capable of gadget mode on its USB-C power input, not via the normal ports as there is a hub in between there too.

I'd expect the Pi Zero W to be fast enough to pass through the MJPEG stream and impersonate the keyboard, which should cut the cost by $20+ plus however much you save on not needing a fancy case.
Yeah that's true. I stopped thinking about the Pi Zero W early in the project because I assumed it would choke on video encoding. When I discovered that the HDMI dongle was doing the heavy lifting, I forgot to revisit that assumption. I'm going to order an USB to micro-USB adaptor to test it out because it would slim things down significantly.
Woops, forgot the major issue-- the Pi Zero only has one USB port (the other is just for power), so you couldn't get video frames in at the same time as you pretended to be a keyboard.
The Pi Zero's power port is actually a USB OTG port. I used it in my precursor project to forward keystrokes:

https://mtlynch.io/key-mime-pi/