SAMR21: SPI, at86rf233, I2C


I have seen the pull request from Troels51 concerning the SAMR21. Is that normal that it uses the transceiver at86rf231 instead of the at86rf233? The SAMR21 Explained pro board uses the at86rf233 transceiver so something should be changed.

By the way, Rane implemented the SPI here: Did you implement yours from his source code?

Finally, I’m almost done with I2C, I just need to check each function (i2c_read_regs works).


Hi Baptiste,

We did a little study on both and ended up with the conclusion, that actually both transceivers are quite similar. The xx233 is a little newer and has some added functionality regarding power management. But the basic register set (and register addresses) are identical which makes the x231 driver work perfectly also with the x233 device. Maybe we can rename the driver to at86rf23x and enable the additional features for the x233 per define. So feel free to open a PR! Yeah! Looking forward for the PR! Cheers, Hauke

Hi Baptiste,

We looked at both transceivers in detail and found, that they are more or less the same. The x233 is the newer brother of the x231 and hast some more options for low-power operation. But the base set of configuration registers and register addresses is identical for both devices, so the x231 driver works perfectly for the x233. Maybe for the future it would make sense to rename the driver to ‘at86rf23x’ and make the additional features of the x233 available per compile flag?! Feel free to propose a PR here :slight_smile: Very nice, looking forward to it! Cheers, Hauke

We wrote it ourselves. Will share. :frowning:

Thank you for your answers. I think we should follow the Hauke’s idea with a flag to select the 233 and a common driver for 23x.


There is also an rf212 which is a 868 MHz/900 MHz variant of the 230, and uses the same driver as rf230 (at least in Contiki) with the exact same commands and register addresses.


Hello Baptiste,


Here are the PRs: