-
Notifications
You must be signed in to change notification settings - Fork 345
Expand file tree
/
Copy pathtargets.h
More file actions
5341 lines (4585 loc) · 140 KB
/
targets.h
File metadata and controls
5341 lines (4585 loc) · 140 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#ifndef USE_MAKE
// #define F031_DEV
// #define FD6288_F051
// #define IFLIGHT
// #define MP6531
// #define TMOTOR55 // like iflight but with leds
// #define TMOTOR45
// #define HGLRC
// #define SISKIN
// #define MAMBA_F50PRO
// #define WRAITH32
// #define AIKON20X20
// #define AIKONSINGLE
// #define FLYCOLOR
// #define HKMICRO
// #define AM32REF_F051
// #define BLPWR
// #define HVFLYCOLOR
// #define AM32REF_F051
// #define G072ESC
// #define G071ENABLE
// #define G071_OPEN_DRAIN
// #define G071_OPEN_DRAIN_B
// #define GEN_64K_G071
// define DT120_G071
// #define WRAITH32_F421
// #define GD32DEV
// #define GD32DEV_B
// #define GD32SKYSTARS20
// #define GD32SKYSTARS25
// #define GD32SKYSTARS30
// #define GD32SKYSTARS40
#endif
// used to hold a port/pin in a single 16 bit integer
#define GPIO_PORT_PIN(portnum, pinnum) ((portnum)<<8|(pinnum))
// GLOBAL
// #define USE_ADC_INPUT
// #define USE_ALKAS_DEBUG_LED
#ifdef LUMENIER_12S_F421
#define FIRMWARE_NAME "Lumenier 12s"
#define FILE_NAME "LUMENIER_12S_F421"
#define DEAD_TIME 120
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define CURRENT_ADC_PIN GPIO_PINS_3
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_3
#define VOLTAGE_ADC_PIN GPIO_PINS_6
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_6
#define USE_SERIAL_TELEMETRY
#define MILLIVOLT_PER_AMP 19
#define RAMP_SPEED_LOW_RPM 1
#define RAMP_SPEED_HIGH_RPM 1
#endif
#ifdef NEUTRON_L431
#define FILE_NAME "NEUTRON_L431"
#define FIRMWARE_NAME "L431 Neutron"
#define DEAD_TIME 70
#define HARDWARE_GROUP_L4_N
#define TARGET_VOLTAGE_DIVIDER 210
#define CURRENT_OFFSET 498
#define MILLIVOLT_PER_AMP 16
#define USE_SERIAL_TELEMETRY
#define USE_INTERNAL_AMP
#define NO_POLLING_START
#endif
#ifdef NEUTRON_SINGLE_L431
#define FILE_NAME "NEUTRON_SINGLE_L431"
#define FIRMWARE_NAME "Neutron L4 S"
#define DEAD_TIME 70
#define HARDWARE_GROUP_L4_N
#define TARGET_VOLTAGE_DIVIDER 210
#define CURRENT_OFFSET 498
#define MILLIVOLT_PER_AMP 8
#define USE_SERIAL_TELEMETRY
#define USE_INTERNAL_AMP
#endif
#ifdef VIMDRONES_L431
#define FIRMWARE_NAME "VimdroneL431"
#define FILE_NAME "VIMDRONES_L431"
#define DEAD_TIME 45
#define HARDWARE_GROUP_L4_B
#define TARGET_VOLTAGE_DIVIDER 94
#define MILLIVOLT_PER_AMP 30
#define USE_SERIAL_TELEMETRY
#define EEPROM_START_ADD (uint32_t)0x0800F800
#endif
#ifdef VIMDRONES_L431_CAN
#define FIRMWARE_NAME "VimdroneL431"
#define FILE_NAME "VIMDRONES_L431_CAN"
#define DRONECAN_SUPPORT 1
#define DRONECAN_NODE_NAME "com.vimdrones.esc_dev"
#define DEAD_TIME 45
#define HARDWARE_GROUP_L4_B
#define TARGET_VOLTAGE_DIVIDER 94
#define MILLIVOLT_PER_AMP 30
#define USE_SERIAL_TELEMETRY
#endif
#ifdef VIMDRONES_NANO_L431
#define FIRMWARE_NAME "VM_NANO"
#define FILE_NAME "VIMDRONES_NANO_L431"
#define DEAD_TIME 45
#define HARDWARE_GROUP_L4_B
#define TARGET_VOLTAGE_DIVIDER 110
#define MILLIVOLT_PER_AMP 20
#define USE_SERIAL_TELEMETRY
#endif
#ifdef VIMDRONES_NANO_L431_CAN
#define FIRMWARE_NAME "VM_NANO_CAN"
#define FILE_NAME "VIMDRONES_NANO_L431_CAN"
#define DRONECAN_SUPPORT 1
#define DRONECAN_NODE_NAME "com.vimdrones.esc_nano"
#define USE_HSE
#undef HSE_VALUE
#define HSE_VALUE 24000000
#define DEAD_TIME 45
#define HARDWARE_GROUP_L4_B
#define TARGET_VOLTAGE_DIVIDER 110
#define MILLIVOLT_PER_AMP 20
#define USE_SERIAL_TELEMETRY
#endif
#ifdef VIMDRONES_S50_L431
#define FIRMWARE_NAME "VM_S50_CAN"
#define FILE_NAME "VIMDRONES_S50_L431"
#define DEAD_TIME 45
#define HARDWARE_GROUP_L4_B
#define TARGET_VOLTAGE_DIVIDER 110
#define MILLIVOLT_PER_AMP 10
#define USE_SERIAL_TELEMETRY
#endif
#ifdef VIMDRONES_S50_L431_CAN
#define FIRMWARE_NAME "VM_S50_CAN"
#define FILE_NAME "VIMDRONES_S50_L431_CAN"
#define DRONECAN_SUPPORT 1
#define DRONECAN_NODE_NAME "com.vimdrones.esc_s50"
#define USE_HSE
#undef HSE_VALUE
#define HSE_VALUE 24000000
#define DEAD_TIME 45
#define HARDWARE_GROUP_L4_B
#define TARGET_VOLTAGE_DIVIDER 110
#define MILLIVOLT_PER_AMP 10
#define USE_SERIAL_TELEMETRY
#endif
#ifdef SIERRA_PULSE_12S_L431_CAN
#define FIRMWARE_NAME "S_PULSE_12S"
#define FILE_NAME "SIERRA_PULSE_12S_L431_CAN"
#define DRONECAN_SUPPORT 1
#define USE_HSE
#define USE_HSE_BYPASS 0
#undef HSE_VALUE
#define HSE_VALUE 16000000
#define DEAD_TIME 60
#define HARDWARE_GROUP_L4_C
#define HARDWARE_GROUP_L4_045
#define TARGET_VOLTAGE_DIVIDER 210
#define MILLIVOLT_PER_AMP 10
#define RAMP_SPEED_LOW_RPM 1
#define RAMP_SPEED_HIGH_RPM 1
#define LOOP_FREQUENCY_HZ 20000
#define USE_SERIAL_TELEMETRY
#endif
#ifdef SIERRA_PULSE_6S_L431_CAN
#define FIRMWARE_NAME "S_PULSE_6S"
#define FILE_NAME "SIERRA_PULSE_6S_L431_CAN"
#define DRONECAN_SUPPORT 1
#define USE_HSE
#define USE_HSE_BYPASS 0
#undef HSE_VALUE
#define HSE_VALUE 16000000
#define DEAD_TIME 60
#define HARDWARE_GROUP_L4_C
#define HARDWARE_GROUP_L4_045
#define TARGET_VOLTAGE_DIVIDER 110
#define MILLIVOLT_PER_AMP 10
#define USE_SERIAL_TELEMETRY
#endif
#ifdef TBS_12S_L431_CAN
#define FIRMWARE_NAME "TBS 12S CAN"
#define FILE_NAME "TBS_12S_L431_CAN"
#define DEAD_TIME 120
#define HARDWARE_GROUP_L4_C
#define HARDWARE_GROUP_L4_045
#define DRONECAN_SUPPORT 1
#define CAN_TERM_PIN GPIO_PORT_PIN(1, 3) // PB3
#define CAN_TERM_POLARITY 1 // active high
#define TARGET_VOLTAGE_DIVIDER 210
#define MILLIVOLT_PER_AMP 25
#define RAMP_SPEED_LOW_RPM 1
#define RAMP_SPEED_HIGH_RPM 1
#define LOOP_FREQUENCY_HZ 20000
#define USE_LSE
#define USE_LSE_BYPASS 0
#endif
#ifdef TBS_16S_L431_CAN
#define FIRMWARE_NAME "TBS 16S CAN"
#define FILE_NAME "TBS_16S_L431_CAN"
#define DEAD_TIME 120
#define HARDWARE_GROUP_L4_A
#define HARDWARE_GROUP_L4_045
#define DRONECAN_SUPPORT 1
#define CAN_TERM_PIN GPIO_PORT_PIN(1, 3) // PB3
#define CAN_TERM_POLARITY 1 // active high
#define TARGET_VOLTAGE_DIVIDER 310
#define MILLIVOLT_PER_AMP 10
#define RAMP_SPEED_LOW_RPM 1
#define RAMP_SPEED_HIGH_RPM 1
#define LOOP_FREQUENCY_HZ 20000
#define USE_LSE
#define USE_LSE_BYPASS 1
#endif
#ifdef TBS_16S_L431
#define FIRMWARE_NAME "TBS 16S"
#define FILE_NAME "TBS_16S_L431"
#define DEAD_TIME 120
#define HARDWARE_GROUP_L4_A
#define HARDWARE_GROUP_L4_045
#define TARGET_VOLTAGE_DIVIDER 310
#define MILLIVOLT_PER_AMP 10
#define RAMP_SPEED_LOW_RPM 1
#define RAMP_SPEED_HIGH_RPM 1
#define LOOP_FREQUENCY_HZ 20000
#define USE_LSE
#define USE_LSE_BYPASS 1
#endif
#ifdef REF_L431
#define FILE_NAME "REF_L431"
#define FIRMWARE_NAME "L431 TEST"
#define DEAD_TIME 80
#define HARDWARE_GROUP_L4_A
#define COMP_ORDER_L4_A_045
#define TARGET_VOLTAGE_DIVIDER 260
#define USE_SERIAL_TELEMETRY
#define RAMP_SPEED_LOW_RPM 1
#define RAMP_SPEED_HIGH_RPM 1
#endif
#ifdef TMOTOR_L431
#define FILE_NAME "TMOTOR_L431"
#define FIRMWARE_NAME "TMOTOR_L431"
#define DEAD_TIME 80
#define HARDWARE_GROUP_L4_A
#define COMP_ORDER_L4_A_540
#define TARGET_VOLTAGE_DIVIDER 260
#define USE_SERIAL_TELEMETRY
#endif
#ifdef TBS_12S_L431
#define FILE_NAME "TBS_12S_L431"
#define FIRMWARE_NAME "L431 TBS "
#define DEAD_TIME 80
#define HARDWARE_GROUP_L4_A
#define COMP_ORDER_L4_A_045
#define TARGET_VOLTAGE_DIVIDER 210
#define USE_SERIAL_TELEMETRY
#define RAMP_SPEED_LOW_RPM 1
#define RAMP_SPEED_HIGH_RPM 1
#define MILLIVOLT_PER_AMP 25
#endif
#ifdef POGO_L431_CAN
#define DRONECAN_NODE_NAME "pogo.canesc"
#define FIRMWARE_NAME "pogo.canesc"
#define FILE_NAME "POGO_L431_CAN"
#define DRONECAN_SUPPORT 1
#define DEAD_TIME 110
#define HARDWARE_GROUP_L4_B
#define TARGET_VOLTAGE_DIVIDER 210
#define MILLIVOLT_PER_AMP 50
#define USE_SERIAL_TELEMETRY
#endif
#ifdef REF_L431_CAN
#define FILE_NAME "REF_L431_CAN"
#define FIRMWARE_NAME "L431 CAN"
#define DEAD_TIME 80
#define HARDWARE_GROUP_L4_A
#define COMP_ORDER_L4_A_045
#define TARGET_VOLTAGE_DIVIDER 260
#define USE_SERIAL_TELEMETRY
#define RAMP_SPEED_LOW_RPM 1
#define RAMP_SPEED_HIGH_RPM 1
#define DRONECAN_SUPPORT 1
#endif
#ifdef SEQURE_4IN1_E230
#define FIRMWARE_NAME "Sequre e2"
#define FILE_NAME "SEQURE_4IN1_E230"
#define DEAD_TIME 60
#define HARDWARE_GROUP_GD_A
#define USE_SERIAL_TELEMETRY
#define MILLIVOLT_PER_AMP 9
#define CURRENT_ADC_PIN GPIO_PIN_2
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_2
#define VOLTAGE_ADC_PIN GPIO_PIN_6
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_6
#endif
#ifdef SEQURE_4IN1_F421
#define FIRMWARE_NAME "Sequre f4 "
#define FILE_NAME "SEQURE_4IN1_F421"
#define DEAD_TIME 80
#define CURRENT_ADC_PIN GPIO_PINS_2
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_2
#define VOLTAGE_ADC_PIN GPIO_PINS_6
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_6
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define MILLIVOLT_PER_AMP 9
#define USE_NTC
#define NTC_ADC_CHANNEL ADC_CHANNEL_3
#define NTC_ADC_PIN GPIO_PINS_3
#endif
#ifdef SEQURE_4IN1_F051
#define FIRMWARE_NAME "Sequre F0 "
#define FILE_NAME "SEQURE_4IN1_F051"
#define DEAD_TIME 40
#define HARDWARE_GROUP_F0_U
#define HARDWARE_GROUP_F0_045
#define USE_SERIAL_TELEMETRY
#define VOLTAGE_ADC_CHANNEL LL_ADC_CHANNEL_6
#define VOLTAGE_ADC_PIN LL_GPIO_PIN_6
#define CURRENT_ADC_CHANNEL LL_ADC_CHANNEL_2
#define CURRENT_ADC_PIN LL_GPIO_PIN_2
#define MILLIVOLT_PER_AMP 9
#endif
///
#ifdef REF_G431
#define FIRMWARE_NAME "Ref G431"
#define FILE_NAME "REF_G431"
#define DEAD_TIME 80
#define HARDWARE_GROUP_G4_A
#define TARGET_STALL_PROTECTION_INTERVAL 20000
#define USE_SERIAL_TELEMETRY
#endif
#ifdef AS_G431
#define FIRMWARE_NAME "AS G431"
#define FILE_NAME "AS_G431"
#define DEAD_TIME 80
#define HARDWARE_GROUP_G4_C
#define TARGET_STALL_PROTECTION_INTERVAL 20000
#define USE_SERIAL_TELEMETRY
#endif
#ifdef SCAR_G431
#define FIRMWARE_NAME "SCAR_G431"
#define FILE_NAME "SCAR_G431"
#define DEAD_TIME 80
#define HARDWARE_GROUP_G4_A
#define COMP_OVERRIDE
#define TARGET_STALL_PROTECTION_INTERVAL 20000
#define USE_SERIAL_TELEMETRY
#endif
#ifdef PROTONDRIVE_G431
#define FIRMWARE_NAME "PROTONDRIVE "
#define FILE_NAME "PROTONDRIVE_G431"
#define DEAD_TIME 80
#define HARDWARE_GROUP_G4_B
#define TARGET_STALL_PROTECTION_INTERVAL 20000
// #define PA6_VOLTAGE
// #define USE_SERIAL_TELEMETRY
#endif
#ifdef SEQURE_G431
#define FIRMWARE_NAME "SEQURE_G431 "
#define FILE_NAME "SEQURE_G431"
#define DEAD_TIME 80
#define HARDWARE_GROUP_G4_D
#define TARGET_STALL_PROTECTION_INTERVAL 20000
#define USE_SERIAL_TELEMETRY
#define VOLTAGE_ADC_PIN LL_GPIO_PIN_6
#define VOLTAGE_ADC_CHANNEL LL_ADC_CHANNEL_3
#define CURRENT_ADC_PIN LL_GPIO_PIN_7
#define CURRENT_ADC_CHANNEL LL_ADC_CHANNEL_4
#define NTC_ADC_PIN LL_GPIO_PIN_1
#define NTC_ADC_CHANNEL LL_ADC_CHANNEL_12
#define USE_ADC_1_2
#define MILLIVOLT_PER_AMP 5
#define TARGET_VOLTAGE_DIVIDER 480
#define NO_POLLING_START
#define USE_PULSE_OUT
#define RPM_PULSE_PORT GPIOB
#define RPM_PULSE_PIN LL_GPIO_PIN_10
#define USE_LED_STRIP
#define WS2812_PIN LL_GPIO_PIN_8
#define USE_HSE
#undef HSE_VALUE
#define HSE_VALUE 8000000
#define USE_HSE_BYPASS 0
#endif
#ifdef SEQURE_G431_CAN
#define FIRMWARE_NAME "SEQUREG4_CAN"
#define FILE_NAME "SEQURE_G431_CAN"
#define DRONECAN_SUPPORT 1
#define DRONECAN_NODE_NAME "com.sequre.esc"
#define DEAD_TIME 80
#define HARDWARE_GROUP_G4_D
#define TARGET_STALL_PROTECTION_INTERVAL 20000
#define USE_SERIAL_TELEMETRY
#define VOLTAGE_ADC_PIN LL_GPIO_PIN_6
#define VOLTAGE_ADC_CHANNEL LL_ADC_CHANNEL_3
#define CURRENT_ADC_PIN LL_GPIO_PIN_7
#define CURRENT_ADC_CHANNEL LL_ADC_CHANNEL_4
#define NTC_ADC_PIN LL_GPIO_PIN_1
#define NTC_ADC_CHANNEL LL_ADC_CHANNEL_12
#define USE_ADC_1_2
#define MILLIVOLT_PER_AMP 5
#define TARGET_VOLTAGE_DIVIDER 480
#define NO_POLLING_START
#define USE_PULSE_OUT
#define RPM_PULSE_PORT GPIOB
#define RPM_PULSE_PIN LL_GPIO_PIN_10
#define USE_LED_STRIP
#define WS2812_PIN LL_GPIO_PIN_8
#define USE_HSE
#undef HSE_VALUE
#define HSE_VALUE 8000000
#define USE_HSE_BYPASS 0
#endif
#ifdef GD32DEV_A_E230
#define FIRMWARE_NAME "GD32 Dev A"
#define FILE_NAME "GD32DEV_A_E230"
#define DEAD_TIME 40
#define HARDWARE_GROUP_GD_A
#define PA6_VOLTAGE
#define USE_SERIAL_TELEMETRY
#endif
#ifdef SKYSTARS_AM60_E230
#define FIRMWARE_NAME "Skystars 60A"
#define FILE_NAME "SKYSTARS_AM60_E230"
#define DEAD_TIME 30
#define HARDWARE_GROUP_GD_A
#define PA6_VOLTAGE
#define USE_SERIAL_TELEMETRY
#endif
#ifdef SKYSTARS_AM45_E230
#define FIRMWARE_NAME "Skystars 45A"
#define FILE_NAME "SKYSTARS_AM45_E230"
#define DEAD_TIME 30
#define HARDWARE_GROUP_GD_A
#define USE_SERIAL_TELEMETRY
#endif
#ifdef RHINO40A_E230
#define FIRMWARE_NAME "RHINO40A E23"
#define FILE_NAME "RHINO40A_E230"
#define DEAD_TIME 50
#define HARDWARE_GROUP_GD_A
#define PA6_VOLTAGE
#define USE_SERIAL_TELEMETRY
#define LED_ON_PA15
#endif
#ifdef CM_MINI_E230
#define FIRMWARE_NAME "CM_MINI_E230"
#define FILE_NAME "CM Mini V3 "
#define DEAD_TIME 50
#define HARDWARE_GROUP_GD_A
#define PA6_VOLTAGE
#define USE_SERIAL_TELEMETRY
#define LED_ON_PA15
#define RAMP_SPEED_LOW_RPM 1
#define RAMP_SPEED_HIGH_RPM 1
#endif
#ifdef GD32DEV_B_E230
#define FIRMWARE_NAME "GD32Pb4 B "
#define FILE_NAME "GD32DEV_B_E230"
#define DEAD_TIME 50
#define HARDWARE_GROUP_GD_B
#define USE_SERIAL_TELEMETRY
#endif
#ifdef SKYSTARS_KM55_E230
#define FIRMWARE_NAME "KM55A BUTTER"
#define FILE_NAME "SKYSTARS_KM55_E230"
#define DEAD_TIME 30
#define HARDWARE_GROUP_GD_A
#define USE_SERIAL_TELEMETRY
#endif
#ifdef SKYSTARS_SL40_E230
#define FIRMWARE_NAME "SL40 E230"
#define FILE_NAME "SKYSTARS_SL40_E230"
#define DEAD_TIME 40
#define HARDWARE_GROUP_GD_A
#define USE_SERIAL_TELEMETRY
#define USE_RGB_LED
#define RED_PORT GPIOB
#define RED_PIN GPIO_PIN_3
#define GREEN_PORT GPIOA
#define GREEN_PIN GPIO_PIN_15
#define BLUE_PORT GPIOB
#define BLUE_PIN GPIO_PIN_5
#endif
/*********************************************************************AT32F421
* targets*********************************************/
#ifdef ORQA_F421
#define FIRMWARE_NAME "ORQA "
#define FILE_NAME "ORQA_F421"
#define DEAD_TIME 100
#define HARDWARE_GROUP_AT_C
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#endif
#ifdef TBS_6S_4IN1_F421
#define FIRMWARE_NAME "TBSlu6s4in1"
#define FILE_NAME "TBS_6S_4IN1_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_3
#define CURRENT_ADC_PIN GPIO_PINS_3
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_6
#define VOLTAGE_ADC_PIN GPIO_PINS_6
#endif
#ifdef TBS_6S_F421
#define FIRMWARE_NAME "TBS 6S "
#define FILE_NAME "TBS_6S_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_3
#define CURRENT_ADC_PIN GPIO_PINS_3
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_6
#define VOLTAGE_ADC_PIN GPIO_PINS_6
#endif
#ifdef TBS_8S_4IN1_F421
#define FIRMWARE_NAME "TBSlu8s4in1"
#define FILE_NAME "TBS_8S_4IN1_F421"
#define DEAD_TIME 30
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_3
#define CURRENT_ADC_PIN GPIO_PINS_3
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_6
#define VOLTAGE_ADC_PIN GPIO_PINS_6
#endif
#ifdef AIRBEE_F421
#define FIRMWARE_NAME "AIRBEE F4"
#define FILE_NAME "AIRBEE_F421"
#define DEAD_TIME 22
#define HARDWARE_GROUP_AT_045
#define HARDWARE_GROUP_AT_C
#define USE_INVERTED_HIGH
#endif
#ifdef SWAP_PB0_PA7_F421
#define FIRMWARE_NAME "SWAP PB0 PA7"
#define FILE_NAME "SWAP_PB0_PA7"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_045
#define HARDWARE_GROUP_AT_F
#define USE_SERIAL_TELEMETRY
#define USE_PA14_TELEMETRY
#endif
#ifdef F4A_AIO_F421
#define FIRMWARE_NAME "F4A AIO "
#define FILE_NAME "F4A_AIO_F421"
#define DEAD_TIME 75
#define HARDWARE_GROUP_AT_540
#define HARDWARE_GROUP_AT_F
// #define USE_SERIAL_TELEMETRY
// #define USE_PA14_TELEMETRY
// #define PA6_NTC_ONLY
#endif
#ifdef FLYWOO_F4A_F421
#define FIRMWARE_NAME "FLYWOO_F4A "
#define FILE_NAME "FLYWOO_F4A_F421"
#define DEAD_TIME 75
#define HARDWARE_GROUP_AT_540
#define HARDWARE_GROUP_AT_E
#define USE_SERIAL_TELEMETRY
#define USE_PA14_TELEMETRY
#endif
#ifdef FLYWOO_F421
#define FIRMWARE_NAME "FLYWOO_F421 "
#define FILE_NAME "FLYWOO_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_3
#define CURRENT_ADC_PIN GPIO_PINS_3
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_6
#define VOLTAGE_ADC_PIN GPIO_PINS_6
#endif
#ifdef FLYWOO_GOKU_F421
#define FIRMWARE_NAME "FLYWOO_GOKU "
#define FILE_NAME "FLYWOO_GOKU_F421"
#define DEAD_TIME 50
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_540
#define USE_SERIAL_TELEMETRY
#endif
#ifdef F4A_4IN1_F421
#define FIRMWARE_NAME "F4A 4in1 "
#define FILE_NAME "F4A_4IN1_F421"
#define DEAD_TIME 75
#define HARDWARE_GROUP_AT_540
#define HARDWARE_GROUP_AT_E
#define USE_SERIAL_TELEMETRY
#define USE_PA14_TELEMETRY
#endif
#ifdef F4A_RUSH_F421
#define FIRMWARE_NAME "F4A RUSH "
#define FILE_NAME "F4A_RUSH_F421"
#define DEAD_TIME 40
#define HARDWARE_GROUP_AT_540
#define HARDWARE_GROUP_AT_E
#define USE_SERIAL_TELEMETRY
#endif
#ifdef F4A_SINGLE_F421
#define FIRMWARE_NAME "F4A Single "
#define FILE_NAME "F4A_SINGLE_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_540
#define HARDWARE_GROUP_AT_E
#define USE_SERIAL_TELEMETRY
//#define USE_PA14_TELEMETRY
#endif
#ifdef F4A_EXTCOMP_F421
#define FIRMWARE_NAME "F4A Ext Comp"
#define FILE_NAME "F4A_EXTCOMP_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_045
#define HARDWARE_GROUP_AT_E
#define USE_SERIAL_TELEMETRY
#endif
#ifdef AT32DEV_F421
#define FIRMWARE_NAME "AT32PB4 "
#define FILE_NAME "AT32DEV_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_3
#define CURRENT_ADC_PIN GPIO_PINS_3
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_6
#define VOLTAGE_ADC_PIN GPIO_PINS_6
#endif
#ifdef ZTW_A_F421
#define FIRMWARE_NAME "ZTW_A_F421 "
#define FILE_NAME "ZTW_A_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_3
#define CURRENT_ADC_PIN GPIO_PINS_3
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_6
#define VOLTAGE_ADC_PIN GPIO_PINS_6
#endif
#ifdef ZTW_A_HV_F421
#define FIRMWARE_NAME "ZTW_HV_F421 "
#define FILE_NAME "ZTW_A_HV_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_3
#define CURRENT_ADC_PIN GPIO_PINS_3
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_6
#define VOLTAGE_ADC_PIN GPIO_PINS_6
#define TARGET_VOLTAGE_DIVIDER 230
#define MILLIVOLT_PER_AMP 6
#define USE_NTC
#define NTC_ADC_CHANNEL ADC_CHANNEL_2
#define NTC_ADC_PIN GPIO_PINS_2
#endif
#ifdef LIONB_G_F421
#define FIRMWARE_NAME "LIONB F4 G"
#define FILE_NAME "LIONB_G_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_450
#define USE_SERIAL_TELEMETRY
#define USE_STARTUP_BOOST
#define ONE_TWO_CELL_MAX
#define TARGET_MIN_BEMF_COUNTS 2
#endif
#ifdef GOOSKY_3S_F421
#define FIRMWARE_NAME "GOOSKY_F421 "
#define FILE_NAME "GOOSKY_3S_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_2
#define CURRENT_ADC_PIN GPIO_PINS_2
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_3
#define VOLTAGE_ADC_PIN GPIO_PINS_3
#define USE_NTC
#define NTC_ADC_CHANNEL ADC_CHANNEL_6
#define NTC_ADC_PIN GPIO_PINS_6
#endif
#ifdef SILENTFORCE_50_F421
#define FIRMWARE_NAME "Silent-50 "
#define FILE_NAME "SILENTFORCE_50_F421"
#define DEAD_TIME 25
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define MILLIVOLT_PER_AMP 20
#endif
#ifdef HDZERO_HALO_F421
#define FIRMWARE_NAME "HDZ_HALO F4 "
#define FILE_NAME "HDZERO_HALO_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_3
#define CURRENT_ADC_PIN GPIO_PINS_3
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_6
#define VOLTAGE_ADC_PIN GPIO_PINS_6
#endif
#ifdef JHEMCU_F421
#define FIRMWARE_NAME "JHEMCU_F421 "
#define FILE_NAME "JHEMCU_F421"
#define DEAD_TIME 80
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_3
#define CURRENT_ADC_PIN GPIO_PINS_3
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_6
#define VOLTAGE_ADC_PIN GPIO_PINS_6
#define TARGET_MIN_BEMF_COUNTS 3
#endif
#ifdef FLASHHOBBY_F421
#define FIRMWARE_NAME "FH F421 "
#define FILE_NAME "FLASHHOBBY_F421"
#define DEAD_TIME 40
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#endif
#ifdef DAKEFPV_F421
#define FIRMWARE_NAME "DakeFpv F4 "
#define FILE_NAME "DAKEFPV_F421"
#define DEAD_TIME 50
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_3
#define CURRENT_ADC_PIN GPIO_PINS_3
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_6
#define VOLTAGE_ADC_PIN GPIO_PINS_6
#endif
#ifdef LYI_F421
#define FIRMWARE_NAME "LYI32_F421 "
#define FILE_NAME "LYI_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_045
#define HARDWARE_GROUP_AT_C
#define USE_SERIAL_TELEMETRY
#define CURRENT_OFFSET 101
#endif
#ifdef NEUTRON_2_6S_AIO_F421
#define FIRMWARE_NAME "Neutron AIO"
#define FILE_NAME "NEUTRON_2_6S_AIO"
#define DEAD_TIME 40
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#endif
#ifdef NEUTRON_4IN1_F421
#define FIRMWARE_NAME "NEUTRON_4IN1"
#define FILE_NAME "NEUTRON_4IN1_F421"
#define DEAD_TIME 50
#define HARDWARE_GROUP_AT_C
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#endif
#ifdef RR_ROBOT_DUAL_ESC_F421
#define FIRMWARE_NAME "RR DUAL ESC "
#define FILE_NAME "RR_ROBOT_DUAL_ESC_F421"
#define DEAD_TIME 50
#define HARDWARE_GROUP_AT_C
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define VOLTAGE_BASED_RAMP
#define MILLIVOLT_PER_AMP 12
#endif
#ifdef DARWIN_F421
#define FIRMWARE_NAME "DARWIN F421 "
#define FILE_NAME "DARWIN_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_245 // pa2
#define USE_SERIAL_TELEMETRY
#endif
#ifdef AIKON_F421
#define FIRMWARE_NAME "AIKON_F421"
#define FILE_NAME "AIKON_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_245 // pa2
#define USE_SERIAL_TELEMETRY
#endif
#ifdef AT32SLOTCAR_F421
#define FIRMWARE_NAME "AT32_SC "
#define FILE_NAME "AT32SLOTCAR_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
//#define FIXED_DUTY_MODE
//#define FIXED_DUTY_MODE_POWER 100
#define DEBUG
#endif
#ifdef LUX_G4_HD_AIO_F421
#define FIRMWARE_NAME "LUX G4 AIO"
#define FILE_NAME "LUX_G4_HD_AIO_F421"
#define DEAD_TIME 75
#define HARDWARE_GROUP_AT_540
#define HARDWARE_GROUP_AT_E
#define USE_SERIAL_TELEMETRY
#define USE_PA14_TELEMETRY
#endif
#ifdef LUX_F7_HD_AIO_F421
#define FIRMWARE_NAME "LUX HD AIO"
#define FILE_NAME "LUX_F7_HD_AIO_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_3
#define CURRENT_ADC_PIN GPIO_PINS_3
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_6
#define VOLTAGE_ADC_PIN GPIO_PINS_6
#endif
#ifdef RAZOR_LED_4IN1_F421
#define FIRMWARE_NAME "RAZOR LED"
#define FILE_NAME "RAZOR_LED_4IN1_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_3
#define CURRENT_ADC_PIN GPIO_PINS_3
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_6
#define VOLTAGE_ADC_PIN GPIO_PINS_6
#endif
#ifdef RAZOR_PRO_F421
#define FIRMWARE_NAME "RAZOR PRO"
#define FILE_NAME "RAZOR_PRO_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_3
#define CURRENT_ADC_PIN GPIO_PINS_3
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_6
#define VOLTAGE_ADC_PIN GPIO_PINS_6
#endif
#ifdef VORTEX_80A_F421
#define FIRMWARE_NAME "VORTEX_80A "
#define FILE_NAME "VORTEX_80A_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define VOLTAGE_ADC_PIN GPIO_PINS_2
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_2
#define CURRENT_ADC_PIN GPIO_PINS_6
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_6
#define MILLIVOLT_PER_AMP 20
#define CURRENT_OFFSET 1
#define TARGET_VOLTAGE_DIVIDER 111
#endif
#ifdef VORTEX_100A_F421
#define FIRMWARE_NAME "VORTEX_100A "
#define FILE_NAME "VORTEX_100A_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define CURRENT_ADC_PIN GPIO_PINS_3
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_3
#define VOLTAGE_ADC_PIN GPIO_PINS_6
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_6
#define MILLIVOLT_PER_AMP 4
#define CURRENT_OFFSET 295
#define TARGET_VOLTAGE_DIVIDER 111
#endif
#ifdef XILO_STAX_V2_4IN1_F421
#define FIRMWARE_NAME "XILO STAX V2"
#define FILE_NAME "XILO_STAX_V2_4IN1_F421"
#define DEAD_TIME 60
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define USE_SERIAL_TELEMETRY
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_3
#define CURRENT_ADC_PIN GPIO_PINS_3
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_6
#define VOLTAGE_ADC_PIN GPIO_PINS_6
#endif
#ifdef CBTECHNOLOGY_KIWI80A_F421
#define FIRMWARE_NAME "KIWI80_F421"
#define FILE_NAME "CBTECHNOLOGY_KIWI80A_F421"
#define HARDWARE_GROUP_AT_B
#define HARDWARE_GROUP_AT_045
#define VOLTAGE_ADC_PIN GPIO_PINS_3
#define DEAD_TIME 60
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_3
#define CURRENT_ADC_PIN GPIO_PINS_6
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_6
#define TARGET_VOLTAGE_DIVIDER 210
#define MILLIVOLT_PER_AMP 25
#define CURRENT_OFFSET 0
#define USE_SERIAL_TELEMETRY
#define USE_RGB_LED
#define RED_PORT GPIOB
#define RED_PIN GPIO_PINS_7
#define GREEN_PORT GPIOB
#define GREEN_PIN GPIO_PINS_5
#define BLUE_PORT GPIOB
#define BLUE_PIN GPIO_PINS_3
#endif
#ifdef CBTECHNOLOGY_SNIPE40A_F421
#define FIRMWARE_NAME "SNIPE40_F421"