4.1 KiB
4.1 KiB
Work in progress
This is a custom firmware being developed for the LilyGo T-Deck, currently it is experimental & buggy.
I am terrible at C++ and still am trying to wrap my head around the language's logic, so most of this code has been shit out and written like a cowboy.
The project started out with as IRC bridge for Meshtastic over MQTT, just so I could say "we have IRC over radio", which later led to me modifying the official Meshtastic firmware to add extended features. I am deep in the rabbit hole of embedded development and am starting from scratch making this an entirely custom firmware.
This is being developed in my free time as a fun project. It is no where near being useful.
Previews
Flashing the Firmware
Using VS Code
- Add your user to the
dialout
group:sudo gpasswd -a YOURUSERNAME dialout
(You will need to re-login after adding your user to thedialout
group for it to take affect) - Install Visual Studio Code
- Install the PlatformIO plugin
- Hold down the trackball on the device, turn it on, and plug it in to the computer.
- Press F1 and select
PlatformIO: Build
- Press F1 and select
PlatformIO: Upload
Using ESP Tool
- Take the
firmware.bin
file from the release page and download it. (no releases yet, we still building) - Install esptool:
pip install esptool
- Hold down the trackball on the device, turn it on, and plug it in to the computer.
- Confirm the serial device in your
/dev
directory (Your device will likely be/dev/ttyAMC0
or/dev/ttyUSB0
) - Flash the device:
esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 115200 write_flash -z 0x1000 firmware.bin
Roapmap
Device functionality
- Screen timeout on inactivity (default 30 seconds)
- Keyboard backlight timeout on 10 seconds oof inactivity.
- Trackball support
- Speaker support
Features
- Wifi scanning & selection menu
- Saved wifi profiles
- Wifi Hotspot
- Notifcations Window (All notifications will go here, from IRC, Gotify, Meshtastic, or anything)
- Status bar (Time, Date, Notification, Wifi, and Battery)
- XBM icons for status bar items
- Allow specifying the IRC server, port, TLS, nick, etc...
- Screensaver
Applications
- IRC Client
/raw
command for IRC client to send raw data to the server- Add scrolling backlog for IRC to see the last 200 messages
- Hilight support (so we can see when people mention our NICK)
- ChatGPT
- SSH Client
- Wardriving
- Evil Portal AP
- Gotify
- Meshtastic
- Spotify/Music player (can we play audio throuigh Bluetoth headphones or the on-board speaker?)
- Syslog (All serial logs will be displayed here for on-device debugging)
Known issues
- Messages that exceed the screen width and wrap to the next line will throw off thje logic of calculating the max lines able to be displayed on the screen. Messages eventually go off screen.
- Input messages exceeding the screen width go off screen, and need to wrap and create a new input line, pushing up the backlog of messages.
- Some colors are not working when its only a background color or only contains a space
- Sometimes it will not connect to IRC even from reconnections, and you have to reboot and try again.
- Screen timeout can occur during an IRC reconnection and blck keyboard input
Contributors
Join us in #comms on irc.supernets.org if you want to get your hands dirty.