BeagleBone Black: is it a Real-Time Board?

Hi all,

is it possible to use the BeagleBone Black as a Real-Time board, that allows it to be used for critical applications, like in industrial environment?

Thank you very much!

Alessandro

Yes. Assuming the SW you run is real-time in nature.

Gerald

Hi,

Linux is per default not a real-time OS, but you can turn it into a “firm” real-time OS using for example the PREEMPT-RT patch. However, you will still not the kind of absolute guaranteed latencies you would be able to get from a dedicated real-time OS.

If you need a real-time OS I think at least QNX should be supported on the BBB;

http://community.qnx.com/sf/wiki/do/viewPage/projects.bsp/wiki/TiAm335Beaglebone

Gerald, I assume you are answering from the perspective of the capabilities of the Sitara ARM SoC and there I agree that it is capable of industrial control systems. However, Alessandro asks if the BBB can be used for critical applications in industrial environments. I wouldn’t call the HW design of the BBB “rugged” like what you would expect to see in those environments. After all, it is a $45 computer… Using the BBB to prototype those applications is likely OK, but I would recommend a rugged HW design to put such a system into operation in critical industrial environments.

/Daniel

Correct. The HW design does not use industrial temperature devices, although there are a lot of people that have swapped those out and are using the design for industrial applications.

Gerald

Hi all,

is it possible to use the BeagleBone Black as a Real-Time board, that allows it to be used for critical applications, like in industrial environment?

HI Alessandro,

Not sure if I understand your question, but since Gerald answered the hardware side, here is the software answer. The interrupt latency in the Linux Kernel doesn’t make it suitable for real-time applications, but if you patch the kernel with Xenomai, then you can achieve interrupt latencies of about 50uS.

Regards,
John

Have a look at the PRU, there are two of them built into every BBB (in
the CPU chip), they provide all you need for the real time bits and
then you can do the non-real time bits under normal linux on the main
CPU.

Using the PRU you can access IO pins, and they have timers too.

David

Thank you all for the answers,

I am glad that with the right OS it is Real Time capable board.

To summarize I have seen that on the BBB it is available the QNX, that it is a Real Time capable OS:

http://community.qnx.com/sf/wiki/do/viewPage/projects.bsp/wiki/TiAm335Beaglebone

the alternative is install a kernel patch for RT: Xenomai or PREEMPT-RT

which solution would you suggest and why?

Thank you very much!

Alessandro

Hi,

To summarize I have seen that on the BBB it is available the QNX, that it is a Real Time capable OS:

http://community.qnx.com/sf/wiki/do/viewPage/projects.bsp/wiki/TiAm335Beaglebone

the alternative is install a kernel patch for RT: Xenomai or PREEMPT-RT

which solution would you suggest and why?

Well the question is what you want to do with it;)

If you need real time without Linux you should use an RTOS without Linux.

If you need Linux plus real-time you could use Hardware+Linux (like PRU or additional hardware) or Software+Linux.
Real-time in not about being fast, but about being deterministic.
You could try to get Xenomai and Preempt-RT running on your board and compare latencies,jitter,…

You can get an initial rough idea if you run cyclictest with a vanilla and Preempt-RT Linux and compare against the one which comes with Xenomai on a Xenomai kernel.

Then it would be best to come up with a testcase which shows what you want and to run it with the various solutions.

Regards,

Robert

The current wisdom is to first try PREEMPT-RT. Xenomai can achieve harder real time, but is a whole extra layer of difficulty to work with (some linux tools like debuggers that you’re used to will not work), and is supported by an even smaller community than PREEMPT-RT. Google’s self driving cars are using PREEMPT-RT, for example.

One more component is mandatory: A big pile of patience!

siñ