joe714 / pixelclient

ESP32 firmware for PixelGW client
Apache License 2.0
11 stars 2 forks source link

PixelClient: Firmware for an ESP-32 board to drive a 32x64 HUB 75 display, by subscribing to a websocket and streaming pushed images. The corresponding server is located at https://github.com/joe714/pixelgw

Mainter: Joe Sunday sunday@csh.rit.edu GitHub: https://github.com/joe714/pixelfirmware

Build and Install

Pinout for the display is set in components/Hub75Display/Hub75Display.c, note this is not the same pinout as official Tidbyt hardware and needs to be set for particular devices. (TODO, make this more configurable at build time) . Reference schematic / board coming soon.

To build, you'll need a working Linux machine with Docker installed and your user in the docker group. After cloning the repository, fetch the required submodules:

$ git submodule init
$ git submodule update

To compile the firmware:

$ ./build.sh build

For first setup, copy nvs.csv.sample to nvs.csv and set your WiFi credentials and endpoint / pixelgw IP address on the appropriate lines, and generate the initial NVS partion data:

$ ./build.sh nvs

To flash, connect the device via USB and flash everything. Note that you should only flash the NVS data on the first install. Once the device has registered with the gateway, reflashing NVS will cause the device UUID to change.

$ ./build.sh flash
$ ./build.sh flash_nvs

To do OTA updates once already installed, start a temporary web server:

$ ./build.sh ota-server

Then navigate to http://*device-ip*/, verify OTA URL listed, and click "Update Firmware". Currently it assumes you're running the OTA update from the same machine as the gateway endpoint, otherwise you'll need to change the IP in the firmware URL.

FAQ

TODO