grblHAL core  20250514
driver_opts.h
Go to the documentation of this file.
1 /*
2  driver_opts.h - for preprocessing options from my_machine.h or compiler symbols
3 
4  NOTE: This file is not used by the core, it may be used by drivers
5 
6  Part of grblHAL
7 
8  Copyright (c) 2020-2025 Terje Io
9 
10  grblHAL is free software: you can redistribute it and/or modify
11  it under the terms of the GNU General Public License as published by
12  the Free Software Foundation, either version 3 of the License, or
13  (at your option) any later version.
14 
15  grblHAL is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  GNU General Public License for more details.
19 
20  You should have received a copy of the GNU General Public License
21  along with grblHAL. If not, see <http://www.gnu.org/licenses/>.
22 */
23 
24 //
25 // NOTE: do NOT change options here - edit the driver specific my_machine.h instead!
26 //
27 
28 #pragma once
29 
30 #include "hal.h"
31 #include "nuts_bolts.h"
32 
33 #define MODBUS_RTU_ENABLED 0b001
34 #define MODBUS_RTU_DIR_ENABLED 0b010
35 #define MODBUS_TCP_ENABLED 0b100
36 
37 #include "expanders_init.h"
38 
39 #ifdef OPTS_POSTPROCESSING
40 #define NO_OPTS_POST 0
41 #else
42 #define NO_OPTS_POST 1
43 #endif
44 
45 #ifndef X_GANGED
46 #define X_GANGED 0
47 #endif
48 #ifndef X_AUTO_SQUARE
49 #define X_AUTO_SQUARE 0
50 #endif
51 #ifndef Y_GANGED
52 #define Y_GANGED 0
53 #endif
54 #ifndef Y_AUTO_SQUARE
55 #define Y_AUTO_SQUARE 0
56 #endif
57 #ifndef Z_GANGED
58 #define Z_GANGED 0
59 #endif
60 #ifndef Z_AUTO_SQUARE
61 #define Z_AUTO_SQUARE 0
62 #endif
63 #ifndef X_GANGED_LIM_MAX
64 #define X_GANGED_LIM_MAX 0
65 #endif
66 #ifndef Y_GANGED_LIM_MAX
67 #define Y_GANGED_LIM_MAX 0
68 #endif
69 #ifndef Z_GANGED_LIM_MAX
70 #define Z_GANGED_LIM_MAX 0
71 #endif
72 
73 #if X_AUTO_SQUARE && !X_GANGED
74 #undef X_GANGED
75 #define X_GANGED 1
76 #endif
77 #if Y_AUTO_SQUARE && !Y_GANGED
78 #undef Y_GANGED
79 #define Y_GANGED 1
80 #endif
81 #if Z_AUTO_SQUARE && !Z_GANGED
82 #undef Z_GANGED
83 #define Z_GANGED 1
84 #endif
85 
86 #define N_GANGED (X_GANGED + Y_GANGED + Z_GANGED)
87 #define N_AUTO_SQUARED (X_AUTO_SQUARE + Y_AUTO_SQUARE + Z_AUTO_SQUARE)
88 #define N_ABC_MOTORS (N_ABC_AXIS + N_GANGED)
89 
90 #ifndef PROBE_ENABLE
91 #define PROBE_ENABLE 1
92 #endif
93 
94 #ifndef NEOPIXELS_ENABLE
95 #define NEOPIXELS_ENABLE 0
96 #endif
97 
98 #ifndef USB_SERIAL_CDC
99 #define USB_SERIAL_CDC 0 // for UART comms
100 #endif
101 #ifndef USB_SERIAL_WAIT
102 #define USB_SERIAL_WAIT 0
103 #endif
104 
105 #if USB_SERIAL_CDC == 0 && !defined(SERIAL_STREAM)
106 #define SERIAL_STREAM 0
107 #endif
108 
109 #ifndef MACROS_ENABLE
110 #define MACROS_ENABLE 0
111 #endif
112 
113 #ifndef KEYPAD_ENABLE
114 #define KEYPAD_ENABLE 0
115 #endif
116 
117 #if KEYPAD_ENABLE == 1
118 #ifdef I2C_STROBE_ENABLE
119 #undef I2C_STROBE_ENABLE
120 #endif
121 #define I2C_STROBE_ENABLE 1
122 #elif NO_OPTS_POST && KEYPAD_ENABLE == 2 && !defined(KEYPAD_STREAM)
123 #if USB_SERIAL_CDC
124 #define KEYPAD_STREAM 0
125 #else
126 #define KEYPAD_STREAM 1
127 #endif
128 #endif
129 
130 #ifndef I2C_STROBE_ENABLE
131 #define I2C_STROBE_ENABLE 0
132 #endif
133 
134 #ifndef MPG_ENABLE
135 #define MPG_ENABLE 0
136 #endif
137 
138 #if NO_OPTS_POST && MPG_ENABLE && !defined(MPG_STREAM)
139 #if USB_SERIAL_CDC
140 #define MPG_STREAM 0
141 #else
142 #define MPG_STREAM 1
143 #endif
144 #endif
145 
146 #ifndef DISPLAY_ENABLE
147 #define DISPLAY_ENABLE 0
148 #endif
149 
150 #ifndef EEPROM_ENABLE
151 #define EEPROM_ENABLE 0
152 #endif
153 #ifndef EEPROM_IS_FRAM
154 #define EEPROM_IS_FRAM 0
155 #endif
156 
157 #if EEPROM_ENABLE || KEYPAD_ENABLE == 1 || I2C_STROBE_ENABLE || (DISPLAY_ENABLE & DISPLAY_I2C) || (TRINAMIC_ENABLE && TRINAMIC_I2C)
158 #if defined(I2C_ENABLE) && I2C_ENABLE == 0
159 #undef I2C_ENABLE
160 #else
161 #define I2C_ENABLE 1
162 #endif
163 #endif
164 
165 #ifndef I2C_ENABLE
166 #define I2C_ENABLE 0
167 #endif
168 
169 #ifndef SPINDLE_SYNC_ENABLE
170 #define SPINDLE_SYNC_ENABLE 0
171 #endif
172 
173 #ifndef SPINDLE_ENCODER_ENABLE
174 #if SPINDLE_SYNC_ENABLE
175 #define SPINDLE_ENCODER_ENABLE 1
176 #else
177 #define SPINDLE_ENCODER_ENABLE 0
178 #endif
179 #endif
180 
181 #ifndef TRINAMIC_ENABLE
182  #define TRINAMIC_ENABLE 0
183 #endif
184 #if TRINAMIC_ENABLE == 2209
185  #ifndef TRINAMIC_UART_ENABLE
186  #define TRINAMIC_UART_ENABLE 1
187  #endif
188  #if NO_OPTS_POST && !defined(TRINAMIC_STREAM) && TRINAMIC_UART_ENABLE == 1
189  #define TRINAMIC_STREAM 1
190  #endif
191 #else
192  #define TRINAMIC_UART_ENABLE 0
193 #endif
194 #if (TRINAMIC_ENABLE == 2130 || TRINAMIC_ENABLE == 2660 || TRINAMIC_ENABLE == 5160)
195  #if !defined(TRINAMIC_SPI_ENABLE)
196  #define TRINAMIC_SPI_ENABLE 1
197  #endif
198 #else
199  #define TRINAMIC_SPI_ENABLE 0
200 #endif
201 #ifndef TRINAMIC_DEV
202 #define TRINAMIC_DEV 0
203 #endif
204 
205 #if NO_OPTS_POST
206 #ifndef TRINAMIC_I2C
207 #define TRINAMIC_I2C 0
208 #endif
209 #if TRINAMIC_ENABLE && TRINAMIC_I2C
210 #define TRINAMIC_MOTOR_ENABLE 1
211 #else
212 #define TRINAMIC_MOTOR_ENABLE 0
213 #endif
214 #endif
215 
216 #ifndef LITTLEFS_ENABLE
217 #define LITTLEFS_ENABLE 0
218 #endif
219 
220 #ifndef PWM_RAMPED
221 #define PWM_RAMPED 0
222 #endif
223 #ifndef PLASMA_ENABLE
224 #define PLASMA_ENABLE 0
225 #elif PLASMA_ENABLE
226 #if defined(STEP_INJECT_ENABLE)
227 #undef STEP_INJECT_ENABLE
228 #endif
229 #define STEP_INJECT_ENABLE 1
230 #endif
231 #ifndef PPI_ENABLE
232 #define PPI_ENABLE 0
233 #endif
234 
235 #if EMBROIDERY_ENABLE
236 #if defined(SDCARD_ENABLE) && SDCARD_ENABLE == 0
237 #undef SDCARD_ENABLE
238 #endif
239 #ifndef SDCARD_ENABLE
240 #define SDCARD_ENABLE 1
241 #endif
242 #endif
243 
244 #ifndef ESTOP_ENABLE
245  #if COMPATIBILITY_LEVEL <= 1
246  #define ESTOP_ENABLE 1
247  #else
248  #define ESTOP_ENABLE 0
249  #endif
250 #elif ESTOP_ENABLE && COMPATIBILITY_LEVEL > 1
251  #warning "Enabling ESTOP may not work with all senders!"
252 #endif
253 
254 #define AUX_CONTROL_SPINDLE 0b0001
255 #define AUX_CONTROL_COOLANT 0b0010
256 #define AUX_CONTROL_DEVICES 0b0100
257 #define AUX_CONTROL_INPUTS 0b1000
258 
259 // Control signals, keep in sync with control_signals_t
260 #define CONTROL_RESET 0b0000001
261 #define CONTROL_FEEDHOLD 0b0000010
262 #define CONTROL_CYCLESTART 0b0000100
263 #define CONTROL_SAFETYDOOR 0b0001000
264 #define CONTROL_BLOCKDELETE 0b0010000
265 #define CONTROL_STOPDISABLE 0b0100000
266 #define CONTROL_ESTOP 0b1000000
267 
268 #ifndef CONTROL_ENABLE
269 #if ESTOP_ENABLE
270 #define CONTROL_ENABLE (CONTROL_FEEDHOLD|CONTROL_CYCLESTART|CONTROL_ESTOP)
271 #else
272 #define CONTROL_ENABLE (CONTROL_RESET|CONTROL_FEEDHOLD|CONTROL_CYCLESTART)
273 #endif
274 #endif
275 
276 // Coolant signals, keep in sync with coolant_state_t
277 #define COOLANT_FLOOD 0b01
278 #define COOLANT_MIST 0b10
279 
280 #ifndef COOLANT_ENABLE
281 #define COOLANT_ENABLE (COOLANT_FLOOD|COOLANT_MIST)
282 #endif
283 
284 // Spindle signals
285 #define SPINDLE_ENA 0b001
286 #define SPINDLE_PWM 0b010
287 #define SPINDLE_DIR 0b100
288 
289 #ifndef SPINDLE0_ENABLE
290 #define SPINDLE0_ENABLE DEFAULT_SPINDLE
291 #endif
292 
293 #ifndef SPINDLE1_ENABLE
294 #define SPINDLE1_ENABLE 0
295 #elif SPINDLE1_ENABLE == -1 || SPINDLE1_ENABLE == SPINDLE_ALL || SPINDLE1_ENABLE == SPINDLE_ALL_VFD
296 #warning "SPINDLE1_ENABLE cannot be set to -1, SPINDLE_ALL or SPINDLE_ALL_VFD"
297 #undef SPINDLE1_ENABLE
298 #define SPINDLE1_ENABLE 0
299 #endif
300 
301 #ifndef SPINDLE2_ENABLE
302 #define SPINDLE2_ENABLE 0
303 #elif SPINDLE2_ENABLE == -1 || SPINDLE2_ENABLE == SPINDLE_ALL || SPINDLE2_ENABLE == SPINDLE_ALL_VFD
304 #warning "SPINDLE2_ENABLE cannot be set to -1, SPINDLE_ALL or SPINDLE_ALL_VFD"
305 #undef SPINDLE2_ENABLE
306 #define SPINDLE2_ENABLE 0
307 #endif
308 
309 #ifndef SPINDLE3_ENABLE
310 #define SPINDLE3_ENABLE 0
311 #elif SPINDLE3_ENABLE == -1 || SPINDLE3_ENABLE == SPINDLE_ALL || SPINDLE3_ENABLE == SPINDLE_ALL_VFD
312 #warning "SPINDLE3_ENABLE cannot be set to -1, SPINDLE_ALL or SPINDLE_ALL_VFD"
313 #undef SPINDLE1_ENABLE
314 #define SPINDLE1_ENABLE 0
315 #endif
316 
317 #if SPINDLE0_ENABLE == -1 || SPINDLE0_ENABLE == SPINDLE_ALL
318 #define SPINDLE_ENABLE (SPINDLE_ALL|(1<<SPINDLE1_ENABLE)|(1<<SPINDLE2_ENABLE)|(1<<SPINDLE3_ENABLE))
319 #elif SPINDLE0_ENABLE == SPINDLE_ALL_VFD
320 #define SPINDLE_ENABLE (SPINDLE_ALL_VFD|SPINDLE_ALL|(1<<SPINDLE1_ENABLE)|(1<<SPINDLE2_ENABLE)|(1<<SPINDLE3_ENABLE))
321 #else
322 #define SPINDLE_ENABLE ((1<<SPINDLE0_ENABLE)|(1<<SPINDLE1_ENABLE)|(1<<SPINDLE2_ENABLE)|(1<<SPINDLE3_ENABLE))
323 #endif
324 
325 // Driver spindle 0
326 
327 #if SPINDLE_ENABLE & (1<<SPINDLE_PWM0)
328 #define DRIVER_SPINDLE_ENABLE (SPINDLE_ENA|SPINDLE_PWM|SPINDLE_DIR)
329 #elif SPINDLE_ENABLE & (1<<SPINDLE_PWM0_NODIR)
330 #define DRIVER_SPINDLE_ENABLE (SPINDLE_ENA|SPINDLE_PWM)
331 #elif SPINDLE_ENABLE & (1<<SPINDLE_ONOFF0)
332 #define DRIVER_SPINDLE_ENABLE SPINDLE_ENA
333 #elif SPINDLE_ENABLE & (1<<SPINDLE_ONOFF0_DIR)
334 #define DRIVER_SPINDLE_ENABLE (SPINDLE_ENA|SPINDLE_DIR)
335 #else
336 #define DRIVER_SPINDLE_ENABLE 0
337 #endif
338 
339 #if DRIVER_SPINDLE_ENABLE & SPINDLE_DIR
340 #define DRIVER_SPINDLE_DIR_ENABLE 1 // Deprecated
341 #else
342 #define DRIVER_SPINDLE_DIR_ENABLE 0 // Deprecated
343 #endif
344 
345 #if DRIVER_SPINDLE_ENABLE & SPINDLE_PWM
346 #define DRIVER_SPINDLE_PWM_ENABLE 1 // Deprecated
347 #define DRIVER_SPINDLE_NAME "PWM"
348 #else
349 #define DRIVER_SPINDLE_PWM_ENABLE 0 // Deprecated
350 #if DRIVER_SPINDLE_ENABLE
351 #define DRIVER_SPINDLE_NAME "Basic"
352 #endif
353 #endif
354 
355 // Driver spindle 1
356 
357 #if SPINDLE_ENABLE & ((1<<SPINDLE_PWM1)|(1<<SPINDLE_PWM1_NODIR)|(1<<SPINDLE_ONOFF1)|(1<<SPINDLE_ONOFF1_DIR))
358 #if N_SPINDLE > 1
359 #if SPINDLE_ENABLE & (1<<SPINDLE_PWM1)
360 #define DRIVER_SPINDLE1_ENABLE (SPINDLE_ENA|SPINDLE_PWM|SPINDLE_DIR)
361 #elif SPINDLE_ENABLE & (1<<SPINDLE_PWM1_NODIR)
362 #define DRIVER_SPINDLE1_ENABLE (SPINDLE_ENA|SPINDLE_PWM)
363 #elif SPINDLE_ENABLE & (1<<SPINDLE_ONOFF1)
364 #define DRIVER_SPINDLE1_ENABLE SPINDLE_ENA
365 #elif SPINDLE_ENABLE & (1<<SPINDLE_ONOFF1_DIR)
366 #define DRIVER_SPINDLE1_ENABLE (SPINDLE_ENA|SPINDLE_DIR)
367 #endif
368 #else
369 #warning "Configure N_SPINDLE > 1 in grbl/config.h when enabling second driver spindle!"
370 #endif
371 #else
372 #define DRIVER_SPINDLE1_ENABLE 0
373 #endif
374 
375 #if DRIVER_SPINDLE1_ENABLE & SPINDLE_DIR
376 #define DRIVER_SPINDLE1_DIR_ENABLE 1 // Deprecated
377 #else
378 #define DRIVER_SPINDLE1_DIR_ENABLE 0 // Deprecated
379 #endif
380 
381 #if DRIVER_SPINDLE1_ENABLE & SPINDLE_PWM
382 #define DRIVER_SPINDLE1_PWM_ENABLE 1 // Deprecated
383 #define DRIVER_SPINDLE1_NAME "PWM2"
384 #else
385 #define DRIVER_SPINDLE1_PWM_ENABLE 0 // Deprecated
386 #if DRIVER_SPINDLE1_ENABLE
387 #define DRIVER_SPINDLE1_NAME "Basic2"
388 #endif
389 #endif
390 
391 //
392 
393 #ifndef VFD_ENABLE
394  #if SPINDLE_ENABLE & SPINDLE_ALL_VFD
395  #define VFD_ENABLE 1
396  #else
397  #define VFD_ENABLE 0
398  #endif
399 #endif
400 
401 #if MODBUS_ENABLE == 2
402 #undef MODBUS_ENABLE
403 #define MODBUS_ENABLE 0b011
404 #endif
405 
406 #ifndef MODBUS_ENABLE
407 #if VFD_ENABLE
408 #define MODBUS_ENABLE 1
409 #else
410 #define MODBUS_ENABLE 0
411 #endif
412 #endif
413 
414 #ifndef STEP_INJECT_ENABLE
415  #if SPINDLE_ENABLE & (1<<SPINDLE_STEPPER)
416  #define STEP_INJECT_ENABLE 1
417  #else
418  #define STEP_INJECT_ENABLE 0
419  #endif
420 #endif
421 
422 #ifndef QEI_ENABLE
423 #define QEI_ENABLE 0
424 #endif
425 #ifndef QEI_SELECT_ENABLE
426 #define QEI_SELECT_ENABLE 0
427 #endif
428 #ifndef ODOMETER_ENABLE
429 #define ODOMETER_ENABLE 0
430 #endif
431 #ifndef OPENPNP_ENABLE
432 #define OPENPNP_ENABLE 0
433 #endif
434 #ifndef FANS_ENABLE
435 #define FANS_ENABLE 0
436 #endif
437 #ifndef LIMITS_OVERRIDE_ENABLE
438 #define LIMITS_OVERRIDE_ENABLE 0
439 #endif
440 
441 #ifndef BLUETOOTH_ENABLE
442 #define BLUETOOTH_ENABLE 0
443 #endif
444 #if BLUETOOTH_ENABLE
445 #ifndef BLUETOOTH_DEVICE
446 #define BLUETOOTH_DEVICE "grblHAL"
447 #endif
448 #ifndef BLUETOOTH_SERVICE
449 #define BLUETOOTH_SERVICE "grblHAL Serial Port" // Minimum 8 characters, or blank for open
450 #endif
451 #endif
452 
453 // Optional control signals
454 
455 #ifndef SAFETY_DOOR_ENABLE
456 #define SAFETY_DOOR_ENABLE 0
457 #endif
458 #ifndef PROBE_DISCONNECT_ENABLE
459 #define PROBE_DISCONNECT_ENABLE 0
460 #endif
461 #ifndef STOP_DISABLE_ENABLE
462 #define STOP_DISABLE_ENABLE 0
463 #endif
464 #ifndef BLOCK_DELETE_ENABLE
465 #define BLOCK_DELETE_ENABLE 0
466 #endif
467 #ifndef SINGLE_BLOCK_ENABLE
468 #define SINGLE_BLOCK_ENABLE 0
469 #endif
470 #ifndef MOTOR_FAULT_ENABLE
471 #define MOTOR_FAULT_ENABLE 0
472 #endif
473 #ifndef MOTOR_WARNING_ENABLE
474 #define MOTOR_WARNING_ENABLE 0
475 #endif
476 #ifndef LIMITS_OVERRIDE_ENABLE
477 #define LIMITS_OVERRIDE_ENABLE 0
478 #endif
479 
480 #ifndef PROBE2_ENABLE
481 #define PROBE2_ENABLE 0
482 #endif
483 
484 #ifndef TOOLSETTER_ENABLE
485 #define TOOLSETTER_ENABLE 0
486 #endif
487 
488 #if SAFETY_DOOR_ENABLE && defined(NO_SAFETY_DOOR_SUPPORT)
489 #error "Driver does not support safety door functionality!"
490 #endif
491 
492 //
493 
494 #ifndef WIFI_ENABLE
495 #define WIFI_ENABLE 0
496 #endif
497 
498 #ifndef WEBUI_ENABLE
499 #define WEBUI_ENABLE 0
500 #endif
501 
502 #ifndef WEBUI_AUTH_ENABLE
503 #define WEBUI_AUTH_ENABLE 0
504 #endif
505 
506 #ifndef WEBUI_INFLASH
507 #define WEBUI_INFLASH 0
508 #endif
509 
510 #if WEBUI_ENABLE
511 
512 #if !WIFI_ENABLE
513 #ifdef ETHERNET_ENABLE
514 #undef ETHERNET_ENABLE
515 #endif
516 #define ETHERNET_ENABLE 1
517 #endif
518 #ifdef HTTP_ENABLE
519 #undef HTTP_ENABLE
520 #endif
521 #define HTTP_ENABLE 1
522 #ifdef WEBSOCKET_ENABLE
523 #undef WEBSOCKET_ENABLE
524 #endif
525 #define WEBSOCKET_ENABLE 1
526 #if defined(SDCARD_ENABLE) && SDCARD_ENABLE == 0 && LITTLEFS_ENABLE != 2
527 #undef SDCARD_ENABLE
528 #endif
529 #ifndef SDCARD_ENABLE
530 #if LITTLEFS_ENABLE == 2
531 #define SDCARD_ENABLE 0
532 #else
533 #define SDCARD_ENABLE 1
534 #endif
535 #endif
536 #endif
537 
538 #ifndef ETHERNET_ENABLE
539 #define ETHERNET_ENABLE 0
540 #endif
541 #ifndef TELNET_ENABLE
542 #define TELNET_ENABLE 0
543 #endif
544 #ifndef HTTP_ENABLE
545 #define HTTP_ENABLE 0
546 #endif
547 #ifndef WEBSOCKET_ENABLE
548 #define WEBSOCKET_ENABLE 0
549 #endif
550 #ifndef FTP_ENABLE
551 #define FTP_ENABLE 0
552 #elif !(SDCARD_ENABLE || LITTLEFS_ENABLE)
553 #undef FTP_ENABLE
554 #define FTP_ENABLE 0
555 #endif
556 #ifndef MDNS_ENABLE
557 #define MDNS_ENABLE 0
558 #endif
559 #ifndef SSDP_ENABLE
560 #define SSDP_ENABLE 0
561 #endif
562 #if SSDP_ENABLE && !HTTP_ENABLE
563 #undef HTTP_ENABLE
564 #define HTTP_ENABLE 1
565 #endif
566 #ifndef MQTT_ENABLE
567 #define MQTT_ENABLE 0
568 #endif
569 
570 #if ETHERNET_ENABLE || WIFI_ENABLE
571 #ifndef NETWORK_HOSTNAME
572 #define NETWORK_HOSTNAME "grblHAL"
573 #endif
574 #ifndef NETWORK_IPMODE
575 #define NETWORK_IPMODE 1 // 0 = static, 1 = DHCP, 2 = AutoIP
576 #endif
577 #ifndef NETWORK_IP
578 #define NETWORK_IP "192.168.5.1"
579 #endif
580 #ifndef NETWORK_GATEWAY
581 #define NETWORK_GATEWAY "192.168.5.1"
582 #endif
583 #ifndef NETWORK_MASK
584 #define NETWORK_MASK "255.255.255.0"
585 #endif
586 #ifndef NETWORK_FTP_PORT
587 #define NETWORK_FTP_PORT 21
588 #endif
589 #ifndef NETWORK_TELNET_PORT
590 #define NETWORK_TELNET_PORT 23
591 #endif
592 #ifndef NETWORK_HTTP_PORT
593 #define NETWORK_HTTP_PORT 80
594 #endif
595 #ifndef NETWORK_MODBUS_PORT
596 #define NETWORK_MODBUS_PORT 502
597 #endif
598 #ifndef NETWORK_MQTT_PORT
599 #define NETWORK_MQTT_PORT 1883
600 #endif
601 #ifndef NETWORK_WEBSOCKET_PORT
602 #if HTTP_ENABLE
603 #define NETWORK_WEBSOCKET_PORT 81
604 #else
605 #define NETWORK_WEBSOCKET_PORT 80
606 #endif
607 #endif
608 #if NETWORK_IPMODE < 0 || NETWORK_IPMODE > 2
609 #error "Invalid IP mode selected!"
610 #endif
611 #if HTTP_ENABLE && NETWORK_WEBSOCKET_PORT == NETWORK_HTTP_PORT
612 #warning "HTTP and WebSocket protocols cannot share the same port!"
613 #endif
614 #endif // ETHERNET_ENABLE || WIFI_ENABLE
615 
616 #if WIFI_ENABLE
617 
618 #ifndef NETWORK_STA_SSID
619 #define NETWORK_STA_SSID ""
620 #endif
621 #ifndef NETWORK_STA_PASSWORD
622 #define NETWORK_STA_PASSWORD ""
623 #endif
624 #ifndef NETWORK_STA_HOSTNAME
625 #define NETWORK_STA_HOSTNAME "grblHAL"
626 #endif
627 #ifndef NETWORK_STA_IPMODE
628 #define NETWORK_STA_IPMODE 1 // DHCP
629 #endif
630 #ifndef NETWORK_STA_IP
631 #define NETWORK_STA_IP "192.168.5.1"
632 #endif
633 #ifndef NETWORK_STA_GATEWAY
634 #define NETWORK_STA_GATEWAY "192.168.5.1"
635 #endif
636 #ifndef NETWORK_STA_MASK
637 #define NETWORK_STA_MASK "255.255.255.0"
638 #endif
639 
640 #if WIFI_SOFTAP > 0
641 #ifndef NETWORK_AP_SSID
642 #define NETWORK_AP_SSID "grblHAL_AP"
643 #endif
644 #ifndef NETWORK_AP_PASSWORD
645 #define NETWORK_AP_PASSWORD "grblHALpwd"
646 #endif
647 #ifndef NETWORK_AP_HOSTNAME
648 #define NETWORK_AP_HOSTNAME "grblHAL_AP"
649 #endif
650 #ifndef NETWORK_AP_IPMODE
651 #define NETWORK_AP_IPMODE 0 // static
652 #endif
653 #ifndef NETWORK_AP_IP
654 #define NETWORK_AP_IP "192.168.5.1"
655 #endif
656 #ifndef NETWORK_AP_GATEWAY
657 #define NETWORK_AP_GATEWAY "192.168.5.1"
658 #endif
659 #ifndef NETWORK_AP_MASK
660 #define NETWORK_AP_MASK "255.255.255.0"
661 #endif
662 #endif // WIFI_SOFTAP
663 #endif // WIFI_ENABLE
664 
665 #ifndef SDCARD_ENABLE
666 #define SDCARD_ENABLE 0
667 #endif
668 
669 #if LITTLEFS_ENABLE == 2 && SDCARD_ENABLE
670 #undef LITTLEFS_ENABLE
671 #define LITTLEFS_ENABLE 1
672 #endif
673 
674 #if LITTLEFS_ENABLE
675 #if LITTLEFS_ENABLE == 2
676 #define LITTLEFS_MOUNT_DIR "/"
677 #else
678 #define LITTLEFS_MOUNT_DIR "/littlefs"
679 #endif
680 #endif
681 
682 #define FS_FATFS 0b00001
683 #define FS_SDCARD 0b00010
684 #define FS_LFS 0b00100
685 #define FS_LFS_ROOT 0b01000
686 #define FS_YMODEM 0b10000
687 
688 #if SDCARD_ENABLE && LITTLEFS_ENABLE
689 #if SDCARD_ENABLE == 2
690 #define FS_ENABLE (FS_SDCARD|FS_FATFS|FS_LFS|FS_YMODEM)
691 #else
692 #define FS_ENABLE (FS_SDCARD|FS_FATFS|FS_LFS)
693 #endif
694 #elif LITTLEFS_ENABLE == 2
695 #define FS_ENABLE (FS_LFS|FS_LFS_ROOT|FS_YMODEM)
696 #elif LITTLEFS_ENABLE
697 #define FS_ENABLE FS_LFS
698 #elif SDCARD_ENABLE == 1
699 #define FS_ENABLE (FS_SDCARD|FS_FATFS)
700 #elif SDCARD_ENABLE == 2
701 #define FS_ENABLE (FS_SDCARD|FS_FATFS|FS_YMODEM)
702 #else
703 #define FS_ENABLE 0
704 #endif
705 
706 #ifndef SPI_ENABLE
707 #if SDCARD_ENABLE || TRINAMIC_SPI_ENABLE
708 #define SPI_ENABLE 1
709 #else
710 #define SPI_ENABLE 0
711 #endif
712 #endif
713 
714 /*EOF*/
HAL function pointers and data structures definitions.