All Projects → jamesmunns → internet-of-streams

jamesmunns / internet-of-streams

Licence: Apache-2.0, MIT licenses found Licenses found Apache-2.0 LICENSE-APACHE MIT LICENSE-MIT
An IoT project focused on teaching embedded, rustlang, and IoT concepts through coding streams

Programming Languages

rust
11053 projects
GDB
78 projects

Internet of Streams Project

Building a wireless sensor platform from (almost) scratch in Embedded Rust. Built with a focus on teaching embedded systems, IoT development, and Rust through live streamed coding sessions. Devices based on the DWM1001-DEV board, the Nordic nRF52 microcontroller, and Embedded Rust.

This project is sponsored by Ferrous Systems. Interested in trainings or consulting on Embedded Systems, IoT projects, or the Rust Programming Language? Get in touch!

Ferrous Systems

Stream Videos

You can find a playlist of all videos here on YouTube.

  • 2019-02-23 - Hello Blinky World!
    • Get the project set up
    • Get CI set up
    • Get HAL and RTFM set up
    • Blink the first LED
  • 2019-02-28 - COBS Encoding for Serial Framing
    • Finish up a PR to get a streaming COBS encoder
  • 2019-03-02 - Async DMA UARTE - Part 1
    • Get nrf52-hal vendored
    • Update some old code
    • Try to work around RTFM limitations
    • see the uarte branch for WIP
  • 2019-03-07 - Simple Blocking UART Logger
    • Send data over the UART
    • Provide log/warn/err levels
    • Send data larger than a single 255 byte transaction
  • 2019-03-10 - Radio Work and no_std Serde
    • Get messages sending periodically
    • Receive incoming messages
    • Use the hardware random number generator
    • Serialize/Deserialize messages with ssmarshal and serde
  • 2019-03-17 - Workspace Cleanup and Alarm Clock Planning
    • Discuss making an alarm clock as a first device
    • Discuss RTCs and how they work
    • Refactor the repo into a workspace
  • 2019-03-20 - Real Time Clock - Part 1
    • Start implementing the nRF52 RTC peripheral
    • Write a low level peripheral driver
    • Add an interrupt handler to RTFM
    • Got stuck due to some code problems
  • 2019-03-28 - Real Time Clock - Part 2
    • Debugging a low level peripheral driver
    • Investigating what went wrong
    • Got the RTC interrupt working properly!
  • 2019-03-31 - Making an Alarm Clock - Part 1
    • Reviewed the uhr crate for tracking wall time and alarms
    • Implemented a (re-)scheduler to allow alarms to repeat on a fixed weekly schedule
    • Wrote a no_std unit test for verifying an optimized bit-math algorithm

Future Topics

The following topics are planned to be addressed in future streams:

  • Wireless Communication
  • Bootloader/OTA updates
  • Low Power Mode
  • Logging
  • Unit Testing
  • Hardware in the Loop testing
  • 6LoWPAN
  • Bluetooth
  • Gateway Router
  • Messaging/Protocol/Serialization/Deserialization
  • LED status codes

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].