Show HN: Wireless video streaming on POV bike display

youtube.com

82 points by polishdude20 2 days ago

It took me a few years of fits and starts but I've finally got my DIY persistence of vision bike light to display video!

I designed and built the PCB for it and wrote the code for the wifi streaming of video frames with a bit of help from Claude. This was actually one thing I was dreading as I was hitting a wall being burned out on this project. With a little bit of Claude's help in getting the ESP32 wifi stack working It's finally finished!

Some tech specs: Using an ESP32 42 LED's per strip, 4 strips total spaced 90 deg apart. Angular resolution of the image is 1 deg so it updates all 168 LED's , 360 times per rotation.

The LED's are SK9822 individually addressable LED's (also known as DotStar from Adafruit).

Uses a magnet and hall effect sensor to keep track of rotation speed.

The server can be run from a phone and using termux with a python server to serve locally to the esp.

I need to periodically spin it up every time it slows down.

My video camera shutter speed needs to be slow to show the correct effect otherwise it is either incomplete or it shows too many "frames" in a video frame.

Gonna get around to making a blog post at some point to talk more about it in detail!

Gys 2 days ago

Amazing! Do I understand this correctly: the leds are on the wheel, so you can ride your bike in the dark and show (for example) a tiktok video?

  • polishdude20 2 days ago

    That's right! Although you'd need to have the video clip as a file on your phone rather than just a link to it.

    • Gys 2 days ago

      You should consider selling this as a kit or something? There must be some people in Northern Europe who love this!

      • tweetle_beetle 2 days ago

        A company called MonkeyLectric did make a quality commercial product for displaying video, but it retailed for around $900 so I suspect they didn't sell too many and they seem to have shut down. There seems to be stuck off their cheaper simpler models floating around still.

        This demo looks like it's been achieved with cheap commodity hardware which is cool, but I suspect it's pretty heavy and awkward.

        https://www.kickstarter.com/projects/minimonkey/monkey-light...

        • polishdude20 2 days ago

          Not commodity at all! Unless you count custom PCB and circuit layout "commodity". Also, I suspect mine is lighter than the MonkeyLectric since it doesn't have any supporting backing or weatherproofing. It's just raw PCB zip-tied to the spokes.

      • polishdude20 2 days ago

        Selling as a kit would be cool but the weatherproofing would be difficult to get right I think. Lots more is needed to be done to get it rugged enough for consumer use.

        Also, all 168 LED's were hand soldered here but I'd need to get them machine laid out and soldered if selling as a kit.

  • bemmu a day ago

    There are actually products you can buy right now that show text and color shows on LED spokes like that, although last time I tried you couldn't upload your own frames.

gpm 2 days ago

This is great!

How many rpm do you need to make it look reasonably good in person?

  • polishdude20 a day ago

    About 2-3 rotations per second so 120-180 rpm. It depends on lightning conditions, how far you are from the bike wheel etc.

    If it's dark out the pov effect works better. If you're far away, the arms sweep across a smaller field of view for you which lessens the effect.

  • nubinetwork 2 days ago

    If it's anything like the colour wheel television, 1500rpm to get 144 fields per second, which should make 24fps look decent

elephant81 2 days ago

You should sell this as a kit, really impressive!

nubinetwork 2 days ago

Okay that was not what I was thinking of when I read the title, but that's an interesting take on the mechanical tv colour wheel concept...

_pktm_ a day ago

Wow, thank you for sharing this. What happens - just out of curiosity - when the wheel slows down or stops moving altogether? That is, what is the effect like then?

  • polishdude20 a day ago

    As the wheel slows down the microcontroller detects that and changes the led pattern at a slower rate. But at a slow enough rotation your eyes start seeing each individual led arm rather than the whole image.

    When the wheel stops I have it detect that and stop shining the LED's until it starts spinning again.

nirav72 2 days ago

This is neat. Are you using some kind of slipring to pass the signal to the LEDs?

  • polishdude20 2 days ago

    Nope! All the processing is done on the spinning wheel. The microcontroller is on one of the arms and it's using wifi for streaming data. The battery is taped to the inner hub.

mandeepj 2 days ago

Amazing! Maybe Divvy should fit it in their bikes. Parallel going traffic will not see it; only the pedestrians. So< i guess it's not a traffic risk. Another revenue for them?

ge96 2 days ago

So funny the hand spinning, thought it was an e-bike but nvm

unangst 2 days ago

This is fantastic! What’s next for this project?

shove 2 days ago

UDP? Websocket?

  • polishdude20 2 days ago

    Post requests! UDP could send the packets out of order (which could be fixed maybe). Websocket turns out to have the same speed as just a big 64kb post request!