←back to thread

756 points mtlynch | 5 comments | | HN request time: 0.001s | source
Show context
mtlynch ◴[] No.23927535[source]
Author here. Happy to answer any questions or take any feedback about this post.
replies(13): >>23928048 #>>23928079 #>>23928102 #>>23928108 #>>23928824 #>>23929025 #>>23929273 #>>23931092 #>>23931871 #>>23931962 #>>23932019 #>>23932032 #>>23935887 #
ghaberek ◴[] No.23928102[source]
Would a Pi Zero W work for this, or do you need a full-size Pi 4? I would think that with the HDMI dongle doing the hardware MJPEG encoding, a Pi Zero might suffice. It'd be really neat to A) bring the cost down another $30 and B) be able to package everything into a tiny 3D printed case.
replies(3): >>23928203 #>>23929540 #>>23932694 #
mtlynch ◴[] No.23928203[source]
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...

replies(2): >>23929197 #>>23930046 #
trm42 ◴[] No.23930046[source]
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.
replies(1): >>23931027 #
mtlynch ◴[] No.23931027[source]
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...

replies(2): >>23931264 #>>23934089 #
Scaevolus ◴[] No.23931264[source]
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.
replies(2): >>23931891 #>>23932517 #
1. mtlynch ◴[] No.23931891{3}[source]
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.
replies(1): >>23934283 #
2. Scaevolus ◴[] No.23934283[source]
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.
replies(1): >>23935035 #
3. mtlynch ◴[] No.23935035[source]
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/

replies(1): >>23945450 #
4. magicalhippo ◴[] No.23945450{3}[source]
On the web page you explicitly say to connect it to the port labelled "USB", which is not the power port.
replies(1): >>23946167 #
5. mtlynch ◴[] No.23946167{4}[source]
Whoops, you're right. I misremembered. It's power on the Pi 4 and data on the Pi Zero.

Thanks for the correction!