Warning: ESP32 hardware support is experimental and not fully tested.
File → Preferences → Additional Board Manager URLs:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Tools → Board → Boards Manager → Search “esp32” → Install
Tools → Manage Libraries:
TFT_eSPI by BodmerArduinoJson by Benoit BlanchonCopy User_Setup.h to Arduino library folder:
cp User_Setup.h ~/Documents/Arduino/libraries/TFT_eSPI/User_Setup.h
Edit vibe-monitor.ino:
#define USE_WIFI
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";
# macOS
ls /dev/cu.*
# Linux
ls /dev/ttyUSB* /dev/ttyACM*
# Test working state
echo '{"state":"working","tool":"Bash","project":"test"}' > /dev/cu.usbmodem1101
# Test idle state
echo '{"state":"idle","project":"test"}' > /dev/cu.usbmodem1101
ESP32 supports JSON commands via serial:
# Lock current project
echo '{"command":"lock"}' > /dev/cu.usbmodem1101
# Lock specific project
echo '{"command":"lock","project":"my-project"}' > /dev/cu.usbmodem1101
# Unlock
echo '{"command":"unlock"}' > /dev/cu.usbmodem1101
# Get status
echo '{"command":"status"}' > /dev/cu.usbmodem1101
# Get/Set lock mode
echo '{"command":"lock-mode"}' > /dev/cu.usbmodem1101
echo '{"command":"lock-mode","mode":"first-project"}' > /dev/cu.usbmodem1101
# Reboot device
echo '{"command":"reboot"}' > /dev/cu.usbmodem1101
| Issue | Solution |
|---|---|
| Display not working | Verify User_Setup.h is copied to TFT_eSPI library folder |
| Serial connection failed | Check port permissions: sudo chmod 666 /dev/ttyUSB0 |
| JSON parsing error | Ensure JSON ends with LF (\n) |