Whether you’re an experienced engineer or someone just beginning to explore embedded systems, this article series will help you get comfortable with NXP’s FreeMASTER tool. It’s written with both technical and non‑technical readers in mind, using simple explanations and practical examples to make the concepts easy to follow. No prior knowledge of FreeMASTER is required — by the end, you’ll understand what the tool does and why it’s useful.
The dashboard the car project shown below was built using FreeMASTER, offering a powerful way to visualize and interact with embedded system data in real time. Dynamic gauges, graphs, and control panels create an intuitive interface that bring the application to life
Picture1.png
Figure 1. Demo Car Project
A short demo video showcasing FreeMASTER highlights how easily you can monitor variables, tune parameters, and build a fully functional automotive dashboard, making it an excellent tool to accelerate development and spark interest in your own project.
Figure 2. FreeMASTER Dashboard – in action
This article introduces basic FreeMASTER concepts to give the readers a glimpse of what FreeMASTER is about, its components and capabilities. Later, it will follow up with:
FreeMASTER is a user-friendly real-time debugging tool. At the core, it allows users to read and write embedded variables from a GUI – desktop tool or a web interface. Unlike an actual debugger, FreeMASTER does not interrupt application execution and supports multiple communication interfaces such as UART, USB-CDC, CAN, TCP/IP, JTAG/BDM, and others.
FreeMASTER is not limited to a particular usage. This section highlights 3 use-cases, to set a starting context that, once understood, can be adjusted to user specific needs.
During the embedded application development process, the tool helps developers to:
Picture2.png
Figure 3. FreeMASTER as an embedded application debugging tool
With FreeMASTER, engineers can implement flexible firmware for embedded targets that can be adjusted to various scenarios. If the application implements a parametrizable algorithm or a state machine, FreeMASTER can help to:
Picture3.png
Figure 4. FreeMASTER as a run-time configuration and tuning tool
FreeMASTER can bridge the gap between technical and non-technical users by offering functionality that can engage the latter category via interactive applications. Developers can make full use of modern web technologies to create interactive user interfaces for the embedded applications either via the tool’s embedded web browser or the exposed JSON-RPC API.
Picture4.png
Figure 5. FreeMASTER as a framework for interactive dashboards
FreeMASTER consists of 2 primary components:
Picture5.png
Figure 6. FreeMASTER master-slave communication architecture
At the core, both components implement a proprietary serial communication protocol based on a master-slave architecture. In this model, the PC tool – master, issues commands requesting data. The target board – slave device, responds only when addressed by the master and cannot initiate communication independently.
When the user interacts with FreeMASTER’s Graphical User Interface (e.g. adds a variable to plot or edits a table cell corresponding to a variable value), the tool converts the action into a command that is sent to the target board via the FreeMASTER protocol. The same happens when users consume the JSON-RPC API.
At the same time, on the embedded side, FreeMASTER Driver routines listen to incoming messages. Once a message is received, it is processed and the return status with the result (if any) is sent back to the host PC and ultimately visualized in the UI or forwarded via the JSON-RPC API to the consumer (client application).
FreeMASTER is a powerful data visualization tool from NXP that helps users monitor and control embedded applications.
In the next article, we will introduce the Simulink block from NXP’s Model-Based Design Tools that facilitates the FreeMASTER Driver integration into applications developed in the MATLAB environment.
Real-Time debugging tool for embedded application running on NXP CPUs