Skip to content

Commit 18ed56a

Browse files
Merge pull request #2 from fabry1992/main
Added Support for ELV-BM-TRX1
2 parents f31d070 + 4e3428e commit 18ed56a

File tree

4 files changed

+521
-36
lines changed

4 files changed

+521
-36
lines changed

README.md

Lines changed: 48 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -49,41 +49,48 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
4949

5050
## Supported boards
5151

52-
- [Nucleo 144 boards](#nucleo-144-boards)
53-
- [Nucleo 64 boards](#nucleo-64-boards)
54-
- [Nucleo 32 boards](#nucleo-32-boards)
55-
- [Discovery boards](#discovery-boards)
56-
- [Eval boards](#eval-boards)
57-
- [STM32MP1 series coprocessor boards](#stm32mp1-series-coprocessor-boards)
58-
- [Generic STM32C0 boards](#generic-stm32c0-boards)
59-
- [Generic STM32F0 boards](#generic-stm32f0-boards)
60-
- [Generic STM32F1 boards](#generic-stm32f1-boards)
61-
- [Generic STM32F2 boards](#generic-stm32f2-boards)
62-
- [Generic STM32F3 boards](#generic-stm32f3-boards)
63-
- [Generic STM32F4 boards](#generic-stm32f4-boards)
64-
- [Generic STM32F7 boards](#generic-stm32f7-boards)
65-
- [Generic STM32G0 boards](#generic-stm32g0-boards)
66-
- [Generic STM32G4 boards](#generic-stm32g4-boards)
67-
- [Generic STM32H5 boards](#generic-stm32h5-boards)
68-
- [Generic STM32H7 boards](#generic-stm32h7-boards)
69-
- [Generic STM32L0 boards](#generic-stm32l0-boards)
70-
- [Generic STM32L1 boards](#generic-stm32l1-boards)
71-
- [Generic STM32L4 boards](#generic-stm32l4-boards)
72-
- [Generic STM32L5 boards](#generic-stm32l5-boards)
73-
- [Generic STM32U5 boards](#generic-stm32u5-boards)
74-
- [Generic STM32WB boards](#generic-stm32wb-boards)
75-
- [Generic STM32WBA boards](#generic-stm32wba-boards)
76-
- [Generic STM32WL boards](#generic-stm32wl-boards)
77-
- [3D printer boards](#3d-printer-boards)
78-
- [Blues Wireless boards](#blues-wireless-boards)
79-
- [Elecgator boards](#elecgator-boards)
80-
- [Electronic Speed Controller boards](#electronic-speed-controller-boards)
81-
- [Garatronic/McHobby boards](#garatronicmchobby-boards)
82-
- [Generic flight controllers](#generic-flight-controllers)
83-
- [IoT continuum boards](#iot-continuum-boards)
84-
- [LoRa boards](#lora-boards)
85-
- [Midatronics boards](#midatronics-boards)
86-
- [SparkFun boards](#sparkfun-boards)
52+
- [Arduino core support for STM32 based boards](#arduino-core-support-for-stm32-based-boards)
53+
- [Introduction](#introduction)
54+
- [Getting Started](#getting-started)
55+
- [Supported boards](#supported-boards)
56+
- [Nucleo 144 boards](#nucleo-144-boards)
57+
- [Nucleo 64 boards](#nucleo-64-boards)
58+
- [Nucleo 32 boards](#nucleo-32-boards)
59+
- [Discovery boards](#discovery-boards)
60+
- [Eval boards](#eval-boards)
61+
- [STM32MP1 series coprocessor boards](#stm32mp1-series-coprocessor-boards)
62+
- [Generic STM32C0 boards](#generic-stm32c0-boards)
63+
- [Generic STM32F0 boards](#generic-stm32f0-boards)
64+
- [Generic STM32F1 boards](#generic-stm32f1-boards)
65+
- [Generic STM32F2 boards](#generic-stm32f2-boards)
66+
- [Generic STM32F3 boards](#generic-stm32f3-boards)
67+
- [Generic STM32F4 boards](#generic-stm32f4-boards)
68+
- [Generic STM32F7 boards](#generic-stm32f7-boards)
69+
- [Generic STM32G0 boards](#generic-stm32g0-boards)
70+
- [Generic STM32G4 boards](#generic-stm32g4-boards)
71+
- [Generic STM32H5 boards](#generic-stm32h5-boards)
72+
- [Generic STM32H7 boards](#generic-stm32h7-boards)
73+
- [Generic STM32L0 boards](#generic-stm32l0-boards)
74+
- [Generic STM32L1 boards](#generic-stm32l1-boards)
75+
- [Generic STM32L4 boards](#generic-stm32l4-boards)
76+
- [Generic STM32L5 boards](#generic-stm32l5-boards)
77+
- [Generic STM32U5 boards](#generic-stm32u5-boards)
78+
- [Generic STM32WB boards](#generic-stm32wb-boards)
79+
- [Generic STM32WBA boards](#generic-stm32wba-boards)
80+
- [Generic STM32WL boards](#generic-stm32wl-boards)
81+
- [3D printer boards](#3d-printer-boards)
82+
- [Blues Wireless boards](#blues-wireless-boards)
83+
- [Elecgator boards](#elecgator-boards)
84+
- [Electronic Speed Controller boards](#electronic-speed-controller-boards)
85+
- [Garatronic/McHobby boards](#garatronicmchobby-boards)
86+
- [Generic flight controllers](#generic-flight-controllers)
87+
- [IoT continuum boards](#iot-continuum-boards)
88+
- [LoRa boards](#lora-boards)
89+
- [Midatronics boards](#midatronics-boards)
90+
- [SparkFun boards](#sparkfun-boards)
91+
- [ELV Boards](#elv-boards)
92+
- [Next release](#next-release)
93+
- [Troubleshooting](#troubleshooting)
8794

8895
**Note about Status**:
8996
- :green_heart: board support is available since the specified release version.
@@ -97,7 +104,6 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
97104
| :green_heart: | STM32F412ZG | [Nucleo F412ZG](http://www.st.com/en/evaluation-tools/nucleo-f412zg.html) | *2.6.0* | |
98105
| :green_heart: | STM32F413ZH | [Nucleo F413ZH](http://www.st.com/en/evaluation-tools/nucleo-f413zh.html) | *2.4.0* | |
99106
| :green_heart: | STM32F429ZI | [Nucleo F429ZI](http://www.st.com/en/evaluation-tools/nucleo-f429zi.html) | *0.1.0* | |
100-
| :yellow_heart: | STM32F439ZI | [Nucleo F439ZI](http://www.st.com/en/evaluation-tools/nucleo-f439zi.html) | **2.8.0** | |
101107
| :green_heart: | STM32F446ZE | [Nucleo F446ZE](http://www.st.com/en/evaluation-tools/nucleo-f446ze.html) | *2.7.0* | |
102108
| :green_heart: | STM32F722ZE | [Nucleo F722ZE](http://www.st.com/en/evaluation-tools/nucleo-f722ze.html) | *2.4.0* | |
103109
| :green_heart: | STM32F767ZI | [Nucleo F767ZI](http://www.st.com/en/evaluation-tools/nucleo-f767zi.html) | *1.4.0* | |
@@ -831,6 +837,12 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
831837
| :green_heart: | STM32F405RG | [SparkFun MicroMod Processor Board - STM32F405](https://www.sparkfun.com/products/21326) | *2.6.0* | |
832838
| :green_heart: | STM32WB5MMG | [SparkFun MicroMod Processor Board - STM32WB5MMG](https://www.sparkfun.com/products/21438) | *2.6.0* | |
833839

840+
### [ELV Boards](https://de.elv.com/lorawan)
841+
842+
| Status | Device(s) | Name | Release | Notes |
843+
| :----: | :-------: | ---- | :-----: | :---- |
844+
| :green_heart: | STM32WLE5JB | ELV-BM-TRX1 | *2.7.1* | |
845+
834846
## Next release
835847

836848
See [milestones](https://github.com/stm32duino/Arduino_Core_STM32/milestones) to have an overview of the next release content.

boards.txt

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11217,6 +11217,43 @@ Midatronics.menu.upload_method.dfuMethod.upload.protocol=2
1121711217
Midatronics.menu.upload_method.dfuMethod.upload.options=
1121811218
Midatronics.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
1121911219

11220+
11221+
################################################################################
11222+
# ELV Modular System boards
11223+
11224+
ELV_Modular_System.name=ELV Modular System boards
11225+
ELV_Modular_System.build.core=arduino
11226+
ELV_Modular_System.build.board=ELV_Modular_System
11227+
ELV_Modular_System.build.variant_h=variant_{build.board}.h
11228+
ELV_Modular_System.upload.maximum_size=0
11229+
ELV_Modular_System.upload.maximum_data_size=0
11230+
11231+
# ELV-BM-TRX1 board
11232+
ELV_Modular_System.menu.pnum.ELV_BM_TRX1=ELV-LW-Base ELV_BM_TRX1
11233+
ELV_Modular_System.menu.pnum.ELV_BM_TRX1.upload.maximum_size=124927
11234+
ELV_Modular_System.menu.pnum.ELV_BM_TRX1.upload.maximum_data_size=16383
11235+
ELV_Modular_System.menu.pnum.ELV_BM_TRX1.build.mcu=cortex-m4
11236+
ELV_Modular_System.menu.pnum.ELV_BM_TRX1.build.board=ELV_BM_TRX1
11237+
ELV_Modular_System.menu.pnum.ELV_BM_TRX1.build.series=STM32WLxx
11238+
ELV_Modular_System.menu.pnum.ELV_BM_TRX1.build.product_line=STM32WLE5xx
11239+
ELV_Modular_System.menu.pnum.ELV_BM_TRX1.build.variant=STM32WLxx/WL54JCI_WL55JCI_WLE4J(8-B-C)I_WLE5J(8-B-C)I
11240+
ELV_Modular_System.menu.pnum.ELV_BM_TRX1.build.variant_h=variant_ELV_BM_TRX1.h
11241+
ELV_Modular_System.menu.pnum.ELV_BM_TRX1.build.flash_offset=0x800
11242+
ELV_Modular_System.menu.pnum.ELV_BM_TRX1.build.cmsis_lib_gcc=arm_cortexM4l_math
11243+
ELV_Modular_System.menu.pnum.ELV_BM_TRX1.build.st_extra_flags=-D{build.product_line} -DUSE_CM4_STARTUP_FILE {build.xSerial}
11244+
11245+
# Upload menu
11246+
ELV_Modular_System.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD) with Bootloader
11247+
ELV_Modular_System.menu.upload_method.swdMethod.upload.protocol=0
11248+
ELV_Modular_System.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
11249+
11250+
11251+
ELV_Modular_System.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial) with Bootloader
11252+
ELV_Modular_System.menu.upload_method.serialMethod.upload.protocol=1
11253+
ELV_Modular_System.menu.upload_method.serialMethod.upload.options={serial.port.file}
11254+
ELV_Modular_System.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
11255+
11256+
1122011257
################################################################################
1122111258
# SparkFun Boards
1122211259

@@ -12527,6 +12564,26 @@ Midatronics.menu.opt.ogstd.build.flags.optimize=-Og
1252712564
Midatronics.menu.opt.o0std=No Optimization (-O0)
1252812565
Midatronics.menu.opt.o0std.build.flags.optimize=-O0
1252912566

12567+
ELV_Modular_System.menu.opt.osstd=Smallest (-Os default)
12568+
ELV_Modular_System.menu.opt.oslto=Smallest (-Os) with LTO
12569+
ELV_Modular_System.menu.opt.oslto.build.flags.optimize=-Os -flto
12570+
ELV_Modular_System.menu.opt.o1std=Fast (-O1)
12571+
ELV_Modular_System.menu.opt.o1std.build.flags.optimize=-O1
12572+
ELV_Modular_System.menu.opt.o1lto=Fast (-O1) with LTO
12573+
ELV_Modular_System.menu.opt.o1lto.build.flags.optimize=-O1 -flto
12574+
ELV_Modular_System.menu.opt.o2std=Faster (-O2)
12575+
ELV_Modular_System.menu.opt.o2std.build.flags.optimize=-O2
12576+
ELV_Modular_System.menu.opt.o2lto=Faster (-O2) with LTO
12577+
ELV_Modular_System.menu.opt.o2lto.build.flags.optimize=-O2 -flto
12578+
ELV_Modular_System.menu.opt.o3std=Fastest (-O3)
12579+
ELV_Modular_System.menu.opt.o3std.build.flags.optimize=-O3
12580+
ELV_Modular_System.menu.opt.o3lto=Fastest (-O3) with LTO
12581+
ELV_Modular_System.menu.opt.o3lto.build.flags.optimize=-O3 -flto
12582+
ELV_Modular_System.menu.opt.ogstd=Debug (-Og)
12583+
ELV_Modular_System.menu.opt.ogstd.build.flags.optimize=-Og
12584+
ELV_Modular_System.menu.opt.o0std=No Optimization (-O0)
12585+
ELV_Modular_System.menu.opt.o0std.build.flags.optimize=-O0
12586+
1253012587
SparkFun.menu.opt.osstd=Smallest (-Os default)
1253112588
SparkFun.menu.opt.oslto=Smallest (-Os) with LTO
1253212589
SparkFun.menu.opt.oslto.build.flags.optimize=-Os -flto
@@ -13166,3 +13223,13 @@ SparkFun.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
1316613223
SparkFun.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
1316713224
SparkFun.menu.rtlib.full=Newlib Standard
1316813225
SparkFun.menu.rtlib.full.build.flags.ldspecs=
13226+
13227+
ELV_Modular_System.menu.rtlib.nano=Newlib Nano (default)
13228+
ELV_Modular_System.menu.rtlib.nanofp=Newlib Nano + Float Printf
13229+
ELV_Modular_System.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
13230+
ELV_Modular_System.menu.rtlib.nanofs=Newlib Nano + Float Scanf
13231+
ELV_Modular_System.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
13232+
ELV_Modular_System.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
13233+
ELV_Modular_System.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
13234+
ELV_Modular_System.menu.rtlib.full=Newlib Standard
13235+
ELV_Modular_System.menu.rtlib.full.build.flags.ldspecs=
Lines changed: 204 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,204 @@
1+
/*
2+
*******************************************************************************
3+
* Copyright (c) 2021, 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+
*/
13+
#if defined(ARDUINO_ELV_BM_TRX1)
14+
#include "pins_arduino.h"
15+
// Digital PinName array
16+
const PinName digitalPin[] = {
17+
PA_0, // D0
18+
PA_1, // D1
19+
PA_2, // D2
20+
PA_3, // D3
21+
PA_4, // D4
22+
PA_5, // D5
23+
PA_6, // D6
24+
PA_7, // D7
25+
PA_8, // D8
26+
PA_9, // D9
27+
PA_10, // D10/A0
28+
PA_11, // D11/A1
29+
PA_12, // D12/A2
30+
PA_13, // D13/A3
31+
PA_14, // D14/A4
32+
PA_15, // D15/A5
33+
PB_0, // D16
34+
PB_1, // D17/A6
35+
PB_2, // D18/A7
36+
PB_3, // D19/A8
37+
PB_4, // D20/A9
38+
PB_5, // D21
39+
PB_6, // D22
40+
PB_7, // D23
41+
PB_8, // D24
42+
PB_9, // D25
43+
PB_10, // D26
44+
PB_11, // D27
45+
PB_12, // D28
46+
PB_13, // D29/A10
47+
PB_14, // D30/A11
48+
PB_15, // D31
49+
PC_0, // D32
50+
PC_1, // D33
51+
PC_2, // D34
52+
PC_3, // D35
53+
PC_4, // D36
54+
PC_5, // D37
55+
PC_6, // D38
56+
PC_13, // D39
57+
PC_14, // D40
58+
PC_15, // D41
59+
PH_3 // D42
60+
};
61+
62+
// Analog (Ax) pin number array
63+
const uint32_t analogInputPin[] = {
64+
10, // A0, PA10
65+
11, // A1, PA11
66+
12, // A2, PA12
67+
13, // A3, PA13
68+
14, // A4, PA14
69+
15, // A5, PA15
70+
17, // A6, PB1
71+
18, // A7, PB2
72+
19, // A8, PB3
73+
20, // A9, PB4
74+
29, // A10, PB13
75+
30 // A11, PB14
76+
};
77+
78+
// ----------------------------------------------------------------------------
79+
#ifdef __cplusplus
80+
extern "C" {
81+
#endif
82+
83+
84+
// /**
85+
// * Initialize the variant. Note that this runs After
86+
// * the lib initializers - if they use an interrupt, they'll fail.
87+
// * Consider moving this to a call before the premains.
88+
// */
89+
// void initVariant()
90+
// {
91+
// SCB->VTOR = 0x08000000;
92+
// }
93+
94+
// /**
95+
// * @brief System Clock Configuration
96+
// * @param None
97+
// * @retval None
98+
// */
99+
// WEAK void SystemClock_Config(void)
100+
// {
101+
// HAL_StatusTypeDef hal_state = HAL_OK;
102+
// RCC_OscInitTypeDef RCC_OscInitStruct = {0};
103+
// RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
104+
// pinMode(PB3, OUTPUT);
105+
// pinMode(PA15, OUTPUT);
106+
// /** Configure LSE Drive Capability */
107+
// // HAL_PWR_EnableBkUpAccess();
108+
// __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW);
109+
// /** Configure the main internal regulator output voltage
110+
// */
111+
// digitalWrite(PB3, 1);
112+
// digitalWrite(PA15, 0);
113+
// __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
114+
// /** Initializes the CPU, AHB and APB busses clocks
115+
// */
116+
// /** Initializes the CPU, AHB and APB busses clocks */
117+
// RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE|RCC_OSCILLATORTYPE_LSE;
118+
// RCC_OscInitStruct.HSEState = RCC_HSE_ON;
119+
// RCC_OscInitStruct.LSEState = RCC_LSE_ON;
120+
// RCC_OscInitStruct.HSEDiv = RCC_HSE_DIV1;
121+
// RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
122+
// RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
123+
// RCC_OscInitStruct.PLL.PLLM = RCC_PLLM_DIV4;
124+
// RCC_OscInitStruct.PLL.PLLN = 12;
125+
// RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
126+
// RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;
127+
// RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2;
128+
129+
// // do
130+
// // {
131+
// hal_state = HAL_RCC_OscConfig( &RCC_OscInitStruct );
132+
// // }
133+
// // while( hal_state == HAL_TIMEOUT );
134+
// if( hal_state != HAL_OK )
135+
// {
136+
// Error_Handler();
137+
// }
138+
139+
// /** Configure the SYSCLKSource, HCLK, PCLK1 and PCLK2 clocks dividers
140+
// */
141+
// RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK3 | RCC_CLOCKTYPE_HCLK
142+
// | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1
143+
// | RCC_CLOCKTYPE_PCLK2;
144+
// RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
145+
// RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
146+
// RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
147+
// RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
148+
// RCC_ClkInitStruct.AHBCLK3Divider = RCC_SYSCLK_DIV1;
149+
// digitalWrite(PB3, 0);
150+
// digitalWrite(PA15, 1);
151+
// // do
152+
// // {
153+
// hal_state = HAL_RCC_ClockConfig( &RCC_ClkInitStruct, FLASH_LATENCY_2 );
154+
// // }
155+
// // while( hal_state == HAL_TIMEOUT );
156+
// // if( hal_state != HAL_OK )
157+
// // {
158+
// // Error_Handler();
159+
// // }
160+
// digitalWrite(PB3, 1);
161+
// digitalWrite(PA15, 1);
162+
// }
163+
164+
/*
165+
* @brief System Clock Configuration
166+
* @param None
167+
* @retval None
168+
*/
169+
WEAK void SystemClock_Config(void)
170+
{
171+
RCC_OscInitTypeDef RCC_OscInitStruct = {};
172+
RCC_ClkInitTypeDef RCC_ClkInitStruct = {};
173+
/* Configure the main internal regulator output voltage*/
174+
175+
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
176+
/* Initializes the CPU, AHB and APB busses clocks*/
177+
178+
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI;
179+
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
180+
RCC_OscInitStruct.MSICalibrationValue = RCC_MSICALIBRATION_DEFAULT;
181+
RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_11;
182+
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
183+
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
184+
Error_Handler();
185+
}
186+
/* Configure the SYSCLKSource, HCLK, PCLK1 and PCLK2 clocks dividers*/
187+
188+
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK3 | RCC_CLOCKTYPE_HCLK
189+
| RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1
190+
| RCC_CLOCKTYPE_PCLK2;
191+
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_MSI;
192+
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
193+
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
194+
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
195+
RCC_ClkInitStruct.AHBCLK3Divider = RCC_SYSCLK_DIV1;
196+
197+
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) {
198+
Error_Handler();
199+
}
200+
}
201+
#ifdef __cplusplus
202+
}
203+
#endif
204+
#endif /* ARDUINO_ELV_BM_TRX1 */

0 commit comments

Comments
 (0)