Ruuvi Firmware version 3. Built on top of Nordic SDK 15, uses both Ruuvi and external repositories as submodules. Under development, please follow Ruuvi Blog for details.
Download Nordic SDK15.2 and install it one level above the project root.
Run git submodule update --init --recursive
. This will search for and install the other git repositories referenced by this project.
ARMGCC is used for Jenkins builds, it's recommended to use SES for developing.
Segger Embedded Studio can be set up by following this RuuviLab Tool post.
Compile and flash the project to your board using SES. Instructions on how to use a bootloader will be added later on. The project is not yet in a useful state for any practical purpose other than learning.
Note: You should erase your board entirely in case there is a bootloader from a previous firmware.
Please let us know your thoughts on the direction and structure of the project. Does the project help you to understand how to build code on RuuviTag? Is the structure of the project sensible to you? Pull requests and GitHub issues are welcome, but new features will not be accepted at this time.
Ruuvi code is BSD-3 licensed. Submodules and external dependencies have their own licenses, which generally are BSD-compatible.
- Add NFC writes to tag
- Disable GATT
- Use activity interrupts, advertise data format 5
- Trigger watchdog if data is not sent via NFC, GATT or advertisement for 120 seconds.
- 27 uA current consumption at 3V
- Add GATT profile
- Stream accelerometer data over GATT / NUS
- Tigger watchdog if data is not sent over NUS for 120 seconds
- Disable data advertising
- Disable activity interrupts from LIS2DH12
- Add watchdog, reset if button is not pressed.
- Add interrupts to accelerometer
- Add data format 5 support
- Synchronize battery measurements to radio
- Bootloader in a separate repository
- Add scheduler and timer, update transmitted data once per second.
- Environmental sensor is now in continuous mode and has IIR filtering at 16x (was oversampling)
- ADC is now read once per minute
Adds NFC tag functionality - read only
Adds BLE broadcasts
Adds RTC
Adds battery measurement
Adds Accelerometer polling
Adds environmental sensing
Adds button control to blink leds
Adds Led blinking example
Adds logging and error code handling
Put external sensors to sleep and then put MCU to sleep.