Compared to the last demonstration, the main change to the configuration is the introduction of a relay board so that the instrument can be powered on and off (the Power Control box in the diagram) by the M4.
The M4 firmware has been amended to accept commands from the A9 via RPMSG. On the A9 side we have 2 applications:
1. read_can - Which constantly reads CAN messages sent from the instrument cluster via the M4 .
2. cluster_control - Controls the instrument cluster via the M4.
cluster_control has the following capabilities through a number of command line options:
-i - turns the instrument on/off
-r - set the RPM
-s - set the SPEED (in kilometres although display is in mph)
-b - set Battery Warning indicator
-o - set Oil Warning indicator
-c - set Cruise control indicator
The short video demonstrates two applications running on the A9, read_can is running in the window on the left and on the right cluster_control is used to manipulate the cluster. Note that prior the 2 applications being launched, the M4 was preloaded with new firmware and RPMSG initialised on the A9 side. Once cluster_control changes the cluster state, the M4 is responsible for continuing updating the instrument cluster with the new state until the next change.
Now that we have the ability to control the cluster and receive messages from the A9 side, in the final post I will demonstrate how another feature of i.mx6sx can be used with it.