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: 6776


Reply to This

Replies to This Discussion

The problem is solved !

I supply the converter with the 3.3v from the mp32.

I need to press the reset button of the mp32 and quickly to click on "next" button of the Flash Loader Demo to initiate the connexion.




Hi Cyrille,

Ok perfect ... strange that you need to press reset ... normally i wait also 30 - 40 second after power down and power up the board before to press next.

Ok so i happy that you solved :)

Best Roberto


Took me about four hours to get Eclipse to finally load.  If finally came down to having 64 bit Eclipse and 64 bit Java.


Eh Eh ... Hi Marty ... I hope that now you can test the enviroment and board ? Are you yet start to enjoy with MP32 ?

Good Eastern



I have a long way to go.  Saying is, "one step forward and two steps back".  That is backwards.  I am making progress, but I have a long way to go and a lot of learning to do before I am comfortable.  Two steps forward; one step back?


Thanks for your support,




I've been playing with my MP32 for a while, running some small programs and tests on it, and have generally been able to get it to do what I want it to.  In the meantime, I've been building a multicopter (a fairly heavy lift hex with hacked I2C ESCs) that I'll hopefully be doing some flight testing on before too long.  One problem I've run into since vride 0.0.4 (and is that I can't seem to get my code to run!  I'm sure I've missed some minor (but important) detail.  I seem to remember reading something about how things start up and a change that needed to be made, but now I can't find the reference or remember what that was.  I can run code that I compile with vride 0.0.3, so I know I haven't fried my board.  If someone could point out what I've missed, I'd greatly appreciate it.  I'm especially looking forward to playing around with the I2C stuff Roberto recently added.

Hi Witney ,

so the main difference between 0.0.3 and 0.0.4 is that it support the usb bootloader.

Before to use bootloader you need to upload it in standard mode as described in this thread.

So in 0.0.4 you need to chose in board MP32 jtag not flash .So you can continue to use the standard serial bootloader.

If you want try usb bootloader . i can explain how you can do .. at the moment i haven't write a tutorial .. help people live by skype.

Perfect!  Thanks so much for the quick reply Roberto!  I knew it was something very simple, and of course that took care of my little problem.  I've a few things to work on right now, but perhaps in a few days I'll take you up on your offer to help with the usb bootloader.  Then if you like, perhaps I can help you write that tutorial.

That could be great ;)

We can meet on skype in the next days so i can explain to you how it work.

There is another great news ... I test the lib for SD card with FAT32 file system it work fine ;)



I would buy one but not without a full instructions book. 

Why can't you have it so that you can simply take a new board and upload the code through the APM Mission Planner. Nice and simple. 

Hi Denny,

we are working on a complete wiki doc. It's an upgrade of standard Arducopter documentation.

We're working also on a planner for integrate the usb  dfu bootloader.

All this new feature is work in progress and will be available in the next week.

In this wiki page in the next week will be available complete docs.



Hello Roberto, I have one question :

Since the Multipilot32 is compatible with the ArdupilotMega Oilpan, if we attach the Oilpan to the Multipilot, can we use the Oilpan's USB to upload firmware to Multipilot or the upload must be made via the cable you show in your first video ?

Thank you.



© 2021   Created by Roberto Navoni.   Powered by

Badges  |  Report an Issue  |  Terms of Service