acid-drop

- Hacking the planet from a LilyGo T-Deck using custom firmware
git clone git://git.acid.vegas/acid-drop.git
Log | Files | Refs | Archive | README | LICENSE

README.md (5259B)

      1 <p align="center">
      2   <img src="./.screens/aciddrop2.png" />
      3 </p>
      4 
      5 # Work in progress
      6 This is a custom firmware being developed for the [LilyGo T-Deck](https://www.lilygo.cc/products/t-deck), currently it is experimental & buggy while we are in beta status.
      7 
      8 If you are familiar with or use [Internet Relay Chat](https://en.wikipedia.org/wiki/IRC), we have a team of developers working on this project in **#comms** on **[irc.supernets.org](irc://irc.supernets.org)**, join us if you have ideas, bugs, or want to get your hands dirty & develope this project with us.
      9 
     10 Consider sponsoring our project, all the money goes towards motivation to develope on this, we also like buying T-Decks for people who want to learn about this stuff!
     11 
     12 ![](./.screens/preview.png)
     13 
     14 ![](./.screens/lvgl.png)
     15 
     16 # Flashing the Firmware
     17 ###### Using VS Code
     18 1. Add your user to the `dialout` group: `sudo gpasswd -a YOURUSERNAME dialout` *(You will need to re-login after adding your user to the `dialout` group for it to take affect)*
     19 2. Install [Visual Studio Code](https://code.visualstudio.com/)
     20 3. Install the [PlatformIO plugin](https://platformio.org/install/ide?install=vscode)
     21 4. Hold down the trackball on the device, turn it on, and plug it in to the computer.
     22 5. Press **F1** and select `PlatformIO: Build`
     23 6. Press **F1** and select `PlatformIO: Upload`
     24 7. Press the RST *(reset)* button on the device.
     25 
     26 ###### Using ESP Tool
     27 1. Take the `firmware.bin` file from the release page and download it.
     28 2. Install [esptool](https://pypi.org/project/esptool/): `pip install esptool`
     29 3. Hold down the trackball on the device, turn it on, and plug it in to the computer.
     30 4. Confirm the serial device in your `/dev` directory *(Your device will likely be `/dev/ttyAMC0` or `/dev/ttyUSB0`)*
     31 5. Flash the device: `esptool.py --chip esp32-s3 --port /dev/ttyUSB0 --baud 115200 write_flash -z 0x1000 firmware.bin`
     32 6. Press the RST *(reset)* button on the device.
     33 
     34 # Command & Control
     35 ###### Menu controls
     36 On boot, if you press the `w` key, it will wipe all of the stored preferences.
     37 
     38 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.
     39 
     40 ###### IRC commands
     41 | Command         | Description                 |
     42 | --------------- | --------------------------- |
     43 | `/info`         | Show hardware information   |
     44 | `/me <message>` | Send an ACTION message      |
     45 | `/nick <new>`   | Change your NICK on IRC     |
     46 | `/raw <data>`   | Send RAW data to the server |
     47 
     48 # Debugging over Serial
     49 1. Install screen: `apt-get install screen` *(or whatever package manager you use)*
     50 2. Plug in your device via USB.
     51 2. Turn the device on, and run: `screen /dev/ttyAMC0 9600` *(again, this can also be /dev/ttyUSB0)*
     52 
     53 # Roapmap
     54 ###### Device functionality
     55 - [X] Screen timeout on inactivity *(default 30 seconds)*
     56   - [ ] Keyboard backlight timeout with screen timeout
     57 - [ ] Trackball support
     58 - [X] Speaker support
     59   - [X] Bootup sounds
     60   - [X] IRC mention sounds
     61 - [ ] GPS support
     62 - [ ] Lora support
     63 - [ ] BLE support
     64 - [ ] SD card support
     65 
     66 ###### Features
     67 - [X] LVGL used for enhanced UI
     68 - [X] Wifi scanning & selection menu
     69   - [x] Saved wifi profiles
     70 - [ ] Wifi Hotspot
     71 - [ ] Notifcations Window *(All notifications will go here, from IRC, Gotify, Meshtastic, or anything)*
     72 - [X] Status bar *(Time, Date, Notification, Wifi, and Battery)*
     73   - [ ] XBM icons for status bar items
     74 - [ ] Allow specifying the IRC server, port, TLS, nick, etc...
     75 - [ ] Screensaver
     76 - [X] Serial debug logs
     77 
     78 ###### Applications
     79 - [ ] Rubber Ducky
     80 - [X] IRC Client
     81   - [X] `/raw` command for IRC client to send raw data to the server
     82   - [ ] Add scrolling backlog for IRC to see the last 200 messages
     83   - [ ] Multi-buffer support *(`/join` & `/part` support with switching between buffers with `/0`, `/1`, `/2`, etc)* *(`/close` also for PM buffers or kicked from channels)*
     84   - [ ] Status window for network to show RAW lines from the IRC server *(buffer 0)*
     85   - [ ] Hilight monitor buffer
     86   - [X] Hilight support *(so we can see when people mention our NICK)*
     87   - [X] 99 color support
     88   - [ ] `/pm` support *(it should open a buffer for pms)*
     89   - [ ] NickServ support
     90 - [ ] ChatGPT
     91 - [ ] SSH Client
     92 - [ ] Wardriving
     93 - [ ] Evil Portal AP
     94 - [ ] Local Network Probe *(Scans for devices on the wifi network you are connected to, add port scanning)*
     95 - [ ] Gotify *(in progress)*
     96 - [ ] Meshtastic *(in progress)*
     97 - [ ] Spotify/Music player *(can we play audio throuigh Bluetoth headphones or the on-board speaker?)*
     98 - [ ] Syslog *(All serial logs will be displayed here for on-device debugging)*
     99 
    100 # Ideas
    101 - Replace the `ESP32-S3FN16R8` with a `ESP32-S3-WROOM-1U` which has an iPex connector for an external WiFi antenna.
    102 
    103 # Previews
    104 ###### 99 Color support
    105 ![](./.screens/99colors.png)
    106 
    107 ###### Full ASCII support for PUMPERS
    108 ![](./.screens/ascii.png)
    109 
    110 ###### Support for /HUEG
    111 ![](./.screens/hueg.png)
    112 
    113 ___
    114 
    115 ###### Mirrors for this repository: [acid.vegas](https://git.acid.vegas/acid-drop) • [SuperNETs](https://git.supernets.org/acidvegas/acid-drop) • [GitHub](https://github.com/acidvegas/acid-drop) • [GitLab](https://gitlab.com/acidvegas/acid-drop) • [Codeberg](https://codeberg.org/acidvegas/acid-drop)