A new,easy to use, RF Mesh Engine.

A new,easy to use, RF Mesh Engine.

A contractor/customer wanted his mailbox monitored (200 yards away), his outdoor shed door monitored (100 yards away) and his garage door. All mesh nodes required batteries for operation.

We looked at XBee but found a much better solution by going with Synapse wireless. The RF engines / modules by Panasonic, California Eastern Labs, Synapse RF and the new low powered, high speed RF engine by Atmel, which makes the AVR for the Arudino, is the cat's meow of mesh wireless. All the RF engines are hardware pin and software compatible by the built-in Python language embedded into each RF engine. Over the air programming and troubleshooting is a "SNAP" using the Synapse Portal development and deployment software. The RF engines will last for years, if programmed right, on 2 AA batteries.

Connecting the RF Engine to an Arduino is easy by the 3.3 VDC GPIO pins. (RF GPIO output to Arduino input - 3.3 VDC input is a high). A 3.3 VDC level converted is necessary in the other direction. (Sparkfun)

Synapse Wireless Link: http://www.synapse-wireless.com/
:sunglasses: :sunglasses: :sunglasses:

How is it on the cost when compared to xbees and how easy to get started with?

You need to call for prices....
Oh boy, that can't be good! :-X

Looks like they cost from $25 to $40 a piece.

Looks comparable in price but a with a 3 mile range..... :sunglasses:

That looks like just what I need.

What do you think the latency on one of these is?
I want to use them for my UGV control as I haven't managed to bag an RC plane controller yet.
I presume it will be better for my sensor data transfer and being that cheap with 3 mile range, I have to pick a few up.

Mowcius

A new,easy to use, RF Mesh Engine.

A contractor/customer wanted his mailbox monitored (200 yards away), his outdoor shed door monitored (100 yards away) and his garage door. All mesh nodes required batteries for operation.  

We looked at XBee but found a much better solution by going with Synapse wireless. The RF engines / modules by Panasonic, California Eastern Labs, Synapse RF and the new low powered, high speed RF engine by Atmel, which makes the AVR for the Arudino, is the cat's meow of mesh wireless. All the RF engines are hardware pin and software compatible by the built-in Python language embedded into each RF engine. Over the air programming and troubleshooting is a "SNAP" using the Synapse Portal development and deployment software. The RF engines will last for years, if programmed right, on 2 AA batteries.

Connecting the RF Engine to an Arduino is easy by the 3.3 VDC GPIO pins. (RF GPIO output to Arduino input - 3.3 VDC input is a high). A 3.3 VDC level converted is necessary in the other direction. (Sparkfun)

You got any more info on what you did/how you did it?

A blog perhaps?

Mowcius

First the Mailbox RF Mesh Mote:

We took the Synapse RFET Mesh Engine and put a rollerball microswitch (for the mailbox door) in series with the power source - 2 AA battery holder. On mailbox opening, the microswitch provides power to the RFET engine and does a "power on reset". The code sends a message to the portal software and also turns on a digital bit to our Arduino compatible microcontroller. The microcontroller sends this bit to the IO Bridge, on to the internet for display and logging on the IOBridge servers.

The packaging for the Mailbox RF Mesh Mote was 1 1/2" PVC pipe and end caps. We coated the RF engine carrier board with "liquid rubber tape" and put Sorb-it silica gel desiccant bags to remove any moisture in the PVC tube.

Ditto for the Shed RF Mote: Same design, same packaging and software as the Mailbox RF Mesh Mote.

As for the Garage Door RF Mesh Mote: We gutted the Skylink garage door electronics and put
our Synapse RFET Mesh Mote inside the enclosure. (We got this garage sensor for only $7.00 USD)
The plastic rod has a magnet on it and the old electronics had a magnetic reed switch.
We tore out the reed switch, from the old sensor electronics, and RTV it to the enclosure.
Again, upon activation, the reed switch provides power to the Synapse RF Mesh Mote.
Note: We tie wrapped a 2 cell AA battery holder on to the enclosure mounting bracket.

Sylink Garage Door Sensor Link - for ref. only:
http://www.google.com/imgres?imgurl=http://ecx.images-amazon.com/images/I/31jBnUY7X9L._SL500_.jpg&imgrefurl=http://housealarms.co.cc/skylink-gm-318t-household-alert-garage-door-monitor-sensor/&usg=__Xo0evnSkQq4ShR9TldpEJrWayhw=&h=500&w=368&sz=11&hl=en&start=6&um=1&itbs=1&tbnid=jTOHYj-uffBJDM:&tbnh=130&tbnw=96&prev=/images%3Fq%3Dskylink%2Bgarage%2Bdoor%26um%3D1%26hl%3Den%26sa%3DN%26tbs%3Disch:1


Python Code:

Note: Code "framework" was provided free from Synapse.

"""
Demo of accessing the "pin wakeup" capabilities of different SNAP ports.
This script just blinks an LED, and provides a sleepTest() function.
See also pinWakeup.py in the synapse subdirectory.

This mailbox mote is connected to the mailbox by a microswitch
tied to the power for the RFET. On activation, or door opening,
this mote sends a message to the portal "MailBox Mote 8C:FB Has Mail! " 
Also, the mailbox mote in 30 seconds goes back to sleep or by mailbox door closure, 
power is again disconnected from the mailbox mote.

Note:
       * To minimize power consumption remove all RS232 jumpers, and use VBAT power input.
       * Default all unused pins to output/low for minimum power consumption.
      
       
       
Battery Capacity:          2700 mAh   (2 @ ~ 1.6 VDC ea. = 3.2 VDC) (RFET Voltage range 2.7 - 3.4 VDC max)
Alseep Current:               0 mA
Awake Current                65 mA + 1 VDC ref. for battery monitor <--- recompute below figures!

Time Asleep seconds:      86400
Time Awake  seconds:         30
Sleep/Wake Cycle seconds: 86430
Average Current mA:        0.03 

Battery Life (hours)      105631.45
Days                        4401.31
Months                       146.71
Years                         12.23 <--- shelf life will reduce this!



Author: ArduinoAndy
Date: 4/18/2010
Revision: 1.0.b


"""

from synapse.pinWakeup import *
from synapse.platforms import *

sleepCounter  = 0
secondCounter = 0
BUTTON_PIN    = GPIO_5

portalAddr = '\x00\x00\x01' # hard-coded address for Portal

# Since there are currently no ZIC2410 based SNAP Engines,
# there are currently no GPIO on ZIC2410, just plain IO.
if platform == "ZIC2410":
    LED_PIN = 1
else:
    LED_PIN = GPIO_1
    

@setHook(HOOK_STARTUP)
def start():
    global BUTTON_PIN
    
    # Initialize LED pin as output - GPIO 1
    setPinDir(LED_PIN, True)
    writePin(LED_PIN, False)
    
    # Initialize all non user pins to output/low for minimum power consumption
    setPinDir(GPIO_0, True)
    writePin(GPIO_0, False)
    
    setPinDir(GPIO_2, True)
    writePin(GPIO_2, False)
    
    setPinDir(GPIO_3, True)
    writePin(GPIO_3, False)
    
    setPinDir(GPIO_4, True)
    writePin(GPIO_4, False)
    
    setPinDir(BUTTON_PIN, False)     # Input for Button Pin Tac switch 
    setPinPullup(BUTTON_PIN, True)   # Pullup Button Pin switch GPIO 5
    
    setPinDir(GPIO_6, True)
    writePin(GPIO_6, False)
    
    setPinDir(GPIO_7, False)         # Uart 1 Input - connected on 171 board
    #writePin(GPIO_7, True)
    
    setPinDir(GPIO_8, True)          # Uart 1 Output - connected on 171 board
    writePin(GPIO_8, False)
    
    setPinDir(GPIO_9, True)
    writePin(GPIO_9, False)
    
    setPinDir(GPIO_10, True)   
    writePin(GPIO_10, False)
    
    setPinDir(GPIO_11, True)         # Analog 7
    writePin(GPIO_11, False)
    
    setPinDir(GPIO_12, True)         # Analog 6
    writePin(GPIO_12, False)
    
    setPinDir(GPIO_13, True)         # Analog 5
    writePin(GPIO_13, False)
    
    setPinDir(GPIO_14, True)         # Analog 4
    writePin(GPIO_14, False)
    
    setPinDir(GPIO_15, True)         # Analog 3
    writePin(GPIO_15, False)
    
    setPinDir(GPIO_16, True)         # Analog 2
    writePin(GPIO_16, False)
    
    setPinDir(GPIO_17, True)         # Analog 1
    writePin(GPIO_17, False)
    
    setPinDir(GPIO_18, True)         # Analog 0
    writePin(GPIO_18, False)
    
    eventString = "MailBox Mote 8C:FB Has Mail! " # Message sent to Portal on POR from switch off/on from mailbox
    rpc(portalAddr, "logEvent", eventString)
    GPIO_0_ON(); # Turn on status bit to Gator
        
@setHook(HOOK_100MS)
def timer100msEvent(currentMs):
    """On the 100ms tick, pulse the LED"""
    global secondCounter
    global sleepCounter
    pulsePin(LED_PIN, 75, True)
    sleepCounter += 1
    secondCounter += 1
    if secondCounter >= 250: # In 25 seconds
        secondCounter = 0
        #eventString = "Test from 8C:FB "
        #rpc(portalAddr, "logEvent", eventString)
        pass
    
    # In 30 seconds - sleep forever or wakeup on Button pin press GPIO 5
    if sleepCounter >= 300:
        sleepCounter = 0
        GPIO_0_OFF(); # Turn off status bit to Gator
        writePin(LED_PIN, False) # Turn off LED
        sleepTest(0,0,BUTTON_PIN,True)  # power conserving mode 0 , wakeup ticks = 0 - wakeups on button press or POR

def sleepTest(mode, ticks, pin, enable):
    wakeupOn(pin, enable, False)
    sleep(mode, ticks)

def GPIO_0_ON():
    writePin(GPIO_0, True)

def GPIO_0_OFF():
    writePin(GPIO_0, False)
    
 -----------------------------------------------------------------------------------------

:sunglasses: :sunglasses: :sunglasses:

Synapse RF Mesh Design Additional Info.

#1. We bought the Synapse EK2100 development kit ($99.00 USB) which includes the Portal development software and one SN171 RF development protoboard with RF and one USB SNAP Stick which is a USB RF bridge to the PC. In all, this kit contained two RF Mesh Modules. All you need is ~ +3 VDC to power the units if your RF Mesh use is external to the PC.

#2. Some RF Mesh Engines are 3 miles "LOS" - "Line of Sight" This range could be extended by just having many distributed RF mesh engines powered up in the idle state.

#3. We included a battery monitor circuit in our RF Mesh Motes to indicate battery life.
See Synapse forum for more info.

#4. There is no need for RF Mesh central coordinators in the Synapse RF mesh network.

#5. The nodes are immediately able to communicate with each other.

#6. No PC software required - there is no need for software installed on a PC to coordinate the
nodes, they can think for themselves.

#7. Any node can talk to any other node - There is no central coordinator node with SNAP.

#8. There is a max. buffer packet limitation which you cannot exceed. You cannot send video due to this RF limitation.
:sunglasses: :sunglasses: :sunglasses:

There is a max. buffer packet limitation which you cannot exceed. You cannot send video due to this RF limitation.

:frowning:

But sending images would be ok? 640x480, probably only 320x240

How fast do you think I could send an image?

Mowcius

the python code looks easier than the API part of Xbee but how steep is the learning curve to use this with an arduino(given that i'm at the lowest rung on networks and wireless communication ). perhaps a quick tutorial would help.

the python code looks easier than the API part of Xbee but how steep is the learning curve to use this with an arduino(given that i'm at the lowest rung on networks and wireless communication ). perhaps a quick tutorial would help.

Indeed that would help.

The xbee can be very easy for simple stuff (just sending serial data) so even just a simple tutorial for this would be very much appreciated.

Mowcius

Thats a pretty good price, considering what you get and its capabilities.
Nice project =)

"...it was my 12-year old son who set it up"

  • Andy Griffis, CEO, StrongWatch Sensor

Just saw this flash up on Synapse Wireless home page so I presume it must be easy! ;D

the python code looks easier than the API part of Xbee but how steep is the learning curve to use this with an arduino(given that i'm at the lowest rung on networks and wireless communication ). perhaps a quick tutorial would help.

Download the EK2100 manual and the Synapse Ref. Manual. As for the Python scripts, there are
many to choose from - check the web-site.
BTW - I think they even allow you to download the PC Portal software.

:sunglasses: :sunglasses:

But sending images would be ok? 640x480, probably only 320x240
How fast do you think I could send an image?
Mowcius

The IEEE 802.15.4 specification limits packet sizes to 127 bytes.

BTW ... All docs, software, scripts, examples, projects, user Q/A can be found under Support /Synapse SNAP forum.
:sunglasses: :sunglasses: :sunglasses:

The IEEE 802.15.4 specification limits packet sizes to 127 bytes.

BTW ... All docs, software, scripts, examples, projects, user Q/A can be found under Support /Synapse SNAP forum

Yeah but I gotta register to look at that... :stuck_out_tongue:

Mowcius

Yeah but I gotta register to look at that...

The same way you registered on this forum ... use any username you want ... no purchase necessary.
:wink:

Looks like they cost from $25 to $40 a piece.
Looks comparable in price but a with a 3 mile range.....

We are still waiting on Atmel for their special RF Mesh Engine
The Atmel one - 2 Meg speed @ 18 ma. max. transmit current <--- This is the cat's meow.
The RF200P81 model RF Engine is also available in June with a MSRP of $18 (USD). It uses a low cost antenna without a powered amplifier, reaching LoS distances of up to 2000 feet.
:sunglasses: :sunglasses: :sunglasses:

The same way you registered on this forum ... use any username you want ... no purchase necessary.

Yeah I know. I'm just lazy :stuck_out_tongue:

I will go and register now :slight_smile:

Mowcius

@ArduinoAndy

Thank you for your post. This is what lead me to the RF Engine. I really think other arduino users would like these. Especially if they do a side by side comparison between XBees. This biggest downside to me is they are only available at future electronics. There are too many good points and advantages to list.

Price wise:
The lowest power module is $24 right now. http://www.futureelectronics.com/en/technologies/semiconductors/wireless-rf/rf-modules-solutions/802154-zigbee/Pages/2270387-RF100P86.aspx
The amplified version with an F antenna is $35 right now. http://www.futureelectronics.com/en/technologies/semiconductors/wireless-rf/rf-modules-solutions/802154-zigbee/Pages/6691737-RF100PC6.aspx
Then the amplified version with an RP-SMA connection is $39 right now. http://www.futureelectronics.com/en/technologies/semiconductors/wireless-rf/rf-modules-solutions/802154-zigbee/Pages/7782840-RF100PD6.aspx

For comparison the xbee pro rp-sma is $44.95 at sparkfun. XBee Pro 50mW Series 2.5 RPSMA - WRL-08768 - SparkFun Electronics

I used to use an arduino/Xbee combination everywhere I needed wireless data. Now I can just put a SNAP RF Engine in some of those places without the arduino. It is nice to reprogram the RF Engines over the air.

For some reason, the arduino community does not seem very interested in the RF Engines. They have filled a need for me. They have also created some needs for me. I couldn't find a cheap breakout board. So I made one. It is what pushed me to learn eagle and make my first PCB. (for anyone interested http://www.jcwoltz.com/2010/10/synapse-breakout-boards-available-for-sale/)

Beyond that, I needed to run RF Engines from a rechargeable battery. I have made a PCB with another guy, Serge Sozonoff begin_of_the_skype_highlighting end_of_the_skype_highlighting begin_of_the_skype_highlighting end_of_the_skype_highlighting, to charge LIPO batteries from a solar panel. An image:

The detail of the first batch are at: http://www.jcwoltz.com/2010/11/pcbs-back-and-next-steps/

The details haven't been written up, but the latest board:

All these designs and more are released under a CC BY-SA at: Google Code Archive - Long-term storage for Google Code Project Hosting.

If someone wants an arduino shield, I have started one. They could either ask to have some made, or take the design and make their own. An image:

I'm sorry for repeating some of this information. The RF Engines have allowed me to do what needs to be done quickly. I have done some basic testing and I'm able to reprogram an arduino wirelessly using RF Engines.