NomadLink

NomadLink One · NomadLink OS · NomadLink Console · NomadLink Cloud — v0.1.0 — generated 2026-10-01 12:10 UTC

Defects

IDSevDefectStatusRoot cause
BUG-001S2SD card fails under ESP-IDF (err=0x107) but works under Arduino
Mount SD_MMC with pins CLK=5, CMD=4, D0=6 → Attempt CMD0/CMD8/CMD55/ACMD41 initialisation → All commands return err=0x107
OPENUNKNOWN. Not yet diagnosed. Candidates: clock configuration, pin drive strength, marginal card socket contact, or a difference in the IDF SDMMC driver initialisation sequence.
BUG-002S1tracker MQTT CONNECT never confirmed; CIPSEND prompt and CONNACK unreadable by line parser
Flash tracker.ino → Observe +CIPOPEN: 0,10 (socket opens successfully) → Observe that MQTT-CONNECT sent is never logged → Note that MARK-CONNECTED is printed unconditionally regardless of outcome
FIXEDTwo defects. (1) AT+CIPSEND emits a '>' prompt that is not reliably newline-terminated, so the line-based reader blocks until its deadline expires and gives up before the prompt is seen. (2) Broker CONNACK bytes (20 02 00 00) are not newlin
BUG-003S2tracker GNSS wait loop exits after seconds instead of the intended 15 minutes
Flash tracker.ino with no GNSS fix available → Observe TRACKER-DONE-NOFIX after a few seconds → The loop condition reads t < 900000UL && !haveFix, with t += 1000 per iteration
FIXEDThe loop counter is incremented by 1000 per iteration as a stand-in for milliseconds, but each iteration does not actually take one second. The counter is a fiction; it does not represent elapsed time.
BUG-004S3PRD FR-3.1 specifies a non-existent AT command
Issue AT+CGNSINF → Receive +CME ERROR
OPENThe PRD was written without validation against the actual module command set.
BUG-005S2Misdiagnosis: a modem in PPP data mode was read as a dead, latched-off modem
RESOLVEDDiagnostic error, not a modem fault. The probes assumed that AT silence implied a powered-down module, and never established whether the module was still in data mode. Two independent confirmations: (1) adding a guarded +++ escape before an
BUG-006S1lwIP PPP could not negotiate with the A7670E: three independent defects
RESOLVEDThe Arduino ESP32 core's lwIP is configured for a hosted, WiFi-oriented model: the core is initialised by the network stack, and the core lock is mandatory. A bare-metal PPP client that skips WiFi has to take responsibility for both. The tw
BUG-007S1Calling tcpip_init() after the WiFi stack has started aborts in esp_vfs_lwip_sockets_register
RESOLVEDExactly one thing per process may initialise lwIP, and which thing that is depends on whether WiFi has started. BUG-006's guidance was stated as an absolute rule and was therefore misapplied.
BUG-008S1softAPConfig() netmask argument made the DHCP server silently never start
RESOLVEDThe API takes three addresses that read identically at the call site, so the mistake is invisible in review. softAPConfig's return value was discarded, which is the only signal that the configuration was rejected.
BUG-009S1AT+CLBS returns ret_code 10 (close network error) for all modes; worked on 2026-09-29, fails from 2026-09-30
OPENLIKELY SERVER-SIDE, NOT FIRMWARE. The modem data plane is proven healthy at the time of the failure: NETOPEN returns OK, IPADDR yields a valid address (100.x), CIPOPEN TCP to mqtt.easyiothings.com:80 succeeds, and CIPOPEN TCP to lbs-simcom.
BUG-010S1GNSS sees 0 satellites from 2026-09-30 18:37 onward, after a confirmed fix at 17:46 the same day
OPENRF / sky-view, not firmware. The engine is powered, NMEA is streaming, and C/N0 tracking never starts, which rules out a dead engine, a wrong serial mode and the BUG-003 deadline bug. The distinguishing signal is that this began at a specif