(In response the a recent post, which appears to be related:
I suspect that there is a problem with the RF12 driver power-up initialization, specifically with this code in rf12initialize():
while (digitalRead(RFMIRQ) == 0)
rf12xfer(0x0000);
It's only a problem after true power-up, as far as I can tell, not after a reset (including one caused by the serial/USB connection. Which is not really surprising, since the reset only affects the ATmega, whereas the problem appears to be the RFM12B (it only gets a hardware reset on power up).
I'd like to chase this bug and nail it down, but last time I looked into this, it turned out to be very hard to reproduce. It may be related to timing, voltage levels, or perhaps moon phases?
Maybe we can nail this down by working together on this. What I'm thinking of is to check in a number of different variations of the code, so that you can get different versions and help compare what's happening on your end. The basic idea is to let you follow the changes on the time line over here:
All the changes will be in RF12.cpp - so if you want to get the latest version, which is revision 6548 right now, click on the number, then on "RF12.cpp" (not the "diff" link), then on the "Download" link at the top, to get that particular version.
I think I have one node which tends to take a few seconds when powered up. I'll look into this tomorrow.
If you've got a JeeNode, JeeNode USB, or JeeLink which seems to take a long time before it works properly once plugged in and powered up (seconds, perhaps even minutes?), then please keep an eye out for changes to RF12.cpp on the above time line.
I'd rather not clog this forum with the debug discussion we may need to figure this all out, so I've opened up an issue in Redmine which can be used instead for that discussion - it's at
I'll try to come up with some ideas on how to debug and fix this problem over the coming days. Given the erratic nature, the more people are willing to help with testing and feedback, the better our chances are of fixing this problem once and for all.
