diff --git a/README.md b/README.md index 685640c..c0b552e 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,193 @@ -# Meshtastic device-ui library +
+ +
+
+
+
+
+## :pencil: TODOs
+
+### :japanese_castle: General Architecture
+
+ - [ ] Overall design (MVC approach)
+ - [x] DisplayDriver inheritance hierarchy
+ - [x] DisplayDriver factory
+ - [x] TFT Driver
+ - [ ] OLED Driver
+ - [ ] E-Ink Driver
+ - [x] View hierarchy
+ - [x] View factory
+ - [x] Controller design and interface implementation
+ - [x] Controller <-> model interface
+ - [x] Packet based thread safe interface
+ - [x] serial communication interface
+ - [x] protobuf encoding/decoding
+ - [x] Logging interface
+ - [ ] Add lvgl compatible input driver interface
+ - [ ] Add interface for persistency via lvgl littlefs callbacks
+ - [ ] Screen calibration data
+ - [ ] Device settings (General)
+ - [ ] Message storage
+ - [ ] Serial connection config
+ - [ ] Dynamic behavior
+ - [x] Startup config
+ - [x] Restart behavior
+ - [x] Display sleep
+ - [ ] Heartbeat timer based on device input actions
+ - [ ] Localisation support
+ - [ ] German translation
+ - [ ] Spanish translation
+ - [ ] Portuguese translation
+ - [ ] French translation
+ - [ ] Italian translation
+ - [ ] (other languages with latin characters)
+ - [ ] Support dynamic OLED / Color(TFT) selection
+ - [ ] Add support for UI scaling and try eliminate fixed positioning (lvgl v9)
+ - [ ] Allow co-existence of generated files/views by different SquareLine Studio projects
+ - [ ] Fix PSRAM draw buffer issue and do buffer size optimization
+ - [ ] Test native lvgl driver support
+ - [ ] TFT drivers
+ - [ ] OLED drivers
+ - [ ] Check lovyanGFX double-buffering DMA capabilities
+ - [ ] Check lvgl native driver DMA double-buffering
+ - [ ] E-Ink support
+ - [ ] RP2040 support
+
+### Meshtastic UI (general)
+
+ - [x] Boot Screen
+ - [x] Home Screen
+ - [x] Messages info
+ - [x] Nodes info
+ - [x] GPS info
+ - [ ] WiFi
+ - [ ] Bluetooth
+ - [ ] MQTT
+ - [x] Free memory
+ - [ ] Nodes panel
+ - [x] Scroll display and sorting
+ - [ ] Node details
+ - [ ] Repeater support (manual insertion)
+ - [ ] LastHeard & time source handling improvements
+ - [ ] Remote Node configuration
+ - [x] Group channel panel
+ - [ ] Chat panel
+ - [x] Scroll container and messages display
+ - [x] Virtual keyboard
+ - [ ] Message acknowledgement
+ - [x] Delete chat
+ - [ ] Map
+ - [ ] Tiles dynamic loading
+ - [ ] SD card
+ - [ ] WLAN
+ - [ ] Pan & Zoom
+ - [ ] Node locations
+ - [ ] General Settings
+ - [ ] Language
+ - [ ] Timezone
+ - [ ] Screen
+ - [ ] Maps
+ - [ ] Audio
+ - [ ] Radio Settings
+ - [ ] Frequency region configuration
+ - [ ] Channel configuration & QR code display
+ - [ ] Module Settings
+ - [x] Status bar with battery symbol
+ - [ ] UI Keyboard navigation & control
+
+### :pager: T-Deck
+
+ - [x] Firmware project integration
+ - [ ] T-Deck UI
+ - [x] 320x240 View
+ - [x] GPS position
+ - [ ] Node location and precision
+ - [ ] Radio frequency display
+ - [ ] Offline map display
+ - [ ] I2C keyboard input handling
+ - [ ] Trackball support (e.g. fast scrolling list views)
+ - [ ] SD card support, mainly for offline maps or import/export (config & chat history)
+ - [ ] (Optional): allow bluetooth connection (-> PhoneAPI queue re-design)
+ - [ ] I2S Audio support?
+
+### :watch: T-Watch
+
+ - [ ] T-Watch UI
+ - [ ] 240x240 View
+ - [ ] Clock screen
+ - [ ] Firmware project integration
+ - [ ] Continue work on SquareLine Studio UI screens :tada:
+ - [ ] Refactoring of common code with 320x240 view into base class
+
+### OLED
+
+ - [ ] Provide demo for OLED 128x64 screen
+ - [ ] Space and RAM requirements analysis
+
+### :penguin: Portduino (Raspberry / native linux)
+
+ - [x] Project integration into firmware
+ - [x] Display driver run-time configuration interface
+ - [ ] Add missing settingsMap entries for DisplayDriverConfig
+ - [ ] Integrate lvgl keyboard input driver
+ - [ ] Add support for several SPI devices
+ - [ ] Add pwm brightness control
+ - [ ] Target environment cleanup
+
+### :iphone: Stand-alone Device
+
+ - [x] Dedicated device-ui project
+ - [x] Sunton CYD support (320x240)
+ - [x] LilyGo T-HMI support (320x240)
+ - [ ] WT32-SC01 (Plus) support (480x320)
+ - [x] Display driver
+ - [ ] 480x320 view
+ - [ ] Fix/Workaround serial light sleep UART reading issue (-> firmware)
+ - [ ] Heartbeat timer
+ - [x] Serial data send/receive
+ - [x] UART connection support
+ - [ ] WLAN connection support
+ - [ ] Bluetooth connection support
+ - [ ] Serial Interface configuration UI screen
+ - [ ] Allow serial connection initialisation at runtime
+
+## Architecture Overview device-ui library (Class Diagram)
diff --git a/docs/CYD.png b/docs/CYD.png
new file mode 100755
index 0000000..3d76110
Binary files /dev/null and b/docs/CYD.png differ
diff --git a/docs/Pi400-TFT.jpg b/docs/Pi400-TFT.jpg
new file mode 100755
index 0000000..49dbb01
Binary files /dev/null and b/docs/Pi400-TFT.jpg differ
diff --git a/docs/T-Deck.jpg b/docs/T-Deck.jpg
new file mode 100755
index 0000000..012a438
Binary files /dev/null and b/docs/T-Deck.jpg differ
diff --git a/docs/X11.png b/docs/X11.png
new file mode 100644
index 0000000..41f127a
Binary files /dev/null and b/docs/X11.png differ