This is a trivially simple chat app running on the LilyGO T LoRa Pager DevKit.
This is an extremely early version, so manage your expectations.
It uses a Scala/Akka bridge to interface with OpenAI, with WhatsApp integration in progress and potential for other services in the future.
Currently, it communicates with the server via Wi-Fi and websockets, using a trivially simple protocol with partial updates but no retries or read indicators yet.
Main reason why I made this was to experiment with the excellent clay layout library. The whole embedded side is written in pure C. A bunch of stuff is still kinda iffy (especially regarding the memory and WiFi of the ESP32S3).
- There is no way to create a conversation
- Code cleanup
- Setup documentation
- Input issues (random short/long press) - maybe related to debounce logic
- Queue messages
- Wifi reliability & speed (though maybe my wifi is ass)
- WhatsApp business logic
- Partial display update
- do this SIMD
- might also free up a bunch of on-chip RAM since tiles will have to be accessed in a non-DMA scheme anyways
- Scroll/edit in compose view
- Animate compose view
- Simulator
- BMS advanced & gauge
- Lower power usage (idk how much is possible)
- Brightness
- Dark mode
- Signal business logic
- LoRa
- GSM extension board
to complie protoc-c (or protoc-gen-c) inside esp-idf:
CPPFLAGS="-I/opt/homebrew/opt/protobuf@21/include" \
CFLAGS="-I/opt/homebrew/opt/protobuf@21/include" \
LDFLAGS="-L/opt/homebrew/opt/protobuf@21/lib" \
LIBS="-lprotobuf" \
PROTOC="/opt/homebrew/opt/protobuf@21/bin/protoc" \
./configure