nrf24l01+ based AVR bootloader focuses on low-power mode wireless sensor nodes
C C++ Makefile Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bootloader_client_t84
bootloader_server_m328p
bootloader_server_pc
bootloader_server_x32e5
message_listener_pc
payload_example_t84_powered
payload_example_t84_sleepy
payload_example_t84_sleepy_mcp3421
README.md
nRF24L01.h
nrf24.c
nrf24.h
setup.png

README.md

nrf24l01_plus_bootloader

This is a nrf24l01+ based AVR bootloader focuses on low-power mode wireless sensor nodes.

Development setup

image

Couple of notes

  • Uses an Arduino as an intelligent USB-nrf24L01+ dongle.
  • All the firmware is written in plain C.
  • Bootloader occupies ~1600 bytes memory, but 2048 bytes are spared for simplicity sake.
  • User has to put bootloader check function in their app code, otherwise computer can't put the node into the bootloader mode.
  • How long does the node listens for a reset message is related with the low current requirement of sensor node.
  • For example, if node only wakes up once for every 10 minutes and sends a temperature readout, and listens for any reset message 100 microseconds after that; dongle has to catch this tiny time slice in order to put the device into the bootloader mode. This could take long time but this is a design choice made specifically for keeping the low power operating mode as intact as possible.
  • Currently only works with Attiny84.
  • There are probably many edge-cases that I haven't considered yet.

License

/*-----------------------------------------------------------------------------
/ “THE COFFEEWARE LICENSE” (Revision 1):
/ <ihsan@kehribar.me> wrote this file. As long as you retain this notice you
/ can do whatever you want with this stuff. If we meet some day, and you think
/ this stuff is worth it, you can buy me a coffee in return.
/----------------------------------------------------------------------------*/