Overview

This is a guide to assembling and programming and using the MotionOLED Mote Kit into a MotionMote or into an OLEDMote. Please read the whole guide before attempting to assemble it, to avoid any errors – the assembly order matters! Familiarize yourself with the parts and their function.

John’s DIY Playground overview, assembly and programming video:

Now available in BLACK and CLEAR acrylic (upon availability/request)!
Note: for the OLEDMote variant, the front cover is always clear/transparent acrylic (to see the display).

Assembled with the ultra low power Panasonic PIR motion sensor:

Assembled in black acrylic with the chinese HC SR-04 motion sensor:

Kit components

The kit contains most of the following components, depending on whether you order a Motion or OLED version. The MotionMote comes with the PIR sensor and an acrylic front cover with a cutout for this sensor and the LED. The OLEDMote comes with the OLED (as supplies last) and with a clear acrylic front cover with a cutout only for the LED.

Sample basic kit with HC SR-04 chinese PIR sensor (white acrylic):

Sample advanced kit with Panasonic ultra low power PIR sensor, BME280 atmospheric sensor, buzzer (black acrylic):

Battery requirement

Battery is not included. You will need to source your own Lithium-Polymer battery. This battery from Sparkfun or this one from Adafruit are good choices and will fit the provided case.

The maximum dimensions of the Lithium Polymer battery are the following:

Charging the battery – once your kit is assembled, you can charge the battery through the onboard charger whenever you plug it in through the USB port. The charging rate is set to 212mA (R3: 4.7k charging resistor, R2: 2K resistor yields 500mA charging rate). You should use a battery that is at least 500mAh. When charging, the onboard “CHRG” LED will turn ON, and will turn OFF when the battery is fully charged. If you have an OLEDMote loaded with the default sketch (see below) it will also show the battery voltage on the screen as it charges (need to turn it ON).

PIR sensor options

MotionMote R3 introduces the ability to use ultra low power Panasonic PIR sensors. These sensors are available in several variants (WL & VZ series, 5-12m range, 1-6uA idle current). The kit offers the EKMB1201111 5m range sensor (5m range). The active detection current of this sensor is ~30uA (during motion), idle current is 2uA.

When assembled with the Panasonic PIR, the total idle current of the unit will be around 10uA!

Please note that the Panasonic PIRs input voltage is 2.3-4V. For this reason, It’s recommended to use the following solder jumper to switch their VCC from battery source to 3.3V source (see the jumper options page for details):

DSC_9823

The default PIR motion sensor in the kit is the HC-SR501 as before. This uses around 60uA in idle, and active detection current is ~200uA.

Hacking the HC-SR501 for lower power

The default kit PIR sensor (HC-SR501) has a supply voltage range from about 3.9V to 24V. That is great but we’re operating from a LiPo battery that runs down from 4.2V when it’s fully charged. It will still last a long time without any modifications to the PIR sensor. When the battery voltage drops below 3.8-2.9V the PIR sensor will trip continuously. We don’t want that. We need the PIR sensor to work down to the 3.3V that will mark the battery discharged state. You will notice the PIR sensor has a diode and regulator.

  • The diode has a whopping forward voltage of 0.6V so at a minimum you will need to remove this diode. You can also short it (solder a wire to the 2 terminals of the diode.
  • The regulator has another 0.1-0.25V voltage drop so to get the absolute lowest voltage input range for the PIR you can remove the regulator as well (the regulator is linear so it will be very slightly inefficient the higher the input voltage).

The diode (and regulator) should come off easily if you repeatedly heat the terminals. Replace them with solder bridges as shown below.

Tip for easy desoldering: these are SMD devices and could be a bit challenging to desolder if you’ve never done it before. Luckily there’s a pretty easy trick: melt a bunch of solder to your iron tip – this will increase the thermal mass of the tip. For the diode heat one side then move to the other quickly, then back and forth until the diode just comes off. If this is a really small diode (some PIRs have small some larger diodes) then you can just bridge/short the diode terminals with a small jumper wire without having to desolder it.

If you want to make the PIR even lower power, then you need to take the regulator off and bridge the regulator VIN to VOUT. With a bunch of melted solder on your iron tip, touch the 3 leads of the regulator and it should come right off, then drop the melted solder on the center and right pads where the regulator was (as seen in the photo above).

Please note: once you make these mods, the PIR will take up to 5V, and will need to be wired correctly (there is no reverse diode protection any more). This is accounted for on the MotionMote PCB so no worries there. But be careful if you ever want to use it somewhere else.

Assembly

First, cut the headers for the Moteino from the provided female header. You will need two 1×13 (for Moteino), one 1×4 (for OLED) and 1×3 (for PIR motion sensor). See image below for how to do this correctly. Clean the cuts to make sure the header will fit the case:
Continue by soldering the headers and components to the main PCB in order shown in the photo below (small to large/tall). You will need to bend the pins of the switch at a 90 degree angle before soldering it. The LED is polarized! – the longer leg goes to “+” on the PCB.

If you plan to use a Panasonic PIR instead of the regular HC-SR501, do not solder the 1×3 PIR header, the sensor will instead be soldered directly to the PCB. Make sure everything is nice and flush with the PCB as this is important when putting everything in the case – when finished your PCB should look like this:

When done soldering make sure to trim the excess leads, pins and headers on the bottom of the PCB with a flush wire cutter. The bottom should be as smooth as possible to avoid damaging the LiPo battery. You may also want to add some masking tape or thin padding between the battery and the PCB to avoid any damage.

Split the male header in two 1×13 strips and solder them to the Moteino. Do not solder anything to the 1×6 FTDI header – you will program the Moteino through the USB once it is plugged into the MotionOLEDMote PCB. Also solder the antenna below the surface of the Moteino so it can be routed outside the case through the back cover (you can also keep antenna wire inside the case but performance will suffer the more wrapped it is).

Start assembling the case as sholwn below, attach battery and fit all the sides together, leave the front cover last.

Acrylic is brittle! Avoid putting too much pressure – use circular motions to mate two parts rather than forcing them into each other until they break. The material thickness varies between batches and making a perfect cut is impossible. Handle the case tabs with care and don’t apply a lot of pressure.

The final part is inserting the PIR sensor or the OLED.

Handle the OLED with care, the glass cover can break easily if mistreated and render the OLED screen useless. Also the acrylic cover for the cutout can break if forced too much, so handle it with care. You can always switch between them and change the sketch and change the behavior of this kit.

Finally – fit the front cover on top allowing the LED to protrude through the LED cutout. The enclosure parts are lasercut in such a way that they should fit together tightly, and that may be enough to hold the case in 1 piece, but you may add clear tape to reinforce the case, this will allow taking it apart later if required. If you want, you can also permanently bond a subset or the whole case with WELD-NO #3 Acrylic Cement, this provides a strong molecular bond. When you’re done you should have something looking like this:

If you plan to use a Panasonic PIR instead of the regular HC-SR501, do not solder the 1×3 PIR header, the sensor will instead be soldered directly to the PCB. A required acrylic standoff and the correct front cover will be provided with the Panasonic PIRs if/when these will be offered in the kit. Here’s what that assembly would look like:

DSC_9826DSC_9804

For the Panasonic PIRs, it’s highly recommended to use the 3.3V Moteino regulated source instead of the battery for their power input, cut the default and resolder the proper jumper like this:

DSC_9823

Lastly, the antenna wire should be peeked through the available slot on the back cover. For best signal the antenna should be kept straight rather than curled, as shown below. The cutout side slots should be set next to the buzzer and/or BME280 sensor (if any).

DSC_9808

Programming

You will program the Moteino through the provided USB-mini port on the main PCB, once your Moteino is plugged in. When plugged in the first time, it will act like any other FTDI device and your PC should install the driver automatically (if not, drivers are available here). Then a new serial port becomes available and you can select it in Arduino IDE. Select Arduino UNO as target board. Depending on your configuration, this kit can serve as either:

  • a motion sensor (MotionMote sketch is here). This will send a “MOTION” message to your configured receiver whenever it detects motion. This is a low power sketch that should last many months on a single charge.
  • a display module that shows messages on your Moteino wireless network (OLEDMote sketch is here). The provided sketch will display any messages on your network of Moteinos (same network ID, encryption key, frequency). It will also blink the LED, beep the buzzer for every received message and the side button allows you to browse through past received messages.
  • mailbox notifier (sketch here). This is very similar to the MotionMote except it will not blink the LED and it will wakeup periodically to send a message indicating when motion was last detected.

These are just sample sketches that illustrate the base functionality of these modules. You can modify and customize them to fit your needs.

Don’t forget that the 128x64px OLED screens can have different pin configurations, make sure to verify the pins order before you connect it to the MotionMote PCB. The default configuration is [VCC, GND, SCL, SDA], but for convenience there are jumpers on the back of MotionMote to allow swapping VCC and GND.

Settings

The MotionOLEDMote PCB has a few solder jumpers on it. These allow you to change the current default behavior of some functions. On the front there is the [DTR]/RTS setting for FTDI (DTR is default). On the back there is a “current test” jumper that allows you to measure the current in a more convenient fashion – just cut the jumper, and solder two small wires to the 2 pads or two adjacent pin holes – these can then be hooked to your multimeter to measure current consumption. The “Always ON” jumper is open by default, but allows you to use it in place of the power switch – just solder this jumper and the battery will power the circuit at all times. The “OLED +/- swap” jumper allows you to use OLEDs that have VCC and GND swapped. See picture below that visually explains these jumpers:

Revisions

This revision had been tweaked for lower power overall. In addition it allows for Panasonic ultra low power PIR sensors to be installed instead of the default chinese HC-SR501 sensors. These Panasonic sensors are much smaller and available in idle consumption as low as 1uA, although they come at a steep price. It also features an optional BME280 temperature/humidity/atm-pressure sensor. The power switch has changed to a much more robust part. There are some solder jumper pad changes and new jumpers that allow more flexibility. The charging rate was changed to a default of 212mA (4.7K resistor). Pullups (4.7K) were added to SCL/SDA pins. An antenna through hole was added so it’s easy to route it straight to the back cover slot. A charge enable solder jumper was added – this is useful when powering from 3XAA/AAA batteries – cut it open to disable charging, resolder to re-enable it.
DSC_9817Revision2 (R2)

Revision2 changed to PCB ENIG gold finish and fixes some bugs, most notably the FTDI chip addition of 27ohms inline on the D+/D- traces for better signal integrity. Below are some shots and details of these changes.