Support for cc3200


We are currently developing an WIFI support in RIOT-OS for the CPU cc3200.

Our implementation is based on the code of Attilio Donà and the vendor libraries of Texas Instruments.

After the first hardware support for this CPU currently we try to implement the WLAN support.

For this goal we have some questions:

  • Is there already an implementation for any WLAN IEEE-802.11 CPU in RIOT-OS

  • Is there an IPv4 support or only IPv6

  • Is it correct that it is only necessary to wirte the cc3200_netdev.c-File.

Thanks for your help and tips.

Best Regards

Markus Härtinger


Hi Markus, I don’t know about the library (usually try not to include vendor library, due to licensing issues on the one hand side and since they aren’t in many cases the most optimal solutions size-wise, on the other), but it is basically up to you which API you would use as a wrapper. sock is our high-level API networking, so you basically just have to implement the API around the device driver. However, for sock there is already a wrapper around NETAPI. So if you choose NETAPI you would not need to implement it. NETAPI is the internal inter-modular API of our network stack, so it is a little bit more complicated to implement, but it would basically allow for dual-stack operation if you do so. On the matter of where to place the latter: You would need to make it a handler for GNRC_NETTYPE_UDP or GNRC_NETTYPE_TCP, respectively.

Cheers, Martine

Just few considerations, I hope they are useful

I implemented the WLAN support using the Texas Instrument simplelink driver.

It is something I never shared because it worked fine for me but it was not a state of the art piece of software, it lacks review and clean up …

My approach was to implements a RIOT module that manages the communication with the cc3200 network wifi processor.

Just to render the idea, this is the .h interface module:

Greetings Attilio


    __- __Is it correct that it is only necessary to wirte the     cc3200_netdev.c-File.

The CC3200 delivers a full embedded network stack right? If so, I would rather suggest to either implement against GNRC's NETAPI [1] or the sock API [2], rather than netdev. Though it is the CC3200 network device, porting it to the netdev API might lead to problems that API rather thought to be used for link-layer networking.

Another possibility would be to stay at the netdev level and only use the device's L2 capabilities.

For that we probably need some netdev extensions for handling the setup of a WiFi network (e.g., search for networks, join & set credentials, ...). Apart from that, WiFi behaves very similar to ethernet.

No need to limit this to GNRC, and moreso, no need to go with the vendor IP stack.