fix: Flash-Skript an EVK-Befund angepasst, Checkliste abgehakt
- Flash-Skript flasht jetzt das App-Image (ninlight_<dev>_gz.img) mit 460800 baud - -rs none statt -rs rts, Reset-Taste manuell nötig - Optionales Argument 'full' für Vollbild-Flash (blank chips nur) - Checkliste Light und Persistenz als bestanden markiert, Testdatum notiert
This commit is contained in:
@@ -17,6 +17,8 @@ Docker (empfohlen – kein lokaler ARM-Compiler nötig):
|
|||||||
tools/docker.sh cmake --build build/evk
|
tools/docker.sh cmake --build build/evk
|
||||||
tools/docker.sh tools/build_all.sh # alle 8 Geräte
|
tools/docker.sh tools/build_all.sh # alle 8 Geräte
|
||||||
|
|
||||||
|
Für die tägliche Entwicklung: nur das Gerät bauen, das du verwendest (z.B. `tools/docker.sh cmake --build build/evk`). Der emulierte Docker-Build ist langsam — `build_all.sh` ist nur für Releases gedacht.
|
||||||
|
|
||||||
Native Builds (mit lokal installierter ARM-Toolchain):
|
Native Builds (mit lokal installierter ARM-Toolchain):
|
||||||
|
|
||||||
cmake -S . -B build/evk -G Ninja -DCMAKE_TOOLCHAIN_FILE=cmake/arm-none-eabi.cmake -DNINLIGHT_DEVICE=evk
|
cmake -S . -B build/evk -G Ninja -DCMAKE_TOOLCHAIN_FILE=cmake/arm-none-eabi.cmake -DNINLIGHT_DEVICE=evk
|
||||||
@@ -38,10 +40,12 @@ Verfügbare Ports anzeigen:
|
|||||||
|
|
||||||
build/host-tools/wm_tool -l
|
build/host-tools/wm_tool -l
|
||||||
|
|
||||||
Firmware flashen:
|
Firmware flashen (Standard: App-Image):
|
||||||
|
|
||||||
tools/flash.sh <device> <port>
|
tools/flash.sh <device> <port>
|
||||||
|
|
||||||
|
Das Skript druckt `Bitte bei "please manually reset the device" die Reset-Taste drücken.` — wenn wm_tool diese Nachricht zeigt, musst du die Reset-Taste am EVK drücken (Baud 460800). Für blank/erased Chips: `tools/flash.sh <device> <port> full` (flasht stattdessen das Vollbild mit secboot).
|
||||||
|
|
||||||
Serielle Konsole (115200 8N1, lokales Echo):
|
Serielle Konsole (115200 8N1, lokales Echo):
|
||||||
|
|
||||||
tools/monitor.sh /dev/cu.<port>
|
tools/monitor.sh /dev/cu.<port>
|
||||||
|
|||||||
+15
-14
@@ -3,23 +3,24 @@
|
|||||||
Konsole: `tools/monitor.sh /dev/cu.<port>` (115200 8N1). Flashen: `tools/flash.sh evk <port>`.
|
Konsole: `tools/monitor.sh /dev/cu.<port>` (115200 8N1). Flashen: `tools/flash.sh evk <port>`.
|
||||||
|
|
||||||
## Licht (Plan 1, Task 11)
|
## Licht (Plan 1, Task 11)
|
||||||
- [ ] Nach dem Boot blendet warmweiß 100 % in 0,5 s ein
|
- [x] Nach dem Boot blendet warmweiß 100 % in 0,5 s ein
|
||||||
- [ ] `rgb 255 0 0` → nur Rot, `rgb 0 255 0` → nur Grün, `rgb 0 0 255` → nur Blau
|
- [x] `rgb 255 0 0` → nur Rot, `rgb 0 255 0` → nur Grün, `rgb 0 0 255` → nur Blau
|
||||||
- [ ] `ct 2700` → nur Warmweiß, `ct 6500` → nur Kaltweiß, `ct 4000` → Mischung
|
- [x] `ct 2700` → nur Warmweiß, `ct 6500` → nur Kaltweiß, `ct 4000` → Mischung
|
||||||
- [ ] `bri 1` sichtbar sehr dunkel, `bri 100` hell; `bri 1 3000` → gleichmäßig wirkender Fade
|
- [x] `bri 1` sichtbar sehr dunkel, `bri 100` hell; `bri 1 3000` → gleichmäßig wirkender Fade
|
||||||
- [ ] `off 2000` → blendet mit aktueller Farbe aus; `on 2000` → blendet ein
|
- [x] `off 2000` → blendet mit aktueller Farbe aus; `on 2000` → blendet ein
|
||||||
- [ ] `rgb 255 0 0` dann `ct 3000 2000` → erst dunkel, dann weiß (Moduswechsel)
|
- [x] `rgb 255 0 0` dann `ct 3000 2000` → erst dunkel, dann weiß (Moduswechsel)
|
||||||
- [ ] `blink 3` → 3× Blinken, danach alter Zustand; `pulse on` / `pulse off`
|
- [x] `blink 3` → 3× Blinken, danach alter Zustand; `pulse on` / `pulse off`
|
||||||
- [ ] Kein sichtbares Flackern bei konstanten Werten (5 kHz)
|
- [x] Kein sichtbares Flackern bei konstanten Werten (5 kHz)
|
||||||
|
|
||||||
## Persistenz und Boot (Plan 1, Task 12)
|
## Persistenz und Boot (Plan 1, Task 12)
|
||||||
- [ ] `pob last`: Farbe setzen, 4 s warten, Strom aus/an → gleicher Zustand, mit Fade
|
- [x] `pob last`: Farbe setzen, 4 s warten, Strom aus/an → gleicher Zustand, mit Fade
|
||||||
- [ ] `pob off`: Strom aus/an → bleibt aus; `on` → letzte Farbe
|
- [x] `pob off`: Strom aus/an → bleibt aus; `on` → letzte Farbe
|
||||||
- [ ] `pob on` bei ausgeschaltetem Licht: Strom aus/an → an
|
- [x] `pob on` bei ausgeschaltetem Licht: Strom aus/an → an
|
||||||
- [ ] `fade 2000 2000` bleibt nach Reboot erhalten (`state`)
|
- [x] `fade 2000 2000` bleibt nach Reboot erhalten (`state`)
|
||||||
- [ ] 5× Strom an/aus mit jeweils < 5 s Laufzeit → 3× Blinken, danach Defaults (`state`)
|
- [x] 5× Strom an/aus mit jeweils < 5 s Laufzeit → 3× Blinken, danach Defaults (`state`)
|
||||||
- [ ] Normaler Boot nach > 5 s Laufzeit → kein Werksreset
|
- [x] Normaler Boot nach > 5 s Laufzeit → kein Werksreset
|
||||||
- [ ] Watchdog: `reboot` funktioniert; nach einem Hänger (nicht provozierbar) wäre Reset nach 20 s
|
- [ ] Watchdog: `reboot` funktioniert; nach einem Hänger (nicht provozierbar) wäre Reset nach 20 s
|
||||||
|
- [x] Getestet am 2026-09-11 mit Firmware 7502f4f am EVK (MAC 28-6D-CD-5C-68-1F)
|
||||||
|
|
||||||
## Später (Lampen)
|
## Später (Lampen)
|
||||||
- [ ] E27 Color (SM2135EH): RGB und WY getrennt, Ströme plausibel (nicht zu heiß)
|
- [ ] E27 Color (SM2135EH): RGB und WY getrennt, Ströme plausibel (nicht zu heiß)
|
||||||
|
|||||||
+13
-5
@@ -1,13 +1,21 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Flashes build/<device>/ninlight_<device>.fls over the serial port (runs natively on the Mac).
|
# Flashes app image (ninlight_<device>_gz.img) over the serial port (runs natively on the Mac).
|
||||||
# Usage: tools/flash.sh <device> <port-name as listed by `build/host-tools/wm_tool -l`>
|
# For blank/erased chips only: pass "full" as third argument to flash ninlight_<device>.fls instead.
|
||||||
|
# Usage: tools/flash.sh <device> <port-name as listed by `build/host-tools/wm_tool -l`> [full]
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
DEV=${1:?usage: tools/flash.sh <device> <port>}
|
DEV=${1:?usage: tools/flash.sh <device> <port> [full]}
|
||||||
PORT=${2:?usage: tools/flash.sh <device> <port>}
|
PORT=${2:?usage: tools/flash.sh <device> <port> [full]}
|
||||||
|
MODE=${3:-app}
|
||||||
ROOT=$(cd "$(dirname "$0")/.." && pwd)
|
ROOT=$(cd "$(dirname "$0")/.." && pwd)
|
||||||
TOOL="$ROOT/build/host-tools/wm_tool"
|
TOOL="$ROOT/build/host-tools/wm_tool"
|
||||||
if [ ! -x "$TOOL" ] || [ "$ROOT/sdk/tools/wm_tool.c" -nt "$TOOL" ]; then
|
if [ ! -x "$TOOL" ] || [ "$ROOT/sdk/tools/wm_tool.c" -nt "$TOOL" ]; then
|
||||||
mkdir -p "$(dirname "$TOOL")"
|
mkdir -p "$(dirname "$TOOL")"
|
||||||
cc -O2 -w -o "$TOOL" "$ROOT/sdk/tools/wm_tool.c" -lpthread
|
cc -O2 -w -o "$TOOL" "$ROOT/sdk/tools/wm_tool.c" -lpthread
|
||||||
fi
|
fi
|
||||||
"$TOOL" -c "$PORT" -ds 921600 -rs rts -dl "$ROOT/build/$DEV/ninlight_$DEV.fls"
|
if [ "$MODE" = "full" ]; then
|
||||||
|
echo "Bitte bei \"please manually reset the device\" die Reset-Taste drücken."
|
||||||
|
"$TOOL" -c "$PORT" -ds 460800 -rs none -eo secboot -dl "$ROOT/build/$DEV/ninlight_$DEV.fls"
|
||||||
|
else
|
||||||
|
echo "Bitte bei \"please manually reset the device\" die Reset-Taste drücken."
|
||||||
|
"$TOOL" -c "$PORT" -ds 460800 -rs none -dl "$ROOT/build/$DEV/ninlight_${DEV}_gz.img"
|
||||||
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user