{"id":19374510,"url":"https://github.com/rosvall/cc2531_usb_wpan_adapter","last_synced_at":"2025-07-13T11:40:47.944Z","repository":{"id":176857342,"uuid":"659202786","full_name":"rosvall/cc2531_usb_wpan_adapter","owner":"rosvall","description":"WPAN Adapter firmware for CC2531","archived":false,"fork":false,"pushed_at":"2024-02-25T12:13:35.000Z","size":55,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T15:26:15.286Z","etag":null,"topics":["8051","cc2531","linux","lowpan","matter","usb","wpan","zigbee"],"latest_commit_sha":null,"homepage":"http://rosvall.github.io/","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/rosvall.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSES/GPL-3.0-or-later.txt","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}},"created_at":"2023-06-27T10:40:20.000Z","updated_at":"2024-05-19T10:14:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"2621ccf9-5ce7-435a-8748-602ae4f12000","html_url":"https://github.com/rosvall/cc2531_usb_wpan_adapter","commit_stats":null,"previous_names":["rosvall/cc2531_usb_wpan_adapter"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/rosvall/cc2531_usb_wpan_adapter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rosvall%2Fcc2531_usb_wpan_adapter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rosvall%2Fcc2531_usb_wpan_adapter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rosvall%2Fcc2531_usb_wpan_adapter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rosvall%2Fcc2531_usb_wpan_adapter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rosvall","download_url":"https://codeload.github.com/rosvall/cc2531_usb_wpan_adapter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rosvall%2Fcc2531_usb_wpan_adapter/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263279249,"owners_count":23441677,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["8051","cc2531","linux","lowpan","matter","usb","wpan","zigbee"],"created_at":"2024-11-10T08:35:22.863Z","updated_at":"2025-07-03T07:04:46.003Z","avatar_url":"https://github.com/rosvall.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WPAN Adapter firmware for CC2531 USB Dongle\n\nFirmware for Texas Instruments CC2531 Dongle to be used with [this Linux kernel driver for CC2531 WPAN Adapter firmware](https://github.com/rosvall/cc2531_linux).\n\nEnables a CC2531 dongle to be used as a proper WPAN adapter through the Linux WPAN subsystem.\n\n\n## Features\n- All packets received are send to USB host.\n- Transmit with optional IEEE 802.15.4 CSMA.\n- Read/write all registers over USB.\n- 2Mbaud 1N8 uart log output on pin P1.6\n- SPI-like real time TX/RX packet sniffer output (tx: P1.3, data: P1.4, clock: P1.5)\n- Supports USB Device Firmware Upgrade (with [DFU bootloader](https://github.com/rosvall/cc2531_bootloader))\n\n\n## Protocol\n### Control endpoint\nIn addition to the standard USB 2.0 control requests, the following control endpoint requests are supported:\n\n|                     | bmRequestType | bRequest | wValue                                       | wIndex | Data                                             |\n|---------------------|---------------|----------|----------------------------------------------|--------|--------------------------------------------------|\n| Read XDATA          | 0xC0          | 0x00     | Register or RAM Address                      | *D/C*  | Contents of RAM or register(s)                   |\n| Write XDATA         | 0x40          | 0x01     | Register or RAM Address                      | *D/C*  | Data to be written, starting at address *wValue* |\n| Read FIFO           | 0xC0          | 0x02     | FIFO Address                                 | *D/C*  | Contents of FIFO                                 |\n| Write FIFO          | 0x40          | 0x03     | FIFO Address                                 | *D/C*  | Bytes to be written into specified address       |\n| Transmit            | 0x40          | 0x04     | Non-zero: Disable CSMA, transmit immediately | *D/C*  | IEEE 802.15.4 frame to be written to radio FIFO  |\n| Set CSMA parameters | 0x40          | 0x05     | (retries \u003c\u003c 8)\\|(be_max \u003c\u003c 4)\\|(be_min \u003c\u003c 0) | *D/C*  | *D/C*                                            |\n| DFU_DETACH          | 0x21          | 0x00     | *D/C*                                        | *D/C*  | *D/C*                                            |\n\n*D/C*: Don't care\n\n### Status endpoint\nEndpoint 1 (Interrupt IN) sends one byte status messages to host. Transmit success (0) or failure (non-zero).\n\n### Receive endpoint\nEndpoint 5 (Bulk IN) sends received IEEE 802.15.4 frames to host.\n\n## Requirements\n- [dfu-util](https://sourceforge.net/projects/dfu-util/)\n- CC2531 based USB dongle with [DFU bootloader](https://github.com/rosvall/cc2531_bootloader/).\n\n    A stock CC2531USB-RD dongle can be flashed with the DFU bootloader using [this hack](https://github.com/rosvall/cc2531_oem_flasher)\n\n\n## How to flash DFU image to CC2531 dongle running [DFU bootloader](https://github.com/rosvall/cc2531_bootloader/).\nRequires [dfu-util](https://sourceforge.net/projects/dfu-util/).\n\n```sh\ndfu-util -D wpan_fw.dfu\n```\n\n\n## Build requirements\n- [SDCC](https://sourceforge.net/projects/sdcc/)\n- [dfu-util](https://sourceforge.net/projects/dfu-util/)\n- [binutils](https://www.gnu.org/software/binutils/)\n- [make](https://www.gnu.org/software/make/)\n\n\n## How to build\n```sh\n# Check out repo with all sub-modules:\ngit clone --recursive 'https://github.com/rosvall/cc2531_usb_wpan_adapter.git' \ncd cc2531_usb_wpan_adapter\n\n# Build\nmake\n\n# Flash to USB dongle using device firmware upgrade\nmake download\n```\n\n\n## See also\n - [Flash a stock Texas Instruments CC2531USB-RD dongle, no tools required](https://github.com/rosvall/cc2531_oem_flasher)\n - [Simple USB DFU bootloader for TI CC2531](https://github.com/rosvall/cc2531_bootloader)\n - [Linux kernel driver for CC2531 WPAN Adapter firmware](https://github.com/rosvall/cc2531_linux)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frosvall%2Fcc2531_usb_wpan_adapter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frosvall%2Fcc2531_usb_wpan_adapter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frosvall%2Fcc2531_usb_wpan_adapter/lists"}