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