{"id":44348540,"url":"https://github.com/memfault/ncs-mds-over-hid-example","last_synced_at":"2026-02-11T14:33:37.117Z","repository":{"id":335031011,"uuid":"1098388373","full_name":"memfault/ncs-mds-over-hid-example","owner":"memfault","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-28T03:12:42.000Z","size":45,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-28T19:06:52.443Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/memfault.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-17T16:15:13.000Z","updated_at":"2026-01-28T03:12:46.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/memfault/ncs-mds-over-hid-example","commit_stats":null,"previous_names":["memfault/ncs-mds-over-hid-example"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/memfault/ncs-mds-over-hid-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memfault%2Fncs-mds-over-hid-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memfault%2Fncs-mds-over-hid-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memfault%2Fncs-mds-over-hid-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memfault%2Fncs-mds-over-hid-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/memfault","download_url":"https://codeload.github.com/memfault/ncs-mds-over-hid-example/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memfault%2Fncs-mds-over-hid-example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29335272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T14:07:45.431Z","status":"ssl_error","status_checked_at":"2026-02-11T14:07:45.080Z","response_time":97,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-11T14:33:35.995Z","updated_at":"2026-02-11T14:33:37.109Z","avatar_url":"https://github.com/memfault.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MDS over HID Application\n\nZephyr RTOS application implementing the Memfault Diagnostic Service (MDS) protocol over USB HID for nRF52840.\n\n## Features\n\n- USB HID interface for MDS protocol communication\n- Memfault diagnostics data collection and streaming\n- Configurable heartbeat metrics (10s for testing, 1h default for production)\n- Support for all MDS protocol reports:\n  - Supported Features (0x01)\n  - Device Identifier (0x02)\n  - Data URI (0x03)\n  - Authorization (0x04)\n  - Stream Control (0x05)\n  - Stream Data (0x06)\n\n## Hardware\n\n- **Board**: nRF52840 DK (nrf52840dk/nrf52840)\n- **USB**: VID 0x2fe3 (Zephyr Project), PID 0x0007\n\n## Prerequisites\n\n- Python 3.10 or newer\n- [Zephyr SDK](https://docs.zephyrproject.org/latest/develop/toolchains/zephyr_sdk.html) installed\n- nRF52840 DK hardware\n\n## Setup\n\n### 1. Clone the Repository\n\n```bash\ngit clone \u003crepository-url\u003e\ncd mds-over-hid-app\n```\n\n### 2. Create Python Virtual Environment\n\n```bash\npython3 -m venv .venv\nsource .venv/bin/activate\n```\n\n### 3. Install West\n\n```bash\npip install west\n```\n\n### 4. Initialize West Workspace\n\nThis pulls Zephyr RTOS, nRF SDK, and all dependencies (this may take several minutes):\n\n```bash\nwest init -l app\nwest update\n```\n\n### 5. Install Python Dependencies\n\n```bash\npip install -r zephyr/scripts/requirements.txt\n```\n\n### 6. Configure Memfault\n\nCopy the template configuration and add your Memfault project key:\n\n```bash\ncp app/prj.conf.template app/prj.conf\n# Edit app/prj.conf and replace YOUR_PROJECT_KEY_HERE with your actual key\n```\n\nGet your project key from https://app.memfault.com/ → Settings → General\n\n### 7. Build\n\n```bash\ncd app\nwest build -b nrf52840dk/nrf52840\n```\n\n### 8. Flash\n\nConnect your nRF52840 DK via USB and flash:\n\n```bash\nwest flash\n```\n\n## Configuration\n\nKey configuration options in `app/prj.conf`:\n\n- `CONFIG_MEMFAULT_NCS_PROJECT_KEY`: Your Memfault project key (required)\n- `CONFIG_MEMFAULT_NCS_DEVICE_ID`: Unique device identifier\n- `CONFIG_MEMFAULT_METRICS_HEARTBEAT_INTERVAL_SECS`: Metrics collection interval (10s for testing)\n\n## Protocol\n\nThis device implements the MDS protocol over USB HID. The host can:\n1. Query device information via Feature Reports (IDs 1-4)\n2. Enable/disable streaming via Stream Control (ID 5)\n3. Receive diagnostic data chunks via Stream Data (ID 6)\n\n## Development\n\nThe application uses Memfault SDK integration for NCS. Diagnostic data is automatically collected and queued for transmission when streaming is enabled by the host.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemfault%2Fncs-mds-over-hid-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmemfault%2Fncs-mds-over-hid-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemfault%2Fncs-mds-over-hid-example/lists"}