-
Notifications
You must be signed in to change notification settings - Fork 1
Add length byte to MDS stream protocol for proper HID framing #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
jsmemfault
wants to merge
19
commits into
memfault:main
Choose a base branch
from
jsmemfault:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The MDS protocol was originally designed for BLE where packet length is implicit in the notification. When adapted to USB HID with fixed 64-byte reports, zero padding was corrupting multi-packet payloads like coredumps. Protocol changes: - Add length byte at position 1 (after sequence byte) - Data now starts at position 2 - Max payload reduced to 61 bytes (report[3..63]) Gateway improvements: - Buffered packet reading to prevent HID buffer overflow - Pre-flush stale data before enabling streaming - Sequence gap detection for debugging - Added User-Agent header for Memfault tracking 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Demo gateway (mds_gateway_demo.c): - Colorized terminal output with status boxes and emojis - Auto-reconnect after device faults/resets - Continuous operation without manual restart - Session and total packet tracking Demo support files: - README-DEMO.md: Comprehensive FAE guide with setup, troubleshooting, demo script - QUICK-START.md: One-page cheat sheet for booth staff - VIDEO-SCRIPT.md: 60-second video script and slide content for marketing - run-demo.sh: Linux auto-detection launcher - run-demo-macos.sh: macOS auto-detection launcher - setup-permissions.sh: Linux udev rules setup Target hardware: nRF5340-DK 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
60x20 terminal-friendly layout showing: - Left pane: MDS USB-HID Gateway - Lower pane: UART Console (nRF54LM20-DK) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
10 slides using maaslalani/slides framework: 1. Title - MDS + nRF Cloud branding 2. The Problem - crashes with no visibility 3. The Solution - streaming diagnostics 4. How It Works - device → gateway → cloud diagram 5. Zero-Touch Capture 6. USB HID Transport 7. Continuous Operation (auto-reconnect) 8. Instant Cloud Analysis 9. Live Demo layout 10. Closing CTA Run with: slides demo/slides.md 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Two options for running auto-advancing slides: slides-loop.sh - Uses named pipe (simpler, no tmux needed) slides-video.sh - Uses tmux (more reliable, better for recording) Both auto-advance every 6 seconds (configurable) and loop back to the first slide after completing all 10 slides. Usage: ./slides-video.sh # 6 sec/slide (default) ./slides-video.sh 5 # 5 sec/slide (50 sec loop) For recording: use asciinema, ttyrec, or OBS 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
slides-auto.sh uses macOS osascript to send keystrokes, works with iTerm2 panes or any macOS terminal. Usage: ./slides-auto.sh [seconds-per-slide] 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Professional 60-90 second video script highlighting: - Chip-to-cloud observability - Built for embedded systems - nRF Cloud + Memfault integration - Zero-friction USB HID transport - Fleet management at scale Includes production notes, visual direction, and tagline options. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Redesigned for no-audio monitor above demo station: - 8 frames with timing and motion notes - Text-driven visual storyboard - Seamless loop point - Points down to live demo below - Design notes (colors, typography, animation) - Production specs (1080p/4K, 30fps, MP4) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Restructured to make USB-HID demo the centerpiece: - Frames 3-7: 4-step demo walkthrough (36s) - Frame 8: Scales to fleet (6s) - 10 frames total, demo-focused Steps now explicitly map to live demo: 1. TRIGGER - button press 2. STREAM - USB HID packets 3. GATEWAY - terminal output (points down) 4. CLOUD - dashboard analysis 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
~77 words total across 60 seconds: - Short, punchy phrases - Scannable at a glance - No paragraphs, just headlines Each frame now 4-12 words max. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Ready-to-paste prompt for Microsoft Copilot to generate the 60-second silent looping video in ClipChamp. ~600 words, includes all frame content, timing, and style notes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1,947 characters - fits Copilot's limit. All 10 frames with timing and animation notes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The MDS protocol was originally designed for BLE where packet length is implicit in the notification. When adapted to USB HID with fixed 64-byte reports, zero padding was corrupting multi-packet payloads like coredumps.
Protocol changes:
Gateway improvements:
🤖 Generated with Claude Code