Skip to content

Add Pico2 W educational lessons and timestamp MQTT diagnostics - #20

Merged
mot-yelraf merged 1 commit into
trunkfrom
improve-student-guides
Sep 14, 2026
Merged

mot-yelraf merged 1 commit into
trunkfrom
improve-student-guides

Conversation

@mot-yelraf

Copy link
Copy Markdown
Owner

Summary

Add a 13-lesson educational series under docs/syllabus-lessons, linked before Quick start in the root README. The course uses Pico2 W/CircuitPython 9.2.8, BME280 at 0x76, and S1; XIAO ESP32-S3 is extra credit. Opening lessons cover Linux/macOS tools, VS Code, wiring, GP14 ROFS/RWFS ownership, CircuitPython installation, serial discovery/run_screen/REPL, deployment, and device identity/IP/hostname discovery before provisioning. Later lessons cover architecture, MQTT, automation, recovery, memory, testing, signed OTA, and an extension project.

Timestamp both successful and failed mqtt send_chunk_slow diagnostics using local date/time or monotonic seconds before clock synchronization. Preserve the existing diagnostic cap and add coverage for valid, unset, and failed clocks. Firmware version is v0.26.257.1.

Related issue

Operator-requested educational documentation and console timestamp improvements; no separate issue.

Verification

  • ruff check . — passed.
  • pytest -q — 864 passed.
  • git diff --check and staged diff check — passed.
  • Local links, Python example syntax, and whitespace checked for the root README and all 14 syllabus documents.
  • Completed sensor and recovery starter examples — 2 passed; selective REPL config-reader example checked against a host fixture for section/key filtering and exclusion of passwords.
  • Hardware lessons, USB flashing/deployment, RF/socket behavior, and broker delivery were not exercised. The runtime change is limited to console timestamp formatting; this PR makes no broker-delivery or on-device validation claim. No mounted device files were written.

Checklist

  • I kept the change focused and avoided unrelated reformatting.
  • I added or updated focused tests when behavior changed.
  • ruff check . passes.
  • pytest -q passes.
  • I updated docs and TOML templates when public behavior or configuration changed. (No config schema or MQTT payload changes.)
  • I did not commit credentials, live device configuration, private logs, or host-specific files.
  • I preserved CircuitPython compatibility and constrained-memory behavior.
  • I documented relevant hardware validation, or explained why it was not required.
  • I updated the firmware version only if runtime behavior changed.

@mot-yelraf
mot-yelraf merged commit c4510f7 into trunk Sep 14, 2026
5 checks passed
@mot-yelraf
mot-yelraf deleted the improve-student-guides branch September 14, 2026 14:03
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.

1 participant