Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
DRAFT DRAFT DRAFT How to program the VMU using a JLINK (JLINK - loadfile or loadbin but start at address 0x30000000)
Official instructions will eventually be on the PX4.io website and Cognipilot website. These are interim instructions for pre-production boards.
There are TWO variants of pre-production boards:
1) ALPHA boards: These are the FMUMRT1176 on an ALPHA carrier board. This board can be identified by having TWO debug connectors and a solid row of PWM like headers at one end.
2) BETA boards: These are the FMUMRT1176 on a BETA carrier board. This board is intended to become production. It can be identified by THREE CAN ports and the end with PWM ports shows 12PWM, a small gap, then AUX and RC IN 3 pin connectors.
New boards as of 03/05/2024 have the bootloader already installed. You do not need to program the bootloader in that case
If you will be using PX4 software with the MR-VMU-RT1176 board then you will need to first program the bootloader if not already installed.
The abbreviated instructions are as follows:
Connect the holybro pixhawk debug adapter, with SEGGER debug probe connected, to Pixhawk 6X-RT
Power the Pixhawk 6X-RT either via USB or POWERx connector.
Launch JlinkExe
tool from Segger
Type connect
Select SWD
and target is MIMXRT1176XXXA_M7
Type reset
and halt
Type loadbin /path/to/firmware/px4_fmu-v6xrt_bootloader.bin 0x30000000
If you wish to flash PX4 at this time, it can be done with the additional command:
Type loadbin /path/to/firmware/px4_fmu-v6xrt_default.bin 0x30020000
To complete the process:
type reset and go
Some additional debuggers will be available in the future. Currently this is our reference setup
The Debug adapter DCD-LZ
from hovergames does not currently have the correct adapter the cable to plug into the FMURT1176. This will be updated in the future. Technically you could make your own.
xxxDRAFT DRAFT DRAFT
Q: Is this the correct connection for drone motor connectors?
I read the connectors file that you send to me. I think it is a mismatch between FMU -main PWM out and I/O – AUX PWM out. In the firs picture from the attachment, you can see how I connected the inputs for motors’ PWM. It was the only position on which I was able to check them from QGroundControl (the spin direction and motor position).
DRAFT DRAFT DRAFT
THESE IMAGES ARE JUST TEMPORARY AND ONLY FOR INITIAL DEVELOPMENT AND BOARD BRINGUP.
They will change often!!!! NOTE - this page may now be depricated as PX4 is upstream to main while using the Holybro baseboard. See this page
Link to internal NXP Sharepoint for development images (TEMPORARY ONLY) Note external parties will NOT be able to access this link.
These images are externally shared for specific developers. They are incomplete. They will be updated occasionally when requested by external parties and may not match the latest code. DO NOT RELY on this code in any way. https://github.com/NXPHoverGames/NXP-FMUMRT/tree/main/MR-VMU-RT1176/firmware-temp
DRAFT DRAFT DRAFT 7/2023
Draft documentation related to MR-VMU-RT1176 AKA, MR-FMURT7, FMURT7, FMURT, VMURT7, VMURT1176, FMU-RT117x FMU-RT1176, FMU-RT1172.
The above mentioned boards are all either the same board with different naming conventions, or fully compatible boards. This design is fully compatible with other variants of i.MX RT117x such as RT1172 for production cost savings. The RT1176 has features that are currently unused, it is however more ubiquitous and easier to procure.
There is also an original older design that was done useing i.MX RT1062 as well. The detail of this was not published, but there could be mention of it in this gitbook for specific reasons. That board was a precursor to the RT1176 design. Since that time, and now that code (particularly NuttX and drivers) are stable, there is a low cost opensource design called TROPIC that can also run PX4 and Cognipilot. You can find links to that on a page at the end of this document.
This is DRAFT documentation only. It will/can include general notes helpful during developments There will also be production documentation for this found in PX4.io and Cognipilot.org
iain.galloway@nxp.com
Please either make pull requests against this doc in git
or comment back to me if the items below don't make sense. Any docs or additions or suggestions are welcome in any format.
This design was based on the Linux foundation DroneCode PX4 FMU V6x reference design. However the "Flight Management Unit" (FMU) is suitable for more than just flying vehicles, therefore we are preferring to refer to it as a VMU "Vehicle Management Unit".
The VMU nomenclature s more generic, and in particular applicable to AMRs and other robotics applications such as MR-Buggy3, MR-B3RB-M, or rovers.
In PX4 the software target currently is referred to as FMU-RT117x (possibly FMURT7 for short)
(This needs to be checked an updated regularly - 7/12/2023 Iain)
Technically FMU-RT7 or FMU-RT1172 name refers to the pluggable module (SOM - system on module)
Also note that Vxx or Vxx7 refers to the carrier board that the actual VMU module plugs into . It is important to note that NXP version of this carrier board includes T1 Automotive Ethernet and a 3rd CAN port. The Vxx7 version of the carrier board also removes the IO processor that was on the baseboard and not used. Instead there are EXTRA PWM signals on the latest PAB standard bus which are generated and come directly from the RT1176 chip.
The combined FMU-RT7/FMURT1176 + Vxx board we will refer to as VMU-RT117x (or possibly VMURT7 for short).
Update 10/26/2023 Dear Pixhawk 6X-RT testers (all on Bcc),
This change notice is due to the change of the PX4 build target name of 6X-RT to its final name px4_fmu-v6xrt
The PX4 development branch has been changed to pr-px4_fmu-v6rt
. Please checkout this branch and use for building the PX4 FW from now on.
git checkout pr-px4_fmu-v6rt
git pull –recurse-submodules
Connect the Pixhawk 6X-RT FMU via USB to your PC
(This is assuming you have PX4 bootloader already flashed – as it was done for all handed out devices on PX4 dev summit)
Do make px4_fmu-v6rt_bootloader upload
At the end of the build process the bootloader will be uploaded via USB
Do make px4_fmu-v6rt_default upload
At the end of build process PX4 FW will be uploaded via USB
IMPORTANT - There is hard fault logging enabled at the moment in this branch. If you are flight testing the FMU please switch that off with “CONFIG_DEBUG_ASSERTIONS=n” within “boards/nxp/fmurt1170-v1/nuttx-config/nsh/defconfig” before building the code (before step 4)!!
enable “Allow this log file to be used for statistical analysis”
Thank you!
This section will track the changes over time of the PX4 software support for MR-VMU-RT1176
Note instructions for burning fuses and programming the bootloader are also in this gitbook. a BLANK chip or privately manufactured board will need this done before loading flight control software. Current boards as of 03/05/2024 already have the bootloader and fuses programmed
You should be able to flash PX4 via QGC. This long term is the preferred method when it works
Flashing "main" works (03/05/2025)
Flashing "beta" currently fails. (03/05/2025)
Backport of PX4 1.14 Stable is in validation now. This was a backport from main. There are a couple of open issues still
PX4 1.15 is in pre-release, VMU-RT1176 is included. This is a forward port of main, it has the most tested time on it.
This link it to the last / latest version of PX4 Main is here. This is the working version.
The NXP reference board design production version units have a slightly different connector set than what has tradionally been included in the standard V6X design and also the Holybro V6X-RT units. The key differentiators are: - No separate IO processor required. All PWMs including redundant coming from RT1176
Three CAN ports
100BaseT1 two wire ethernet
Additional SE05x secure element on the base board in addition to the FMUMRT1176
NFC antenna interface to secure element
DSM and AUX RC ports in addition to "RC IN"
They include:
AD@I/0 Analog and GPIO
CAN1, CAN2: Dual CAN-FD interfaces employing CAN-SIC (Signal Improvement) CAN phys.
I2C interface
USB-C interface and USB on JST-GH pins. (parallel pin connections not independent)
CAN3: (extra additional ) CAN-FD interfaces employing CAN-SIC (Signal Improvement) CAN phys.
T1-ETH: 100BaseT1 Two wire 100MBPS Ethernet
TELEM1/2/3: 3x Telemetry ports with Hardware handshaking
UART&I2C: 4th UART, no hardware handshake, I2C, NFC_GPIO included
Debug interface compliant to Pixhawk-DEBUG-FULL standard (aka DCD-F), including SWD and Console access.
DSM: DSM RC radio input
NFC: NFC connection to carrier board Secure Element. (interface may be accessible even when not powered?)
GPS1: PX4 full GPS connector including Arming Button interface, beeper, magnetometer and RGB LED
GPS2: Aux GPS, reduced pinout on connector.
SPI: External SPI interface including two hardware chip selects, nSYNC, DRDY1/2 and SPI_nRST
Typical connection for SBUS/IBUS input from RC remote controller. (note: Alternative RC interfaces possible)
Use Cognipilot Neural probe or DCD-LZ-ADAPT or similar adapter to connect a debugger or serial console to the Pixhawk-debug-full port (AKA DCD-F) https://docs.px4.io/main/en/debug/swd_debug.html
Note the legend for the LEDs is actually shown above the 4 led holes in the enclosure.
Schematic showing alternative function. D5 = ASEL LED. J14 pin 7 'ADC1_6v6_Aux', can be selected to connect either 'ADC1_6v6' or Vdd Servo rail to the ADC to read the voltage.
DRAFT DRAFT DRAFT
This is related to the pre-production units or units manufactured from a BLANK RT1176 chip.
***IMPORTANT*** As of 03/05/2024 new boards have the FUSES set from the factory. Do NOT repeat this procedure. ********
A BLANK chip will not have any fuses burned. This means it will default to only an internal on chip boot rom. We need to set the fuses so that by default it will boot from the flash memory.
Note that burning fuses is a one time operation. Follow the instructions carefully!
You DO NOT need to burn these fuses in most cases when a board comes from a vendor or for the NXP reference design. This is for a completely blank chip only. i.e you manufactured a board from scratch.
https://www.nxp.com/design/software/development-software/mcuxpresso-software-andtools-/mcuxpresso-secure-provisioning-tool:MCUXPRESSO-SECURE-PROVISIONING#downloads
(the whole user guide for the provisioning tool can be found at the link above. This is the abbreviated version for RT1176 and the specific tasks for VMU-RT1176 board.)
Run the secure provisioning tool
Select MIMXRT1176
Click the create button
Press Yes, Wait for the script to finish. You should see a screen like this.
Select "0x960" Fuse 0x960 as shown below:
We will use Advanced mode in order to create a command line script that will program the fuses. It may be used to program subsequent VMU-RT1176 fuses
Press close
Press generate script
{workspace} is C \ users \ $username \ secure provisioning
There you will find a file burn_user_OTP_cfg_win.bat
You can now use this file to burn fuses for any new boards with blank chips..
You may wish to rename this file to ensure it is clear and obvious what board and processor it is for.
CAN3 Port Bring-up and Testing in PX4-Autopilot
At this point time (11/11/2024) CAN3 is not enabled to use DronCAN or UAVCAN by default in PX4. The port itself is enabled and can be exercised using CANSEND and CANDUMP commands This tutorial describes how to enable the CAN3 Port on the NXP-VMU-RT117x in PX4-Autopilot, and demonstrates the transmission of CAN Frames between two VMU-RT117x using the can-utils module.
1
2
2
2
3
2
4
4
5
2
6
1
7
2
8
2
Note: We require 6 USB-A (Female) ports on the host machine for this setup. You may utilize a USB-HUB (USB-A Male to USB-A Female) to get multiple ports on your host machine.
The high level overview here is that we want to be able to both program and gain console access to the MR-VMU-RT1176 so we can issue commands. Note that there are other valid ways to get a console, such as through an attached Telemetry radio. Programming may also use MCU-LINK-MR.
Select the following options:
Device Drivers → CAN Driver Support
License Setup → Use components that have GPL/LGPL licenses
Application Configuration → CAN Utilities → SocketCAN cansend tool
Application Configuration → CAN Utilities → SocketCAN candump tool
In file "~/PX4-Autopilot/platforms/nuttx/init/imxrt/rc.board_arch_defaults", add the line "param set-default -s UAVCAN_ENABLE 1" after line number 6.
For simplicity, connect only one setup at a time with your host machine, i.e. only 1 VMU-RT117x + Pixhawk Debug Adaptor + J-Link EDU MINI.
Alternatively, you may connect both the setups simultaneously and select the appropriate J-Link when running JLinkExe command.
Note: The following steps need to be run once for each of the two VMU-RT117x.
Open a new shell and perform the following steps for flashing PX4-Autopilot on VMU-RT117x.
Get the serial shell of the two VMU-RT117x on your host machine.
Note: Baudrate for the serial console is 57600.
Execute "
candump can2
" on one shell and "cansend can2 123#1234567890
" on the other.
How to use the RT7 board for a RC rover
These instructions will not be very detailed, as most steps are already explained elsewhere in other GitBooks. Note: Links will be provided in each step to those pages.
Controlling an RC rover with the RT7 can be done in a few steps. These steps are divided into:
Loading the firmware
Connect necessary components
Link QGroundControl to the board
Link controller to the board
Set and tweak parameters
This example uses the Buggy3 platform with the FlySky i-6S radio controller. Using different components might have different aspects during setup. Information regarding this kit can be found in the .
First step is to download the latest firmware and bootloader then flash it to the RT7 board. This step is explained in the .
Then make sure to place the desired components to the rover, then connect them to the board. In this example the radio transmitter, Motors and ESC, telemetry radio and battery are required. Below is a list where each module should be connected:
This step should be quite simple, as long as you have QGC installed, and the Telemetry antennas are connected to your PC. The program should link to the board automatically. If it does not connect automatically go to the Application Settings, then check if you have AutoConnect enabled for the devices you are using.
To connect the RC controller to the RT7 board you must connect the transceiver to the board through the designated port (J15). Once connected and you have provided power to the board, turn the controller on, then go to Settings>>System and click on RX bind. When both the controller and transceiver are bonded you can open QGC to setup and map the controls to the rover.
Keep in mind the PWM pin you connect to the ESC! When changing the PWM_MAIN values on QGC you need to change the correct parameters.
Rev B has Ethernet not working
Rev C Planned
Doc repo (currently private)
A short guide on how to setup the RT7 board
This guide will briefly go through how to flash your RT7 board. To connect to the RT7 board the first step is to flash the board with the latest firmware. This is done in a few quick steps:
Assuming you are on an Ubuntu Linux environment!
Create an empty folder, then clone the PX4-Autopilot directory in it.
Move to that new directory.
Make the required RT7 binary file.
Keep note of the location of this directory so that you can locate it later.
After you have the binary set and ready you can connect the JLink adapter to the RT7 board (J23 port) through the Holybro Pixhawk debug adapter. The diagram bellow displays how these adapters should be connected to each other.
This adapter is used to connect the JLink to the RT7 board. You can also use the Serial port (USB-C) to debug the board and read and write messages in the board. A simple diagram of what each port in the adapter board is can be seen below.
More information regarding the Holybro Pixhawk Debug Adapter can be found on the PX4-Autopilot page:
After the adapter boards are connected to your PC and to the RT7 we can flash the board. You will need to install the SEGGER JLink probe to be able to use the adapter. This can be done by going through the installation instructions on the following PX4 page (just the installation is necessary):
Then you can launch the probe then follow the next steps when connected to the JLink.
Lauch the probe: JLinkExe
Type connect
Select SWD
and target is MIMXRT1176XXXA_M7
Type reset
and then halt
Type loadbin /path/to/firmware/nxp_fmurt1170-v1_default.bin 0x30000000
Type reset
and then go
Now the board should be flashed with the latest firmware.
All important information / issues will be reported on the related PR -
We kindly ask you to report any issues found yourself on PX4 git with an issue report! Please tag in this case
With any flight testing please always upload your logs to
upload the ogfile to
upload the LINK to the logfile to PR 22263 -
Select OTP configuration (One time programmable)
For the Bit-field BT_FUSE_SE
L change to the required value = 1
Bottom-left corner and select advanced mode
[Connects VMU-RT117x and Pixhawk Adaptor with the host]
[Connects J-Link EDU Mini Debugger with the host]
[Connects the CAN3 Ports of VMU-RT117x]
[Connects VMU-RT117x and Pixhawk Debug Adaptor]
[Connects J-Link and Pixhawk Adaptor]
View the page to have a reference to where each port is.
A few more steps are required for full setup. Follow in the NXP CUP GitBook for those instructions.
After completing all these steps your rover should follow your commands on the RC controller. In case there are any issues try going through other GitBooks related to this example ( & ).
In case of any doubts of where the Debug pin is located on your board go to the page for some more clarification.
For some examples on how the board can be used, go through the chapter.
Radio transmitter
J15 port
ESC (motors)
FMU PWM OUT - pins 4
Servo (motor)
FMU PWM OUT - pins 2
Telemetry radio
J3 port
Power (battery)
J16 port