This is a library for driving the different hardware on the ESP32 based LCA 2017 IoTuz board: https://github.com/CCHS-Melbourne/iotuz-esp32-hardware
Supported hardware:
- TFT (hw SPI) Make sure your library has this patch https://github.com/adafruit/Adafruit_ILI9341/blob/master/Adafruit_ILI9341.cpp#L98
- Touchscreen (hw SPI)
- Rotary Encoder via interrupt driven driver
- Support for A and B buttons "hidden" behind the I2C IO multiplexer
- Joystick
- Color LEDs (requires a patch I wrote for the adafruit library) adafruit/Adafruit_NeoPixel#125
- Accelerometer
- IO expander (pcf8574)
Unused/Unsupported:
- SD Card (not working currently in ESP32) espressif/arduino-esp32#43
- microphone (miswired on the original board)
- audio (requires a non trivial driver and wouldn't be useful without sdcard support)
- IR LED / IR receiver (haven't yet used them)
TFT Driver is slow in hardare SPI due to lock and imperfect support, see adafruit/Adafruit_ILI9341#19 (comment) on how to #define CONFIG_DISABLE_HAL_LOCKS 1
See also espressif/arduino-esp32#149
That said there is a new driver optimized for ESP32:
These libraries however require a recent esp32 compiler suite: https://github.com/espressif/arduino-esp32#installation-instructions
Note that the esp32/tools/esptool binary did not work for me on debian, I had to symlink esptool.py to esptool to replace the binary, and then things worked.
Please make sure you setup the exception decoder, it will make your life much easier when you get a crash dump on your serial port:
- https://github.com/espressif/arduino-esp32#installation-instructions
- https://github.com/me-no-dev/EspExceptionDecoder <<< this
- Adafruit_GFX (from adafruit or https://github.com/espressif/Adafruit-GFX-Library)
- Adafruit_ILI9341 (from adafruit or https://github.com/espressif/Adafruit_ILI9341)
- Adafruit_NeoPixel
- Adafruit_Sensor
- Adafruit_ADXL345_U
- XPT2046_Touchscreen - https://github.com/PaulStoffregen/XPT2046_Touchscreen
- Note that for some demos, you will most likely want this patch: espressif/WROVER_KIT_LCD#1
DemoSauce, if you have the latest libraries and the patch above, will do this: See a few screenshots and videos: https://goo.gl/photos/bMVqdiAxDkEppuN88