NRF24 radio lessons learned

A project log for Aurai - retrofit dumb air conditioners

Helping traditional air conditioners join the Internet of Things.

Thomas RThomas R 08/16/2014 at 21:110 Comments

I finally have ping firmware running on the hub & spoke breadboards that can talk to each other. This was a painful process. I ended up having to refer to a third party library for a couple gotchas but the core of the pain was missing that I had typo'd one operating to be a register WRITE than a register READ.

The IR LED for the spoke is on pin 5 (OC2B). OC2A is pin 17 (MISO). I found that whenever I had the timer set up, the SPI hardware would always read a low on MISO (verified this with a logic analyzer) - even if I had cleared COM2A0:1 "OC2A set to normal operation". Resolved this by basically cleaning up *all* timer code once the IR is sent. In a future, I'll move the IR LED off this timer - maybe to OC0A (pin 12). I wish I knew why this was happening, though.

EDIT: I actually found a forum post that describes exactly the behaviour I am seeing, but on ATxMega32E5. Atmel told this person that it is a hardware flaw in the device. I'm unsure if the same truth applies to my situation, but the symptoms are identical.