====== Pi Config ====== Notes on the configuration of Raspberry Pis as development hosts for nyan devices. They can be used for programming and monitoring the ESP32s. They are also running SignalK and taking the role of a boat computer for testing. ===== AP ===== Using as a wifi AP for ESP32 lora boards. Used: * hostapd - for wifi level stuff * /etc/network/interfaces - to assign an IP to wlan0 * dnsmasq - to provide dhcp server and dns server on wlan0 to the ESP. * Not done - routing / NAT. ESP probably doesn't need to / shouldn't? talk to the internet. EDIT: Now done with ufw. The ESPs use ntp and might want to connect to an NMEA tcp server for testing. I tried using NetworkManager for this first but it didn't work. May have been a firewall issue actually, but hostapd working now anyway. NetworkManager also has very limited configuration options. ===== JTAG ===== Using a Pi 5's GPIO pins to connect to a target ESP32-S3 over JTAG. ==== JTAG Cable ==== It is a good idea to put some resistors in these lines to avoid accidents. Say around 390R. I could only be bothered doing it for one wire, which is being used as a pulldown on GPIO3. ^Pi ^ Wire ^ ESP32 ^ | GPIO25 | blue | reset| | GPIO10 | purple | TDI| | GPIO9 | green | TDO| | GPIO11 | orange | TCK| | GPIO8 | yellow | TMS| Separate wire with 390R in it. | GND | black | GPIO3 - JTAG selector pin| ==== Fuses ==== Need to burn fuses on the EPS32-S3 to get JTAG on pins. See not in boards page. ==== openocd ==== I built the esp32 version of openocd from source. I installed these dependencies - not all needed just for ESP32: ''apt install libhidapi-dev libgpiod-dev'' ''./configure --enable-sysfsgpio --enable-bcm2835gpio --enable-linuxgpiod --enable-cmsis-dap'' ==== ESP IDF ==== platformio does a shoddy job of ESP32 support. gdb is out of date and doesn't work. ''espefuse.py'' tool doesn't work. Instead I installed the latest ESP IDF straight from Espressif, following their instructions.