Using RFu with RFM12B

I'm a little confused about what I should need to do to get an RFM12B working with a RFu.

This page here suggests that if I had a v1.1 board I might need to remove two resistors and place a jumper to use the RFu with an RFM12B. Does this mean I don't need to make this change on a v1.2 RFu?

Do I still need to use a modified version of Jeelib (github.com/openenergymonitor/RFu_jeelib/blob/master/README.md) or can I use the normal one?

glyn.hudson's picture

Re: Using RFu with RFM12B

Hi, 

If your have bought a RFu328 board (V1.1 or V1.2) from Ciseco you will need to remove the resistors and or spin one around as detailed here: http://openmicros.org/index.php/articles/88-ciseco-product-documentation/268.

Yes, you will need to use the RFu_JeeLib library instead of the standard JeeLib on the RFM12B. It you have the V1.1 it's critical that you don't ever upload the standard JeeLib since this puts the board into a reset loop which can only be recovered from with a bootloder flash. This nasty bug was fixed on V1.2

cybergibbons's picture

Re: Using RFu with RFM12B

Thanks Glyn - yes, I made the mod to one board and it worked. I thought I might have been missing something as the Ciseco page suggests you don't always have to do it.

I like these little boards, I hadn't considered them until I bought OpenEnergyMonitor gear.

elaz's picture

Re: Using RFu with RFM12B

Hi,

let me ask one question about RFu328 v1.3 and RFM12B (with modified Jeelib).

Because I really have problems to make it work proper.

I followed instructions on http://openmicros.org/index.php/articles/88-ciseco-product-documentation... (it just about the resistors which has to change a little)

and

https://github.com/openenergymonitor/RFu_jeelib.

After uploading the RF12demo.ino from modified jeelib to my RFu326 v1.3 (with RFM12B on it) it did not work.

I mean It does not enter in a reset loop( like in version v1.1), but it did not recieve or send anything. After looking into the code from modified jeelib I found out that:

Setting for nINT/VDI pin to always be an input, was not set.

    rf12_xfer(0x90A2); // nINT,FAST,134kHz,0dBm,-91dBm - set nINT/VDI pin as output to stop it interfering with RFu reset

So I add this line on line 599 inside RFu_RF12.cpp. This makes RFu328 work with the demo-sketch for sending out testpackeages. (option "t" in the dialolg of RFM12B configuration)

But it did not recieve packages correctly. Only "?0" was recieved instead of correct data (which is correct because I double check this on an old openenreryMonitor board (http://wiki.openenergymonitor.org/index.php?title=Raspberry_Pi))

That brings me to the question: Did I make something wrong or are there more differences to the "normal" setup which are may be not documented?

 

 

 

glyn.hudson's picture

Re: Using RFu with RFM12B

Are you sure yor using RFu_JeeLib? Have you changed #define at the top of RF12 demo to be #include <RFu_JeeLib.h>. This was actually set as JeeLib by default, I've just made change on GitHub

I've just checked and nINT is indeed set as output in RFu_JeeLib, see line 580:

https://github.com/openenergymonitor/RFu_jeelib/blob/master/RFu_RF12.cpp

elaz's picture

Re: Using RFu with RFM12B

Hi thank you for your fast reply :-D, this is GREAT!

Comming back to your question: Yes I've changed the #include in the demo sketch to read the modified version. hmmm ... so it looks like that this is not the problem.

Mmay be it is better to delete my current RFu_jeelib and download and install it again, to be sure that I did not do anything strange here.

Let me try this again this evening.... (hopefully I did not burn the RFM12B modul in the times I uploaded the first sketch via FDTI 3,3V wire to my rfu328. May this little overvoltage could also explain the strange behaviour of this setup......

I used a FTDI wire (5V VCC-3.3V I/O)  http://www.exp-tech.de/Shields/Schnittstelle/FTDI-Kabel-5V-VCC-3-3V-I-O.... which outputs 4,1V to VCC and not 3,3V as described in the manual,I realized this later, may be too late :-(  ). And may be my RF12B is half burned now. (Is there a way to figure out that tjhe RFM12B is still full functional ?)

Let me ask one more question please: does the modified version of jeelib supports command "sendnow(0,&stuct, sizeof(struct))" from the original jeelib?

I just wanted to know because I use this command in all my other sketches, which are installed on some other devices like jeelabs Micro (ATTiny) and on a Arduino mini pro with an RF12B attached, or the lovely old school board kit for the rapsberryPI from Martin 3 yeas ago.

 

Just as a footnote:

An other strange thing was that I follow this guide here http://openmicros.org/index.php/component/kunena/10-ciseco-support/7007-... to wire my FDTI and found out that I need 0.2uF capcitor to let the upload run on rfu328.

If I use only 0.1uF it will not reset. -> Do you think I may be have a "monday prodction" which is may be little worse, because may things with this board are a little bit beside documentation in this time.

Best Regards from germany

 

 

 

elaz's picture

Re: Using RFu with RFM12B

Hi again,

after reinstalling RFu_jeelib from github nothing changes. But I read the Rfu_RF12.cpp and uncomment the line reffering to RFu328. The behaviour is the same as before.

I leave this one with as comment because if I uncomment this it stops working the demosketch

// pin change interrupts are currently only supported on ATmega328's
//#define PINCHG_IRQ 1    // uncomment this to use pin-change interrupts

After triing to use my own sketches starting which normally starts with an  init f.e.  this:

#include <RFu_JeeLib.h>

.

Serial.begin(9600);
  rf12_initialize(6,RF12_868MHZ,210); // NodeID, Frequency, Group
  Serial.print("RFu328_RFM12B");

nothing happens on recieve or send.....:-(

 it does  not looks  good to go on with this board. Or am I wrong?!

 May be you have any Ideas which could help running my programmed sketches on this hardware? or explain why a trival initialization will not work.

Best Regards

 

 

 

 

elaz's picture

Re: Using RFu with RFM12B

Hurray suddenly it works !!! (after changing the the Rfu_RF12.cpp.

Rfu328 is recieving and sending well formed packages via rfm12B.

One question left: Do you know why the function rf12_initialize() doesn't work?

Or is there on other function who can setup the nodeID, frequenzy and group while sketch is running?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.