{"id":17449180,"url":"https://github.com/ps2/subg_rfspy","last_synced_at":"2026-03-04T06:30:55.807Z","repository":{"id":66981494,"uuid":"47222053","full_name":"ps2/subg_rfspy","owner":"ps2","description":"General purpose firmware for CC111x for sub-ghz RF comms.","archived":false,"fork":false,"pushed_at":"2020-11-02T05:30:16.000Z","size":226,"stargazers_count":22,"open_issues_count":3,"forks_count":38,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-19T18:13:04.682Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ps2.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2015-12-01T22:43:10.000Z","updated_at":"2023-03-02T11:41:30.000Z","dependencies_parsed_at":"2023-02-28T21:16:33.481Z","dependency_job_id":null,"html_url":"https://github.com/ps2/subg_rfspy","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/ps2/subg_rfspy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ps2%2Fsubg_rfspy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ps2%2Fsubg_rfspy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ps2%2Fsubg_rfspy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ps2%2Fsubg_rfspy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ps2","download_url":"https://codeload.github.com/ps2/subg_rfspy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ps2%2Fsubg_rfspy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30074142,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T05:31:57.858Z","status":"ssl_error","status_checked_at":"2026-03-04T05:31:38.462Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":"2024-10-17T21:05:22.108Z","updated_at":"2026-03-04T06:30:55.774Z","avatar_url":"https://github.com/ps2.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# subg_rfspy\n\n[![Build Status](https://travis-ci.org/ps2/subg_rfspy.svg?branch=master)](https://travis-ci.org/ps2/subg_rfspy)\n\n## Pre-Requisites for Building subg_rfspy\n\n[sdcc] (http://sdcc.sourceforge.net/) version \u003e= 3.7.0 is required for this build. There is a [docker image](https://hub.docker.com/r/ps2docker/sdcc_docker/) available for this purpose.\n\nIt's also possible to build it under Windows. The best way to do this is to:\n\n1. install SDCC version 3.7.0\n2. install Cygwin\n3. use Cygwin to install make\n4. Use cygwin bash to build the project\n\nTo install, you'll need [cc-tool](https://github.com/dashesy/cc-tool)\n\n# Building and Installing\n\n```\nmake -f Makefile.spi1_alt2 install\n\n```\n\n# Building and Installing using docker\n```\ndocker run -v `pwd`:/subg_rfspy  ps2docker/sdcc_docker /bin/sh -c \"cd /subg_rfspy; make -f Makefile.spi1_alt2\ncc-tool -n CC1110 --log install.log -ew output/spi1_alt2_RILEYLINK_US_STDLOC/spi1_alt2_RILEYLINK_US_STDLOC.hex\n```\n\n# Radio Frequency Selection\n\nThis code defaults to building firmware that is tuned to 916.5 Mhz. You can also build a 'WorldWide' firmware. This changes the default frequency to 868 and tweaks a few other settings.\n\n    make -f Makefile.spi1_alt2 RADIO_LOCALE=WW\n\n# Protocol\n\nSee [protocol.md](protocol.md)\n\n\n# Addendum\n\n## Serial/Uart Support\n\nSerial support is no longer supported.  See [serial.md](serial.md) for\nhistorical information.\n\n\n## Supported Registers\n\n### SYNC1 (0x00)\n\nSync Word, High Byte. 8 MSB of 16-bit sync word.\n\n### SYNC0 (0x01)\n\nSync Word, Low Byte. 8 LSB of 16-bit sync word.\n\n### PKTLEN (0x02)\n\nPacket Length. Indicates the packet length when fixed length packets are enabled. If\nvariable length packets are used, this value indicates the maximum length\npackets allowed.\n\n### PKTCTRL1 (0x03)\n\nPacket Automation Control. Different bit ranges have different functions.\nSee CC1110/CC1111 datasheet for more information.\n\n### PKTCTRL0 (0x04)\n\nPacket Automation Control. Different bit ranges have different functions.\nSee CC1110/CC1111 datasheet for more information.\n\n### ADDR (0x05)\n\nDevice Address. Address used for packet filtration. Optional broadcast addresses are 0\n(0x00) and 255 (0xFF).\n\n### CHANNR (0x06)\n\nChannel Number. The 8-bit unsigned channel number, which is multiplied by the channel\nspacing setting and added to the base frequency.\n\n### FSCTRL1 (0x07)\n\nFrequency Synthesizer Control.\n\n### FSCTRL0 (0x08)\n\nFrequency Synthesizer Control. Frequency offset added to the base frequency before being used by the\nFS.\n\n### FREQ2 (0x09)\n\nFrequency Control Word, High Byte.\n\n### FREQ1 (0x0A)\n\nFrequency Control Word, Middle Byte.\n\n### FREQ0 (0x0B)\n\nFrequency Control Word, Low Byte.\n\n### MDMCFG4 (0x0C)\n\nModem Configuration. Different bit ranges have different functions.\nSee CC1110/CC1111 datasheet for more information.\n\n### MDMCFG3 (0x0D)\n\nModem Configuration. Different bit ranges have different functions.\nSee CC1110/CC1111 datasheet for more information.\n\n### MDMCFG2 (0x0E)\n\nModem Configuration. Different bit ranges have different functions.\nSee CC1110/CC1111 datasheet for more information.\n\n### MDMCFG1 (0x0F)\n\nModem Configuration. Different bit ranges have different functions.\nSee CC1110/CC1111 datasheet for more information.\n\n### MDMCFG0 (0x10)\n\nModem Configuration. Different bit ranges have different functions.\nSee CC1110/CC1111 datasheet for more information.\n\n### DEVIATN (0x11)\n\nModem Deviation Setting. Different bit ranges have different functions.\nSee CC1110/CC1111 datasheet for more information.\n\n### MCSM2 (0x12)\n\nMain Radio Control State Machine Configuration. Different bit ranges have\ndifferent functions. See CC1110/CC1111 datasheet for more information.\n\n### MCSM1 (0x13)\n\nMain Radio Control State Machine Configuration. Different bit ranges have\ndifferent functions. See CC1110/CC1111 datasheet for more information.\n\n### MCSM0 (0x14)\n\nMain Radio Control State Machine Configuration. Different bit ranges have\ndifferent functions. See CC1110/CC1111 datasheet for more information.\n\n### FOCCFG (0x15)\n\nFrequency Offset Compensation Configuration. Different bit ranges have\ndifferent functions. See CC1110/CC1111 datasheet for more information.\n\n### BSCFG (0x16)\n\nBit Synchronization Configuration. Different bit ranges have different\nfunctions. See CC1110/CC1111 datasheet for more information.\n\n### AGCCTRL2 (0x17)\n\nAGC Control. Different bit ranges have different functions.\nSee CC1110/CC1111 datasheet for more information.\n\n### AGCCTRL1 (0x18)\n\nAGC Control. Different bit ranges have different functions.\nSee CC1110/CC1111 datasheet for more information.\n\n### AGCCTRL0 (0x19)\n\nAGC Control. Different bit ranges have different functions.\nSee CC1110/CC1111 datasheet for more information.\n\n### FREND1 (0x1A)\n\nFront End RX Configuration. Different bit ranges have different\nfunctions. See CC1110/CC1111 datasheet for more information.\n\n### FREND0 (0x1B)\n\nFront End RX Configuration. Different bit ranges have different\nfunctions. See CC1110/CC1111 datasheet for more information.\n\n### FSCAL3 (0x1C)\n\nFrequency Synthesizer Calibration. Different bit ranges have\ndifferent functions. See CC1110/CC1111 datasheet for more information.\n\n### FSCAL2 (0x1D)\n\nFrequency Synthesizer Calibration. Different bit ranges have different\nfunctions. See CC1110/CC1111 datasheet for more information.\n\n### FSCAL1 (0x1E)\n\nFrequency Synthesizer Calibration. Different bit ranges have different\nfunctions. See CC1110/CC1111 datasheet for more information.\n\n### FSCAL0 (0x1F)\n\nFrequency Synthesizer Calibration. Different bit ranges have different\nfunctions. See CC1110/CC1111 datasheet for more information.\n\n### PA_TABLE1 (0x2D)\n\nPower amplifier output power setting 1.\n\n### PA_TABLE0 (0x2E)\n\nPower amplifier output power setting 0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fps2%2Fsubg_rfspy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fps2%2Fsubg_rfspy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fps2%2Fsubg_rfspy/lists"}