> For the complete documentation index, see [llms.txt](https://nxp.gitbook.io/ucans32k1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nxp.gitbook.io/ucans32k1/available-software.md).

# Available software

## Introduction

There is a variety of software that can run on the UCAN boards. This includes NXP bare metal code and examples. New is the ability to use NXP MBDT (Model Based Design toolbox) \
\
The Mobile Robotics team has also enabled community supported ROS and autopilot ports for several opensource projects listed below.\
\
Typically we use NuttX/PX4 - which is the curated version of NuttX with the PX4 Autopilot tools. While the UCAN board is NOT an autopilot, with this buid, it can be a peripheral to PX4 and even offer distrubuted computing capability. The CAN communication on the UCAN board will mirror the current capabilty and state of CAN on PX4

{% hint style="success" %}
See the software sections below in this gitbook for more details on these options!
{% endhint %}

## Model Based Design Toolbox

From the NXP website: "The NXP MBDT includes an integrated Simulink®-embedded target supporting NXP MCUs for direct rapid prototyping and built-in support for software- and processor-in-the-loop (SIL and PIL) development workflows, systems and peripherals device interface blocks and drivers, a target-optimized Math and Motor Control library set (AMMCLib) for efficient execution on the target automotive MCUs and Real-Time Control Embedded Software Motor Control and Power Conversion Libraries (RTCESL) for other MCUs, and bit-accurate simulation results in the Simulink® simulation environment."

Specific information on using the UCANS32K1SIC with MBDT is given here in this article:

[UCANS32K1SIC EVB Application Development using Model-Based Design Toolbox](https://community.nxp.com/t5/NXP-Model-Based-Design-Tools/UCANS32K1SIC-EVB-Application-Development-using-Model-Based/ta-p/1637236)

## [PX4 Autopilot](http://PX4.io)

![](/files/-M9JB4MTCZt6MDVqp3yb)

UCANS32K146 is a build target for PX4 Autopilot. PX4 is an open source flight control software for drones and other unmanned vehicles. While UCANS32K146 is not a flight controller, it can leverage the PX4 infrastructure to provide communications and portability of peripheral drivers, leading to enablement of a distributed vehicle architecture. For example drivers for secure element SE050 would be identical on the FMU and CAN nodes. PX4 makes use of a managed and maintained version of NuttX RTOS.

[More information](/ucans32k1/px4-autopilot/about-px4-autopilot.md)

## [Apache NuttX](https://nuttx.apache.org)

![](/files/-M9JBGacndOlzGKG4JJm)

In addition to PX4, UCANS32K146 is also a build target in Apache NuttX and can therefore be used without PX4 infrastructure if not needed.

[More information](/ucans32k1/apache-nuttx/about-apache-nuttx.md)

## [UAVCAN V1](https://uavcan.org/)

![](/files/-M9JBODitvHb_tAvy-J_)

UAVCAN is a lightweight protocol designed for reliable intravehicular communication in aerospace and robotic applications over CAN bus, ethernet, and other robust transports. The name UAVCAN stands for Uncomplicated Application-level Vehicular Communication And Networking. It is created to address the challenge of deterministic on-board data exchange between systems and components of next-generation intelligent vehicles: manned and unmanned aircraft, spacecraft, robots, and cars.

[Bare metal example with libuavcan](/ucans32k1/s32k1-sdk/sdk-example-with-libuavcan.md)

## [SocketCAN API](https://www.kernel.org/doc/Documentation/networking/can.txt)

CAN driver compatible with SocketCAN API, takes benefit of POSIX socket API for painless and portable CAN application development.

[More information](/ucans32k1/apache-nuttx/socketcan.md)

## [SLCAN - CAN over serial](https://python-can.readthedocs.io/en/master/interfaces/slcan.html)

This software interface supports debugging UAVCAN and CAN on PC reusing an UCANS32K board reprogrammed as a debugger.

[More information](/ucans32k1/apache-nuttx/slcan.md)
