Skip to content


Repository files navigation

NOTE: not actively maintained

This library is not actively maintained anymore but is kept for reference and can still be used with RFM12b transceivers.

RFM12B Library

By Felix Rusu (
Based on the RFM12 driver from (2009-02-09


  • easy API with a few simple functions for basic usage
  • 127 possible nodes on 256 possible networks
  • 128 bytes max message length
  • customizable transmit power (8 levels) for low-power transmission control
  • customizable air-Kbps rate allows fine tuning the transmission reliability vs speed (transmitting slower is more reliable but takes more time which implies more power usage)
  • Sleep/Wakeup functionality for power saving
  • Low battery detector with customizable low voltage threshold
  • Interrupt driven
  • Support for targeted ACK instead of broadcasted ACK (possible because of the new source byte in the header) encryption with XXTEA algorithm by David Wheeler, adapted from Support for these chips: ATMega8 family (ATmega168, ATMega328) ATMega2560, ATMega1280, ATMega644P, ATTiny84, ATTiny44, ATMega32u4. So far only tested on ATMega 328/P
  • wireless programming (for more info click here, here and here)
  • the library needed for wireless programming is now here, install it in your Arduino/libraries folder (WirelessHEX for RFM12B)


Copy the content of this library in the "Arduino/libraries/RFM12B" folder.
To find your Arduino folder go to File>Preferences in the Arduino IDE.
See this tutorial on Arduino libraries.

Saple usage

TODOs (in order of priority):

  • Support automatic ACK handling
  • Refactor changing the SPI CS signal
  • Add support for hosting multiple radios on 1 MCU


No releases published


No packages published