└── 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 | --------------------------------------------------------------------------------