A clock from haxxors for haxxors with ❤️
See Hardware Used for a list of hardware used in this project and how to connect it.
See Project Setup for instructions on how to set up the software project.
See Trouble Shooting for common problems and their solutions.
- ESP32 with Az-Delivery ESP32 Dev Kit (This one has 5V output, which can be used to power the LED strip)
- HD108 LED Strip (Be wary of the faulty documentation, regarding the way the frame should be encoded)
- 3D printed digits to mount the LED strip on
The code is configured to use the ports G23 (data) and G18 (clock) as spi lanes.
Please refer to the pinout diagram above to find the correct ports on your ESP32 board.
Also check main.cpp to see the rest of the pin configuration.
- Have ESP32
- Install
esp-idf, follow the official setup guide, in short:sudo apt-get install git wget flex bison gperf python3 python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0 git clone --recursive https://github.com/espressif/esp-idf.git cd esp-idf ./install.sh esp32 . ./export.sh cd ..
- The IDF requires certain paths, set by sourcing the
export.shscript. Keep this in mind when opening a new terminal. An IDE like CLion needs to know the IDF as well, specifically$PATHand$IDF_PATHneed to be copied from a terminal. - Add the current user to the
dialoutlinux group (to access the serial port):sudo usermod -a -G dialout $USER- reboot
For now, the wifi credentials are hardcoded in init_wifi.cpp, replace with your own. The ESP hosts a website with color controls, and knows the time via NTP.
- Check if the clock and data lanes are connected correctly
- Check if the correct wifi credentials are set in
init_wifi.cpp- If there is no wifi connection, the clock will not display anything as it is unable to complete the startup sequence
