a Virtual Robotix Network Team

Multipilot32 Getting Started. (PowerUP , Compile and Bootload your first program)

For last update doc this is the official wiki page :


I accept suggestion about this discussion.



This is my tutorial about how it is possible to start working with the Multipilot32 board:
Power up, compile and upload your first firmware.

Overview of requirements and options:

  • Multipilot32 board
  • Power source different options, choose what you prefer:
    • USB cable
    • Lipo 2S to 6S
    • AC:DC converter
    • 5Volt BEC normaly available on standard brushless controller
  • Dowload and install your IDE
  • Bootloading the firmware
    • Pad setup
      • Serial port 1 or serial port 2
      • ttl <> 232 converter
        • Jumper
        • Header
        • Small wire
        • USB to Serial converter
      • USB Bootloader (work in progress)
      • Jtag adapter


Power Source


Usb cable.

The simplest way to power up Multipilot32 is with a USB cable. When you connect USB to the board, it uses the USB 5V on the cable for powering up the board.



Lipo and AC:DC converter.

Another way is to use a LiPo battery or an AC:DC converter up to 30 volts. On Multipilot32 there is an input for DC:DC converter labeled as JP17.

On JP17 you can put voltage up to 30 volts. The internal DC:DC converter internally generates 5V and 3.3V.


Standard 5V BEC.

It is possible to connect standard BEC on the main pin headers JP1-JP2-JP3.

The 5V power is in the middle. To activate external power source you need to connect JP22 (EXT_VCC).

When you shortcut JP22 if you use USB or Lipo, you can use internal 5V power on Main Header.


Download and Install your IDE


At the following link you can find info about the download and installion of the Eclipse IDE.

I choose to use the standard IDE tested in the ChibiOS project. Because ChibiOS will be the starting point of our VROs.


This guide will explain how to setup a complete IDE based entirely on free and open source components for both Linux and Windows.


This guide will not enter into details of common system tasks like and not limited to:

  • Installing applications (unless a special procedure is required).
  • Creating desktop shortcuts.
  • Adding paths to the PATH variable.
  • Creating environment variables.
  • Any other normal PC usage task.
  • Use of the toolchain, this topic is covered in the ”Using an Eclipse-based IDE” article.


Bootloading the Firmware


Pad setup:

On the board there are two pads available for setting all Multipilot32 possibilities.

The pads are :

JP20         -       JP21

BOOT_0            BOOT_1

L                       X            User Flash.

H                      L             System.

H                      H            Sram.



Firmware Upload Using Serial1


To simplify the operation of uploading new firwmare we put a wire in a spear pin on double header as in the picture below (the blue pin).

When you put a dual header shortcut pin inside the header, Boot_0 goes Low so after a reset it boots from flash memory. If you remove the shortcut pin, Boot_0 goes High there is a pull-up 3.3V and the system goes into Serial Bootloader mode.



BOOT_0            BOOT_1

H                      L             System.

In this kind of configuration, when you reset Multipilot32, it starts to wait to start the flash uploading sequence. I use to upload the software with a standard ST tool called: "Flash Loader Demostrator".

Introduction document: Flash Loader Demostrator Introduction documents

Flash Loader software: 

This is the link to flash loader :


When the firmware is uploaded put the pad in this configuration and press Reset.

In User Flash configuration when you push reset on the board the uploaded firmare starts.


L                       X            User Flash.


USB Bootloader.


BOOT_0            BOOT_1

L                       X            User Flash.


The work on the bootloader is still work in progress, it is not yet available. When it will be available you can upload using serial port to micro and set the pad in User Flash Mode. So you do not need to change the pad configuration for upload and test of your software.


Jtag Bootloader.


BOOT_0            BOOT_1

L                       X            User Flash.


In this mode you can use a standard JTAG port for uploading your code and debugging it. I am doing some tests using R-Link from Raisonance. If others have experience with other tools, please add your suggestions in the comments.


UPDATE !!! For the Owner of MULTIPILOT 32 !!!

After you are understand how is possible to upload a firmware on your Multipilot32 I have a gifts for you :

I put on a repo ready to use code . This code is based on example on Standard RC Mulltpilot 32 Library (VROS LIB).

Here you can found the example:


MP32_RADIO_PPMSUM.cpp.bin : is a demo of decoding standard PPM SUM reciver connected on JP4-4 . You can see on serial port JP4-3 / JP4-2 the level of signal recived on different channel . All signal only on one pin. This is my prefered configuration so i developed the library before of other configuration :) On the PWM output you can see the same value of input recived by trasmitter. So if you connect a Brushless Regulator you can see your motor go slow or fast ..depend of your command.


MP32_OILPANLED.cpp.bin : is a simple example of using the three led available on oilpan imu. It blinking


MP32_SPI_ADC_TEST.cpp.bin : is an example of using sensor gyro , acc , temp available on oil pan . You can see the raw value read by adc converter and send by spi bus to MP32. If you move your board you can see this value change.


EEPROM_example.cpp.bin : is an example of using the eeprom emulation library on arm. This library use the flash page to emulate the local storage on eeprom.


ArmFox_V4_NG_CLI.cpp.bin : is the Arducopter NG code ported on Multipilot 32 , now is not yet flyiable will be in the next day .. i hope before of next week :) Now you can going inside the cli and enjoy to discover some functionality .





Bootloading the Firmware

Views: 6775


Reply to This

Replies to This Discussion

News about last revision of STM32F407 ,  we check that if you don't upgrade to last revision of ST-LINK , the micro with jtag is not properly work. We lost some days to found the bug .

This is the new link :





© 2021   Created by Roberto Navoni.   Powered by

Badges  |  Report an Issue  |  Terms of Service