└── ICF5
├── ICF5_BASE.pdf
├── ICF5_FMU.pdf
├── ICF5_IMU.pdf
├── ICF5_PINOUT-2023-03-08.xlsx
└── README.md
/ICF5/ICF5_BASE.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Firmament-Autopilot/hardware/2de1c75b8ae500b528392b2596ba3f799c360c14/ICF5/ICF5_BASE.pdf
--------------------------------------------------------------------------------
/ICF5/ICF5_FMU.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Firmament-Autopilot/hardware/2de1c75b8ae500b528392b2596ba3f799c360c14/ICF5/ICF5_FMU.pdf
--------------------------------------------------------------------------------
/ICF5/ICF5_IMU.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Firmament-Autopilot/hardware/2de1c75b8ae500b528392b2596ba3f799c360c14/ICF5/ICF5_IMU.pdf
--------------------------------------------------------------------------------
/ICF5/ICF5_PINOUT-2023-03-08.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Firmament-Autopilot/hardware/2de1c75b8ae500b528392b2596ba3f799c360c14/ICF5/ICF5_PINOUT-2023-03-08.xlsx
--------------------------------------------------------------------------------
/ICF5/README.md:
--------------------------------------------------------------------------------
1 | AMOV ICF5 Flight Controller
2 | ============================
3 |
4 | ICF5 is a professional open-source autopilot hardware created by FMT teams and AMOVLAB. ICF5 is equipped with the latest FMT stable firmware and can be applied to various robotics application scenarios.
5 |
6 | FMT is a next-generation open source autopilot system which supports Model-based-design (MBD). Use MATLAB/Simulink to quickly build algorithm models graphically, and one-click to generate C/C++ code which can be easily deployed to ICF5. Using FMT can greatly improves the development efficiency and make R&D much easier. ICF is an ideal platform for algorithm and prototype verification.
7 |
8 |

9 |
10 | ## Feature
11 |
12 | - FMU Processor:
13 | - 32 Bit Arm® Cortex®-M4, 240MHz, 1MB memory, 512KB RAM
14 | - On-board sensors:
15 | - IMU: BMI088/ICM-42688-P/ICM-20948
16 | - Magnetometer: BMM150/ICM-20948
17 | - Barometer: SPL06-001/MS5611
18 | - Interfaces:
19 | - 10 PWM outputs
20 | - Dedicated R/C input for PPM and SBUS
21 | - 1 GPS integrated with safety switch and buzzer interface
22 | - 5 general purpose serial ports
23 | - 3 I2C ports
24 | - 1 SPI buses
25 | - 1 CAN Buses
26 | - 1 ETH
27 | - 1 Type-C USB
28 | - Power System:
29 | - Power module output: 4.9~5.5V
30 | - USB Power Input: 4.75~5.25V
31 | - Servo Rail Input: 0~36V
32 | - Weight and Dimensions:
33 | - Weight: 39.3g
34 | - Dimensions: 70x36x18.5mm
35 | - Other Characteristics:
36 | - Operating temperature: -20 ~ 85°c
37 |
38 | ## Wiki
39 |
40 | https://wiki.amovlab.com/public/icf5-wiki/
41 |
42 | ## Where to Buy
43 | https://item.taobao.com/item.htm?spm=a230r.1.14.60.284211f8srcCoe&id=705459383848&ns=1&abbucket=12#detail
44 |
45 | ## Build
46 |
47 | Build firmware for quadcopter
48 |
49 | ```
50 | cd FMT-Firmware/taget/amov/icf5
51 | scons -j4
52 | ```
53 |
54 | > -jN allows N jobs at once which makes your build process quicker.
55 |
56 | For other vehicle, such as fixwing, using
57 |
58 | ```
59 | scons -j4 --vehicle=Fixwing
60 | ```
61 |
62 | ## Download
63 |
64 | Currently there are 2 ways to download firmware to hardware.
65 |
66 | 1. **Donwload Script**: Enter `python3 uploader.py` in the icf5 directory. Then connect your hardware via usb.
67 |
68 | ```
69 | PS D:\ws\FMT\FMT-Firmware\target\amov\icf5> python .\uploader.py
70 | waiting for the bootloader...
71 | Error: no serial connection found
72 | wait for connect fmt-fmu...
73 | Error: no serial connection found
74 | wait for connect fmt-fmu...
75 |
76 | Found board id: 50,0 bootloader version: 5 on COM7
77 | sn: 000000000000000000000000
78 | chip: 22020419
79 | family: b'GD32F4[5|7]x'
80 | revision: b'?'
81 | flash: 1015808 bytes
82 | Windowed mode: False
83 |
84 | Erase : [====================] 100.0%
85 | Program: [====================] 100.0%
86 | Verify : [====================] 100.0%
87 | Rebooting. Elapsed Time 9.687
88 | ```
89 |
90 | > If the `"ModuleNotFoundError: No module named 'serial'"` error occurs, indicating that the **pyserial** component is missing, enter `pip3 install pyserial` to install.
91 |
92 | 2. **J-Link**: If you have a JLink, you can connect it to board debug port download the firmware. For more information, please check the [Debug](https://firmament-autopilot.github.io/FMT-DOCS/#/introduction/debug) section.
93 |
94 | > Be careful do not override the bootloader!
95 |
96 | When system is up and running, the system banner is output via serial0 or you can view it by entering `boot_log` in QGC Mavlink Console.
97 |
98 | ```
99 | -----------FMT Bootloader v1.x-----------
100 | Board Type: 50
101 | Board Revision: 0
102 | Board Flash Size: 1015808
103 | App Load Address: 0x8010000
104 |
105 | _____ __
106 | / __(_)_____ _ ___ ___ _ ___ ___ / /_
107 | / _// / __/ ' \/ _ `/ ' \/ -_) _ \/ __/
108 | /_/ /_/_/ /_/_/_/\_,_/_/_/_/\__/_//_/\__/
109 | Firmware.....................FMT FW v0.3.0
110 | Kernel....................RT-Thread v4.0.3
111 | RAM.................................448 KB
112 | Target...........................Amov-ICF5
113 | Vehicle.........................Quadcopter
114 | INS Model..................Base INS v0.3.1
115 | FMS Model..................Base FMS v0.4.0
116 | Control Model.......Base Controller v0.2.4
117 | Task Initialize:
118 | local.................................OK
119 | offboard..............................OK
120 | comm..................................OK
121 | logger................................OK
122 | status................................OK
123 | vehicle...............................OK
124 | ```
125 |
126 |
127 |
128 | ## Port Mapping
129 |
130 | | UART | Device | Port |
131 | | ---- | ------ | ---- |
132 | | UART6 | serial0 | DEBUG |
133 | | USART1 | serial1 | TELEM1 |
134 | | USART2 | serial2 | TELEM2 |
135 | | USART0 | serial3 | UART |
136 | | UART7 | serial4 | GPS |
137 |
138 | | SPI | Device | Port |
139 | | ---- | ------ | ---- |
140 | | SPI1 | spi1_dev3 | SPI CS1 |
141 | | SPI1 | spi1_dev4 | SPI CS2 |
142 |
143 | | I2C | Device | Port |
144 | | ---- | ------ | ---- |
145 | | I2C0 | / | I2C |
146 |
--------------------------------------------------------------------------------