{"id":22054261,"url":"https://github.com/kb2ma/riot-builder","last_synced_at":"2026-04-13T22:33:46.907Z","repository":{"id":67553432,"uuid":"245723087","full_name":"kb2ma/riot-builder","owner":"kb2ma","description":null,"archived":false,"fork":false,"pushed_at":"2020-03-07T23:48:47.000Z","size":2,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-23T15:48:49.339Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/kb2ma.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}},"created_at":"2020-03-07T23:46:59.000Z","updated_at":"2020-03-07T23:48:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"0f4be04d-5e63-4578-a3bf-4670e2574d31","html_url":"https://github.com/kb2ma/riot-builder","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kb2ma/riot-builder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kb2ma%2Friot-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kb2ma%2Friot-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kb2ma%2Friot-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kb2ma%2Friot-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kb2ma","download_url":"https://codeload.github.com/kb2ma/riot-builder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kb2ma%2Friot-builder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31774028,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T20:17:16.280Z","status":"ssl_error","status_checked_at":"2026-04-13T20:17:08.216Z","response_time":93,"last_error":"SSL_read: 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-11-30T15:20:22.714Z","updated_at":"2026-04-13T22:33:46.890Z","avatar_url":"https://github.com/kb2ma.png","language":"Shell","readme":"# Setup for Networking Apps\nRIOT supports several IP networking environments for running an app -- native (on workstation), USB via ethos, Wi-Fi on ESP platforms, etc. The setup for an environment is essentially the same regardless of the particular application to run. So, this document is a guide to building and running a RIOT application in various environments.\n\n## Environments\nThis document describes the setup for these environments:\n\n| Name | Description |\n| ---- | ----------- |\n| native | development workstation, Linux |\n| usb | Uses the RIOT ethos tool (in `./dist/tools/ethos`) for Ethernet over USB serial |\n| 6lo | 6LowPAN over 802.15.4 |\n| inet | IPv6 over WiFi, using RIOT's GNRC library |\n| inet.lwip | IPv6 over WiFi, using lwIP library |\n| inet4.lwip | IPv4 over WiFi, using lwIP library |\n\nThe setup instructions below for individual environments assume a client/server based networking application like gcoap.\n\n## native\nSetup for a single Linux native node connecting via TAP to a node on the workstation.\n\n```\nRIOT native process\nfd00:bbbb::2/64\n   |\n  TAP\n   |\nWorkstation (Linux)\nfd00:bbbb::1/64\n```\n\nMust manually run '`setup_tap.sh start`' to setup TAP, and '`setup_tap.sh stop`' to tear it down. The start script sets the address for the workstation.\n\nAfter running the `term` target to start the RIOT instance, set the network address in its terminal:\n\n```\n   \u003e ifconfig 6 add fd00:bbbb::2/64\n```\n\n\n## usb\nSetup for a single physical board node connecting via USB/TAP to a node on the workstation. I use a samr21-xpro. Build with `Makefile.ula`.\n```\nRIOT board (samr21-xpro)\nfd00:bbbb::2/64 \n   |\n  USB/TAP\n   |\nWorkstation (Linux)\nfd00:bbbb::1/64\n```\n\n`start_network_kb.sh` executes automatically when running the `term` target for the board, to setup and teardown the TAP interface.\n\nAfter running the `term` target on the board, do the following:\n\n**board**\n```\n   \u003e ifconfig 6 add fd00:bbbb::2/64\n   \u003e nib neigh add 6 fd00:bbbb::1 \u003cether addr\u003e\n```\nwhere \u003cether addr\\\u003e is the 6 hexadecimal colon separated MAC address of the TAP interface on the workstation.\n\n**workstation**\n```\n   $ sudo ip route add fd00:bbbb::/64 via \u003clladdr\u003e dev tap0\n```\nwhere \u003clladdr\\\u003e is the link local address of the samr21-xpro\n\n## 6lo\nSetup for a physical board that connects to a node on the workstation via an intermediate border router also on a physical board. The border router is built with `examples/gnrc_border_router`. It has a USB interface to the workstation.\n\n```\nRIOT board (6lo on samr21-xpro)\nfd00:aaaa::xxxx/64\n   |\n   6LoWPAN 802.15.4\n   |\nfd00:aaaa::xxxx/64\nRIOT board (border router \"br\" on samr21-xpro)\n(no routable address on fd00:bbbb)\n   |\n  USB/TAP\n   |\nworkstation (Linux)\nuhcpd generates fd00:aaaa::/64 addresses\nfd00:bbbb::1/64\n```\n\n`start_network_kb.sh` executes automatically when running the `term` target for the board, to setup and teardown the TAP interface. Also, uhcpd generates fd00:aaaa::/64 addresses and installs them on both RIOT boards. So there is no additional setup.\n\n## inet\nSetup for a single physical board client node connected via WiFi to a server node in the cloud. I use ESP-12x (8266) Adafruit Feather board because it has WiFi on board, and so does not require a USB connection to an Internet gateway, like the samr21-xpro. This approach means we expect the WiFi access point to provide IPv6 Internet connectivity. Build with `Makefile.inet`.\n```\nRIOT board (esp-12x)\nrouteable IPv6 addr (auto-assigned)\n   |\n  WiFi/Internet\n   |\ncloud instance (Linux)\nrouteable cloud address (see SERVER_ADDR below)\n```\n\nMust define environment variables for `Makefile.inet`:\n```\nexport RIOT_WIFI_SSID=\"\u003cssid\u003e\"\nexport RIOT_WIFI_PASS=\"\u003cpassphrase\u003e\"\nexport SERVER_ADDR=\\\\\\\"\u003cserver addr\u003e\\\\\\\"\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkb2ma%2Friot-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkb2ma%2Friot-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkb2ma%2Friot-builder/lists"}