esp-web-install --chip esp32s3 --channel nightly nightly-f0dbad9
OrcDial nightly build
OrcDial nightly-f0dbad9 · built 2026-10-09 03:39 PDT · 10 merged changes since v0.1.0-beta.1 · 1.2 MB
commit f0dbad9 · all changes since v0.1.0-beta.1 · GitHub nightly release · build log
Reporting a bug
On the Dial, open Dial Settings → About: the BUILD line shows nightly f0dbad9 2026-10-09 for this build (older firmware shows only the build date). Put that line in your bug report so the exact commit is known.
Going back to a release
Once OrcDial has a release, install it from the regular installer at any time. If settings act strange afterwards, install again and tick Erase device (you'll pair with the Tab5 again).
What's new since v0.1.0-beta.1
- #10 CI nightly: build again for tools/ci/ and workflow changes (tighter docs/CI skip)
details · 7 lines
Gate change in `.github/workflows/firmware-nightly.yml` only (CI-only). The scheduled nightly now skips when every file changed since the last nightly commit is docs/CI: `*.md`, `docs/`, `LICENSE`, top-level dotfiles, or `.github/` other than this workflow. Still builds for `tools/ci/`, `firmware-nightly.yml`, `.gitattributes`/`.gitmodules` (they change how the image is made) and anything else. `force=true` overrides as before; if the last nightly commit is not reachable (history rewritten), it builds. Filter checked: README/docs/pages.yml/.gitignore/component README → skip; firmware-nightly.yml, tools/ci/*, .gitattributes, source + README → build. actionlint clean. Tightens #8, which also skipped on tools/ci/ and all dotfiles. - #11 README: install OrcDial from the browser (theorc.dev/dial/flash)
details · 7 lines
Docs-only (README.md). - New **Install OrcDial on the Dial (browser)** section at the top: [theorc.dev/dial/flash](https://theorc.dev/dial/flash/), Chrome or Edge over USB-C, Dial settings and Tab5 pairing kept unless *Erase device* is ticked, and the [nightly](https://theorc.dev/dial/nightly/) is the current install until the first release. - Replaces the "browser installer for the Dial is coming" note; the PlatformIO section is now "Build and flash OrcDial from source". - Same Oregon Radio Company footer as OrcSDR's README (logo 240 px linked to theorc.dev, credit line). All linked URLs return 200. - #8 CI: Linux build + tests, nightly channel, release assets for theorc.dev/dial
details · 8 lines
CI-only (.github/ and tools/ci/). Mirrors OrcSDR's nightly pipeline. - `tools/ci/setup.sh`: pinned PlatformIO 6.2.0, esptool 4.9.0, Pillow, pyserial in a venv; Mbed TLS v3.6.5 sources for the host tests. - `tools/ci/build-dial.sh`: `pio run -e dial`, checks the NVS-safe partition layout (nvs 0x9000/0x5000, otadata 0xE000, app0 0x10000) and app size, then `esptool merge_bin` of the four parts a PlatformIO upload writes (bootloader 0x0, partitions 0x8000, boot_app0 0xE000, app 0x10000; dio/80m/8MB). Passes the build ID as `ORCDIAL_BUILD_ID` via PLATFORMIO_BUILD_FLAGS: harmless until the About screen uses it (separate firmware PR). - `tools/ci/write-build-info.py`: schema-1 build-info.json + release notes (same contract as OrcSDR's, consumed by theorc-site build-fw-site.py). - `ci.yml`: `tools/release_check.py` (host tests Debug+Release, capture guards, both firmware builds) on PRs and pushes to main (docs-only changes skipped). - `firmware-nightly.yml`: 03:27 PT; skips if main is unchanged, exactly a tag, or only docs/CI changed since the last nightly (force overrides); tests; build; rolling `nightly` prerelease (merged .bin, ELF zip, SHA256SUMS, build-info.json uploaded last); `repository_dispatch` `orcdial-nightly` to theorc-site if SITE_DISPATCH_TOKEN is set (otherwise a summary note; theorc-site polls hourly). Concurrency group firmware-nightly. …more on GitHub - #6 Add the FT8 RX dashboard and the centre-tap fine-tuning switch
details · 15 lines
## What this adds The FT8 RX dashboard (FT8, FT4 and JS8 receive on the Tab5) as dashboard 17 in the carousel, and a centre-tap switch for fine tuning. It mirrors the `orcdial/` changes in OrcSDR PR 176 so both repos stay in step. - Turning the knob changes the band on Live and Hunter, and moves the selection on Decodes, Map and Heard; a press starts or stops the hunter. - With expert tuning on in the Tab5 Setup, a tap in the middle of the Dial switches the knob between band selection and fine tuning. The round display then shows the frequency large, the band small and the step size ("STEP 1 kHz"); turning steps the dial in Hz. - New `ActionKind` values `ft8_band`, `ft8_item`, `ft8_hunter`, `ft8_fine` are **appended** (23 to 26): no existing value moves. FT8 capability flags live in `src/ft8_control.hpp` (bits 0-5 hunter and readiness, 6 fine tuning active, 7-9 step index, 10 expert enabled). - `src/control/secure_runtime.hpp` also gains the Tab5-build PSRAM queue change (`CONFIG_IDF_TARGET_ESP32P4` only); it has no effect on the Dial's ESP32-S3. ## Compatibility OrcDial stays an optional accessory. A Tab5 without FT8 rejects dashboard 17 with `ERROR`, an older Dial ignores the new capability bits, and an FT8-capable Tab5 works fully from touch alone. Until the OrcSDR FT8 PR lands on `main` and is released, the FT8 carousel entry will not do anything on a stock Tab5. ## Checked …more on GitHub - #5 README: Tab5 install via theorc.dev/sdr/flash; Dial browser installer coming soonDocs only. The install section linked M5Burner (which resets settings) for the Tab5 and recommended the Windows installer; theorc.dev/sdr/flash/ now installs OrcSDR from the browser and keeps settings. Makes clear these links install OrcSDR on the Tab5, not the Dial, and notes the Dial browser installer is coming to theorc.dev (PlatformIO until then).
a4ded6dUpdate README.mdadded a photo- #4 keep the keypad open when the Tab5 link refuses a tune
details · 10 lines
Follow-up to #3, fixing a CodeRabbit finding reported against the OrcSDR copy of this firmware. keypad_tune() ignored the return value of radio_link.command(). command() returns false while another command is pending or the link is busy, so the keypad closed and the typed frequency was silently lost. Now, when online and the command is refused, the keypad stays open with the entry intact and shows "BUSY - TRY AGAIN"; the next keypress clears the message. The offline path is unchanged (the keypad returns to the screen it was opened from). Verified: ctest 5 of 5 pass, pio run -e dial builds. Documented in CHANGELOG.md. - #3 Dial Settings menu, BACK buttons, keypad, span and filter control
details · 19 lines
Merge pull request #3: Dial Settings menu, BACK buttons, keypad, span and filter control WHAT THIS MERGE DELIVERS The OrcDial gains a second layer of navigation and a real VFO feel on Home. Everything below was exercised on a real M5Dial (COM14) linked to a real Tab5 running OrcSDR branch claude/home-smart-vfo. USER-VISIBLE CHANGES - Dial Settings: its own vertical menu (last carousel stop, or hold the knob 4 s on Home) with Pairing (the former Devices screen), Link (channel, lock, last heard, sent/acked/failed/refused/received counters, reconnect), Display (brightness, sleep 30 s / 1 min / 5 min), Knob (acceleration off/normal/fast, reverse, click), About (build date, protocol, this Dial's ID, the paired Tab5's ID) and Reset (arm, then confirm within 4 s), plus a Back entry. Settings are saved in NVS namespace "dialset". Tapping the top of a screen no longer opens pairing. - BACK button on Home and every dashboard screen (opens the dashboards carousel); the tiny bottom hints were removed. Settings screens return to Home after 60 s without input; the keypad returns to the screen it came from; the idle clock does not run while pairing is in progress. - Home focus cycle is frequency, step, span, filter, volume. Turning on SPAN zooms the Tab5 spectrum (clockwise zooms in); turning on FILTER widens or narrows the receive filter through the mode's usual widths, and the Tab5 shows the two filter edge lines while the knob is adjusting them. …more on GitHub - #2 OrcDial Home: full-range tuning, mode chip, keypad and common band names
details · 14 lines
## What this changes - **Home tunes the whole range.** Rotating the knob sends step counts; the Tab5 applies the step and raster of the band it is in, so a spin that crosses a band edge changes step and snaps to the next band's raster. - **Home shows what it is tuned to.** Common band name (FM RADIO, 70 CM HAM, AIR BAND...), mode, frequency, step and volume, over a decorative waveform. - **Controls.** Press cycles frequency, step and volume. A long press (0.9 to 4 s) opens the dashboards. Tapping the mode area cycles NFM, AM, WFM, USB and LSB. - **Direct tuning keypad.** A long press on the frequency opens a numeric keypad (24 to 1766 MHz); TUNE sends an absolute tune that the Tab5 validates again. - **Protocol.** The band id (Tab5 band profile id + 1) rides in the previously reserved packet byte 7. No version bump: an older Tab5 sends 0 and the Dial shows "RADIO". ## Testing - Host tests: controller and protocol tests updated (Home step counts, focus order, band byte round trip). - `pio run -e dial` builds. Flashed on COM14 and exercised against a Tab5 running the matching OrcSDR branch (`claude/home-smart-vfo`, not yet merged): linked, tuned, changed mode, keypad tune, survived an unplug and reboot. ## Notes - Needs the matching Tab5 firmware: an older Tab5 rejects Home tuning commands (it only accepts them on tunable dashboards), so Home on the Dial will not tune against it. …more on GitHub - #1 Import OrcDial firmware, dashboard controls and Devices pairing
How nightly works
- Built automatically from
mainof hardcoreerik/OrcDial each night (about 3:27 am Pacific), only when main changed and the automated tests pass. - Erik only merges to main what he's happy with and plans to ship. It just hasn't had the full release check yet.
- When main is the same as the latest release, there's no separate nightly. Use the release.
- Same Web Serial installer as the release: desktop Chrome or Edge, USB-C data cable. See the regular installer for step-by-step and troubleshooting.
Check the file
parts this page writes
0x00000 bootloader 15,104 bytes
1776e4dd896a69d0a5c2e79957b0e2a8
8aa4129b1381d6478683515a1f6af343
0x08000 partition-table 3,072 bytes
1d9cca96de0fe07ad7fc0648b9878dde
cd9ce565e38b589ad20fea698ed4c80c
0x0e000 otadata 8,192 bytes
f94c5d786a7a8fab06ac5d10e33bf377
11a6697636dc037559ea19cc410a17f0
0x10000 app0 1,130,560 bytes
b892b39d2a73e8d592a6ef5260f785d8
73b2ea68937a68ce900afa6d2d64cabb
nightly .bin (complete image, 0x0)
OrcDial-M5Dial-nightly-f0dbad9.bin
size 1,196,096 bytes
sha256
49c553c5aa69704b9210861cc4f770e7
4021a605476f5a6ca16e0080b36ae5ed
Source: hardcoreerik/OrcDial (AGPL-3.0) · nightly prerelease · installer by ESP Web Tools.
You're responsible for operating a radio receiver legally where you live.