{"id":43653454,"url":"https://github.com/nes-lab/shepherd-targets","last_synced_at":"2026-02-04T20:25:17.790Z","repository":{"id":174730926,"uuid":"650587300","full_name":"nes-lab/shepherd-targets","owner":"nes-lab","description":"Collection of Target-Hardware and MCU-Firmwares","archived":false,"fork":false,"pushed_at":"2026-01-01T20:18:12.000Z","size":28750,"stargazers_count":2,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-19T11:38:35.916Z","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/nes-lab.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2023-06-07T11:37:30.000Z","updated_at":"2026-01-01T20:18:10.000Z","dependencies_parsed_at":"2024-05-18T15:32:14.519Z","dependency_job_id":"818169c1-df32-4375-9ab5-241d3ad91600","html_url":"https://github.com/nes-lab/shepherd-targets","commit_stats":null,"previous_names":["orgua/shepherd-targets","nes-lab/shepherd-targets"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/nes-lab/shepherd-targets","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nes-lab%2Fshepherd-targets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nes-lab%2Fshepherd-targets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nes-lab%2Fshepherd-targets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nes-lab%2Fshepherd-targets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nes-lab","download_url":"https://codeload.github.com/nes-lab/shepherd-targets/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nes-lab%2Fshepherd-targets/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29095221,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-04T20:17:23.003Z","status":"ssl_error","status_checked_at":"2026-02-04T20:16:36.396Z","response_time":62,"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-04T20:25:17.010Z","updated_at":"2026-02-04T20:25:17.785Z","avatar_url":"https://github.com/nes-lab.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Target Boards \u0026 Firmware\n\n[![Build MSP430](https://github.com/nes-lab/shepherd-targets/actions/workflows/build_msp.yaml/badge.svg)](https://github.com/nes-lab/shepherd-targets/actions/workflows/build_msp.yaml)\n[![Build nRF52](https://github.com/nes-lab/shepherd-targets/actions/workflows/build_nrf.yaml/badge.svg)](https://github.com/nes-lab/shepherd-targets/actions/workflows/build_nrf.yaml)\n[![QA-Tests](https://github.com/nes-lab/shepherd-targets/actions/workflows/qa_tests.yaml/badge.svg)](https://github.com/nes-lab/shepherd-targets/actions/workflows/qa_tests.yaml)\n\n**Main Documentation**: \u003chttps://nes-lab.github.io/shepherd\u003e\n\n**Source Code**: \u003chttps://github.com/nes-lab/shepherd-targets\u003e\n\n**Main Project**: \u003chttps://github.com/nes-lab/shepherd\u003e\n\n---\n\nThe repository contains a collection of target-hardware and mcu-firmwares used by the shepherd-testbed.\nIn the past shepherd had a nRF52-only target but can now leverage an additional FRAM, as demonstrated successfully by the\n[Riotee-Platform](https://www.riotee.nessie-circuits.de).\n\n**NOTE**: The shepherd testbed has a second target-port (unused) and is looking for ideas.\nJust contact us if you got ideas.\n\n## nRF52 with MSP430FR as FRAM\n\nHardware v1.3+ uses\n\n- nRF52840\n- MSP430FR5994 (TI)\n- RTC AB1805\n\n![Target_nRF_MSP430](./media/shepherd_nRF_FRAM_Target_v1.3_photo_front.jpg)\n\nBOM, gerber-files and schematics are available in the [PCB-Directory](https://github.com/nes-lab/shepherd-targets/tree/main/hardware).\nThis folder also contains a guide for testing new target-PCBs.\n\n![Target_nRF_MSP430_render](./media/shepherd_nRF_FRAM_Target_v1.3_render_front.png)\n\n### Features\n\n- freedom to use both MCUs as needed (just as radio or FRAM) or disable when not needed (deep sleep)\n- over-voltage protection for V_LV (max 3.9V)\n- under-voltage protection with hysteresis for nRF\n- one debug LEDs with separate supply for minimal impact on pwr-budget\n- one self-powered LED to \"burn\" energy\n- io pins not interfering with RF (nRF PS v1.6 page 578)\n- LEDs / UART similar to [Riotee](https://www.riotee.nessie-circuits.de/)\n- nRF uses low voltage mode (PSv1.1 page 61)\n- 16x GPIO shared to host, current-limited with 240R star-configuration (every participant has that resistor on its port to also keep data rates \u003e10 MHz)\n- high \u0026 low power-good-signal (similar to riotee)\n- SMA-port for external antenna\n- 3rd possible way for reset (external), beside jtag and pwr-cycle\n\n### nRF52-Firmwares\n\n- [nrf52_demo_rf](https://github.com/nes-lab/shepherd-targets/tree/main/firmware/nrf52_demo_rf): demo implementation for a simple node that sends BLE packets when energy budget allows it\n- [nrf52_testable](https://github.com/nes-lab/shepherd-targets/tree/main/firmware/nrf52_testable): watches all gpio and reports with UART messages (verification after assembly)\n  - ensures that pcb is assembled OK and both MCUs are programmable and show basic functions\n  - what is not tested: watchdog, FRAM, RF-Frontend (-\u003e use rf-demo or rf-survey), sleep power consumption\n- [nrf52_rf_test](https://github.com/nes-lab/shepherd-targets/tree/main/firmware/nrf52_rf_test): sends out 1 BLE-Packet per second (verify with an app like `RaMBLE`)\n- [nrf52_rf_survey](https://github.com/nes-lab/shepherd-targets/tree/main/firmware/nrf52_rf_survey): Link Matrix Generator - TX-Unit - sends packet with every possible P_TX, loops until stopped\n- [nrf52_deep_sleep](https://github.com/nes-lab/shepherd-targets/tree/main/firmware/nrf52_deep_sleep): practically turned off MCU with the lowest possible consumption\n\n- TODO: nrf52_spi_radio - default implementation to use nRF as a radio frontend\n\n### MSP430FR-Firmwares\n\n- [msp430_deep_sleep](https://github.com/nes-lab/shepherd-targets/tree/main/firmware/msp430_deep_sleep): practically turned off MCU with the lowest possible consumption\n- [msp430_spi_fram](https://github.com/nes-lab/shepherd-targets/tree/main/firmware/msp430_spi_fram): [riotee](https://github.com/NessieCircuits/Riotee_MSP430Fram) implementation to use MSP as a flash storage\n- [msp430_testable](https://github.com/nes-lab/shepherd-targets/tree/main/firmware/msp430_testable): switches on all shared gpio one by one (verification after assembly)\n\n## Getting started\n\nStep by step description for installing all prerequisites to compile the firmware.\n\n### nRF52\n\n- Make sure you have the [GNU Arm Embedded Toolchain](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads) installed\n- If `arm-none-eabi-gcc` is not in your path, set the environment variable `GNU_INSTALL_ROOT` accordingly, e.g.: `export GNU_INSTALL_ROOT=/opt/toolchain/` (note the trailing foreslash)\n- Download the nRF5 SDK from [here.](https://www.nordicsemi.com/Software-and-tools/Software/nRF5-SDK/Download) (You don't need a SoftDevice) and extract it\n- Set the environment variables `SDK_ROOT` to the corresponding absolute path, e.g.: `export SDK_ROOT=/home/user/nRF5_SDK_17.0.2_d674dde/`\n- run `make`\n\nRefer to [the GitHub workflow](https://github.com/nes-lab/shepherd-targets/tree/main/.github/workflows/build_nrf.yaml) for how to install the toolchain and build the project.\n\n### MSP430\n\nTo build the code, you'll need the gcc toolchain for the MSP430 microcontroller series. Refer to [the GitHub workflow](https://github.com/nes-lab/shepherd-targets/tree/main/.github/workflows/build_msp.yaml) for how to install the toolchain and build the project.\n\n### Controlling the Node-ID\n\nWhen an `elf`-firmware contains a ``SHEPHERD_NODE_ID``, the variable will be patched with the actual target-ID before running the experiment. See the proposed [c-file](https://github.com/nes-lab/shepherd-targets/tree/main/firmware/nrf52_demo_rf/src/shepherd_node_id.c) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnes-lab%2Fshepherd-targets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnes-lab%2Fshepherd-targets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnes-lab%2Fshepherd-targets/lists"}