Go Down

Topic: RFM12B-S2 + Arduino Uno R3 Not Transmitting? (Read 2960 times) previous topic - next topic


Feb 05, 2012, 06:41 pm Last Edit: Feb 05, 2012, 06:48 pm by VccDood Reason: 1
I have an Arduino Uno R3 using +5v connected to a RFM12B-S2 board with a custom pcb (attached).  The pcb is basically the same as jeelabs and sparkfun's boards and is powered by +3.3v with voltage dividers for the 5v inputs.  I have imported the jeelabs library (RF12 and Ports) and uploaded RF12Demo and flashed/reflashed the Rfconfig() and set groups/nodes/frequencies.  I also have a +3.3v breadboard Arduino connected to a similarly (all voltage dividers bypassed) wired RF12B custom pcb.  According to everything I've read, I should now be able to upload the pingPong sketch and these things should just work.  The problem is they aren't working, at all.

I have checked both boards for voltage and the proper voltage.  Everything looks fine.  I've uploaded sketches that are supposed to flood the airwaves, but a scanner tuned to 433MHz gets nothing.  I disconnected the RF12b modules from the Arduino and get exactly the same results on the serial monitor.

Here's typical serial monitor (looks the same with or without the RF12B module attached):
Code: [Select]

[RF12demo.8] D i4* g212 @ 433 MHz

Available commands:
 <nn> i     - set node ID (standard node ids are 1..26)
              (or enter an uppercase 'A'..'Z' to set id)
 <n> b      - set MHz band (4 = 433, 8 = 868, 9 = 915)
 <nnn> g    - set network group (RFM12 only allows 212, 0 = any)
 <n> c      - set collect mode (advanced, normally 0)
 t          - broadcast max-size test packet, with ack
 ...,<nn> a - send data packet to node <nn>, with ack
 ...,<nn> s - send data packet to node <nn>, no ack
 <n> l      - turn activity LED on PB1 on or off
 <n> q      - set quiet mode (1 = don't report bad packets)
Remote control commands:
 <hchi>,<hclo>,<addr>,<cmd> f     - FS20 command (868 MHz)
 <addr>,<dev>,<on> k              - KAKU command (433 MHz)
Current configuration:
D i4* g212 @ 433 MHz
> 3i
C i3* g212 @ 433 MHz
> 0w
> 2a
-> 1 b

Any suggestions on how to troubleshoot these?


Feb 05, 2012, 09:38 pm Last Edit: Feb 05, 2012, 09:43 pm by MarkT Reason: 1
It won't work without a pullup on pin 6 (nRES)??  I always use a pullup on pin3 (FSK/DATA/nFFS) too but not sure if that's necessary.  You should have a groundplane on that PCB otherwise the RF is going to flood the signal lines...
[ I won't respond to messages, use the forum please ]


Oh, and for troubleshooting look at the power consumption of the module, it jumps on transmission.  Those resistive dividers might be better as 1k and 2k2 if you want fast edges and less RF bleed-through into the logic circuitry, but the ground plane is the more important precaution...
[ I won't respond to messages, use the forum please ]


It won't work without a pullup on pin 6 (nRES)??  I always use a pullup on pin3 (FSK/DATA/nFFS) too but not sure if that's necessary.  You should have a groundplane on that PCB otherwise the RF is going to flood the signal lines...

The top of the pcb is solid copper except at the vias/holes, so groundplane is as good as possible for the size.

Ok, 22K pull up resistors added to nRES.  No change.


Hmmm, double check connections, double check arguments in calls to the library, put 'scope on the SPI signals, monitor current consumption...  It can be tricky to debug such stuff. 
[ I won't respond to messages, use the forum please ]


Greetings, i have done a similar custom board with the same library from jeelabs, at first it doesnt work as expected, but after double check the code and drink some coffes, the bugs appeared, cant attach the schematic at this moment, but you can figure the pinout.

i recommend to try first the packetBuf.ino demo, as it broadcast to all nodes in the same group.



That's a nice shield!  Can I get the Eagle files, per chance?

OK, I desoldered the chips from the boards and mounted them on a breakout board.  I mounted the breakouts on a couple of breadboards and hooked up the arduinos.  They now transmit.  So, part of the problem must have been the traces under the chip in my pcb making connections to something on the chip.  But, the plot thickens...

As I said, I have an Uno and a breadboard with Atmega328.  The only difference in the two is that I am running the breadboard arduino on 3.3v (still at 16MHz though) and the Uno board is native 5.0v with 3.3v pin powering the RF chip.  I use the Uno to program the Atmega chip and RFchip which I then install on the breadboard arduino.  The breadboard arduino appears to transmit as expected (floods when using poller sketch and does not when using RF12_Demo).  However, the exact same RF chip and Atmega chip when used on the Uno board does not transmit  :smiley-eek:.

I can get it to transmit (according to change in channel noise on my scanner) if I disconnect the D2 pin (nIRQ) from the Uno, but at no other time.

So, I'm back to the drawing board. 


Mostly solved!

I have poller/pollee now functioning.  For anyone else having troubles, using the 433 MHz RFM-12B-S2 and the Jeelab libraries, you must review the whole library and be intimately knowledgeable on what and how each sketch is written.  The sketches don't seem to work "out of the box."  You need to understand RF_initialize, RF_config, and how the groups, nodes, and frequencies are assigned.  They seem to be set differently in each sketch and IMHO don't provide a consistent approach to how to setup each side of the RX-TX between sketchs.

I think I could have implemented my own RX-TX sketch with less effort than trying to get my first comm with this Jeelab library working.

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131