Skip to content

Commit 355b8cb

Browse files
jgillickfpistm
authored andcommitted
Added ThunderPack board (STM32L0xx) (#709)
1 parent 2b723f8 commit 355b8cb

File tree

7 files changed

+728
-3
lines changed

7 files changed

+728
-3
lines changed

boards.txt

+85-3
Original file line numberDiff line numberDiff line change
@@ -837,7 +837,7 @@ GenF1.menu.upload_method.hidMethod=HID Bootloader 2.2
837837
GenF1.menu.upload_method.hidMethod.upload.protocol=hid22
838838
GenF1.menu.upload_method.hidMethod.upload.tool=hid_upload
839839
GenF1.menu.upload_method.hidMethod.build.flash_offset=0x800
840-
GenF1.menu.upload_method.hidMethod.build.bootloader_flags=-DBL_HID -DVECT_TAB_OFFSET={build.flash_offset}
840+
GenF1.menu.upload_method.hidMethod.build.bootloader_flags=-DBL_HID -DVECT_TAB_OFFSET={build.flash_offset}
841841

842842
GenF1.menu.upload_method.dfu2Method=Maple DFU Bootloader 2.0
843843
GenF1.menu.upload_method.dfu2Method.upload.protocol=maple
@@ -1015,7 +1015,47 @@ GenF4.menu.upload_method.hidMethod=HID Bootloader 2.2
10151015
GenF4.menu.upload_method.hidMethod.upload.protocol=hid22
10161016
GenF4.menu.upload_method.hidMethod.upload.tool=hid_upload
10171017
GenF4.menu.upload_method.hidMethod.build.flash_offset=0x4000
1018-
GenF4.menu.upload_method.hidMethod.build.bootloader_flags=-DBL_HID -DVECT_TAB_OFFSET={build.flash_offset}
1018+
GenF4.menu.upload_method.hidMethod.build.bootloader_flags=-DBL_HID -DVECT_TAB_OFFSET={build.flash_offset}
1019+
1020+
################################################################################
1021+
# Generic L0
1022+
GenL0.name=Generic STM32L0 series
1023+
1024+
GenL0.build.vid=0x0483
1025+
GenL0.build.core=arduino
1026+
GenL0.build.board=GenL0
1027+
GenL0.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -D__CORTEX_SC=0
1028+
GenL0.build.mcu=cortex-m0plus
1029+
GenL0.build.series=STM32L0xx
1030+
GenL0.build.cmsis_lib_gcc=arm_cortexM0l_math
1031+
1032+
# ThunderPack
1033+
GenL0.menu.pnum.THUNDER_PACK=ThunderPack
1034+
GenL0.menu.pnum.THUNDER_PACK.upload.maximum_size=196608
1035+
GenL0.menu.pnum.THUNDER_PACK.upload.maximum_data_size=20480
1036+
GenL0.menu.pnum.THUNDER_PACK.build.board=THUNDER_PACK
1037+
GenL0.menu.pnum.THUNDER_PACK.build.product_line=STM32L072xx
1038+
GenL0.menu.pnum.THUNDER_PACK.build.variant=THUNDER_PACK
1039+
1040+
# Upload menu
1041+
GenL0.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
1042+
GenL0.menu.upload_method.swdMethod.upload.protocol=0
1043+
GenL0.menu.upload_method.swdMethod.upload.options=-g
1044+
GenL0.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
1045+
1046+
GenL0.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
1047+
GenL0.menu.upload_method.serialMethod.upload.protocol=1
1048+
GenL0.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
1049+
GenL0.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
1050+
1051+
GenL0.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
1052+
GenL0.menu.upload_method.dfuMethod.upload.protocol=2
1053+
GenL0.menu.upload_method.dfuMethod.upload.options=-g
1054+
GenL0.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
1055+
1056+
GenL0.menu.upload_method.bmpMethod=BMP (Black Magic Probe)
1057+
GenL0.menu.upload_method.bmpMethod.upload.protocol=gdb_bmp
1058+
GenL0.menu.upload_method.bmpMethod.upload.tool=bmp_upload
10191059

10201060
###############################
10211061
# Sparky Flight Controllers
@@ -1265,7 +1305,7 @@ Genericflight.build.series=STM32F1xx
12651305
Genericflight.build.cmsis_lib_gcc=arm_cortexM3l_math
12661306
Genericflight.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} {build.bootloader_flags}
12671307

1268-
# AfroFlight Rev5
1308+
# AfroFlight Rev5
12691309
Genericflight.menu.pnum.AFROFLIGHT_F103CB=Afro Flight Rev5 (8MHz)
12701310
Genericflight.menu.pnum.AFROFLIGHT_F103CB.upload.maximum_size=131072
12711311
Genericflight.menu.pnum.AFROFLIGHT_F103CB.upload.maximum_data_size=20480
@@ -1421,6 +1461,12 @@ GenF4.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
14211461
GenF4.menu.xserial.disabled=Disabled (no Serial support)
14221462
GenF4.menu.xserial.disabled.build.xSerial=
14231463

1464+
GenL0.menu.xserial.generic=Enabled (generic 'Serial')
1465+
GenL0.menu.xserial.none=Enabled (no generic 'Serial')
1466+
GenL0.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
1467+
GenL0.menu.xserial.disabled=Disabled (no Serial support)
1468+
GenL0.menu.xserial.disabled.build.xSerial=
1469+
14241470
Sparky.menu.xserial.generic=Enabled (generic 'Serial')
14251471
Sparky.menu.xserial.none=Enabled (no generic 'Serial')
14261472
Sparky.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
@@ -1556,6 +1602,14 @@ GenF4.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
15561602
GenF4.menu.xusb.HSFS=High Speed in Full Speed mode
15571603
GenF4.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS
15581604

1605+
GenL0.menu.usb.none=None
1606+
GenL0.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
1607+
GenL0.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
1608+
GenL0.menu.usb.CDC=CDC (no generic 'Serial')
1609+
GenL0.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
1610+
GenL0.menu.usb.HID=HID (keyboard and mouse)
1611+
GenL0.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
1612+
15591613
Sparky.menu.usb.none=None
15601614
Sparky.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
15611615
Sparky.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
@@ -1769,6 +1823,24 @@ GenF4.menu.opt.o3lto.build.flags.optimize=-O3 -flto
17691823
GenF4.menu.opt.ogstd=Debug (-g)
17701824
GenF4.menu.opt.ogstd.build.flags.optimize=-g -Og
17711825

1826+
GenL0.menu.opt.osstd=Smallest (-Os default)
1827+
GenL0.menu.opt.oslto=Smallest (-Os) with LTO
1828+
GenL0.menu.opt.oslto.build.flags.optimize=-Os -flto
1829+
GenL0.menu.opt.o1std=Fast (-O1)
1830+
GenL0.menu.opt.o1std.build.flags.optimize=-O1
1831+
GenL0.menu.opt.o1lto=Fast (-O1) with LTO
1832+
GenL0.menu.opt.o1lto.build.flags.optimize=-O1 -flto
1833+
GenL0.menu.opt.o2std=Faster (-O2)
1834+
GenL0.menu.opt.o2std.build.flags.optimize=-O2
1835+
GenL0.menu.opt.o2lto=Faster (-O2) with LTO
1836+
GenL0.menu.opt.o2lto.build.flags.optimize=-O2 -flto
1837+
GenL0.menu.opt.o3std=Fastest (-O3)
1838+
GenL0.menu.opt.o3std.build.flags.optimize=-O3
1839+
GenL0.menu.opt.o3lto=Fastest (-O3) with LTO
1840+
GenL0.menu.opt.o3lto.build.flags.optimize=-O3 -flto
1841+
GenL0.menu.opt.ogstd=Debug (-g)
1842+
GenL0.menu.opt.ogstd.build.flags.optimize=-g -Og
1843+
17721844
Sparky.menu.opt.osstd=Smallest (-Os default)
17731845
Sparky.menu.opt.oslto=Smallest (-Os) with LTO
17741846
Sparky.menu.opt.oslto.build.flags.optimize=-Os -flto
@@ -1950,6 +2022,16 @@ GenF4.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float
19502022
GenF4.menu.rtlib.full=Newlib Standard
19512023
GenF4.menu.rtlib.full.build.flags.ldspecs=
19522024

2025+
GenL0.menu.rtlib.nano=Newlib Nano (default)
2026+
GenL0.menu.rtlib.nanofp=Newlib Nano + Float Printf
2027+
GenL0.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
2028+
GenL0.menu.rtlib.nanofs=Newlib Nano + Float Scanf
2029+
GenL0.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
2030+
GenL0.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
2031+
GenL0.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
2032+
GenL0.menu.rtlib.full=Newlib Standard
2033+
GenL0.menu.rtlib.full.build.flags.ldspecs=
2034+
19532035
Sparky.menu.rtlib.nano=Newlib Nano (default)
19542036
Sparky.menu.rtlib.nanofp=Newlib Nano + Float Printf
19552037
Sparky.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
+172
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
/*
2+
*******************************************************************************
3+
* Copyright (c) 2019, STMicroelectronics
4+
* All rights reserved.
5+
*
6+
* This software component is licensed by ST under BSD 3-Clause license,
7+
* the "License"; You may not use this file except in compliance with the
8+
* License. You may obtain a copy of the License at:
9+
* opensource.org/licenses/BSD-3-Clause
10+
*
11+
*******************************************************************************
12+
* Automatically generated from STM32L072K(B-Z)Tx.xml
13+
*/
14+
#include "Arduino.h"
15+
#include "PeripheralPins.h"
16+
17+
/* =====
18+
* Note: Commented lines are alternative possibilities which are not used per default.
19+
* If you change them, you will have to know what you do
20+
* =====
21+
*/
22+
23+
//*** ADC ***
24+
25+
#ifdef HAL_ADC_MODULE_ENABLED
26+
WEAK const PinMap PinMap_ADC[] = {
27+
{PA_4, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC_IN4
28+
{PA_5, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC_IN5
29+
{PA_6, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC_IN6
30+
{PA_7, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC_IN7
31+
{NC, NP, 0}
32+
};
33+
#endif
34+
35+
//*** DAC ***
36+
37+
#ifdef HAL_DAC_MODULE_ENABLED
38+
WEAK const PinMap PinMap_DAC[] = {
39+
{PA_4, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // DAC_OUT1
40+
{PA_5, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // DAC_OUT2
41+
{NC, NP, 0}
42+
};
43+
#endif
44+
45+
//*** I2C ***
46+
47+
#ifdef HAL_I2C_MODULE_ENABLED
48+
WEAK const PinMap PinMap_I2C_SDA[] = {
49+
{PA_10, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF6_I2C1)},
50+
{PB_7, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF1_I2C1)},
51+
{NC, NP, 0}
52+
};
53+
#endif
54+
55+
#ifdef HAL_I2C_MODULE_ENABLED
56+
WEAK const PinMap PinMap_I2C_SCL[] = {
57+
{PA_8, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF7_I2C3)},
58+
{PA_9, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF6_I2C1)},
59+
{PB_6, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF1_I2C1)},
60+
{NC, NP, 0}
61+
};
62+
#endif
63+
64+
//*** PWM ***
65+
66+
#ifdef HAL_TIM_MODULE_ENABLED
67+
WEAK const PinMap PinMap_PWM[] = {
68+
{PA_0, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM2, 1, 0)}, // TIM2_CH1
69+
{PA_1, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM2, 2, 0)}, // TIM2_CH2
70+
{PA_2, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM2, 3, 0)}, // TIM2_CH3
71+
// {PA_2, TIM21, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_TIM21, 1, 0)}, // TIM21_CH1
72+
{PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM2, 4, 0)}, // TIM2_CH4
73+
// {PA_3, TIM21, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_TIM21, 2, 0)}, // TIM21_CH2
74+
// {PA_5, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_TIM2, 1, 0)}, // TIM2_CH1
75+
{PA_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
76+
// {PA_6, TIM22, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_TIM22, 1, 0)}, // TIM22_CH1
77+
{PA_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
78+
// {PA_7, TIM22, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_TIM22, 2, 0)}, // TIM22_CH2
79+
{PB_5, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM3, 2, 0)}, // TIM3_CH2
80+
// {PB_5, TIM22, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM22, 2, 0)}, // TIM22_CH2
81+
{NC, NP, 0}
82+
};
83+
#endif
84+
85+
//*** SERIAL ***
86+
87+
#ifdef HAL_UART_MODULE_ENABLED
88+
WEAK const PinMap PinMap_UART_TX[] = {
89+
{PA_9, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART1)},
90+
// {PA_14, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_LPUART1)},
91+
{PA_14, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)},
92+
{PB_6, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_USART1)},
93+
{NC, NP, 0}
94+
};
95+
#endif
96+
97+
#ifdef HAL_UART_MODULE_ENABLED
98+
WEAK const PinMap PinMap_UART_RX[] = {
99+
{PA_10, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART1)},
100+
{PA_13, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_LPUART1)},
101+
{PB_7, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_USART1)},
102+
{NC, NP, 0}
103+
};
104+
#endif
105+
106+
#ifdef HAL_UART_MODULE_ENABLED
107+
WEAK const PinMap PinMap_UART_RTS[] = {
108+
{NC, NP, 0}
109+
};
110+
#endif
111+
112+
#ifdef HAL_UART_MODULE_ENABLED
113+
WEAK const PinMap PinMap_UART_CTS[] = {
114+
{PA_6, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_LPUART1)},
115+
{PB_7, USART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_USART4)},
116+
{NC, NP, 0}
117+
};
118+
#endif
119+
120+
//*** SPI ***
121+
122+
#ifdef HAL_SPI_MODULE_ENABLED
123+
WEAK const PinMap PinMap_SPI_MOSI[] = {
124+
{PA_7, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
125+
{PB_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
126+
{NC, NP, 0}
127+
};
128+
#endif
129+
130+
#ifdef HAL_SPI_MODULE_ENABLED
131+
WEAK const PinMap PinMap_SPI_MISO[] = {
132+
{PA_6, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
133+
{NC, NP, 0}
134+
};
135+
#endif
136+
137+
#ifdef HAL_SPI_MODULE_ENABLED
138+
WEAK const PinMap PinMap_SPI_SCLK[] = {
139+
{PA_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
140+
{NC, NP, 0}
141+
};
142+
#endif
143+
144+
#ifdef HAL_SPI_MODULE_ENABLED
145+
WEAK const PinMap PinMap_SPI_SSEL[] = {
146+
{PA_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
147+
{NC, NP, 0}
148+
};
149+
#endif
150+
151+
//*** No CAN ***
152+
153+
//*** No ETHERNET ***
154+
155+
//*** No QUADSPI ***
156+
157+
//*** USB ***
158+
159+
#ifdef HAL_PCD_MODULE_ENABLED
160+
WEAK const PinMap PinMap_USB[] = {
161+
{PA_11, USB, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, GPIO_AF_NONE)}, // USB_DM
162+
{PA_12, USB, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, GPIO_AF_NONE)}, // USB_DP
163+
{PA_13, USB, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_USB)}, // USB_NOE
164+
{NC, NP, 0}
165+
};
166+
#endif
167+
168+
//*** No USB_OTG_FS ***
169+
170+
//*** No USB_OTG_HS ***
171+
172+
//*** No SD ***

variants/THUNDER_PACK/PinNamesVar.h

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/* SYS_WKUP */
2+
#ifdef PWR_WAKEUP_PIN1
3+
SYS_WKUP1 = PA_0,
4+
#endif
5+
#ifdef PWR_WAKEUP_PIN2
6+
SYS_WKUP2 = PC_13,
7+
#endif
8+
#ifdef PWR_WAKEUP_PIN3
9+
SYS_WKUP3 = NC,
10+
#endif
11+
#ifdef PWR_WAKEUP_PIN4
12+
SYS_WKUP4 = NC,
13+
#endif
14+
#ifdef PWR_WAKEUP_PIN5
15+
SYS_WKUP5 = NC,
16+
#endif
17+
#ifdef PWR_WAKEUP_PIN6
18+
SYS_WKUP6 = NC,
19+
#endif
20+
#ifdef PWR_WAKEUP_PIN7
21+
SYS_WKUP7 = NC,
22+
#endif
23+
#ifdef PWR_WAKEUP_PIN8
24+
SYS_WKUP8 = NC,
25+
#endif
26+
/* USB */
27+
#ifdef USBCON
28+
USB_DM = PA_11,
29+
USB_DP = PA_12,
30+
USB_NOE = PA_13,
31+
#endif

0 commit comments

Comments
 (0)