You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: rewrite README + EV3dev bridge guide so a fresh user can succeed
Three doc updates that capture everything we learned from the 2026-05-05
hardware validation pass:
- **README.md**: top-down rewrite around a "I just want it to work" decision
table that maps brick + platform → guide. Adds an EV3dev 90-second
quick-start with the right launcher (PYTHONIOENCODING=utf-8, python3 -u)
so a clean restart doesn't hit the locale crash. Documents the iOS
`NSAllowsLocalNetworking` ATS pattern (App-Store-friendly, unlike
`NSAllowsArbitraryLoads`).
- **README_ev3dev_bridge.md**: rewritten end-to-end for v2.3.1.
- Replaces stale 192.168.178.50 examples with `<brick-ip>` placeholder.
- Drops the obsolete `--ssl` flag (now dual-mode by default) in favor
of `--http-only` / `--https-only`.
- Adds the recipe to regenerate the cert when the brick's IP changes
(delete `/home/robot/ev3.{crt,key}` and restart).
- Documents the three latent bugs (f-strings on Py 3.5.3, ASCII upload
codec, locale crash in cert-gen log) in their own section so anyone
deploying knows what failure modes to watch for.
- Step-by-step macOS install that's been verified end-to-end (separate
`sudo` lines so any error is visible; `find-certificate` verification;
explicit Safari ⌘Q reminder).
- Clarifies that macOS curl reads `/etc/ssl/cert.pem` first and
Keychain second — explains why a working install can still fail
`curl https://...` if you fight the wrong test.
- Three-step iOS walk-through that emphasises the
Settings → General → About → Certificate Trust Settings step
(the one almost everyone misses).
- App Store ATS section: `NSAllowsLocalNetworking` + the iOS 14+
`NSLocalNetworkUsageDescription` purpose string, with rationale for
why `NSAllowsArbitraryLoads` is the wrong choice.
- systemd unit file now sets `PYTHONIOENCODING=utf-8` and runs
`python3 -u`.
- **PLAN.md**: marks Phase 5 (hardware validation) complete for ev3dev
with link to the LEARNINGS.md section. Spike / NXT / LMS hardware
validation explicitly deferred. Adds the bridge bugs as "out-of-band
fixes deferred" alongside the existing pre-existing items
(cert-IP-mismatch heuristic, running_scripts reaping).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments