Microcontrollers and DDS

5 posts / 0 new
Last post
FMA
FMA's picture
Offline
Last seen: 11 months 2 weeks ago
Joined: 09/09/2014
Posts: 10
Microcontrollers and DDS

Hello,

Can any one please tell me the type of microcontrollers that support DDS?

Organization:
Offline
Last seen: 6 years 6 months ago
Joined: 01/17/2013
Posts: 22

Hi,

RTI Connext Micro (http://www.rti.com/products/micro.html) is a DDS implementation targeted for platforms like microcontrollers with smaller footprints, and has been run on embedded platforms including TI Stellaris, Raspberry Pi, BeagleBoard.  Its architecture allows portability to other platforms, with or without an RTOS.  There are some prerequisites for a platform to be portable to Connext Micro, such as 32-bit integer support.  What specific microcontrollers are you considering?

Regards,

Edward
edward@rti.com

 

 

     

 

FMA
FMA's picture
Offline
Last seen: 11 months 2 weeks ago
Joined: 09/09/2014
Posts: 10

Thank you Edward for the information. How can I use it with arduino?

I'm sorry for this silly question, for I'm a newbie :-)

Offline
Last seen: 3 years 6 months ago
Joined: 03/15/2020
Posts: 5

Hello, I'm also a newbie to either RTI DDS or embedded. The question is I'm having an ESP8266 board and would like to use RTI DDS Micro on that board.

There was an experiment on STM32 board found here since 2017:

https://www.rti.com/blog/how-to-build-and-run-rti-connext-dds-micro-on-a-microcontroller

However, uClinux was archived in 2018 and the STM32 board used in that test has Cortex-M chip with 2 Mbytes of Flash memory and 512+16+4 Kbytes of RAM as well. Shortly, it's much more powerful than the ESP8266-12E

So my question is: Is it possible to use RTI DDS Micro on ESP8266? Or even ESP32? If there is, which specific Linux kernel (not the full OS, uCLinux-like) could be compatible with RTI DDS Micro?

Any information would be truly appreciated.

Howard's picture
Offline
Last seen: 3 hours 57 min ago
Joined: 11/29/2012
Posts: 601

Fundamentally, RTI Connext Micro is a source-code product.  Customers are expected to compile it for the hardware/board that they want to run it on.  Out-of-the-box, RTI Connext Micro has been ported, built, tested on a limited set of platforms (platform = compiler + OS + CPU).  For example, for Connext Micro 3.0.3, please see

https://community.rti.com/static/documentation/connext-micro/3.0.3/doc/html/building/platforms.html#reference-platforms.

Generally speaking, Micro needs about 384 KB of RAM for itself to run.  You should also take into account the RAM used by the OS as well as your own application to determine how much total system RAM is required. 

So, for the Reference platforms mentioned in the documentation, Micro comes with code that has been ported to all of those platforms as well as cmake support to generate the associated build files.

For any other platform, including "Known Customer Platforms", which includes uLinux, you may have to port various parts of Micro to use the OS that you want to use as well as the associated network stack.  This documented here:

https://community.rti.com/static/documentation/connext-micro/3.0.3/doc/html/building/porting.html

For Aduino, unless, you have a way to add external RAM and FLASH to an Aduino board, you won't be able to run Micro, not to mention you need some sort of network (Ethernet/Wifi).  If you are trying to connect Aduino to a system that includes a full network and computers that can run full Connext DDS, then you might want to look into the RTI Nano client, which is based on the DDS-XRCE specification, and allows you to use a very small client on your micro devices to connect to an RTI Nano agent running on more substantial device and serves as a gateway to full DDS applications.  See

https://www.omg.org/spec/DDS-XRCE/

https://github.com/rticommunity/nano-client

https://github.com/rticommunity/nano-agent