Debinix Team Library MyMacros
The Arduino library identifies your unique collection of development boards
MyMacros.h
Go to the documentation of this file.
1 
10 #include <Board_Identify.h>
11 
12 #pragma once
13 
15 struct board;
16 
17 // Architecture wide macros
18 #if defined(ARDUINO_ARCH_ESP8266)
19 #if defined(ARCH_IDENTIFY_WARNING)
20 #warning "Matched Architecture: (ARDUINO_ARCH_ESP8266)"
21 #endif
22 
23 // Architecture macros here
24 
25 #elif defined(ARDUINO_ARCH_ESP32)
26 #if defined(ARCH_IDENTIFY_WARNING)
27 #warning "Matched Architecture: (ARDUINO_ARCH_ESP32)"
28 #endif
29 
30 // Architecture macros here
31 
32 #elif defined(ARDUINO_ARCH_AVR) || defined(ARDUINO_ARCH_MEGAAVR)
33 #if defined(ARCH_IDENTIFY_WARNING)
34 #warning "Matched Architecture: (ARDUINO_ARCH_AVR) or (ARDUINO_ARCH_MEGAAVR)"
35 #endif
36 
37 // Architecture macros here
38 
39 #elif defined(ARDUINO_ARCH_STM32) || defined(ARDUINO_ARCH_ARDUINO_CORE_STM32)
40 #if defined(ARCH_IDENTIFY_WARNING)
41 #warning \
42  "Matched Architecture: (ARDUINO_ARCH_STM32) or (ARDUINO_ARCH_ARDUINO_CORE_STM32)"
43 #endif
44 
45 // Architecture macros here
46 
47 #elif defined(ARDUINO_ARCH_RP2040)
48 #if defined(ARCH_IDENTIFY_WARNING)
49 #warning "Matched Architecture: (ARDUINO_ARCH_RP2040)"
50 #endif
51 
52 // Architecture macros here
53 
54 #else
55 #if defined(ARCH_IDENTIFY_WARNING)
56 #warning \
57  "Architecture currently not identified, please add an issue at Github/berrak/MyMacros"
58 #endif
59 #endif
60 
61 // My personal applied macros among all my boards.
62 #ifndef BAUD_RATE
63 #define BAUD_RATE 115200
64 #endif
65 #ifndef BLINK_DELAY
66 #define BLINK_DELAY 125
67 #endif
68 
69 //---------------------------------------------------------------------------------------
70 // All Arduino boards you own (add as you see fit) from the 'Board_Identify.h'
71 // file.
72 //---------------------------------------------------------------------------------------
73 #if defined(ARDUINO_AVR_UNO)
74 
75 // Only macros here
76 
77 struct board {
78  int type = BoardIdentify::type;
79  const char *make = BoardIdentify::make;
80  const char *model = BoardIdentify::model;
81  const char *mcu = BoardIdentify::mcu;
82 };
83 
84 #if defined(BOARD_IDENTIFY_WARNING)
85 #warning "Matched Board: (ARDUINO_AVR_UNO)"
86 #endif
87 
88 // ARDUINO SAMD
89 
90 #elif defined(ARDUINO_SAMD_MKRWAN1300)
91 
92 // Only macros here
93 
94 struct board {
95  int type = BoardIdentify::type;
96  const char *make = BoardIdentify::make;
97  const char *model = BoardIdentify::model;
98  const char *mcu = BoardIdentify::mcu;
99 };
100 
101 #if defined(BOARD_IDENTIFY_WARNING)
102 #warning "Matched Board: (ARDUINO_SAMD_MKRWAN1300)"
103 #endif
104 
105 // ESP8266
106 
107 #elif defined(ARDUINO_ESP8266_WEMOS_D1MINI)
108 
109 // Only macros here
110 
111 struct board {
112  int type = BoardIdentify::type;
113  const char *make = BoardIdentify::make;
114  const char *model = BoardIdentify::model;
115  const char *mcu = BoardIdentify::mcu;
116 };
117 
118 #if defined(BOARD_IDENTIFY_WARNING)
119 #warning "Matched Board: (ARDUINO_ESP8266_WEMOS_D1MINI)"
120 #endif
121 
122 // ESP32
123 
124 #elif defined(ARDUINO_ESP32_DEV)
125 
126 // Only macros here
127 
128 struct board {
129  int type = BoardIdentify::type;
130  const char *make = BoardIdentify::make;
131  const char *model = BoardIdentify::model;
132  const char *mcu = BoardIdentify::mcu;
133 };
134 
135 #if defined(BOARD_IDENTIFY_WARNING)
136 #warning "Matched Board: (ARDUINO_ESP32_DEV)"
137 #endif
138 
139 #elif defined(ARDUINO_ESP32_THING)
140 
141 // Only macros here
142 
143 struct board {
144  int type = BoardIdentify::type;
145  const char *make = BoardIdentify::make;
146  const char *model = BoardIdentify::model;
147  const char *mcu = BoardIdentify::mcu;
148 };
149 
150 #if defined(BOARD_IDENTIFY_WARNING)
151 #warning "Matched Board: (ARDUINO_ESP32_THING)"
152 #endif
153 
154 //-----------------------------------------------------------------------
155 // All other Arduino boards in your ownership or currently are developing.
156 //-----------------------------------------------------------------------
157 #elif defined(ARDUINO_TINYPICO)
158 
159 // Only macros here
160 #define TFT_MOSI 23
161 #define TFT_SCLK 18
162 #define TFT_CS 21
163 #define TFT_RST 5
164 #define TFT_DC 22
165 #define TFT_LED 14
166 
167 struct board {
168  int type = 0;
169  const char *make = "Unexpected Maker";
170  const char *model = "TinyPICO";
171  const char *mcu = "ESP32";
172 };
173 #if defined(BOARD_IDENTIFY_WARNING)
174 #warning "Controller: ESP32 TinyPICO"
175 #warning "Matched Board: (ARDUINO_TINYPICO)"
176 #endif
177 
178 // STM32 F411CEU6 - Black Pill
179 
180 #elif defined(ARDUINO_BLACKPILL_F411CE)
181 
182 // Only macros here
183 #ifndef LED_BUILTIN
184 #define LED_BUILTIN PC13
185 #endif
186 
187 struct board {
188  int type = 0;
189  const char *make = "WeAct Studio";
190  const char *model = "BlackPill";
191  const char *mcu = "STM32F411CE";
192 };
193 
194 #if defined(BOARD_IDENTIFY_WARNING)
195 #warning "Controller: STM32F411CE BlackPill"
196 #warning "Matched Board: (ARDUINO_BLACKPILL_F411CE)"
197 #endif
198 
199 // STM32 F103Fx - Blue Pill variants
200 
201 #elif defined(ARDUINO_BLUEPILL_F103C6) || defined(ARDUINO_BLUEPILL_F103C8) || \
202  defined(ARDUINO_BLUEPILL_F103CB)
203 
204 // Only macros here
205 #ifndef LED_BUILTIN
206 #define LED_BUILTIN PC13
207 #endif
208 
209 struct board {
210  int type = 0;
211  const char *make = "Generic";
212  const char *model = "BluePill";
213  const char *mcu = "STM32F103x";
214 };
215 
216 #if defined(BOARD_IDENTIFY_WARNING)
217 #warning "Controller: STM32F103x BluePill"
218 #warning "Matched Board: (ARDUINO_BLUEPILL_F103C6) or"
219 #warning "Matched Board: (ARDUINO_BLUEPILL_F103C8) or"
220 #warning "Matched Board: (ARDUINO_BLUEPILL_F103CB)"
221 #endif
222 
223 #elif defined(ARDUINO_D1MINI_G031F6)
224 
225 // Only macros here
226 #ifndef LED_BUILTIN
227 #define LED_BUILTIN PB6
228 #endif
229 
230 struct board {
231  int type = 0;
232  const char *make = "Debinix Team";
233  const char *model = "D1-mini G031Fx";
234  const char *mcu = "STM32G031F6";
235 };
236 
237 #if defined(BOARD_IDENTIFY_WARNING)
238 #warning "Controller: D1-mini G031F6"
239 #warning "Matched Board: (ARDUINO_D1MINI_G031F6)"
240 #endif
241 
242 #elif defined(ARDUINO_D1MINI_G031F8)
243 // Only new macros here
244 
245 #ifndef LED_BUILTIN
246 #define LED_BUILTIN PB6
247 #endif
248 
249 struct board {
250  int type = 0;
251  const char *make = "Debinix Team";
252  const char *model = "D1-mini G031Fx";
253  const char *mcu = "STM32G031F8";
254 };
255 
256 #if defined(BOARD_IDENTIFY_WARNING)
257 #warning "Controller: D1-mini G031F8"
258 #warning "Matched Board: (ARDUINO_D1MINI_G031F8)"
259 #endif
260 
261 #elif defined(ARDUINO_DISCO_F407VG)
262 // Only new macros here
263 
264 #ifndef LED_BUILTIN
265 #define LED_BUILTIN LED_GREEN
266 #endif
267 
268 struct board {
269  int type = 0;
270  const char *make = "STMicroelectronics";
271  const char *model = "Discovery Board F407VG-DISC1";
272  const char *mcu = "STM32F407VG";
273 };
274 
275 #if defined(BOARD_IDENTIFY_WARNING)
276 #warning "Controller: Discovery Board F407VG-DISC1D1-mini G031F8"
277 #warning "Matched Board: (ARDUINO_DISCO_F407VG)"
278 #endif
279 
280 #else
282 struct board {
283  int type = 0;
284  const char *make = "Unknown";
285  const char *model = "Unknown";
286  const char *mcu = "Unknown";
287 };
288 
289 #if defined(BOARD_IDENTIFY_WARNING)
290 #warning "Controller: Unknown Controller Model"
291 #endif
292 #endif
293 
294 //------------------------------------------------------------------
295 // 'printlnMatch()' prints matching define to Serial port.
296 //------------------------------------------------------------------
297 
298 #if defined(ARDUINO_AVR_UNO)
299 #define printlnMatch() Serial.println("ARDUINO_AVR_UNO")
300 #define BUILD_BOARD "ARDUINO_AVR_UNO"
301 
302 #elif defined(ARDUINO_SAMD_MKRWAN1300)
303 #define printlnMatch() Serial.println("ARDUINO_SAMD_MKRWAN1300")
304 #define BUILD_BOARD "ARDUINO_SAMD_MKRWAN1300"
305 
306 #elif defined(ARDUINO_ESP8266_WEMOS_D1MINI)
307 #define printlnMatch() Serial.println("ARDUINO_ESP8266_WEMOS_D1MINI")
308 #define BUILD_BOARD "ARDUINO_ESP8266_WEMOS_D1MINI"
309 
310 #elif defined(ARDUINO_ESP32_DEV)
311 #define printlnMatch() Serial.println("ARDUINO_ESP32_DEV")
312 #define BUILD_BOARD "ARDUINO_ESP32_DEV"
313 
314 #elif defined(ARDUINO_ESP32_THING)
315 #define printlnMatch() Serial.println("ARDUINO_ESP32_THING")
316 #define BUILD_BOARD "ARDUINO_ESP32_THING"
317 
318 #elif defined(ARDUINO_TINYPICO)
319 #define printlnMatch() Serial.println("ARDUINO_TINYPICO")
320 #define BUILD_BOARD "ARDUINO_TINYPICO"
321 
322 #elif defined(ARDUINO_BLACKPILL_F411CE)
323 #define printlnMatch() Serial.println("ARDUINO_BLACKPILL_F411CE")
324 #define BUILD_BOARD "ARDUINO_BLACKPILL_F411CE"
325 
326 #elif defined(ARDUINO_BLUEPILL_F103C6) || defined(ARDUINO_BLUEPILL_F103C8) || \
327  defined(ARDUINO_BLUEPILL_F103CB)
328 #define printlnMatch() \
329  Serial.println("ARDUINO_BLUEPILL_F103C6, ARDUINO_BLUEPILL_F103C8, " \
330  "ARDUINO_BLUEPILL_F103CB")
331 #define BUILD_BOARD \
332  "ARDUINO_BLUEPILL_F103C6, ARDUINO_BLUEPILL_F103C8, ARDUINO_BLUEPILL_F103CB"
333 
334 #elif defined(ARDUINO_D1MINI_G031F6)
335 #define printlnMatch() Serial.println("ARDUINO_D1MINI_G031F6")
336 #define BUILD_BOARD "ARDUINO_D1MINI_G031F6"
337 
338 #elif defined(ARDUINO_D1MINI_G031F8)
339 #define printlnMatch() Serial.println("ARDUINO_D1MINI_G031F8")
340 #define BUILD_BOARD "ARDUINO_D1MINI_G031F8"
341 
342 // Add more here.
343 
344 #else
345 #define printlnMatch() Serial.println("UNKNOWN BOARD")
346 #define BUILD_BOARD "UNKNOWN BOARD"
347 #endif
348 
349 /* EOF */
Definition: MyMacros.h:282
const char * model
Definition: MyMacros.h:285
const char * mcu
Definition: MyMacros.h:286
const char * make
Definition: MyMacros.h:284
int type
Definition: MyMacros.h:283