|
Post by daenny on Mar 6, 2015 20:15:17 GMT
Hi everybody, I am currently waiting for an order of buono clones so that I can use the preferred 3.3V versions. But I have an arduino 5V here. Did anyone have success to connect the RFM69 to it? I connected it as described here: lowpowerlab.com/blog/2012/12/28/rfm12b-arduino-library/Using the 10k 4.7K voltage divider for SCK, SS and MISO but I running the arduino code I cannot get past radio initialize... Maybe someone else already tried with more success? Thanks! Edit: After more debugging I found out it hangs here: do writeReg(REG_SYNCVALUE1, 0xAA); while (readReg(REG_SYNCVALUE1) != 0xAA); do writeReg(REG_SYNCVALUE1, 0x55); while (readReg(REG_SYNCVALUE1) != 0x55); the read value is always 168 instead of the written 170...
|
|
|
Post by selcouth on Mar 7, 2015 5:32:47 GMT
Hi everybody, I am currently waiting for an order of buono clones so that I can use the preferred 3.3V versions. But I have an arduino 5V here. Did anyone have success to connect the RFM69 to it? I connected it as described here: lowpowerlab.com/blog/2012/12/28/rfm12b-arduino-library/Using the 10k 4.7K voltage divider for SCK, SS and MISO but I running the arduino code I cannot get past radio initialize... Maybe someone else already tried with more success? Thanks! Edit: After more debugging I found out it hangs here: do writeReg(REG_SYNCVALUE1, 0xAA); while (readReg(REG_SYNCVALUE1) != 0xAA); do writeReg(REG_SYNCVALUE1, 0x55); while (readReg(REG_SYNCVALUE1) != 0x55); the read value is always 168 instead of the written 170... I have mine hooked up with 10k/20k resistors. It works for the most part, but I did drop my power level really low because this particular board only puts out 40 ma. Check out the pictures here: homeautomation.proboards.com/thread/27/question-dio0-arduino-causes-crash
|
|
|
Post by daenny on Mar 7, 2015 13:04:02 GMT
Ok. So it seems that it is a good chance that the power supply is the issue here. I don't have a 3.3v regulator here but I have an old 3v supply that I found. That should be well in the specs (1.8-3.6v) as far as I remember from the data sheet of the rfm69hw. I will try with that and also play around with other resistor combinations. I was just wondering, since for the raspberry pi, the 3.3v pin is also only rated well below 100ma (I think about 40-50ma) and there it seems to work with the Python code. I already tried to power the rfm69hw from the raspberry pi and connect the rest to the arduino, but that also did not work. Anyhow I will update if I have more success. (Or China shipping is speedy and I get the buonos;) )
|
|
|
Post by daenny on Mar 8, 2015 17:02:50 GMT
So, I had some limited success: I tried an arduino Nano 5v clone, used 470R and 1K resistors as voltage divider and powered the RFM69HW over an external 3V supply (measured at 3.12V). That seemed to initialise correctly, but messages where never received on the raspberry pi gateway. 4.7K and 10K resistors did not work at all. Then I tried a Arduino Uno r3, same setup as above and it would reset itself in the setup and never get passed it. I connected the power of the RFM69HW to the internal 3.3v pin and it worked more or less correctly. It initialises and messages are sent and received to and from the raspberry pi gateway. However, a lot of the messages are dropped. I tried sending values using the temperature node sketch and took out all the reading of the temperature, just to send fixed values. As antennas I use simple wire of 8.2cm. So, I am not sure if the message drops are now due to the 5V arduinos or some other issues. Hopefully I will receive the Buonos soon so that I can do some further testing and investigating.
|
|
|
Post by selcouth on Mar 8, 2015 20:32:12 GMT
So, I had some limited success: I tried an arduino Nano 5v clone, used 470R and 1K resistors as voltage divider and powered the RFM69HW over an external 3V supply (measured at 3.12V). That seemed to initialise correctly, but messages where never received on the raspberry pi gateway. 4.7K and 10K resistors did not work at all. Then I tried a Arduino Uno r3, same setup as above and it would reset itself in the setup and never get passed it. I connected the power of the RFM69HW to the internal 3.3v pin and it worked more or less correctly. It initialises and messages are sent and received to and from the raspberry pi gateway. However, a lot of the messages are dropped. I tried sending values using the temperature node sketch and took out all the reading of the temperature, just to send fixed values. As antennas I use simple wire of 8.2cm. So, I am not sure if the message drops are now due to the 5V arduinos or some other issues. Hopefully I will receive the Buonos soon so that I can do some further testing and investigating. Have you tried lowering the power level in RFM69.h on the Arduino side? I've had the most success with it cranked all the way down to 2. Not sure how high I could go with the limited output of the 5v clone I'm using. In RFM69.h this is what you're looking for (but it'll be 31 if you haven't touched it): _powerLevel = 2;
|
|
|
Post by daenny on Mar 11, 2015 0:43:45 GMT
Thanks for the tip. It worked for me as well. I set it now to 20 (kind of randomly tested, but seems to work well)
PS: You do not need to touch the RFM library itself, you can set it in your own Sketch by using the setter function (that is a bit cleaner):
radio.initialize(FREQUENCY,NODEID,NETWORKID); radio.rcCalibration(); #ifdef IS_RFM69HW radio.setHighPower(); // only for RFM69HW! #endif radio.setPowerLevel(20); //<-- It has to be anywhere after setHighPower() according to the description
|
|
|
Post by selcouth on Mar 11, 2015 1:38:11 GMT
Thanks for the tip. It worked for me as well. I set it now to 20 (kind of randomly tested, but seems to work well) PS: You do not need to touch the RFM library itself, you can set it in your own Sketch by using the setter function (that is a bit cleaner): radio.initialize(FREQUENCY,NODEID,NETWORKID); radio.rcCalibration(); #ifdef IS_RFM69HW radio.setHighPower(); // only for RFM69HW! #endif radio.setPowerLevel(20); //<-- It has to be anywhere after setHighPower() according to the description
Thanks for that info. I'm learning this stuff as I go along!
|
|