Firmware for custom-made notifier based on esp32 module. Notifications are received from a wireless 433MHz demodulator and shown through a series of light effects, which represent the state of the doorbell's FSM. A demux is connected to the esp32 in order to control a led ring; atm implemented animations are just forward and reverse spinner.
You can find other parts of the project at:
-
Download receiver_fw.bin and transmitter_fw.bin from https://github.com/mc-cat-tty/DoorbellCamFirmware/releases/latest
-
Flash them on your ESP32s
esptool.py -p /dev/ttyUSB0 -b 115200 write_flash -fm dio -z 0x00 [transmitter|receiver]_fw.bin
Warning: the upload port may be different on your setup.
- PIO - Platform IO (suggested)
- ESP Tool
- IDF Monitor
- xtensa-esp32-elf package
You may need to add export PATH="$HOME/.platformio/penv/bin/:$PATH"
to your ~/.bashrc
or ~/.zshrc
shell configuration file.
Transmitter:
pio run --environment transmitter
Receiver:
pio run --environment receiver
Move into DoorbellCamFirmware/.pio/build/[transmitter|receiver]
esptool.py -p /dev/ttyUSB0 -b 115200 write_flash -fm dio -z 0x1000 bootloader.bin 0x8000 partitions.bin 0x10000 firmware.bin
Move into DoorbellCamFirmware/.pio/build/[transmitter|receiver]
Dump all symbols:
readelf -s firmware.elf
Translate address to file:line (the manual way):
addr2line -e firmware.elf 0x400d19b3:0x3ffb7ed0
Where 0x400d19b3:0x3ffb7ed0
is one of the address you can find in a esp32 core dump's backtrace.
Traslate a whole backtracke (the smart way):
idf_monitor.py --port /dev/ttyUSB0 firmware.elf