Merge remote-tracking branch 'origin/keymindCascade' into keymindCascade
This commit is contained in:
commit
41405ee01b
54 files changed
+3962
-477
No files matched your search
+47
-3
@@ -5652,7 +5652,47 @@ to charge above it or have USB power restored before it wakes.
|
||||
|
||||
### Ethernet (when Ethernet support is compiled in)
|
||||
|
||||
Ethernet support is available on RAK4631 boards with a RAK13800 (W5100S) Ethernet module. Use the `_ethernet` firmware variants (e.g. `RAK_4631_repeater_ethernet`) to enable this feature.
|
||||
Ethernet support is available on RAK4631 boards with a RAK13800 (W5100S)
|
||||
Ethernet module. Use the `_ethernet` firmware variants (for example,
|
||||
`RAK_4631_repeater_ethernet`) for the normal Ethernet-only configuration.
|
||||
|
||||
`RAK_4631_companion_radio_full` is a distinct combined profile: it can compile
|
||||
both physical RAK13800 Ethernet and an optional RAK15002 SD mOTA archive. They
|
||||
share CS26, so they are mutually exclusive. In that Full profile Ethernet is
|
||||
off at boot and is deliberately controlled only for the current boot:
|
||||
|
||||
```text
|
||||
get eth
|
||||
set eth on
|
||||
set eth off
|
||||
get sdcard [free]
|
||||
ota cache [on|off]
|
||||
```
|
||||
|
||||
Before `set eth on`, remove the SD card and finish/cancel any active OTA
|
||||
capture, transfer, serving, or host-folder work. The command rejects an
|
||||
inserted card or a busy archive instead of taking the shared bus. Turn
|
||||
Ethernet off before accessing or inserting the card. An insertion while
|
||||
Ethernet is live fails closed and still needs `set eth off`; it is not a
|
||||
supported hot-swap flow. This combined hardware path is not yet qualified.
|
||||
|
||||
The SD-capable Ethernet-room receiver,
|
||||
`RAK_4631_room_server_ethernet_lora_ota_no_external_sensors`, uses the same
|
||||
shared CS26 safety rule but has its own cooperative Ethernet control. It starts
|
||||
off on every reboot and is never persisted. From USB or an already established
|
||||
Telnet session, use either spelling:
|
||||
|
||||
```text
|
||||
eth on
|
||||
# or: set eth on
|
||||
eth.status
|
||||
eth off
|
||||
```
|
||||
|
||||
`eth on` rejects a fitted card, active/cache/staged OTA work, or a retained NOR
|
||||
owner. `eth off` waits for a safe release and refuses while OTA work is busy.
|
||||
Remove the card before enabling Ethernet and do not insert it while Ethernet
|
||||
is active.
|
||||
|
||||
---
|
||||
|
||||
@@ -5665,8 +5705,12 @@ Ethernet support is available on RAK4631 boards with a RAK13800 (W5100S) Etherne
|
||||
- `ETH: not connected` when Ethernet is not active
|
||||
|
||||
**Notes:**
|
||||
- Available on repeater and room server firmware only. Companion radio ethernet firmware does not expose a CLI.
|
||||
- The Ethernet interface obtains an IP address via DHCP automatically on boot.
|
||||
- Available on repeater and room server firmware only. The normal
|
||||
`_ethernet` Companion image does not expose a CLI; the combined RAK4631 Full
|
||||
profile above instead exposes `get eth` / `set eth on|off`.
|
||||
- The normal `_ethernet` variants obtain an IP address via DHCP automatically
|
||||
on boot. The combined RAK4631 Full profile does not: Ethernet starts off
|
||||
until `set eth on` succeeds.
|
||||
- A TCP server listens on port 23 (default) for CLI connections.
|
||||
- Connect with any TCP client (e.g. `nc`, PuTTY) to access the same CLI available over serial.
|
||||
|
||||
|
||||
@@ -30,8 +30,10 @@ requires a reboot to apply its exclusive transport selection; primary ESP-NOW
|
||||
mesh operation is unaffected by the infrastructure-WiFi default.
|
||||
|
||||
The full Companion is deliberately not a LoRa OTA destination: it has no
|
||||
firmware staging store, refuses `ota install`, and never advertises its own
|
||||
firmware as an mOTA image.
|
||||
installable firmware staging store, refuses `ota install`, and never
|
||||
advertises its own firmware as an mOTA image. The RAK4631 Full variant can
|
||||
optionally keep a source-only RAK15002 SD archive of peer `.mota` files; that
|
||||
does not make the Companion an update destination.
|
||||
|
||||
Preference changes through the Companion protocol, WebConfig, or USB terminal
|
||||
report a storage error if saving fails, and restore their previous values.
|
||||
@@ -44,13 +46,39 @@ a busy radio rollback remains pending for recovery instead of reporting success.
|
||||
| BLE Binary Companion | Yes | Yes |
|
||||
| USB ASCII terminal | Yes | Yes |
|
||||
| Dedicated USB plaintext logging | No - shares the one USB TTY | Yes |
|
||||
| Host-backed LoRa mOTA source | WiFi TCP 5001 | Exclusive USB mode or encrypted BLE |
|
||||
| Host-backed LoRa mOTA source | WiFi TCP 5001 | Exclusive USB mode or encrypted BLE; RAK4631 Full can additionally cache/serve peer images from optional RAK15002 SD |
|
||||
| WiFi Companion/WebConfig | Yes | No - nRF52840 has no WiFi |
|
||||
| Hardware serial Companion | On targets with assigned serial pins | On targets with assigned serial pins |
|
||||
| Ethernet Companion | On targets with an Ethernet module | On RAK4631 with RAK13800 |
|
||||
| Ethernet Companion | On targets with an Ethernet module | On RAK4631 with RAK13800; the RAK15002 combination is explicitly one-at-a-time |
|
||||
| LoRa self-update | No | No |
|
||||
| Optional self-update | WiFi on existing dual-app layouts; USB on single-app layouts | Bluetooth DFU with a compatible bootloader; USB always supported |
|
||||
|
||||
### RAK4631 Full Companion: optional RAK15002 archive and RAK13800 Ethernet
|
||||
|
||||
`RAK_4631_companion_radio_full` can cache and serve peer mOTA files from an
|
||||
optional RAK15002 card. This remains a source-only archive: `ota install` and
|
||||
bootloader installation are unavailable on the Companion, whether or not a
|
||||
card is inserted. Check the archive with `ota cache [on|off]`; use
|
||||
`get sdcard [free]` for card space.
|
||||
|
||||
The optional RAK13800 Ethernet module and RAK15002 share CS26. Ethernet is
|
||||
therefore **off by default** in this combined Full image and is controlled only
|
||||
for the current boot:
|
||||
|
||||
```text
|
||||
get eth
|
||||
set eth on
|
||||
set eth off
|
||||
```
|
||||
|
||||
Remove the SD card and end/cancel active OTA cache, transfer, serve, or host
|
||||
folder activity before `set eth on`. The command refuses unsafe states. Turn
|
||||
Ethernet off before inserting or accessing a card; an insertion during
|
||||
Ethernet use fails closed and still requires `set eth off`. This is not a
|
||||
supported hot-swap workflow. The combined RAK15002/Ethernet hardware path has
|
||||
not yet been hardware-qualified; see [nRF52 RAK15002 storage](ota_nrf52_qspi.md#optional-rak15002-storage-in-canonical-rak4631-images)
|
||||
for the receiver's separate signed-application path and loader prerequisite.
|
||||
|
||||
### Screenless nRF52 spoken button confirmations
|
||||
|
||||
Full Companion builds for T1000-E, RAK WisMesh Tag, MeshTracker X1,
|
||||
|
||||
@@ -415,3 +415,124 @@ Source-only means `ota install`, bootloader installation, and `ota dev` apply
|
||||
are disabled even if the installed bootloader supports SD. No RAK15002 SD
|
||||
bootloader handoff is claimed. Update this trial firmware over USB/BLE; normal
|
||||
RAK4631 receiver targets and MeshTower SD self-update are unchanged.
|
||||
|
||||
## Optional RAK15002 storage in canonical RAK4631 images
|
||||
|
||||
This is a separate **STORE** path, not an expansion of the older
|
||||
`RAK_4631_repeater_rak15002_sd_seeder_only` CACHE-only experiment above. It is
|
||||
limited to the canonical RAK4631 Full/Reduced LoRa-OTA receiver roles
|
||||
(repeater, room server, Ethernet room server, and sensor) and to
|
||||
`RAK_4631_companion_radio_full`. Existing exact-NOR identities, non-OTA roles,
|
||||
and the CACHE-only seeder retain their previous storage contracts.
|
||||
|
||||
The receiver and Full Companion use the same optional card hardware, but not
|
||||
the same update authority:
|
||||
|
||||
| Image type | RAK15002 role | Local firmware install from that card |
|
||||
| --- | --- | --- |
|
||||
| Canonical RAK4631 receiver | Adaptive application staging, plus the retained mOTA archive/source | Only a trusted, signed **application** package, after bootloader capability checks |
|
||||
| `RAK_4631_companion_radio_full` | Cache and serve peer `.mota` files | Never; it remains a source-only Companion |
|
||||
| `RAK_4631_repeater_rak15002_sd_seeder_only` | Historical strict cache/source-only profile | Never |
|
||||
|
||||
The receiver chooses the card only during real OTA/cache work, not at boot or
|
||||
while merely reporting status. With no card it retains its existing qualified
|
||||
internal/NOR selection. With a card fitted, the firmware deliberately does
|
||||
**not** probe NOR as a fallback, even if the card, filesystem, or installed
|
||||
loader is unsuitable: both devices use CS26, so issuing a NOR probe could
|
||||
clock the card. RAK15002 card-detect is active-low WisBlock IO6 (Arduino pin
|
||||
10), not Arduino pin 6; the SD bus is SPIM2 at 4 MHz on 29/3/30 with CS26.
|
||||
|
||||
The new STORE path accepts **FAT16/FAT32 only**. It deliberately uses the
|
||||
smaller FAT-only SdFat types to fit the RAK4631 flash budget and reduce its
|
||||
RAM use; an exFAT card is not a supported STORE volume. This restriction does
|
||||
not change the historical CACHE-only RAK15002 seeder or MeshTower SD profiles,
|
||||
which retain their existing `SdFs`/`FsFile` (FAT/exFAT) behavior.
|
||||
|
||||
### Future receiver loader prerequisite and update flow
|
||||
|
||||
The matching `wiscore_rak4631_auto` **all-in-one OTAFIX bootloader** is only a
|
||||
local candidate today: it is not released and has not been hardware-qualified.
|
||||
Do not provision it as an SD-apply upgrade. Until a released, qualified loader
|
||||
explicitly advertises the supplemental authenticated RAK15002-SD
|
||||
*application* capability, the receiver fails SD application apply closed and
|
||||
continues to use its qualified internal/NOR path when no card is selected.
|
||||
|
||||
Once such a loader is released, it must preserve the deployed internal/NOR
|
||||
capabilities while adding the separate SD application handoff record. A stock,
|
||||
older, or otherwise ordinary RAK4631 OTAFIX bootloader must refuse the SD
|
||||
handoff. Its first migration will need to be performed locally over USB/BLE DFU
|
||||
or SWD; it must not be bootstrapped from the SD card or with a LoRa bootloader
|
||||
package.
|
||||
|
||||
The supplemental capability is application-only: an SD card never authorizes
|
||||
a bootloader update. Existing qualified internal bootloader-update behavior is
|
||||
separate and still applies only to its exact package and loader identity. The
|
||||
Full Companion's archive/source feature never installs firmware locally, so it
|
||||
does not need this SD-apply bootloader capability.
|
||||
|
||||
Only after that future matching loader is released, installed locally, and
|
||||
qualified may a receiver use the normal explicit application flow:
|
||||
|
||||
```text
|
||||
ota status
|
||||
ota ls
|
||||
ota pull <MID8> flash
|
||||
# wait for `ota status` to show the same fetch as ready
|
||||
ota install
|
||||
```
|
||||
|
||||
`ota cache` manages the card-backed archive/source (`ota cache off` stops new
|
||||
captures; retained files can still seed). `ota storage` and `ota self` report
|
||||
the selected backend and loader state, but they intentionally do not force a
|
||||
removable-media probe at startup. After the future loader is present, a
|
||||
card-backed receiver reports `SD store` and `authenticated SD apply OK`; before
|
||||
then, a missing supplemental capability, unsigned application, incompatible
|
||||
media, or a busy store fails before reboot/approval.
|
||||
|
||||
### RAK13800 Ethernet ownership
|
||||
|
||||
The SD-capable Ethernet-room receiver
|
||||
`RAK_4631_room_server_ethernet_lora_ota_no_external_sensors` is also an
|
||||
explicit one-at-a-time profile. Its RAK13800 Ethernet starts off on **every**
|
||||
reboot and is not a saved setting. With the card removed and no active/cache,
|
||||
staged, serving, or NOR work, enable it from local USB or an existing Telnet
|
||||
session with either command spelling:
|
||||
|
||||
```text
|
||||
eth on
|
||||
# or: set eth on
|
||||
eth.status
|
||||
eth off
|
||||
```
|
||||
|
||||
`eth on`/`set eth on` refuses a fitted card, retained NOR owner, or busy OTA
|
||||
state. `eth off`/`set eth off` is cooperative and likewise refuses to release
|
||||
the bus while OTA work is active. Do not use these commands as a way to switch
|
||||
media during a transfer.
|
||||
|
||||
#### Full Companion
|
||||
|
||||
The Full Companion is deliberately different: its optional RAK15002 holds
|
||||
peer archives for caching and serving, never its own install image. It may
|
||||
also compile RAK13800 Ethernet, but Ethernet and the card electrically share
|
||||
CS26 and cannot operate together. In this combined profile physical Ethernet
|
||||
starts **off** and `set eth on` is only a this-boot choice.
|
||||
|
||||
To use Ethernet, stop/cancel any active OTA capture or serve work, detach any
|
||||
host folder source, **physically remove the SD card**, then run:
|
||||
|
||||
```text
|
||||
get eth
|
||||
set eth on
|
||||
```
|
||||
|
||||
The command refuses unsafe ownership states rather than forcing the bus. To
|
||||
return to the card, run `set eth off`, wait for it to report off, then insert
|
||||
the card and use `get sdcard [free]` or `ota cache [on|off]`. If a card is
|
||||
inserted while Ethernet is active, Ethernet fails closed; use `set eth off`
|
||||
before accessing the card. This is not a supported hot-swap procedure.
|
||||
|
||||
The combined RAK15002 receiver/Companion/RAK13800 path has host-side checks,
|
||||
but **has not yet received hardware qualification**. Do not treat these rules
|
||||
as proof that a particular card, Ethernet module, loader migration, or live
|
||||
card insertion has been field-tested.
|
||||
Reference in new issue
Block a user