Tuesday

My Custom Zephyr + Arduino Build for Arduino Uno Q: Adding Zephyr Networking to the Mix

 My Custom Zephyr + Arduino Build for Arduino Uno Q: Adding Zephyr Networking to the Mix

Using RF24Ethernet with native Zephyr networking

 For anybody not paying attention (most of you probably hehe), I've put together a Zephyr + Arduino build for the Arduino Uno Q Micro-Controller, and have managed to incorporate native Zephyr Networking into the mix. This means that RF24Ethernet no longer requires external libraries like the uIP or lwIP TCP/IP Stacks for this build, it uses the built-in networking capabilities of Zephyr.

 

This was quite a challenge, but a lot easier than incorporating the lwIP stack was, mainly because I was able to use a standardized Posix Sockets API for the actual connect/disconnect & read/write functions. Underneath that layer, is the network driver, which was much more challenging to put together. I decided upon creating a dedicated driver library for handling the internals, which is kept separate from the main RF24Ethernet files, in a new drivers/net folder. 

All in all it is working very well already! I've managed to get TCP/IP, UDP and DNS functionality all working in a relatively short period of time. There is still a bunch of work to do in cleanup and testing, but so far the testing has gone extremely well, helping me to fix some inherent bugs in RF24Ethernet when using the lwIP stack.

This work has also helped me to identify problems and suggest changes to the Arduino Core and Arduino API files on GitHub, to support compilation of RF24Ethernet on the Arduino Uno Q when using App Lab or the Arduino IDE, using lwIP instead of the current uIP stack. 

For anybody adventurous that wants to try out the custom build w/RF24Ethernet and native Zephyr Networking, the files and installation instructions are located at: https://github.com/TMRh20/Sketches/tree/master/ArduinoQ/ZephyrBuild 

 

No comments:

My Custom Zephyr + Arduino Build for Arduino Uno Q: Adding Zephyr Networking to the Mix

 My Custom Zephyr + Arduino Build for Arduino Uno Q: Adding Zephyr Networking to the Mix Using RF24Ethernet with native Zephyr networking  F...