Skip to content

Teensy: UM982 temperature (HWSTATUSA), network name AiO-xxxx - #130

Merged
renatorgr merged 4 commits into
mainfrom
teensy-um982-temp-mdns-name
Nov 10, 2026
Merged

renatorgr merged 4 commits into
mainfrom
teensy-um982-temp-mdns-name

Conversation

@renatorgr

Copy link
Copy Markdown
Owner

Merge #129 first. This branch sits on top of it (both touch zWebPage.h and the same README row), so until #129 is merged this page also lists its commits.

What changes for Renato

  • UM982 temperature. The Teensy now asks the UM982 for HWSTATUSA (its hardware status) every 10 s, the way it asks a u-blox for UBX-MON-SYS, and shows the temperature on the Status tab (GNSS card, a row under the receiver) and on the GPS tab. Before, that row read not reported for a UM982.
    • The number comes from the first field of the answer, divided by 1000: your receiver sent 59493 → 59 °C.
    • This is a deduction, not something Unicore's manual says (what could be read of it does not name that field; its example has 66807). To confirm it: the first answer after start-up goes to Messages with the number as it came, e.g. GPS receiver: temperature 59 C (UM982 HWSTATUSA, first field 59493, …). On a cold morning that number should start clearly lower and climb as the box warms up.
    • Safe-guards: a line with a wrong CRC is dropped; a value outside -40 to 125 °C reads not reported; the poll goes between RTCM messages, waits while the page reads or writes the UM982's settings or while you type a command in the UM982 console, and its answer stays out of that console. A UM982 firmware that does not know the command is asked three times, then left alone.
  • Network name with a hyphen: the Teensy announces itself as AiO-FBCA (was AiO FBCA), written like XIAO-… and Sprayer-…. This is the name in AgOpenWeb's web cards list and on the Connections card. http://aio.local/ does not change.

Nothing in the steering, the GNSS output or the safety code changes. The new code runs from flash (FLASHMEM), so RAM1 keeps its room (the "Teensy firmware" check prints the figure).

Not compiled with the Arduino tools (not reachable from the cloud). It builds and links here with arm-none-eabi-gcc and the Teensy core, and the "Teensy firmware" check compiles it at 450 MHz. The .hex is yours to export (CPU 450 MHz) after both pull requests are merged.

How to test

  1. Compile (Teensy 4.1, 450 MHz) and install.
  2. Messages, about 10 s after start-up: GPS receiver: temperature NN C (UM982 HWSTATUSA, first field NNNNN, read as thousandths of a degree).
  3. Status → GNSS card: a temperature row under the receiver. GPS tab: the same value. It follows the receiver every 10 s.
  4. GPS tab → UM982 console: type VERSIONA. Only its answer shows, no HWSTATUSA lines in between. The UM982 settings still read and write as before.
  5. Cold-start check (when you can): note the "first field" number in Messages on a cold morning, and again after an hour of work. Lower at first, higher later = it is the temperature.
  6. AgOpenWeb → web cards → ⚙ → Search the network: the module is listed as AiO-FBCA.

Checked here: the parser run on a PC against your real answer line (59 °C), a damaged line (dropped), a negative value, an out-of-range value and a non-number; simulator smoke test (the pretend UM982 shows 59 °C, the name reads AiO-3F2A); changelog check.


Generated by Claude Code

…ners

The tabs at the top of the four module pages (Teensy, XIAO, sprayer, seed drill)
and the light/dark button of the Teensy and XIAO pages were small pills (36 px
and 27 px high). They now have the height and the corners of the buttons in the
page's question box (44 px, 8 px), so a finger hits them on the cab's screen.
The top bar keeps its height: the padding around them was trimmed.

XIAO page, WiFi tab: the password to confirm and "Save and restart the XIAO"
move into a third card, "Confirm and save", as wide as the other two. The field
used to run across the whole page.

XIAO Messages: "Program update: N bytes checked" gave 0 bytes, because
Update.progress() reads 0 once Update.end() has run. The size received is kept.

Sprayer 0.10.6, seed drill 0.2.7.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014q5ALSaxyGLFrEZnZLKkJd
…026)

Built in the cloud with arduino-cli and the ESP32 core 3.3.12, from the code of
the commit before this one: XIAO C3 20:40 and S3 20:41 (with their _USB files),
Sprayer_ESP32 0.10.6 at 20:42, Seeder_ESP32 0.2.7 at 20:43 (UTC).

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014q5ALSaxyGLFrEZnZLKkJd
…O-xxxx"

A UM982 is asked HWSTATUSA, its hardware status, every 10 s, the way a u-blox
is asked UBX-MON-SYS: between RTCM messages, not while the page reads or writes
the UM982's settings, not while a command typed in the console waits for its
answer. The first field of the answer, in thousandths of a degree, shows as the
receiver's temperature on the GNSS card and on the GPS tab.

What could be read of Unicore's manual does not name that field: it is a
deduction from Renato's receiver (59493 in the closed box after 40 minutes) and
the manual's example (66807). So the line is taken only with the right CRC-32,
a value outside -40 to 125 C reads "not reported", and the first answer after
start-up goes to Messages with the number as it came, to compare a cold start
with a warm one. The answer stays out of the UM982 console. The new code is in
flash (FLASHMEM), not in RAM1.

mDNS: the instance name is "AiO-3F2A", with a hyphen like "XIAO-3F2A" and
"Sprayer-5F28", not "AiO 3F2A".

Simulator: the pretend UM982 reports 59 C, and the name has the hyphen.

Not compiled with the Arduino tools (not reachable from the cloud); it builds
and links with arm-none-eabi-gcc and the Teensy core.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014q5ALSaxyGLFrEZnZLKkJd
@renatorgr renatorgr self-assigned this Nov 10, 2026
@renatorgr
renatorgr merged commit 971efe0 into main Nov 10, 2026
5 checks passed
@renatorgr
renatorgr deleted the teensy-um982-temp-mdns-name branch November 10, 2026 21:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants