Changing processor platforms

A project log for Open Rover

The goal of this project is to create a standardized outdoor robotics platform, similar to the Turtlebot.

nerd.kingnerd.king 08/15/2016 at 12:550 Comments

I have always wanted OpenBLDC to be a ROS device of some kind and I got a very basic demo of the ROS serial bridge working with an arduino probably 2 years ago around the Hackaday 2014 time frame(before my son was born :) )

So last year sometime in November I saw the ROScon video about ROS 2.0 and pushing ROS down into smaller embedded systems. I emailed OSRF about getting involved with implementing ROS 2.0 on what is basically an arduino zero(SamD21) but that went no where. I just continue to work on OpenBLDC with a basic arduino UNO.

A couple of weeks ago, I saw that Atmel had release a demo board for a Cortex M7(SamE71) at the same time mbed sent me an announcement that they were releasing a new version of the mbed OS. This lead me to the ST Cortex M7 processors and Mbed (supposedly) had support for them out of the box compared to nothing on the horizon for the Atmel processors. So I picked up a NUCLEO-F767ZI for 20ish dollars which was a bit cheaper than the SAME71. This will allow me to control multiple motors from one controller.

I found out that it is supported but the IP stack wasn't ported to this specific platform. Luckily IPv4 was implemented on another ST F7 board and all I had to do was update some configuration files and macros.(I even submitted a pull request on github :) ) I was able to get TCP and UDP working with the board. One issue is that they have redesigned the IP stack and broadcast is not working currently not this might stall some development.

So my next task is to get FreeRTPS working on my board. There are a couple of routes that this could take but I might just put a class wrapper around it and make sure that it will support my board specifically.