Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Local Light Client for Raspberry Pi communication over pins #94

Closed
mrozycki opened this issue Dec 5, 2022 · 2 comments
Closed
Labels
light client Changes in light client

Comments

@mrozycki
Copy link
Owner

mrozycki commented Dec 5, 2022

For more time-sensitive applications, we might want to connect the lights to the Raspberry Pi running the backend directly with a cable, rather than through WiFi and Pico. In order to achieve that, we need:

  1. An implementation of LightClient that will communicate with the lights over local Raspberry Pi pins
  2. An option to run the webapi and animator with that new light client implementation
@mrozycki mrozycki added the light client Changes in light client label Dec 5, 2022
@mrozycki mrozycki added this to the MIDI Support milestone Dec 5, 2022
@mrozycki mrozycki removed this from the MIDI Support milestone May 7, 2023
@mrozycki
Copy link
Owner Author

mrozycki commented May 7, 2023

There doesn't seem to be a solution in Rust to reliably control a string of LEDs from a Raspberry Pi 4, due to its variable clock frequency. We might spend more time trying to implement our own solution later (or maybe one will show up), but for now it seems like the best way for local control is to use python's neopixel library.

For that reason we decided that for now we will use a simple python script to fetch frames from a websocket endpoint in webapi, and forward them to the LEDs through neopixel.

@mrozycki
Copy link
Owner Author

In the end we resolved it with a TTY client, sending data over USB through an emulated serial port to an Raspberry Pi Pico running https://github.com/krzmaz/pico-usb-neopixel-driver. See #148

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
light client Changes in light client
Projects
None yet
Development

No branches or pull requests

1 participant