Hacking the planet from a LilyGo T-Deck using custom firmware
.screens | ||
firmware | ||
lib | ||
src | ||
.gitignore | ||
LICENSE | ||
platformio.ini | ||
README.md |
Work in progress
This is a custom firmware being developed for the LilyGo T-Deck, currently it is experimental & buggy while we are in beta status.
If you are familiar with or use Internet Relay Chat, we have a team of developers working on this project in #comms on irc.supernets.org, join us if you have ideas, bugs, or want to get your hands dirty & develope this project with us.
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
- Press the RST (reset) button on the device.
Using ESP Tool
- Take the
firmware.bin
file from the release page and download it. - 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-s3 --port /dev/ttyUSB0 --baud 115200 write_flash -z 0x1000 firmware.bin
- Press the RST (reset) button on the device.
Command & Control
Menu controls
The device will scan for WiFi networks on boot. Once the list is displayed, you can scroll up and down the list with the u
key for UP and the d
key for down.
IRC commands
Command | Description |
---|---|
/debug |
Show hardware information |
/me <message> |
Send an ACTION message |
/nick <new> |
Change your NICK on IRC |
/raw <data> |
Send RAW data to the server |
Debugging over Serial
- Install screen:
apt-get install screen
(or whatever package manager you use) - Plug in your device via USB.
- Turn the device on, and run:
screen /dev/ttyAMC0 9600
(again, this can also be /dev/ttyUSB0)
Roapmap
Device functionality
- Screen timeout on inactivity (default 30 seconds)
- Keyboard backlight timeout with screen timeout
- Trackball support
- Speaker support
- GPS support
- Lora support
- BLE 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
- Serial debug logs
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
- Multi-buffer support (
/join
&/part
support with switching between buffers with/0
,/1
,/2
, etc) (/close
also for PM buffers or kicked from channels) - Status window for network to show RAW lines from the IRC server (buffer 0)
- Hilight monitor buffer
- Hilight support (so we can see when people mention our NICK)
- 99 color support
/pm
support (it should open a buffer for pms)- NickServ support
- ChatGPT
- SSH Client
- Wardriving
- Evil Portal AP
- Local Network Probe (Scans for devices on the wifi network you are connected to, add port scanning)
- 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)