FreeRTOS-Plus-TCP Wifi Module w/Driver

We have a custom SAME5X board up and running with FreeRTOS IP stack and use a KSZ8091 PHY for an ethernet connection. We are now looking to add WiFi functionality, and was looking for suggestions for a WiFi module that could connect over SPI (all out of SDIO), that does not need to use a built in IP stack (like the esp8266), as we already are using one and would like to be able to switch back and forth between ethernet and WiFi with minimal core application code changes. Does anyone have an recommendations for modules that are supported by FreeRTOS-Plus-TCP (network interface and drivers already written)?

Thanks for any recommendations.

Hi @cpatterson
Welcome to the FreeRTOS Community Forums.
The FreeRTOS+TCP suite has a SAME5X port intended to work with the SAM GMAC ethernet interface .
For adding a custom WiFi driver to the port, you can refer to the porting document for some insights .

@karahulx , Thank you so much for your reply. We actually are using that exact SAME5X port, that was so kindly provided by the community. What we are trying to avoid is trying to write the network module port from scratch, and we are hoping this is a common enough request that there is a module that has a driver prewritten. We have a lot of flexibility with our hardware choices at the moment, and are looking for the lowest effort software development route. So, if there is any popular module that is already ported to the SAME5x or similar controller. I would greatly appreciate any community members suggestion.


@cpatterson @karahulx

I am also using the FreeRTOS Plus TCP SAME5X port with a working wired Ethernet / Berkeley Sockets configuration and am looking to add Wi-Fi to this project. I am hoping to find a popular Wi-Fi module that already has its port files written (NetworkInterface.c, etc) so that they don’t have to be written from scratch.

This network interface was written for ATWILC1000. It seems to have dependencies on some files from (now deprecated) amazon-freertos. Making it work will not be straight forward and will require taking out code from amazon-freertos like iot_wifi.c and adapting it.

Thank you, @aggarg.

(FYI my project is using a custom board with a SAME54P20A MCU, designed to match the Microchip SAM E54 Xplained Pro board quite closely.)

This is the best example that I’ve been able to find so far, which is based on the WINC1500 Wi-Fi module and Microchip SAM E54 Xplained Pro board and which appears to use FreeRTOS-Plus-TCP:

Unfortunately, I’m not allowed to post links to this forum. The code is on GitHub, owned by MicrochipTech, amazon-freertos repo, mchpdev branch, then under vendors > microchip > boards > same54_xpro > ports > wifi.

This claims to support the WINC1500 on the Microchip SAM E54 Xplained Pro board.

This is also based on amazon-freertos. This one looks like it may require taking code out of aws_wifi.c and possibly iot_secure_sockets.c.

I already have FreeRTOS-Plus-TCP up and running on this board, working very well with wired Ethernet. The task now is to find a suitable Wi-Fi module to integrate into this code.

Another relevant link would be through Microchip Harmony v3 WINC1500 WINC3400 Wi-Fi AWS Cloud Examples Solutions in the “aws_cloud” repository in the “H3 ecosystem.”

“H3 WINC1500 WINC3400 Wi-Fi AWS Cloud Support”

Let us know if you face any issue. If you make it work with WINC1000 or WINC1500, feel free to make it available to everyone!

Hello all!

I’m also quite interested in this topic.

The first wifi chip I added to our FreeRTOS+TCP was ATWINC1500; it’s a rather nice one, it was easy to integrate into +TCP, because it’s working with raw wifi/ethernet frames. Unfortunately we can’t purchase any more, and some functionalities (EAP? I can’t recall it exactly) are simply not working, but would be needed by our customers.

We have made a couple of attempts to find the best wifi module. Most wifi devices we’ve found implement the annoying and very ineffective AT-command interface.

Our ideal wifi device communicates with MCU over SPI, doesn’t contain a builtin TCP/IP stack, useless AT-command interface and other unnecessary stuff, just lets us do wifi traffic + AP scan + basic wifi operations (connect, disconnect etc) → so it’s easy to integrate into FreeRTOS+TCP. Is the mentioned ATWILC1000 something like this? Do you have any other recommendation? We build out PCBs around Kinetis and Nordic MCUs, and can’t change to other platform for just the sake of wifi…

Yes, it is pretty much like that.

Not really. In case you write a port for a module, feel free to contribute.