mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
83e93a5b73
examples/readme: add missing entries examples: document examples with no readme
11 KiB
11 KiB
Examples
RIOT provides a wide range of examples to demonstrate the capabilities of the OS and its modules.
Each example contains a README.md
that provides information and instructions how to run it.
Here is a quick overview of the examples available in the RIOT:
The Essentials
- default
- This application is a showcase for RIOT's hardware support. Using it for your board, you should be able to interactively use any hardware that is supported.
- hello-world
- A simple "Hello World" that shows the basic structure of a RIOT application.
- blinky
- The classic "Hello World" example for embedded systems: blinking an LED (or printing "Blink!" via stdio when none are available).
- leds_shell
- The application
leds_shell
is a basic example, which allows easy, interactive control of internal board LEDs, and basic GPIO for externally connected simple devices (for e.g. additional LEDs, relay, motors - via dedicated drivers, etc.) via the shell.
- The application
- saul
- This example demonstrates the usage of the SAUL (Sensor Actuator Uber Layer) module.
- timer_periodic_wakeup
- How to set up a periodic wakeup timer using the RIOT operating system.
- ipc_pingpong
- This example is to illustrate the usage of RIOTs IPC messaging system.
- filesystem
- This example showcases ways to interact/manage the filesystem in RIOT.
RIOT Language Bindings
Officially Supported/Targeted
Rust
- rust-hello-world
- This example demonstrates how to write a simple RIOT application in Rust.
- rust-gcoap
- This example demonstrates how to write a coap server application in Rust using the RIOTs gcoap module.
- rust-async
- This example demonstrates how to use Rusts async/await syntax in a RIOT application.
C++
- riot_and_cpp
- Example of using C++ in RIOT applications.
Community Supported
- javascript
- How to write IoT applications using javascript using JerryScript.
- lua_basic
- How to write IoT applications using Lua.
- lua_REPL
- This example demonstrates how to use the Lua Read-Eval-Print Loop (REPL) in RIOT.
- micropython
- How to use the MicroPython port for RIOT.
- wasm
- How to use WebAssembly in RIOT.
- arduino_hello-world
- This application demonstrates the usage of Arduino sketches in RIOT.
Networking
Constraint Application Protocol (CoAP)
- gcoap
- This example demonstrates the usage of the
gcoap
module, a high-level API for CoAP (Constrained Application Protocol) messaging.
- This example demonstrates the usage of the
- gcoap_block_server
- CoAP server handling for Block requests, build with gcoap using nanocoap block handling functions.
- gcoap_fileserver
- This example demonstrates the usage of the
gcoap
module to serve files over CoAP.
- This example demonstrates the usage of the
- gcoap_dtls
- This example demonstrates the usage of the
gcoap
module with DTLS.
- This example demonstrates the usage of the
- nanocoap_server
- This example demonstrates the usage of the
nanocoap
module, a high-level API for CoAP (Constrained Application Protocol) messaging.
- This example demonstrates the usage of the
Bluetooth Low Energy (BLE)
NimBLE
- nimble_scanner
- This example showcases the usage of the
NimBLE
BLE stack as a scanner.
- This example showcases the usage of the
- nimble_gatt
- This example application configures and runs the NimBLE BLE stack as simple GATT server.
- nimble_heart_rate_sensor
- This example demonstrates how to implement asynchronous data transfer using GATT notifications by implementing a mock-up BLE heart rate sensor.
- nimble_heart_rate_sensor
- This example demonstrates how to implement asynchronous data transfer using GATT notifications by implementing a mock-up BLE heart rate sensor.
Misc BLE Examples
- skald_eddystone
- This example demonstrates the usage of
Skald
for creating an GoogleEddystone
beacon.
- This example demonstrates the usage of
- skald_ibeacon
- This example demonstrates the usage of
Skald
for creating an AppleiBeacon
.
- This example demonstrates the usage of
MQTT
- asymcute_mqttsn
- This application demonstrates the usage of the Asymcute (MQTT-SN) module in RIOT.
- emcute_mqttsn
- This application demonstrates the usage of the emCute (MQTT-SN) module in RIOT.
- paho-mqtt
- This example demonstrates the usage of the Paho MQTT client library in RIOT.
CoRE Resource Directory
- cord_ep
- Example of RIOT's Resource Directory (RD) endpoint module, called
cord_ep
- Example of RIOT's Resource Directory (RD) endpoint module, called
- cord_lc
- Example of RIOT's Resource Directory (RD) lookup module, called
cord_lc
- Example of RIOT's Resource Directory (RD) lookup module, called
- cord_epsim
- This example shows how a node can register with a CoRE resource directory
GNRC Networking
- gnrc_minimal
- This is a minimalistic example for RIOT's gnrc network stack.
- gnrc_networking
- This example demonstrates the usage of the GNRC network stack in RIOT.
- gnrc_networking_subnets
- This example demonstrates IPv6 subnet auto-configuration for networks on a tree topology.
- gnrc_border_router
- Example of
gnrc_border_router
using automatic configuration
- Example of
- gnrc_lorawan
- Send and receive LoRaWAN packets and perform basic LoRaWAN commands
- gnrc_networking_mac
- This example shows you how to try out communications between RIOT instances with duty-cycled MAC layer protocols
DTLS
- dtls-sock
- This example shows how to use DTLS sock
sock_dtls_t
- This example shows how to use DTLS sock
- dtls-echo
- This example shows how to use TinyDTLS with sock_udp.
- dtls-wolfssl
- This example demonstrates the usage of the DTLS module with the wolfSSL library.^
Misc
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Updated upstream
- lorawan
- This application shows a basic LoRaWAN use-case with RIOT.
- openthread
- This example demonstrates the usage of the OpenThread stack in RIOT.
- lwm2m
- Example of a LWM2M client on RIOT
- ccn-lite-relay
- This application demonstrates how to use the Content-Centric Networking stack from CCN-Lite on RIOT
- telnet_server
- Simple telnet server that listens on port 23 over IPv6.
- posix_sockets
- Showcase for RIOT's POSIX socket support
- spectrum-scanner
- This example demonstrates how to monitor energy levels on all available wireless channels
- sniffer
- This application is built to run together with the script
./tools/sniffer.py
as a sniffer for (wireless) data traffic.
- This application is built to run together with the script
- benckmark_udp
- This example uses the
benchmark_udp
module to create a stress-test for the RIOT network stack. ====================================================================================================Example Description lorawan This application shows a basic LoRaWAN use-case with RIOT. openthread This example demonstrates the usage of the OpenThread stack in RIOT. lwm2m Example of a LWM2M client on RIOT ccn-lite-relay This application demonstrates how to use the Content-Centric Networking stack from CCN-Lite on RIOT telnet_server Simple telnet server that listens on port 23 over IPv6. posix_sockets Showcase for RIOT's POSIX socket support spectrum-scanner This example demonstrates how to monitor energy levels on all available wireless channels sniffer This application is built to run together with the script ./tools/sniffer.py
as a sniffer for (wireless) data traffic.benckmark_udp This example uses the benchmark_udp
module to create a stress-test for the RIOT network stack.sock_tcp_echo This is a simple TCP echo server / client that uses the SOCK API.
- This example uses the
Stashed changes
Advanced Examples
- bindist
- RIOT allows for creating a "binary distribution", which can be used to ship proprietary, compiled objects in a way that makes it possible to re-link them against a freshly compiled RIOT. This application serves as a simple example.
- usbus_minimal
- This is a minimalistic example for RIOT's USB stack.
- suit_update
- This example shows how to integrate SUIT-compliant firmware updates into a RIOT application.
- thread_duel
- This is a thread duel application to show RIOTs abilities to run multiple-threads concurrently, even if they are neither cooperative nor dividable into different scheduler priorities, by using the optional round-robin scheduler module.
- posix_select
- This example is a showcase for RIOT's POSIX select support
- psa_crypto
- Basic functions of the PSA Crypto API
- pio_blink
- How to use the PIO peripheral on the RaspberryPi Pico to blink an LED.
- twr_aloha
- This example allows testing different two-way ranging algorithms between two boards supporting a dw1000 device. This makes use of the uwb-core pkg.
- senml_saul
- This example demonstrates the usage of the SAUL (Sensor Actuator Uber Layer) module with the SenML (Sensor Measurement Lists) format.
- opendsme
- This example demonstrates the usage of the OpenDSME module in RIOT.