Releases: subtilitas/DshotDisplay
Release list
v2.2
Which image
| File | Use it when |
|---|---|
DshotDisplay-VERSION-unified.uf2 |
Start here. Runs on either board; the first boot detects which one it is on (a safe probe of the board's always-on I2C devices) and shows the answer under CFG → SETUP to confirm with a save |
DshotDisplay-VERSION-touch-lcd-2.uf2 |
The 2.0" board only. A few kB smaller, and never asks |
DshotDisplay-VERSION-touch-lcd-2.8.uf2 |
The 2.8" board only |
The unified image costs about 3 kB of flash over a single-board one,
against 4 MB available. Take it unless you have a reason not to: the
single-board images are indistinguishable once flashed, and the 2.8"
one asserts a power latch the 2.0" does not.
Flashing
- Hold BOOT, tap RESET, release BOOT. The board appears as a
USB drive. - Copy the
.uf2onto it. The board reboots into the new firmware.
Wiring
| ESC | 2.0" board | 2.8" board |
|---|---|---|
| Signal | GP4 — P2 header, pin 11 | GP29 — J4 pin 12 |
| Ground | GND — P2 header, pin 13 | GND — J4 pin 1 or 5 |
The 2.8" brings out only GP28 and GP29. Either works — change it on the
board itself from CFG → SETUP, which remembers the choice across
power cycles. An ESC on the wrong pin used to be silent with no error
anywhere; the SETUP screen now shows the live packet rate beside the
pin selector, so you can see it come off zero.
Cut or depin the middle wire of the ESC lead: it is the BEC +5 V output,
and RP2350 GPIO is not 5 V tolerant.
Optional: KISS telemetry
A third wire from the ESC's telemetry pad gives 0.01 V and 0.01 A
instead of Extended DShot Telemetry's 0.25 V and 1 A. On the 2.0" board
it lands on GP5, P1 header pin 10. The 2.8" has no free pin for it.
Verify the download
sha256sum -c SHA256SUMS.txt
What's Changed
- Feat/usb mass storage by @subtilitas in #20
- docs(wiki): KISS works on the 2.8"; it is only off by default by @subtilitas in #21
Full Changelog: v2.0...v2.2
v2.0
Which image
| File | Use it when |
|---|---|
DshotDisplay-VERSION-unified.uf2 |
Start here. Runs on either board; the first boot detects which one it is on (a safe probe of the board's always-on I2C devices) and shows the answer under CFG → SETUP to confirm with a save |
DshotDisplay-VERSION-touch-lcd-2.uf2 |
The 2.0" board only. A few kB smaller, and never asks |
DshotDisplay-VERSION-touch-lcd-2.8.uf2 |
The 2.8" board only |
The unified image costs about 3 kB of flash over a single-board one,
against 4 MB available. Take it unless you have a reason not to: the
single-board images are indistinguishable once flashed, and the 2.8"
one asserts a power latch the 2.0" does not.
Flashing
- Hold BOOT, tap RESET, release BOOT. The board appears as a
USB drive. - Copy the
.uf2onto it. The board reboots into the new firmware.
Wiring
| ESC | 2.0" board | 2.8" board |
|---|---|---|
| Signal | GP4 — P2 header, pin 11 | GP29 — J4 pin 12 |
| Ground | GND — P2 header, pin 13 | GND — J4 pin 1 or 5 |
The 2.8" brings out only GP28 and GP29. Either works — change it on the
board itself from CFG → SETUP, which remembers the choice across
power cycles. An ESC on the wrong pin used to be silent with no error
anywhere; the SETUP screen now shows the live packet rate beside the
pin selector, so you can see it come off zero.
Cut or depin the middle wire of the ESC lead: it is the BEC +5 V output,
and RP2350 GPIO is not 5 V tolerant.
Optional: KISS telemetry
A third wire from the ESC's telemetry pad gives 0.01 V and 0.01 A
instead of Extended DShot Telemetry's 0.25 V and 1 A. On the 2.0" board
it lands on GP5, P1 header pin 10. The 2.8" has no free pin for it.
Verify the download
sha256sum -c SHA256SUMS.txt
What's Changed
- feat: blackbox log encoder, validated against Betaflight's decoder by @subtilitas in #3
- Dev/pico sdk native by @subtilitas in #7
- Dev/multiboard sdio by @subtilitas in #9
- docs: regenerate the screenshots, and make that a command by @subtilitas in #10
- ci: stop building and releasing sdtest by @subtilitas in #11
- Feat/runtime config by @subtilitas in #15
- Fix/UI consistency and edt by @subtilitas in #16
- Docs/user wiki by @subtilitas in #17
Full Changelog: v1.1.0...v2.0
v1.1.0
Flashing
- Hold BOOT, tap RESET, release BOOT. The board appears as a
USB drive. - Copy the
.uf2onto it. The board reboots into the new firmware.
Take the arm build unless you specifically want the RP2350's RISC-V
cores; the two are functionally identical.
Wiring
| ESC | Board |
|---|---|
| Signal | GP4 — P2 header, pin 11 |
| Ground | GND — P2 header, pin 13 |
Cut or depin the middle wire of the ESC lead: it is the BEC +5 V output,
and RP2350 GPIO is not 5 V tolerant.
Verify the download
sha256sum -c SHA256SUMS.txt
What's Changed
- Refs/heads/copilot/review and optimize by @subtilitas in #1
- Dev/telemetry logging by @subtilitas in #2
Full Changelog: v1.0.1...v1.1.0
v1.0.1
Flashing
- Hold BOOT, tap RESET, release BOOT. The board appears as a
USB drive. - Copy the
.uf2onto it. The board reboots into the new firmware.
Take the arm build unless you specifically want the RP2350's RISC-V
cores; the two are functionally identical.
Wiring
| ESC | Board |
|---|---|
| Signal | GP4 — P2 header, pin 11 |
| Ground | GND — P2 header, pin 13 |
Cut or depin the middle wire of the ESC lead: it is the BEC +5 V output,
and RP2350 GPIO is not 5 V tolerant.
Verify the download
sha256sum -c SHA256SUMS.txt
Full Changelog: v1.0.0...v1.0.1
Pre release test
ci: harden the release workflow
Reading the gh manual found a real defect: --notes-file does not combine
with --generate-notes. The documented way to prepend a custom body is
--notes, so the release notes are passed inline; as written, the flashing
and wiring instructions would likely have been dropped.
Tags no longer reach a shell through ${{ }} interpolation, which was a
command-injection path. They travel via env, are resolved once in a
version job so build and publish cannot disagree, and are rejected unless
v-prefixed.
Four refusals, each guarding an otherwise silent failure:
- building from failing tests
- publishing an implausible image (UF2 magic and 512-byte-multiple size
are checked, so a truncated file fails the build, not the board)
- inventing a tag that was never pushed (--verify-tag)
- leaving a half-populated release: create and upload are separate API
calls, so the release is read back and every asset confirmedEOF
Alpha test
a preliminary test release, all seems to be working but a lot of cleaning up still missing