My goal with this project was to enable everyone to build complete MySensors nodes including everything necessary (arduino, radio, sensors and also battery) in a compact volume, easy to solder and without any wire or tricky assembly techniques. NModule PCB transforms a ProMini board into a MySensors "base" node, with only a minimal extra volume. An extra row of pins allows connection to a variety of "shields" to build many different types of sensors (see the table below).
I have decided to use SMD version of the NRF24 module because:
The radio is the ONLY non through-hole component that is mandatory to build most NModule-based nodes: those who are confident with SMD components can use them to make more compact nodes, but everytime it was possible I added footprints for through hole components and nearly everything is possible with only basic soldering skills.
Don't be afraid by the looooong page, I'm just trying to give as many details as possible. When you have done it once, assembly process is really quick and simple :)
|Name of shield||Application/Sensors||Through hole option||Status||Link|
|TH Door||Low power sensor for Temperature, Humidity, Light, many other I2C sensors, Door/contact||Yes||Pre-version tested, PCB on the way for testing||https://www.openhardware.io/view/398/NModule-Temperature-Humidity-Light-Door-sensor-shield|
|ADXL||Low power accelerometer sensor + RTC to track time during sleep||Yes||Pre-version tested, PCB on the way for testing||https://www.openhardware.io/view/399/NModule-ADXL-accelerometer-sensor-shield|
|PIR||Low power PIR + light sensor||Yes||PCB on the way for testing||https://www.openhardware.io/view/400/NModule-PIR-sensor-shield|
|SSR Light||Main powered , two SSR relays for light control||Yes||PCB on the way for testing||https://www.openhardware.io/view/403/Dual-SSR-Light-actuator-shield-for-NModule|
|MiLight bridge||USB powered, 2nd NRF24 for MiLight control + WS2812B status leds||No||PCB on the way for testing||https://www.openhardware.io/view/402/NModule-MiLight-bridge-shield|
|2 buttons touch||Low power, 2 buttons capacitive switch sensor||Yes||PCB on the way for testing||https://www.openhardware.io/view/404/NModule-Two-buttons-capacitive-touch-switch-shield|
|Proximity||Low power capacitive sensor for proximity (10cm+) detection||Yes||PCB on the way for testing, might not work as expected :)||https://www.openhardware.io/view/401/NModule-Proximity-capacitive-sensor-shield|
|DC Fan||Control 12V DC fan or LED strip, 2xDS18, I2C for temp/humidity or proximity (APDS9930/9960)||No||PCB on the way for testing||https://www.openhardware.io/view/405/NModule-DC-Fan-PWM-shield|
I'm opened to any suggestion so if you have an idea for a shield/application that is not in this list, don't hesitate !
|Name of shield||Application/Sensors|
|Infrared||IR receiver + blaster|
|Plant||Plant/Soil moisture sensor based on the "chirp" sensor|
|RGB/RGBW||LED control + IR receiver to replace cheap (2$) led controllers using their boxes and remote controls|
NModule, like all existing shields, was designed with Eagle in free version. I am going to switch to KiCad soon so expect the boards to change format in the coming months. There are choices for the Gerber files :
If you are not familiar with soldering, review some soldering tutorials. It is very important to have good solder joints for battery powered sensors.
On the side, insert the screwdriver and push a little bit down, move progressively toward the center until plastic separator is moved down on all its length. Repeat until separator reaches the bottom of the pins and remove it carefuly. Remember, always do it millimeter by millimeter so you will not exert too much force on the header and not bend them. Put the bottom of the pins on a hard surface when you push down, this will also limit the mechanical force on the pins
Then, if you are planning to make a battery powered sensor, you need to remove leds and voltage regulator. I made a video that is low quality but shows how easy it is to unsolder led and voltage regulator on a pro mini, all you need is a tip that is not too big, clean (not like mine :)), and with a good amount of solder on it
From my experience with battery powered sensors using NRF24, you will get a better battery life if your arduino runs at 1MHz. It allows to run at much lower voltage (down to 2V) so you can get all the energy from CR2032 cell. But for that, you need to remove BOD or set it lower at 1.8V, as by default the BOD (Brown Out Detection) will reset your arduino at 2.7V. There are already some tutorials to explain how to write bootloader on the MySensors forum. Don't bother using a programmer, just use an arduino nano or uno with the ArduinoISP sketch (from the examples in Arduino software) and flash a 1MHz bootloader with 1.8V BOD (or no BOD).
After you have updated bootloader and BOD, connect a led and resistor on pin 13 and test again the blink sketch, check that the interval between blinks is correct. If not you have probably a problem with the frequency of the board selected in Arduino.
Now that your pro mini is ready, you can start to work on NModule PCB.
The NModule PCB is made of 2 main parts :
This is to manage the power for the full board: Arduino + radio. It contains:
This is the radio area, it contains :
This is the signing area, it contains footprint for ATSHA ic that manage the signing of the MySensors messages, and a pullup resistor. These components are only necessary if you want to enable the signing of the messages.
You should solder the radio module first, then the radio capacitor, then regulators if you need them.
Don't be afraid of soldering the SMD radio module, it's simple :
If you are interested in powering your node with CR2032, CR123 or 2 AAA batteries, keep the "power" board together with the NModule. For each battery type I put a picture with the outline (that you can cut) and the connection pins for the battery holders. I also give a link for the holder on AliExpress, but you can of course buy from any other shop, just use it as a reference for the holder type/shape.
You can power the board from an external power source using a terminal block with 5mm spacing (clear blue color) Example: https://www.aliexpress.com/item/100-pcs-2-Pin-Screw-blue-PCB-Terminal-Block-Connector-5mm-Pitch/32368640798.html
Then it is possible to use a through hole regulator. I didn't put a footprint for a specific regulator, but connectors for RAW, VCC and GND (yellow) so that you can use the regulator of your choice, usually they are using a TO92 package. Make sure you double check the pinout on the datasheet before you solder to the board ! There are footprint for input capacitors (blue) and output capacitors (pink). Small footprints are for 100nF capacitors (small round ceramic ones), while the others are for electrolytic capacitors and I can't give you the values: you have to check the datasheet of your regulator :)
It is absolutely necessary to use a big sized (>100uF) capacitor to help the battery when the radio is sending or receiving. Without this capacitor. Cell holder used : https://www.aliexpress.com/item/Hot-Sale-10pcs-lot-CR2032-CR2025-Battery-Holder-Original-Batteries-Button-Cell-Holder-Socket-Case-Free/32476465581.html
If you use a li-ion rechargeable battery (16340) you will need to use the xc6206 regulator in the "RDIO" area of the NModule. Holder used: https://www.aliexpress.com/item/5PCS-Battery-Holder-Case-Box-Clip-For-CR123-CR123A-Lithium-Battery/32781737406.html
|C3||Regulator datasheet||CAP_POLPTH1||CPOL-RADIAL-100UF-25V||Capacitor Polarized|
|C12||Regulator datasheet||CAP_POLPTH1||CPOL-RADIAL-100UF-25V||Capacitor Polarized|
|CR2032||BATTERY20PTH||BATTCOM_20MM_PTH||CR2032 Battery holder||AliExpress: Hot Sale 10pcs/lot CR2032 CR2025 Battery Holder ...|
|IC2||MCP1703CB/XC6206||SOT23||3.3V regulator for radio||AliExpress: 50pcs free shipping XC6206P332MR 662K XC6206 3.3...|
|M1||NRF24L01SMD||NRF24L01SMD||2.4 GHz Wireless Module based on NRF24L01 chip||AliExpress: 10pcs Component Kit NRF24l01+ 2.4GHz Wireless M...|
|M2||NRF24L01-PA-EXTSMD2||NRF24L01-PA-EXTSMD2||2.4 GHz Wireless Module based on NRF24L01 chip with preamplifier and external antenna||AliExpress: https://www.aliexpress.com/item/SMD-NRF24L01-110...|
|PROMINI||ARD_PRO_MINI_CLONE_NOPROG||PRO_MINI_CLONE_NO_PROG||ABK Pro-Mini Arduino Clone||AliExpress: 20pcs/lot Pro Mini 328 Mini 3.3V/8M ATMEGA328 AT...|
|U$1, U$3||BATAAA_PTH||BATAAA_PTH||BAT_AAA_PTH||AAA Battery holder||AliExpress: Wholesale (30Pcs/lot) 1 AAA Battery Case Holder ...|
|U$4||BATCR123_PTH||BATCR123_PTH||BAT_CR123_PTH||CR123 Battery holder||AliExpress: 5PCS Battery Holder Case Box Clip For CR123 CR12...|
|U2||IC_ASM1117_3.3V||SOT223||AMS1117 voltage regulator||AliExpress: 50pcs free shipping AMS1117-3.3 AMS1117 3.3V 1A ...|
|ATSHA||IC_ATSHA204A_CRYPT||SOT23-3||Security IC||AliExpress: https://www.aliexpress.com/item/Free-Shipping-10...|