Nordic FOB, re-flashing the ATtiny24, who's hacked it?

I am curious if anyone has purchased the Nordic FOB and reprogrammed it (i.e. hacked it) for other purposes like general GPIO or such. I am looking at the Nordic transceiver boards which are currently about ~$24, and they require a microcontroller to add to this ($5 for homemade board or $16 for premade), so total of around $40. However the Nordic FOB is in total $24: includes antenna, Nordic transceiver (the best one out now, currently nRF24L01+), ATtiny24, 5 buttons on a single board, battery connector and even battery, and of course includes source code to the firmware for ATtiny24. I am not that familiar with ATtiny24 limitations however I have used PIC12, which is similar in tiny-ness.

  • Has anyone reprogrammed Nordic FOB? The ATtiny24 on Nordic FOB can be reflashed, I see it has a header for this.

  • I’d reverse the I/O’s to use the 5 buttons as outputs; contact pads already there if contact buttons are removed. (Battery won’t last 3 years as stated on the standard Nordic FOB since my firmware likely won’t be asleep as much. That’s OK.)

  • How much of the ATtiny24 is used with Nordic communication - I see it probably bit bangs the serial comm. Is there much CPU time left over? (For example, to add bit banging for a temperature sensor, or 60Hz wake up timer.) I could estimate this on a PIC12 but not for ATtiny24 so any guesstimates are appreciated. Does Nordic communication take up 80% or more of the ATtiny24?

With all that said, even as a debug tool it seems that hacking the Nordic FOB could be very cheaply done (wireless debugging by just sending the status of a couple pins is very useful, or add a custom serial debug protocol and it could send all kinds of register information of the target board during real time operation) - for $25, that’s really good.

Cheers

Your idea is sound. I have reprogrammed the Nordic FOB via the ICSP header and it works well in my application.

I suppose you can use the button IO’s as outputs though solder attachment will be a little tricky.

Sending a single button press does use bit-bang SPI in the Sparkfun factory code, but it takes so little time it’s not noticeable. The CPU is basically 100% idle (asleep, in fact, with the factory code) waiting for keypresses, and then has a tiny burst of activity to bang out the button press packet.

The factory load takes 0x1fc (508) of 2048 bytes of program flash (gcc 4.3.2).

This is a very versatile little unit with lots of headroom for expansion.

-br

billroy:
Your idea is sound. I have reprogrammed the Nordic FOB via the ICSP header and it works well in my application.

-br

THANKS!

Which version (speed) of the ATtiny24 is on the board - the schematic doesn’t state.

The one I have here appears to be a 10 MHz part. A quick look at the Makefile in the factory firmware shows it’s fused to run at 1 MHz:

F_CPU = 1000000

I went with that.

Hope that helps,

-br