**Silverware** is going to have support for multiple different hardware platforms. Each copter has slightly different pin-outs, but with the right settings in the hardware.h file, it should be able to support some.
For instructions on flashing a board with the STM32F0xx series processor, look at the bottom of this page.
=== Hardware support ===
If a copter uses supported chips, adding it to Silverware should really easy.
^MCU^Supported|
|STM32F031K4|Yes|
|STM32F030|Yes (some pwm pins not available)|
|STM32F0xx|Yes|
|STM32F031K6|Yes (32K)|
^MPU^Supported|
|M540|Yes|
|M681|Yes|
|M688|Yes|
|MPU-6050|Yes|
|MPU-6052C|Yes|
^RX^Supported|
|XN297|Yes|
|XN297L (8 pin)|H8 blue code only|
|XN297L|Yes (can be nrf24 compatible directly)|
|BK2453|Only syma x5c protocol, tested with devo only|
^Protocols^Supported|
|BAYANG (H8)|Yes|
|CG023|Yes - some stock tx not working|
|CX10BLUE|Yes|
|H7|Yes|
|Bluetooth beacon|Bayang only|
|Bayang + telemetry|Yes - devo and multimodule|
|Q282|Yes|
^Copter^H8 acro/dual^H101 acro/dual^CG023^Other^Notes|
|Eachine/JJRC H8, green board|yes| | | |[[:h8mini|See the dedicated page]]|
|Eachine H8 3D mini| | | |yes 3D([[https://github.com/silver13/H8_3D|code]])| |
|Floureon H101| |yes| | | |
|Eachine H8S| |yes| | | |
|Eachine CG023| | |yes| | |
|Eachine/JJRC H8, blue board| | |yes|[[https://github.com/silver13/H8mini_blue_board|[1]]]| \\ Keil Bug, solve it [[https://www.rcgroups.com/forums/showthread.php?2721755-H8-blue-board-flashing-instructions#post35501995|that way, ]]CLK/DAT swapped \\ \\ [[:h8mini|See the dedicated page]] \\ |
|GW008 Skull Quad| | | |yes, forum post| |
|DHD D1| | |[[https://www.rcgroups.com/forums/showpost.php?p=36580830&postcount=1756|info]]|[[https://github.com/silver13/d1|acro only]]| |
|Bayang X9, GD F130 mcu board|yes ([[http://www.rcgroups.com/forums/showpost.php?p=35605395&postcount=945|post]])| | | |motor order changed, 16k flash|
|Eachine 3D X4, CG027R board| | |yes| | |
|FQ777-124|yes ([[https://www.rcgroups.com/forums/showpost.php?p=36558530&postcount=7259|post]])| | | |[[https://github.com/bikemike/h8mini-testing/tree/fq777-124|bikemike's fork]]|
|CX Model CX023|yes ([[https://www.rcgroups.com/forums/showthread.php?2512604-Eachine-H8-mini-acro-firmware/page545#post37060692|post)]] \\ and following| | | |[[https://github.com/bikemike/h8mini-testing/tree/fq777-124|bikemike's fork]] {{:wiki:hardware_cx023.h..zip|:wiki:hardware_cx023.h..zip}} |
|[[:bwhoop|Boldclash Bwhoop B-03+B03 pro]]| | | |[[https://github.com/silver13/BoldClash-BWHOOP-B-03/|Github]]|[[:bwhoop_ah|Alt hold supported]] using [[https://github.com/silver13/BoldClash-BWHOOP-B-03/tree/AH|this branch]]. \\ Keil Bug, solve it [[https://www.rcgroups.com/forums/showthread.php?2721755-H8-blue-board-flashing-instructions#post35501995|that way]]|
|[[http://sirdomsen.diskstation.me/dokuwiki/doku.php?id=e011|Eachine E011]]| | | |[[https://github.com/silver13/Eachine-E011|Github]]|[[https://www.rcgroups.com/forums/showthread.php?2721755-H8-blue-board-flashing-instructions#post35501995|flashing instructions]]|
|Furibee H801|yes| | |[[https://github.com/silver13/BoldClash-BWHOOP-B-03/|Github]]|same as BWHOOP, identical boards|
=== Multicopter Hardware Table ===
^Copter^MCU^MPU^RX^Pinout^Supported^Notes|
^DHD D1^STM32F031K4^M540^XN297^-^[[https://github.com/silver13/d1|https://github.com/silver13/]][[https://github.com/silver13/d1|d1]][[https://www.rcgroups.com/forums/showpost.php?p=36580830&postcount=1756|info]]^onboard vreg turned on by cpu|
|Eachine H8 (Blue board)|STM32F030F4P6|M688|XN297LBW| |Yes ([[https://github.com/silver13/H8mini_blue_board|*]])|unusual radio ic, 3wire spi (bi-directional)|
|M9912|STM32F031K4| |XN297|[[http://static.rcgroups.net/forums/attachments/4/7/0/8/6/1/a9255237-208-9912.JPG|Here]]|[[https://github.com/stawel/CG023/commit/4549a1e76ed24513d88a580df774b8c51c2039d9|Maybe]][[http://www.rcgroups.com/forums/showpost.php?p=35485543&postcount=889|Yes]]|[[:mt9912|MT9912]]|
|Global Drone GW008|STM32F031K4| | |[[http://www.rcgroups.com/forums/showpost.php?p=34593098&postcount=38|Here]]|Yes|2 versions , one has LT5910? cpu|
|Bayangtoys X9 (stm32 version)|STM32F031K4|MPU-6050|XN297| |[[http://www.rcgroups.com/forums/showpost.php?p=34841275&postcount=151|Post 1]], [[http://www.rcgroups.com/forums/showpost.php?p=34985634&postcount=298|2]]| |
|Bayangtoys X9 (GD32 version)|GD32F130G4|Mxxx|XN297| |[[http://www.rcgroups.com/forums/showpost.php?p=35605395&postcount=945|Post]]|Note 16K flash, acc calibration will not work|
|Bayangtoys X7|STM32F031K4|MPU-6050|XN297|[[http://static.rcgroups.net/forums/attachments/4/7/0/8/6/1/a9262999-19-Bayangtoys%20X7%20pinout.JPG|Here]]|[[http://www.rcgroups.com/forums/showpost.php?p=35521846&postcount=926|harware.h file]]| |
|Juncheng 3015-2|STM32F031K4|MPU-6050| | |[[http://www.rcgroups.com/forums/showpost.php?p=34942666&postcount=248|Forum Post]]| |
|Cheerson CX10|STM32F031K4|MPU-6050|XN297| |[[http://www.rcgroups.com/forums/showpost.php?p=34818646&postcount=138|Forum Post]]|Multiple (5+) board versions, see D1|
|FQ777-124 (Green)|STM32F031K4| | | |Not Yet|Multiple board versions|
|FQ777-124 (Red)|GD32F130G6| | | |[[https://www.rcgroups.com/forums/showpost.php?p=36558530&postcount=7259|Forum Post]]|PCB 'SF123R2.4 V1.2|
|Fayee FY804|STM32F031K4| |XN297| |May be same as D1|see D1 link above|
|Fayee FY805|GD32F130K6| |XN297| |Yes|[[https://www.rcgroups.com/forums/showthread.php?2512604-Eachine-H8-mini-acro-firmware/page805#post38540867|Forum Post, ]]hexa board|
|DM003|STM32F031K4| |XN297|[[http://static.rcgroups.net/forums/attachments/4/7/0/8/6/1/a9209496-248-DM003%20pinouts.JPG|Here]]|Yes|[[https://www.rcgroups.com/forums/showthread.php?t=2634611&page=46#post35358892|Forum Post]]|
|DM007|STM32F031K4| |XN297| |Yes|[[https://github.com/silver13/H8mini_blue_board|Forum Post ]]|
|JJRC X1| | | | |Unknown| |
|MJX X900| | | | |Unknown| |
|MJX X901| | | | |Unknown| |
|XINLIN X165|STM32F031K4| |BK2425| |No| \\ Serial ports onboard|
|Moontop M9916| | | | |Unknown| |
|Syma X5SC|STM32F031K6|MPU-6050|Beken| |[[https://www.rcgroups.com/forums/showpost.php?p=36550808&postcount=1732|Forum post]]|not same as X5C|
|Hubsan 107C+ (new) also D+ , P|STM32F031K6| |A7105| |Not yet|has barometer onboard|
|WLtoys Q282 //board only// |STM32F031K4| |XN297L| |[[http://www.rcgroups.com/forums/showpost.php?p=35033255&postcount=338|Forum post]]|currently working as quad, 5v stepup|
|Eachine 3D X4|STM32F031K4|M688|XN297|[[http://www.rcgroups.com/forums/showpost.php?p=35033255&postcount=338|RCG forum post]]|yes, 3d code here >> [[http://www.rcgroups.com/forums/showpost.php?p=35058390&postcount=369|RCG forum post]]| |
|Eachine E010|LOG5897|Mxxx|rf/mcu integrated| |No , No datasheet| \\ Cortex M0 , XN297 RF|
|[[http://www.banggood.com/Eachine-H8-3D-Mini-CF-Mode-2_4G-4CH-6Axis-RC-Quadcopter-RTF-p-990494.html|Eachine H8 3d mini]]|STM32F031K4|MPU-6052|XN297| |Yes 3D [[https://github.com/silver13/H8_3D|github]]|step-up onboard|
=== Rebrands ===
These copters should be rebrands and therefore supported if the 'parent' is:
* **DHD D1**:
* possible two board types, quite different visually. Check before flashing
* Floureon X-10
* 2FAST2FUN Color Quad XS
* Fayee Fy804
* **Eachine H8 blue**:
* JJRC H8 blue
=== CX-10 notes ===
The cx-10 uses a voltage regulator that gets turned on by the cpu. When the switch gets turned on, a capacitor powers the regulator for about 1 second, and in that time, the cpu has to turn a pin on, to keep the regulator on.
For this reason, programming has to use 4 wires (one for power) , or else the quad turns off while flashing.
You can see if it has one of those regulators, because they have 5 pins. Normally they just look like a mosfet. This feature is present in small quads with built in battery and a power switch. Presumably it is to save the battery in case the quad is forgot powered on.
In software, this pin is noted as Vreg pin, and the pin set as such gets turned on as soon as possible.
=== How to flash a board with the STM32F0xx series processor ===
Read [[http://www.rcgroups.com/forums/showpost.php?p=34381034&postcount=1|this post]] first.
Before flashing, the hardware.h file must be configured to assign the correct pins to the processor for the board you are going to flash. There are instructions at the top of the hardware.h file. For an example of how to set up the LED's, read [[http://www.rcgroups.com/forums/showpost.php?p=35509671&postcount=916|this post.]]
Since different quads have different pins of the main processor assigned to different functions (motors, LED's, gyro), silvverxxx made the code configurable. Of course, the default settings are for another Copter and nothing has to be done for a natively supported copter. This is only for if you want to flash a quad that uses an STM32F031 processor and it isn't a natively supported one.
First you need to trace the pcb and find out what pins of the processor go to the gyro, the LED's and the motors. This is not easy on some pcb's as the traces can go from the top side to the bottom side through tiny copper tubes called vias. Other boards are easier and can sometimes be traced just from close-up pics on the internet.
Once you know the connections for the gyro, motors, LED's and battery voltage divider (for low battery voltage warning) you can assign the pins in the firmware by opening up the file hardware.h in Keil.
There are some further instructions [[http://www.rcgroups.com/forums/showthread.php?t=2512604&page=91#post34349675|in this post.]]
The "st-link utility" can also be used to erase a STM32 chip, as well as to upload a binary file already compiled ( maybe with gcc). Sometimes, the utility can erase ships that Keil wont. It seems Keil wont erase chips that have both readout protection (RDP) and flash sector write-protect on.
\\