CC2538 development

​I see that recently there’s been work being done on getting RIOT up to speed on TI’s CC2538. I see that Hauke was working on a port to the chip in his repository[1] back a few months ago as well as a board support[2] for the OpenMote[3]. There have also been some merges from a masked developer that goes by the name HexLuthor (possibly Ian Martin previously of Redwire and now on the team at Loci Controls) had support for the CC2538DK pulled[4] into the master RIOT repository just last week.

I have a dozen CC2538 chips in a drawer and half a board sketched out that I desperately need to finish. Maybe this work will finally be the kick in the ass I need to finish my design and get these spin the first set of boards.

In any case, it looks like there’s starting to be more interest in the little chip that I’ve grown quite fond of. I’ve glanced at the tree and things look like they’re shaping up quite fast. One thing that has me a tiny bit worried was Hauke mentioning[5] that TI, for reasons passing understanding, has thus far chosen not to share the CMSIS headers for their CC253x series of micros. How big of an issue is this going to be? It it simply an inconvenience? Are TI’s “crappy” (Hauke’s word, not mine) libraries going to be enough to get all the functionality (e.g. power states, radio control, etc…) and peripherals on this chip working well enough for production use? Would it be worth the effort to contact TI about these headers, maybe releasing them simply slipped their mind (I know it’s a long shot). I’d bang on their door, or simply email them, and ask but such a request would probably carry far more weight if it were to come from a core member of the RIOT team.

Hauke, do you have some OpenMotes that you’re working with? Did you spin them yourself? What’s the functionally like with RIOT? Had I known about the project before I started designing my boards I may have opted to go with their hardware instead, I suppose there’s nothing stopping me from still doing that.

I’m quite ecstatic that work on this chip has begun in what looks like a serious way. I’m going to do my best to put aside as much of my other work as possible, sleep only when my head hits the keyboard, and get my boards finalized and a prototype set run so I can help out.

Thanks to everybody for all the excellent work.

Adam Hunt


[2] [3] [4] [5]

Hi Adam,

Working on the port is a little much on my part, all I did was creating the right file/folder structure and putting the linker and startup files in place… The actual work was done by HexLuthor et al (Good job bye the way!). As I said, I havn’t really programmed the CC253x so far, so I can’t tell how the supplied headers by TI do work in practice. To get the CC253x’s functionality in place, I think the supplied headers should be sufficient. For RIOT it is however important to code the low-level stuff in a portable/configurable manner, so we con use the CPU code for as many boards as possible. This is possible with CMSIS-style headers in a quite efficient fashion - For TI’s headers I doubt it is possible in a similar, elegant way, so thats where the ‘crappy’ came from. But as I said, I havn’t personally used these headers, so I would be glad if somebody could prove me wrong! We got the Motes to play with from the OpenMote team at the last IETF in Toronto… I am not quite up-to-date with the current state of the port, but there will be some more effort put in by next month. So from my opinion I could make sense that you also use these instead of your own design (if that fits with your requirements), so we could join efforts on the OpenMotes! Don’t forget to eat :slight_smile: Best, Hauke

Hi Adam,

after communicating yesterday I actually looked into (and rebased) my port for the OpenMote. I am happy to let you know, that with this [1] PR we have basic support for the OpenMote in RIOT!

Cheers, Hauke


Great! I’ll take a look at the PR when I get back to the office.