grblHAL core  20250618
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 NEOPIXELS_ENABLE
91 #define NEOPIXELS_ENABLE 0
92 #endif
93 
94 #ifndef USB_SERIAL_CDC
95 #define USB_SERIAL_CDC 0 // for UART comms
96 #endif
97 #ifndef USB_SERIAL_WAIT
98 #define USB_SERIAL_WAIT 0
99 #endif
100 
101 #if USB_SERIAL_CDC == 0 && !defined(SERIAL_STREAM)
102 #define SERIAL_STREAM 0
103 #endif
104 
105 #ifndef MACROS_ENABLE
106 #define MACROS_ENABLE 0
107 #endif
108 
109 #ifndef KEYPAD_ENABLE
110 #define KEYPAD_ENABLE 0
111 #endif
112 
113 #if KEYPAD_ENABLE == 1
114 #ifdef I2C_STROBE_ENABLE
115 #undef I2C_STROBE_ENABLE
116 #endif
117 #define I2C_STROBE_ENABLE 1
118 #elif NO_OPTS_POST && KEYPAD_ENABLE == 2 && !defined(KEYPAD_STREAM)
119 #if USB_SERIAL_CDC
120 #define KEYPAD_STREAM 0
121 #else
122 #define KEYPAD_STREAM 1
123 #endif
124 #endif
125 
126 #ifndef I2C_STROBE_ENABLE
127 #define I2C_STROBE_ENABLE 0
128 #endif
129 
130 #ifndef MPG_ENABLE
131 #define MPG_ENABLE 0
132 #endif
133 
134 #if NO_OPTS_POST && MPG_ENABLE && !defined(MPG_STREAM)
135 #if USB_SERIAL_CDC
136 #define MPG_STREAM 0
137 #else
138 #define MPG_STREAM 1
139 #endif
140 #endif
141 
142 #ifndef DISPLAY_ENABLE
143 #define DISPLAY_ENABLE 0
144 #endif
145 
146 #ifndef EEPROM_ENABLE
147 #define EEPROM_ENABLE 0
148 #endif
149 #ifndef EEPROM_IS_FRAM
150 #define EEPROM_IS_FRAM 0
151 #endif
152 
153 #if EEPROM_ENABLE || KEYPAD_ENABLE == 1 || I2C_STROBE_ENABLE || (DISPLAY_ENABLE & DISPLAY_I2C) || (TRINAMIC_ENABLE && TRINAMIC_I2C)
154 #if defined(I2C_ENABLE) && I2C_ENABLE == 0
155 #undef I2C_ENABLE
156 #else
157 #define I2C_ENABLE 1
158 #endif
159 #endif
160 
161 #ifndef I2C_ENABLE
162 #define I2C_ENABLE 0
163 #endif
164 
165 #ifndef SPINDLE_SYNC_ENABLE
166 #define SPINDLE_SYNC_ENABLE 0
167 #endif
168 
169 #ifndef SPINDLE_ENCODER_ENABLE
170 #if SPINDLE_SYNC_ENABLE
171 #define SPINDLE_ENCODER_ENABLE 1
172 #else
173 #define SPINDLE_ENCODER_ENABLE 0
174 #endif
175 #endif
176 
177 #ifndef TRINAMIC_ENABLE
178  #define TRINAMIC_ENABLE 0
179 #endif
180 #if TRINAMIC_ENABLE == 2209
181  #ifndef TRINAMIC_UART_ENABLE
182  #define TRINAMIC_UART_ENABLE 1
183  #endif
184  #if NO_OPTS_POST && !defined(TRINAMIC_STREAM) && TRINAMIC_UART_ENABLE == 1
185  #define TRINAMIC_STREAM 1
186  #endif
187 #else
188  #define TRINAMIC_UART_ENABLE 0
189 #endif
190 #if (TRINAMIC_ENABLE == 2130 || TRINAMIC_ENABLE == 2240 || TRINAMIC_ENABLE == 2660 || TRINAMIC_ENABLE == 5160)
191  #if !defined(TRINAMIC_SPI_ENABLE)
192  #define TRINAMIC_SPI_ENABLE 1
193  #endif
194 #else
195  #define TRINAMIC_SPI_ENABLE 0
196 #endif
197 #ifndef TRINAMIC_DEV
198 #define TRINAMIC_DEV 0
199 #endif
200 
201 #if NO_OPTS_POST
202 #ifndef TRINAMIC_I2C
203 #define TRINAMIC_I2C 0
204 #endif
205 #if TRINAMIC_ENABLE && TRINAMIC_I2C
206 #define TRINAMIC_MOTOR_ENABLE 1
207 #else
208 #define TRINAMIC_MOTOR_ENABLE 0
209 #endif
210 #endif
211 
212 #ifndef LITTLEFS_ENABLE
213 #define LITTLEFS_ENABLE 0
214 #endif
215 
216 #ifndef PWM_RAMPED
217 #define PWM_RAMPED 0
218 #endif
219 #ifndef PLASMA_ENABLE
220 #define PLASMA_ENABLE 0
221 #elif PLASMA_ENABLE
222 #if defined(STEP_INJECT_ENABLE)
223 #undef STEP_INJECT_ENABLE
224 #endif
225 #define STEP_INJECT_ENABLE 1
226 #endif
227 #ifndef PPI_ENABLE
228 #define PPI_ENABLE 0
229 #endif
230 
231 #if EMBROIDERY_ENABLE
232 #if defined(SDCARD_ENABLE) && SDCARD_ENABLE == 0
233 #undef SDCARD_ENABLE
234 #endif
235 #ifndef SDCARD_ENABLE
236 #define SDCARD_ENABLE 1
237 #endif
238 #endif
239 
240 #ifndef ESTOP_ENABLE
241  #if COMPATIBILITY_LEVEL <= 1
242  #define ESTOP_ENABLE 1
243  #else
244  #define ESTOP_ENABLE 0
245  #endif
246 #elif ESTOP_ENABLE && COMPATIBILITY_LEVEL > 1
247  #warning "Enabling ESTOP may not work with all senders!"
248 #endif
249 
250 // Control signals, keep in sync with control_signals_t bit order
251 #define CONTROL_RESET (1<<0)
252 #define CONTROL_FEED_HOLD (1<<1)
253 #define CONTROL_CYCLE_START (1<<2)
254 #define CONTROL_ESTOP (1<<6)
255 #if ESTOP_ENABLE
256 #define CONTROL_HALT CONTROL_ESTOP
257 #else
258 #define CONTROL_HALT CONTROL_RESET
259 #endif
260 
261 // Probe signals
262 
263 #ifndef PROBE_ENABLE
264 #define PROBE_ENABLE 1
265 #endif
266 
267 #ifndef PROBE2_ENABLE
268 #define PROBE2_ENABLE 0
269 #endif
270 
271 #ifndef TOOLSETTER_ENABLE
272 #define TOOLSETTER_ENABLE 0
273 #endif
274 
275 // Coolant signals, keep in sync with coolant_state_t
276 #define COOLANT_FLOOD 0b01
277 #define COOLANT_MIST 0b10
278 
279 #ifndef COOLANT_ENABLE
280 #define COOLANT_ENABLE (COOLANT_FLOOD|COOLANT_MIST)
281 #endif
282 
283 // Spindle signals
284 #define SPINDLE_ENA 0b001
285 #define SPINDLE_PWM 0b010
286 #define SPINDLE_DIR 0b100
287 
288 #ifndef SPINDLE0_ENABLE
289 #define SPINDLE0_ENABLE DEFAULT_SPINDLE
290 #endif
291 
292 #ifndef SPINDLE1_ENABLE
293 #define SPINDLE1_ENABLE 0
294 #elif SPINDLE1_ENABLE == -1 || SPINDLE1_ENABLE == SPINDLE_ALL || SPINDLE1_ENABLE == SPINDLE_ALL_VFD
295 #warning "SPINDLE1_ENABLE cannot be set to -1, SPINDLE_ALL or SPINDLE_ALL_VFD"
296 #undef SPINDLE1_ENABLE
297 #define SPINDLE1_ENABLE 0
298 #endif
299 
300 #ifndef SPINDLE2_ENABLE
301 #define SPINDLE2_ENABLE 0
302 #elif SPINDLE2_ENABLE == -1 || SPINDLE2_ENABLE == SPINDLE_ALL || SPINDLE2_ENABLE == SPINDLE_ALL_VFD
303 #warning "SPINDLE2_ENABLE cannot be set to -1, SPINDLE_ALL or SPINDLE_ALL_VFD"
304 #undef SPINDLE2_ENABLE
305 #define SPINDLE2_ENABLE 0
306 #endif
307 
308 #ifndef SPINDLE3_ENABLE
309 #define SPINDLE3_ENABLE 0
310 #elif SPINDLE3_ENABLE == -1 || SPINDLE3_ENABLE == SPINDLE_ALL || SPINDLE3_ENABLE == SPINDLE_ALL_VFD
311 #warning "SPINDLE3_ENABLE cannot be set to -1, SPINDLE_ALL or SPINDLE_ALL_VFD"
312 #undef SPINDLE1_ENABLE
313 #define SPINDLE1_ENABLE 0
314 #endif
315 
316 #if SPINDLE0_ENABLE == -1 || SPINDLE0_ENABLE == SPINDLE_ALL
317 #define SPINDLE_ENABLE (SPINDLE_ALL|(1<<SPINDLE1_ENABLE)|(1<<SPINDLE2_ENABLE)|(1<<SPINDLE3_ENABLE))
318 #elif SPINDLE0_ENABLE == SPINDLE_ALL_VFD
319 #define SPINDLE_ENABLE (SPINDLE_ALL_VFD|SPINDLE_ALL|(1<<SPINDLE1_ENABLE)|(1<<SPINDLE2_ENABLE)|(1<<SPINDLE3_ENABLE))
320 #else
321 #define SPINDLE_ENABLE ((1<<SPINDLE0_ENABLE)|(1<<SPINDLE1_ENABLE)|(1<<SPINDLE2_ENABLE)|(1<<SPINDLE3_ENABLE))
322 #endif
323 
324 // Driver spindle 0
325 
326 #if SPINDLE_ENABLE & (1<<SPINDLE_PWM0)
327 #define DRIVER_SPINDLE_ENABLE (SPINDLE_ENA|SPINDLE_PWM|SPINDLE_DIR)
328 #elif SPINDLE_ENABLE & (1<<SPINDLE_PWM0_NODIR)
329 #define DRIVER_SPINDLE_ENABLE (SPINDLE_ENA|SPINDLE_PWM)
330 #elif SPINDLE_ENABLE & (1<<SPINDLE_ONOFF0)
331 #define DRIVER_SPINDLE_ENABLE SPINDLE_ENA
332 #elif SPINDLE_ENABLE & (1<<SPINDLE_ONOFF0_DIR)
333 #define DRIVER_SPINDLE_ENABLE (SPINDLE_ENA|SPINDLE_DIR)
334 #else
335 #define DRIVER_SPINDLE_ENABLE 0
336 #endif
337 
338 #if DRIVER_SPINDLE_ENABLE & SPINDLE_DIR
339 #define DRIVER_SPINDLE_DIR_ENABLE 1 // Deprecated
340 #else
341 #define DRIVER_SPINDLE_DIR_ENABLE 0 // Deprecated
342 #endif
343 
344 #if DRIVER_SPINDLE_ENABLE & SPINDLE_PWM
345 #define DRIVER_SPINDLE_PWM_ENABLE 1 // Deprecated
346 #define DRIVER_SPINDLE_NAME "PWM"
347 #else
348 #define DRIVER_SPINDLE_PWM_ENABLE 0 // Deprecated
349 #if DRIVER_SPINDLE_ENABLE
350 #define DRIVER_SPINDLE_NAME "Basic"
351 #endif
352 #endif
353 
354 // Driver spindle 1
355 
356 #if SPINDLE_ENABLE & ((1<<SPINDLE_PWM1)|(1<<SPINDLE_PWM1_NODIR)|(1<<SPINDLE_ONOFF1)|(1<<SPINDLE_ONOFF1_DIR))
357 #if N_SPINDLE > 1
358 #if SPINDLE_ENABLE & (1<<SPINDLE_PWM1)
359 #define DRIVER_SPINDLE1_ENABLE (SPINDLE_ENA|SPINDLE_PWM|SPINDLE_DIR)
360 #elif SPINDLE_ENABLE & (1<<SPINDLE_PWM1_NODIR)
361 #define DRIVER_SPINDLE1_ENABLE (SPINDLE_ENA|SPINDLE_PWM)
362 #elif SPINDLE_ENABLE & (1<<SPINDLE_ONOFF1)
363 #define DRIVER_SPINDLE1_ENABLE SPINDLE_ENA
364 #elif SPINDLE_ENABLE & (1<<SPINDLE_ONOFF1_DIR)
365 #define DRIVER_SPINDLE1_ENABLE (SPINDLE_ENA|SPINDLE_DIR)
366 #endif
367 #else
368 #warning "Configure N_SPINDLE > 1 in grbl/config.h when enabling second driver spindle!"
369 #endif
370 #else
371 #define DRIVER_SPINDLE1_ENABLE 0
372 #endif
373 
374 #if DRIVER_SPINDLE1_ENABLE & SPINDLE_DIR
375 #define DRIVER_SPINDLE1_DIR_ENABLE 1 // Deprecated
376 #else
377 #define DRIVER_SPINDLE1_DIR_ENABLE 0 // Deprecated
378 #endif
379 
380 #if DRIVER_SPINDLE1_ENABLE & SPINDLE_PWM
381 #define DRIVER_SPINDLE1_PWM_ENABLE 1 // Deprecated
382 #define DRIVER_SPINDLE1_NAME "PWM2"
383 #else
384 #define DRIVER_SPINDLE1_PWM_ENABLE 0 // Deprecated
385 #if DRIVER_SPINDLE1_ENABLE
386 #define DRIVER_SPINDLE1_NAME "Basic2"
387 #endif
388 #endif
389 
390 //
391 
392 #ifndef VFD_ENABLE
393  #if SPINDLE_ENABLE & SPINDLE_ALL_VFD
394  #define VFD_ENABLE 1
395  #else
396  #define VFD_ENABLE 0
397  #endif
398 #endif
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.