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