For last update doc this is the official wiki page :

http://code.google.com/p/multipilot32/wiki/MP32_Loading

 

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.

http://www.chibios.org/dokuwiki/doku.php?id=chibios:guides:eclipse1

 

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.

 

PAD SETUP FOR THIS MODE: (NO SHORTCUT PIN HEADER)

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 : http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/SW_DEMO/um0462.zip

 

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.

BOOT_0            BOOT_1 (SHORTCUT PIN HEADER PRESENT)

L                       X            User Flash.

 

USB Bootloader.

PAD SETUP FOR THIS MODE :

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.

http://www.virtualrobotix.com/forum/topics/multipilot32-technical.

 

Jtag Bootloader.

PAD SETUP FOR THIS MODE :

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:

http://code.google.com/p/multipilot32/source/browse/#svn%2Ftrunk%2FDemo%20Getting%20Started

 

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

Flash Loader Demostrator 13916.pdf

um0412.zip

Getting_Started_RFlasher7.pdf

You need to be a member of FOXTEAM UAV CLAN to add comments!

Join FOXTEAM UAV CLAN

Email me when people reply –

Replies

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

    http://www.st.com/internet/evalboard/product/251168.jsp

    Best

    Roberto

  • Hello,

     

    I have received my ST-LINK V2 for debug the Firmware...

    Now we just need an access to your lib and code from a SVN...

    So perhaps we can distribute the task to help you?

     

    Best regards

    Guillaume

  • Hi Roberto,

    I finally found some time to examine my newly arrived Multipilot32F4 and VRIMU

    It is preloaded with a test code for the MPU6000 which gives the following output when powering up:

    Welcome to USART3

    Init Inertial Sensor
    Init IMU
    Init Gyro**********
    Init Accel**********R: 0.06 -0.01 0.04 A: -0.0185 -0.0341 -9.8255 C: 0.0021 0.0109 9.8066
    R: 0.06 -0.01 0.04 A: 0.0222 0.0425 -9.8040 C: 0.0022 0.0115 9.8066
    R: 0.06 -0.01 0.03 A: -0.0041 -0.0006 -9.7872 C: 0.0017 0.0109 9.8066

    I would like to study this test code (and extend it with the output from altimeter, magnetometer and GPS) but could not locate it in the repo.

    If it ist's not in the repo would it be possible to share it?

    Best Regards

    Martin

    • Hi Martin,

      I think the code is not in the repo but in the vrobotix-ide-pro-0.0.5.4.0.partx.rar workspace. You can download the 4 files at : http://code.google.com/p/multipilot32/downloads/list

      on which connector have you these messages : on JP7 or JP14? and which cable are you using for that?

      with the ide pro i can modify and upload the code but i can't get the messages...

      It seems you are using JP14 (UART3) but how do you connect it to you PC? I have a ftdi (USB/UART) cable but i can plug it only on JP7...

      • Hi Guillaume,

        I'm using The UART ports of the USBPROG 4.0 (left channel) attached to jp14 and putty as serial terminal (115200 ). That's the connector with the TTL levels according to the docu (http://www.usbprog.org/index.php/USBprog4 unfortunately in german)

        I've 2 photos attached

        I did some string search and comparison but could not find the location of "Welcome to USART3" (or a substring)

        and the printout of "R: xxx A: xxx and C: xxx"  (especially the string "C:" I could not find)

        Martin

        2772933913?profile=RESIZE_1024x10242772934840?profile=RESIZE_1024x1024

  • 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.

    • Hi Rui,

      so there are two method to upload to upgrade the firmware on Multipilot32 , the first one is described in the video it use serial 1 of micro controller. This video explain the first method for upload the firmware on multipilot32 . Now is available another method that use usb cable , the serial cable is use for telemetry and for connect mp32 to Mission planner.

      http://code.google.com/p/multipilot32/wiki/MP32_OILPAN

      In this wiki you can found a quick tutorial for use MP32 with Oilpan write by email.

      In the next week the wiki docs will be update with more info about mp32. Use configuration , update ecc ecc

      Best

      Roberto

  • Hello,

     

    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 0.0.4.5) 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.

  • Wow.

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

     

This reply was deleted.