Updated Building custom firmware (markdown)
[inav.wiki.git] / Legacy-target-Motolab.md
blob8a5f0f90ff041afb4f742f5fbcc88326cd7f8852
1 # Board - MotoLab
3 The MOTOLAB build target supports the STM32F3-based boards provided by MotoLab.
5 At present this includes the TornadoFC and MotoF3. The TornadoFC is described here:
7 http://www.rcgroups.com/forums/showthread.php?t=2473157
9 The MotoF3 documentation will be provided when the board is available.
11 Both boards use the STM32F303 microcontroller and have the following features:
13 * 256K bytes of flash memory
14 * Floating point math coprocessor
15 * Three hardware serial port UARTs
16 * USB using the built-in USB phy that does not interfere with any hadware UART
17 * Stable voltage regulation
18 * High-current buzzer/LED output
19 * Serial LED interface
20 * Low-pass filtered VBAT input with 1/10 divider ratio
21 * 8 short-circuit protected PWM outputs, with 5V buffering on the TornadoFC
22 * On-board 6S-compatible switching regulator (MotoF3)
23 * Direct mounting option for a Pololu switching regulator for up to 6S lipo operation (TornadoFC)
26 # Flashing
28 The MotoLab boards use the internal DFU USB interface on the STM32F3 microcontroller which is not compatible with the INAV configurator flashing tool.
30 Instead, on Windows you can use the Impulse Flashing Utility from ImpulseRC, available here:
32 http://www.warpquad.com/ImpulseFlash.zip
34 Download and unzip the program. Start the program, plug in the USB on the target board, and drag and drop the intended binary file onto the program icon. The program will put the STM32F3 into bootloader mode automatically and load the binary file to the flash.
36 For programming on Linux, use the dfu-util program which is installed by default on Ubuntu-based systems. Connect the boot pins on the board and plug in the USB.
38 Verify that the system identifies the DFU device with this command:
39 ```
40 dfu-util -l
41 ```
43 The output should list a "Found DFU" device, something like this:
44 ```
45 dfu-util 0.5
47 (C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc.
48 (C) 2010-2011 Tormod Volden (DfuSe support)
49 This program is Free Software and has ABSOLUTELY NO WARRANTY
51 dfu-util does currently only support DFU version 1.0
53 Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash  /0x08000000/128*0002Kg"
54 Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=1, name="@Option Bytes  /0x1FFFF800/01*016 e"
55 ```
57 Use this command to load the binary file to the flash memory on the board:
58 ```
59 dfu-util --alt 0 -s 0x08000000 -D <binfile>
60 ```
62 The output should look something like this:
63 ```
64 dfu-util 0.5
66 (C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc.
67 (C) 2010-2011 Tormod Volden (DfuSe support)
68 This program is Free Software and has ABSOLUTELY NO WARRANTY
70 dfu-util does currently only support DFU version 1.0
72 Opening DFU USB device... ID 0483:df11
73 Run-time device DFU version 011a
74 Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash  /0x08000000/128*0002Kg"
75 Claiming USB DFU Interface...
76 Setting Alternate Setting #0 ...
77 Determining device status: state = dfuDNLOAD-IDLE, status = 0
78 aborting previous incomplete transfer
79 Determining device status: state = dfuIDLE, status = 0
80 dfuIDLE, continuing
81 DFU mode device DFU version 011a
82 Device returned transfer size 2048
83 No valid DFU suffix signature
84 Warning: File has no DFU suffix
85 DfuSe interface name: "Internal Flash  "
86 ```
88 A binary file is required for the Impulse flashing Utility and dfu-util. The binary file can be built as follows:
89 ```
90 make TARGET=MOTOLAB clean
91 make TARGET=MOTOLAB binary
92 ```
94 To completely erase the flash, create an all-zero file with this command on linux:
95 ```
96 dd if=/dev/zero of=zero.bin bs=1 count=262144
97 ```
99 ## Todo
101 Pinout documentation