docs: SAUL-TEE full ESP32-S3 system reference (arch migration) #712
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "sl-firmware/arch-esp32-migration"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Full hardware spec from hal@Orin (2026-04-04). Authoritative reference for all firmware development.
docs/SAUL-TEE-SYSTEM-REFERENCE.md(new)[0xAA][LEN][TYPE][PAYLOAD][CRC8]@ 460800 baudOther docs updated
CLAUDE.md,TEAM.md,docs/AGENTS.md,docs/SALTYLAB.md— all reference new ESP32 architecture with full board/pin detailsTest plan
🤖 Generated with Claude Code
rosbridge config: - rosbridge_params.yaml: add /saltybot/barometer, /vesc/left/state, /vesc/right/state to topics_glob whitelist (were missing, blocked the CAN monitor panel from receiving data) - can_monitor.launch.py: new lightweight launch — rosbridge only, whitelist scoped to the 5 CAN monitor topics, port overridable via launch arg (ros2 launch saltybot_bringup can_monitor.launch.py port:=9091) can_monitor_panel.js auto-reconnect: - Exponential backoff: 2s → 3s → 4.5s → ... → 30s cap (×1.5 factor) - Countdown displayed in conn-label ("Retry in Xs…") during wait - Backoff resets to 2s on successful connection - Manual CONNECT / Enter resets backoff and cancels pending timer Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>- New map_persistence.launch.py: launches map_saver_server lifecycle node (nav2_map_server) + saltybot_map_saver helper node + lifecycle_manager. Configurable map_dir (default /mnt/nvme/saltybot/maps) and map_name. - New map_saver_node.py: ROS2 node providing /saltybot/save_map (Trigger service) that calls nav2_map_server map_saver_cli. On startup logs whether a saved map is present. Auto-saves map on shutdown (auto_save_on_shutdown). - New config/map_saver_params.yaml: map_saver_server params (save_map_timeout=5s, free/occupied thresholds, transient-local QoS). - nav2_slam_bringup.launch.py: adds map_dir + map_name args; includes map_persistence.launch.py so map_saver_server runs during SLAM sessions. - nav2_amcl_bringup.launch.py: adds map_dir arg; auto-detects saved map at /mnt/nvme/saltybot/maps/saltybot_map.yaml at launch time and uses it as the AMCL map; falls back to placeholder if not found. - setup.py: registers map_persistence.launch.py, map_saver_params.yaml, map_saver_node console_scripts entry point. - test_nav2_amcl.py: 21 new tests covering params, launch syntax, node service/shutdown behaviour, SLAM bringup inclusion, AMCL auto-detect. Workflow: 1. ros2 launch saltybot_nav2_slam nav2_slam_bringup.launch.py (build map) 2. ros2 service call /saltybot/save_map std_srvs/srv/Trigger {} (save) 3. ros2 launch saltybot_nav2_slam nav2_amcl_bringup.launch.py (auto-loads) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>Single-file vanilla JS dashboard at ui/sultee-tracker.html: - Connects to ws://100.64.0.2:9090 (configurable, saved in localStorage) - Parses {"type":"gps","data":{...},"timestamp":...} JSON frames from iPhone - Leaflet.js + OpenStreetMap tiles with dark CSS filter - Live position marker (cyan pulsing dot SVG icon) - Orange polyline trail (up to 2000 points) - Auto-centers on first GPS fix; FOLLOW/FREE toggle; drag disables follow - Sidebar: speed (km/h, color-coded), altitude, heading, compass rose canvas, h-accuracy bar (green/amber/red), coordinate display, fix count - Scrollable trail log with timestamp + coords + speed per fix - Exponential backoff auto-reconnect (2s→30s cap) - CLEAR button resets trail, marker, log, fix count Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>Previously showed only phone GPS. Now also subscribes via ROSLIB to saltybot/gps/fix + saltybot/gps/vel on the same rosbridge URL for robot (SAUL-TEE) position. Blue marker+trail for phone (raw WS {type:gps}), orange marker+trail for robot (ROS topics). Sidebar shows phone speed/alt/heading/accuracy + robot lat/lon/speed + distance between the two. FIT ALL button auto-zooms to show both. Status bar badges for phone staleness and robot fix/vel freshness. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>Adds gps_map_panel.html/css/js — standalone dashboard panel: - Leaflet.js + OpenStreetMap with dark CSS filter (matches dashboard theme) - Heading-aware SVG robot marker (orange arrow shows direction of travel) - Orange breadcrumb trail polyline (up to 2000 pts, CLEAR button) - FOLLOW mode auto-pan; drag map to switch to FREE mode - Sidebar: speed (km/h, color-coded), altitude, heading compass rose, fix status (0=NO FIX…4=RTK), fix count, lat/lon, trail log - Exponential backoff auto-reconnect (2s→30s cap) - Stale detection at 5s for fix + velocity badges Subscribes via rosbridge to: saltybot/gps/fix std_msgs/String JSON — {lat, lon, alt, stat, t} saltybot/gps/vel std_msgs/String JSON — {spd, hdg, t} index.html: new GPS MAP card (🛰️, #709) before CAN MONITOR dashboard.js: gpsWatch subscription + 'gps' panel entry Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>Subscribes to saltybot/phone/gps (JSON: {ts, lat, lon, alt_m, accuracy_m, speed_ms, bearing_deg, provider}) and renders a blue Leaflet marker + blue breadcrumb trail alongside the robot's orange/cyan marker. Status bar now shows PHONE badge with stale detection. Sidebar adds phone lat/lon/speed/accuracy/provider section. Clear button resets both trails. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>1e5a62b504to5ef1f7e365docs: retire Mamba F722S/BlackPill — adopt ESP32 BALANCE + ESP32 IOto docs: SAUL-TEE full ESP32-S3 system reference (arch migration)