Archive / March, 2015

Motion Plug code updates

Seb Madgwick IMU demoDemo by SebMadgwick

Our Dutch collaborator, Jean-Claude Wippler, recently pointed us to more polished code on GitHub for the MPU9250 (Motion Plug). This board uses the Invensense MPU9250 and includes 3 axis: accelerometers, gyros, and magnetometer. The software was written for something called rpicopter, work that appears to be significant group effort to us.

Screen shot 2015-04-01 at 2.39.57 PM

We have simplified the Arduino sketch and turned it into an Arduino library. The library only supports hardware I2C pins on whatever Arduino or Atmega chip you’re using, because it uses 400khz high speed I2C. There are settings for the low-pass filter which only affects the Gyro, as far as we can see. It default is 188Hz (defined in inv_mpu.cpp). The library also supports the Teensy.

The library outputs Yaw, Pitch, and Roll (standard orientation headings in the flying business) smoothed out in an almost magical way. This comes courtesy of some very fancy math functions.

“A quaternion is a four-dimensional complex number that can be used to represent the
orientation of a rigid body or coordinate frame in three-dimensional space.” says Sebastian O.H. Madgwick, who wrote the sensor fusion algorithms which bear his name.

In any case, all the quaternions are now hidden out of sight (in mpu.cpp), the library works really well, and the Arduino sketch is easier to read and modify.

By Nadya on March 31, 2015.

RFM69 Radios

New Radios!

The RFM69CW radio module by HopeRF is a compact, powerful radio transceiver module for swapping data packets in the 868 MHz ISM band, using standard and enhanced FSK modulation. The radio is great for sub-compact designs; just 4mm of mounted height from using an SMD precision crystal.

Though consuming a similar level of power, the RFM69CW receiver section can decode fainter signals than the classic RFM12B, so it has better receive sensitivity. The transmitter section *maximum* output power is +13dBm, considerably higher than the +5dBm of the RFM12B. The current drain at these (adjustable) higher power settings is correspondingly higher though. With the better receiver sensitivity, many applications will not need to use the higher transmit power settings, potentially saving on battery life.

Compared with the RFM12B, pairs of RFM69 modules will generally have greater range and/or better penetration of walls/ceiling than when using pairs of the classic RFM12B.

The physical module is compatible with the PCB footprint on all current JeeNodes and JeeLinks. For details of the fast-evolving level of software support, see this Forum topic on the JeeLabs forum.

Control is via a fast SPI bus with reduced loading on the microcontroller, another nice advantage with the radio. The recommended power supply range of 1.8 < Vdd < 3.6 V can squeeze almost the last energy out of depleting batteries without needing a boost converter.

An antenna must be connected to RFM69 module – for 868 MHz, an 82-mm (quarter wavelength) wire can be used (not included). Operation without an antenna at the higher transmitter power levels risks permanent damage to the output stages.

Marking Convention: a yellow spot on the top of the transceiver chip indicates optimized for the 868 MHz ISM band. You can have confidence that you are building your project with a fully functional module!


  • More transmit power than the RFM12B (but more current required).
  • Better sensitivity on receive.
  • An RF signal strength is available
  • Fits the current RF12B footprint
  • The JeeLabs driver fully supports the radio with only one definition change at the top of a sketch.
  • RFM69 and RFM12B radios may be mixed in a JeeNode network and talk to each other.

For detailed specifications, see HopeRF’s RFM69CW documentation.

The RFM Board provides convenient signal breakout with an option for connecting to 5V power systems.

Digital Smarties (The JeeLab Shop) stocks a 868 MHz version of these modules with EU prices. Both Modern Device and Digital Smarties (Jeelab Shop) have the 434 versions.

Right now we are selling these on RRM12B boards and JeeNode kits.

By Paul Badger on March 19, 2015.