2
4
Fork
You've already forked Supren
0
Rust based RC Transmitter firmware
  • Rust 99.7%
  • Linker Script 0.3%
Find a file
2026年07月09日 06:37:16 +02:00
.cargo Add todo list in the readme 2025年10月13日 21:37:39 -06:00
.idea improve protocol and settings 2026年06月04日 20:40:26 -06:00
assets fancier starting animation 2025年10月26日 10:56:58 -06:00
supren update WGPUI dependency 2026年06月29日 23:00:41 -06:00
supren-build basic st7789 and matrix gui support 2026年06月08日 08:06:18 -06:00
supren-gui update WGPUI dependency 2026年06月29日 23:00:41 -06:00
vendor/mathjax-svg-rs better settings handling in the gui 2026年06月01日 09:17:11 -06:00
xtask improve gui support for windows 2026年06月01日 14:10:10 -06:00
.gitignore update WGPUI dependency 2026年06月29日 23:00:41 -06:00
Cargo.lock update WGPUI dependency 2026年06月29日 23:00:41 -06:00
Cargo.toml Improve UI more 2026年06月12日 11:02:50 -06:00
CLAUDE.md basic st7789 and matrix gui support 2026年06月08日 08:06:18 -06:00
LICENSE Add MPL 2.0 license and check for it with xtask 2026年01月08日 00:32:22 -07:00
README.md Update README.md 2026年07月09日 06:37:16 +02:00

Supren

Supren comes from Esperanto meaning upwards.

Requirements

  • Rust
    • thumbv8m.main-none-eabihf target installed
  • elf2uf2-rs
    • Install elf2uf2-rs the repo lives at https://github.com/JoNil/elf2uf2-rs
    • This is still a WIP tool and we are using a specific commit, TODO when it has a new release move to the release version
    • cargo install elf2uf2-rs --git https://github.com/JoNil/elf2uf2-rs --rev f14bf2d981772cd9fbe5bac33b685719caac1add --force
  • imagemagick (optional)
    • used to turn PNG into raw files, run the below example command
    • convert quetzalcoatlus.png -depth 1 gray:quetzalcoatlus.raw

Hardware

  • Adafruit RP2350 Feather
  • ST7789 ×ばつ320 RGB TFT display
  • 2x MCP23017 i2c expanders
  • NeoPixel status LED
  • DFPlayer Mini audio module
  • USB CDC serial

Building

  • Built using cargo xtask
    • cargo xtask Opens a menu that gives you a few build options
    • You can skip the menu by doing something like cargo xtask build-release

TODO:

  • Better build scripts (don't need to specify thumbv8, etc)
    • Make the buildscripts less hardcoded
    • xtask to simplify building
    • Combine building and running picotool
    • Automatically flash if possible
      • Automatically copy the .uf2 file
      • Automatically flash via debugger probe
    • Show memory usage on compile like PX4/Betaflight
      • Use less hardcoding for the PERSISTENT_FLASH estimated size (look in storage.rs)
  • Buttons and switch support
  • mcp23017 support
  • button/switch mapping
  • Make pins non-hardcoded (allow for compile time or runtime changing of pins used for various things)
  • Simple ci/cd
    • Setup forgejo actions self hosted on a dedicated pc (raspi or something) https://docs.codeberg.org/ci/actions/
    • Automatically run unit tests and build before accepting merges
    • Cargo nexttest for faster testing
  • Simple UI framework
    • Use Embedded Graphics Framebuf for better display performance
      • Don't use framebuf as it actually runs slower and uses much more RAM
    • Button navigation
    • Check boxes
    • Scrolling pages
    • Highlighted item
    • Proportional fonts
    • Pop ups
  • UI
    • Setup wizard (stick calibration, etc)
    • Help menu
    • Bootup Screen
    • Model select
    • Mixer menu
    • Global settings
    • Stick display
    • Battery Voltage
  • ADC support
    • Stick support
    • Battery support
  • Persistent memory
    • A way to store and read global and profile settings
    • A way to show the memory we will be using to store profiles
    • Compile time errors if that memory usage is too high
  • Audio support (DF Player)
    • DF Player support
    • Audio system for sounds, etc
  • Dual core support
  • Overclocking support
  • ELRS support
  • CRSF support
  • Calibration wizard (stick middle, and ends, and which switch is mapped to what)
    • Calibration button wizard
    • Calibration stick wizard
  • Output mixer
  • ADC filtering
  • USB
    • USB HID support
    • USB CDC support
    • Serial Protocol
    • UI for updating/changing settings
  • Games
    • multiplayer via bluetooth
    • tetris
      • base implementation
      • multiplayer modes
    • snake
      • base implementation
      • make animation smooth
      • multiplayer modes
    • uncle worm
      • base implementation
      • better main screen
      • multiplayer
    • 2048
      • base implementation
      • better use deadspace
    • Block-dude
      • original 11 levels
      • additional bonus levels
      • Speedrunner high scores
    • chess
      • base implementation
      • multiplayer
      • AI with different levels
      • puzzles
    • checkers
      • base implementation
      • multiplayer
      • AI with different layers
    • minesweeper
    • arduventure
    • ardynia
    • mystic balloon
    • dark & under 1/2
    • pong
    • picross
    • sudoku
    • breakout
    • sokoban
    • farkle
    • samegame
    • knight move
    • arduman
    • micro city
    • Dazzle Dash
    • Celeste pico 8 port