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:
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:
Bootloading the Firmware
On the board there are two pads available for setting all Multipilot32 possibilities.
The pads are :
JP20 - JP21
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)
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
This is the link to flash loader : http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/SW_D...
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.
PAD SETUP FOR THIS MODE :
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.
PAD SETUP FOR THIS MODE :
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 .
i have an openprimer2 to play with.
with ride7 i could use c++ - see: http://www.stm32circle.com/forum/viewtopic.php?id=433
the compiler suite does come from codesourcery - thus build in c++ support. they only thing how to link the c++ lib's.
for me it would be interesting to get acm running on stm.
i already modded the adc lib for atmel because i think it is not really good.
so what is needed to start porting? :)
this would be the api - lower level drivers. no assumption is made how it looks above this layer.
Hi Robert ,
this morning i start to write how to doc .. and put in on a blog .. so your comment is welcome.
Are you sure that Ride7 support C++ ? In my test it don't work ... now i'll add info about the ide enviroment that i'm using ... Eclipse +codesourcery .
I have an example code with a lot of function usefull for porting of acm . What approach do you prefer ? We can write a wrapper for arduino function inside a acm program and write a compatible apm class . I yet start this work based on Xduino .. but now my idea is to join Xduino project to ChibiOS then reimplement the class inside the Xduino with native hal .. what do you think about ?
Dear Friends ,
is available some demo code for your Multipilot 32. Check the repo and try to upload it.
i have the boards :)
can you provide a small how-to to attach a jtag/swd?
all clear, need a small adapter :)
it is german, but a few will understand - others might learn a bit.
i am asked to help a bit - getting staerted.
all prob. know the way too large 20 pin arm jtag connector.
one side is ground only - so it can shrinked without to much difficulties.
on the page/link provided above you find a picture "Der 10-polige JTAG Stecker von mmvisual "
this connector is like the U$1 connector found in the tech doc.
(be carefull - a little bit different)
thus a simple adapter cable is required to match it with a standard 20 pin connector.
and then you can start programming <G>
but it is way different a microsoft or vxworks os'es ...
i am eargerly waiting for the sample to hook up the spi/iec bus.
Hi Spartacus ,
I'm very happy that you join our meeting this evening , and I happy that you found usefull all the information and video that i put on our website if you need some help don't exitate to contact me directly.
I have some problems when I try to connect the MP32 via the Flash Loader Demo. I have the message "Unrecognized device..." or " No response from the target...".
I use an USB to serial cable with a TTL 3.3V converter . I connect Rx and Tx of the TTL converter to pin JP4_2 and JP4_3.
The MP32 is supplied via the USB port.
I can see with my scope that when I click on the "Next" button of the Flash Loader Demo to connect to the UART, data are transmitted to the MP32, then the MP32 Reply by sending data on the UART JP4_2. But I have the message "Unrecogniezd device..." or "No response". I have tried to push reset: same problem.
The BOOT_0 = H , BOOT_1 = L.
I don't use shortcut
So, where is the problem ?
how you power up your converter ? Are you using 5volt from MP32 ? or you use other source ?
Check if the ttl converter work fine with the power source that you are connected to the board .. i remember that another user had same problem and connect the power or converter 3.3v available on mp32 header .
You can shortcut the ttl converter and with a terminal check if you see a echo on serial terminal .
If you see a echo the flash loader normally work fine .
check the post in this discussion if you don't solve the problem contact me in skype my address is virtualrobotix
I had the same problem. I have a ttl level shifter. The shifter has Rx, Tx, Vcc, and Gnd. Vcc must be tied to the MP32 3.3V not 5V. That is what solved my problem. Some ttl converters can handle this, but mine could not.
I used the 3V3 pin on JP-19 (pin 3). There is also one on the jtag U$1(pin1).
See the following post: