Releases: giovi321/smalltv-mod
Release list
v2.5.1
Fixes radar labels wrapping around the screen edge.
Aircraft callsigns near the right edge used to wrap to the next line at the left edge, leaving stray characters across the radar. Labels that would run off the panel now flip to the left side of their aircraft marker instead, and the display no longer wraps any overflowing text (airport codes included, on every board and in every mode).
v2.5.0
Every ticker can now be a position with its own P/L, the device can rotate through its modes, settings survive as a backup file, and all three boards update themselves from GitHub.
Ticker
- Portfolio view: give any ticker a quantity and a per-unit cost and its page gains a P/L line against your cost basis. A portfolio summary page joins the rotation with one row per position and a total per currency. The "Position P/L & portfolio page" toggle turns both off.
Modes
- Carousel mode rotates through the ticked features (ticker, Claude usage, plane radar) on a configurable dwell time. Switching repaints from cached data instead of refetching, so it costs nothing extra.
Device
- Settings backup: export the device's full configuration as a JSON file and import it back, both in the Update tab. The export contains the WiFi passwords in clear text, so treat the file accordingly.
- GitHub self-update now works on all three boards; each pulls its own release asset. Releases ship app images for browser or self-updates plus merged
.factory.binimages for first-time USB flashing of the ESP32 boards.
Upgrading
Update from the web UI's Update tab: upload smalltv-mod-firmware.bin (ESP8266), smalltv-mod-firmware-c2.bin (SmallTV C2), or smalltv-mod-firmware-esp32.bin (NM-TV-154). From this release onward, "Check for latest" installs updates on every board.
v2.4.1
Fixes Yahoo Finance tickers failing with "fetch error" on the ESP32 boards.
The ticker client now speaks HTTP/1.0, which forbids chunked transfer encoding. Yahoo chunks its HTTP/1.1 responses, and the firmware parses JSON straight off the socket, so the chunk framing broke the parse on the ESP32-C2 and NM-TV-154 targets. The ESP8266 was not affected. cash.ch and webhook sources behave the same as before.
If your ESP32-based SmallTV showed "fetch error" on Yahoo tickers after v2.4.0, this release is the fix: build the image for your board (pio run -e smalltv_c2 or -e smalltv_esp32) and upload firmware.bin through the web UI Update tab. ESP8266 devices can update straight from this release.
v2.4.0
Per-ticker data sources, a cash.ch integration with a built-in symbol finder, multiple saved WiFi networks, and two new board targets. This release collects everything since v2.1.0.
Ticker
- Every ticker now picks its own data source (Yahoo Finance, cash.ch, or webhook), so one rotation mixes all three. Existing configs migrate on first boot.
- New cash.ch source: the device fetches quotes and daily-close sparklines directly from cash.ch's public GraphQL endpoint, which covers Swiss instruments Yahoo does not carry (structured products, AMCs, tracker certificates). Symbols are cash.ch listing keys.
- New cash.ch symbol finder in the web UI: paste a cash.ch link, an ISIN, a valor, or a name, then click a match to add it as a ticker. The search runs in your browser, not on the device.
- The chart timeframe is a dropdown instead of a free-text field, and the help text under the ticker list explains the symbol format for whichever source you select.
- A single ticker shows its rotation dot instead of hiding it.
Network and device
- Up to 4 saved WiFi networks. The device joins the strongest one it can see at boot and rotates through the others if the connection stays down.
- The hostname has its own card in the WiFi tab, and saving a new name reboots the device so the
.localaddress applies immediately. Fresh devices get a unique default hostname such assmalltv-3fa2, so several SmallTVs coexist on one network. The Status tab shows the current mDNS address. - The footer links the GitHub repo by name.
Boards
- ESP32-C2 (ESP8684) support for the second-generation SmallTV, flashed over USB-C.
- Classic-ESP32 support for the NMMiner NM-TV-154, confirmed working on hardware.
- Documentation moved to a Starlight site at giovi321.github.io/smalltv-mod.
n8n
- New combined webhook workflow (
n8n/smalltv-stock-webhook-cash.json): cash.ch listing keys go to cash.ch, everything else to Yahoo. Useful for webhook users who want caching or custom mapping on top.
Upgrading
Settings migrate in place: the old global data source becomes each ticker's source, and the saved WiFi network becomes the first entry of the new list. On the ESP8266, flash smalltv-mod-firmware.bin from this release via the web UI Update tab. Build the ESP32-C2 and NM-TV-154 images from source (pio run -e smalltv_c2 / -e smalltv_esp32).
v2.1.0: update from GitHub + hardware docs
This release adds in-place updates from GitHub, links the project and the usage daemon from the web UI, and documents the hardware. The three modes are unchanged.
What's new
Update from GitHub. The Update tab now checks the newest release and can pull and flash it over the air, with no cable and no manual .bin upload. The write goes to the OTA partition and only switches on success, so a failed download leaves the running firmware intact.
- Caveat: HTTPS over-the-air on the ESP8266 is tight on RAM. GitHub's asset CDN can send large TLS records, and if it does the download may not fit. Manual upload in the same tab stays as the fallback.
Links in the web UI. The Usage tab links the clawdmeter-daemon that feeds it; the footer and the Update tab link the repo and the releases page.
Hardware documented. The README now shows the device, its size (45 x 35 x 40 mm, 28 x 28 mm screen) and typical price (about 6 to 8 EUR on AliExpress), and notes that this firmware targets the ESP-12F/ESP8266 variant with the 1.54" ST7789 screen.
Upgrading
Flash smalltv-mod-firmware.bin from this release over the air at http://<device-ip>/update or the Update tab. Once you are on 2.1.0, later updates are one click: Update tab, then Check for latest, then Update now. Back up your current firmware first if you might want to roll back.
v2.0.0: plane radar and modular firmware
This release adds a live plane radar and reorganises the firmware into three self-contained feature modules. It stays a single image: you flash one bin and switch modes in the web UI. See the README for a render of the three modes.
What's new
Plane radar mode. A radar scope centred on your location, showing nearby aircraft from the free adsb.fi API (no key, no receiver) or your own LAN webhook.
- Aircraft draw as heading triangles with speed vectors and callsign/altitude labels; traffic outside the ring shows as dots on the rim; a few home airports you configure appear as markers.
- Two data paths: adsb.fi directly over HTTPS, where the device probes TLS Maximum Fragment Length to fit the ESP8266's RAM, or a LAN proxy that pre-filters the feed, which is the reliable option in busy airspace.
- Display controls in the Radar tab: marker and label size (Small/Medium/Large), an altitude filter to hide ground and low traffic, and automatic callsign decluttering so a crowded scope stays readable.
What changed
Internal segmentation. Ticker, Claude usage, and radar are now separate feature modules behind one interface, each owning its fetch, rendering, and settings. This is invisible on the device but makes the code much easier to extend.
Single firmware. One image ships all three modes; there are no separate per-feature builds. The WITH_TICKER/WITH_USAGE/WITH_RADAR flags remain for optional local slim builds.
Config format. Settings are grouped per feature in config.json. Existing configs migrate automatically on first boot, so your WiFi and symbols carry over.
Upgrading
Flash smalltv-mod-firmware.bin over the air at http://<device-ip>/update, or through the Update tab. Back up your current firmware first if you might want to roll back. Ticker and usage behave as before; the radar needs a home latitude/longitude set in the new Radar tab.