Drogue Device
Drogue device is a distribution of tools and examples for building embedded IoT applications in Rust.
- Built using rust, an efficient, memory safe and thread safe programming language.
- Based on embassy, the embedded async project.
- IoT examples for BLE, Bluetooth Mesh, WiFi and LoRaWAN with OTA functionality.
- Works out of the box with the Drogue Cloud connectivity layer.
- Async programming model for writing safe and efficient applications.
- All software is licensed under the Apache 2.0 open source license.
See the documentation for more information.
Go to our homepage to learn more about the Drogue IoT project.
Minimum Supported Rust Version
Drogue Device requires the Rust nightly toolchain. If you installed rust using rustup, all the commands should "just work".
Hardware
Drogue device runs on any hardware supported by embassy, which at the time of writing includes:
- nRF52
- STM32
- Raspberry Pi Pico
- Linux, Mac OS X or Windows
- WASM (WebAssembly)
We provide examples for a subset of hardware that we ensure works and that are relevant for IoT.
Example applications
An overview of the examples can be found in the documentation.
You can copy the examples if you wish to create an application outside of this repository.
Developing
To make testing and developing examples a bit easier, we have defined a few commands that you can run from the root folder of the repository that should work with any example. These commands will also ensure that the appropriate bootloader is installed if needed.
To flash an example, run cargo xtask flash
:
cargo xtask flash examples/nrf52/microbit/ble
To debug an example, run cargo xtask debug
:
cargo xtask debug examples/nrf52/microbit/ble
To just build the example, run cargo xtask build
:
cargo xtask build examples/nrf52/microbit/ble
To do a full build of everything including examples:
cargo xtask ci
Directory layout
boards
- Board Support Package (BSP) for supported boardsdevice
- Library for building IoT applicationsmacros
- macros to load configuration files for the device firmware.examples
- examples that can run on different boards
Contributing
See the document CONTRIBUTING.md.
Community
- Drogue IoT Matrix Chat Room
- We have bi-weekly calls at 9:00 AM (GMT). Check the calendar to see which week we are having the next call, and feel free to join!
- Drogue IoT Forum
- Drogue IoT YouTube channel
- Follow us on Twitter!