Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can you guide me how to change the USART default serial port to different USART pins? #185

Closed
terjeio opened this issue Jul 19, 2024 · 26 comments

Comments

@terjeio
Copy link
Contributor

terjeio commented Jul 19, 2024

          Hi @terjeio, can you guide me how to change the USART default serial port to different USART pins?

I am using STM32F407VET6, in GRBLHAL, there is STM32F407VGT6 using BTT SKR 2.0 board with default USART1, I have changed to USART2 in the code, but it did not work when I connect that 2 pins between the laptop and the MCU
I use STM32CubeIDE, to build the selected project which issues STM32F4 8MHz

This is what I have modified in the code:

#define SERIAL_PORT     2   // GPIOA: TX = 2, RX = 3

Originally posted by @datdadev in #77 (comment)

@terjeio
Copy link
Contributor Author

terjeio commented Jul 19, 2024

@Datadev Since USB is the default comm channel it has to be commented out in my_machine.h. Have you done that?

@datdadev
Copy link

datdadev commented Jul 19, 2024

Yes I have done that
Idk if I have to define all the other pins to adapt to my current board (sorry for not mentioning this before) to make whole things work?

This is my custom map pins to adapt the board of mine:

// file_name: "my_board_map.h"

#define BOARD_NAME "MY BOARD"
#define HAS_BOARD_INIT

#define SERIAL_PORT     2   // GPIOA: TX = 2, RX = 3

// Define step pulse output pins.
#define X_STEP_PORT                 GPIOD
#define X_STEP_PIN                  13                  // X
#define Y_STEP_PORT                 GPIOD
#define Y_STEP_PIN                  11                  // Y
#define Z_STEP_PORT                 GPIOE
#define Z_STEP_PIN                  2                   // Z
#define STEP_OUTMODE                GPIO_BITBAND
//#define STEP_PINMODE                PINMODE_OD // Uncomment for open drain outputs

// Define step direction output pins.
#define X_DIRECTION_PORT            GPIOD
#define X_DIRECTION_PIN             12
#define Y_DIRECTION_PORT            GPIOB
#define Y_DIRECTION_PIN             15
#define Z_DIRECTION_PORT            GPIOE
#define Z_DIRECTION_PIN             3
#define DIRECTION_OUTMODE           GPIO_BITBAND
//#define DIRECTION_PINMODE           PINMODE_OD // Uncomment for open drain outputs

// Define homing/hard limit switch input pins.
#define X_LIMIT_PORT                GPIOA
#define X_LIMIT_PIN                 11                           // X- Limit
#define Y_LIMIT_PORT                GPIOA
#define Y_LIMIT_PIN                 12                           // Y- Limit
#define Z_LIMIT_PORT                GPIOB
#define Z_LIMIT_PIN                 12                           // Z- Limit
#define LIMIT_INMODE                GPIO_BITBAND

// EOF

To adapt the project that I am doing, the board just need these several pins so I just remove unused features. Note that, I will use USART2 serial port which is PA2 and PA3 pins to receive ad send command between my laptop and the MCU.

@terjeio
Copy link
Contributor Author

terjeio commented Jul 19, 2024

Components for thermistor conditioning on the inputs are interfering? Or are you testing with your own board?

FYI my Nucleo-64 board works with the port, from the $pins output:

[PIN:PA3,RX,Primary UART]
[PIN:PA2,TX,Primary UART]

@datdadev
Copy link

datdadev commented Jul 19, 2024

Sure, I am using a custom-built board with an STM32F407VET6 microcontroller. My goal is to connect the desired USART port (RS232) between my laptop and the MCU to drive the stepper motors without any additional external sensors. I believe I may have made some errors in the configuration process.

Could you please guide me on how to properly configure the STM32F407VET6 to use the desired serial port? Specifically, I would like to know which files and settings I need to customize in STM32CubeIDE, given that I am using my own custom board.

Alternatively, I am open to using PlatformIO for this project. This platform is new to me, but if you can provide a detailed procedure, I would greatly appreciate it.

@datdadev
Copy link

datdadev commented Jul 19, 2024

I don't know if there was something I am missed.

driver.json:

    {
      "name": "MY BOARD MAP",
      "symbol": "MY_BOARD",
      "MAP": "boards/my_board_map.h",
      "caps": {
        "uart": 1,
        "axes": 3,
        "serial_ports": 1
      },
      "symbols": {
        "STM32F407xx": "",
        "HSE_VALUE": 8000000
      }
    },

platformio.ini:

[env:my_board]
# Untested and might not boot.  Please report issues at:
# https://github.com/grblHAL/STM32F4xx/issues
board = genericSTM32F407VGT6
board_build.ldscript = STM32F407VGTX_FLASH.ld
build_flags = ${common.build_flags}
  # See Inc/my_machine.h for options
  -D MY_BOARD=
  -D HSE_VALUE=8000000
  -D USB_SERIAL_CDC=1
  -D VECT_TAB_OFFSET=0x8000
lib_deps = ${common.lib_deps}
  eeprom
lib_extra_dirs = ${common.lib_extra_dirs}

@terjeio
Copy link
Contributor Author

terjeio commented Jul 19, 2024

I use STM32CubeIDE

Then driver.json (only for the Web Builder) and platformio.ini is not used by the build process.
Modify my_machine.ini instead. Uncomment this line to make the compiler use your board definition.

Idk if I have to define all the other pins to adapt to my current board (sorry for not mentioning this before) to make whole things work?

No - but some may be required, the compiler will complain if they are. BTW when you edit a comment I am not notified, when doing so add a new comment telling me a bout the edit or just add a new one instead.

@datdadev
Copy link

datdadev commented Jul 19, 2024

This is my_machine_map.h file:

#define BOARD_NAME "MY BOARD"
#define HAS_BOARD_INIT

#define SERIAL_PORT     2   // GPIOA: TX = 2, RX = 3

// Define step pulse output pins.
#define X_STEP_PORT                 GPIOD
#define X_STEP_PIN                  13                  // X
#define Y_STEP_PORT                 GPIOD
#define Y_STEP_PIN                  11                  // Y
#define Z_STEP_PORT                 GPIOE
#define Z_STEP_PIN                  2                   // Z
#define STEP_OUTMODE                GPIO_BITBAND
//#define STEP_PINMODE                PINMODE_OD // Uncomment for open drain outputs

// Define step direction output pins.
#define X_DIRECTION_PORT            GPIOD
#define X_DIRECTION_PIN             12
#define Y_DIRECTION_PORT            GPIOB
#define Y_DIRECTION_PIN             15
#define Z_DIRECTION_PORT            GPIOE
#define Z_DIRECTION_PIN             3
#define DIRECTION_OUTMODE           GPIO_BITBAND
//#define DIRECTION_PINMODE           PINMODE_OD // Uncomment for open drain outputs

// Define homing/hard limit switch input pins.
#define X_LIMIT_PORT                GPIOA
#define X_LIMIT_PIN                 11                           // X- Limit
#define Y_LIMIT_PORT                GPIOA
#define Y_LIMIT_PIN                 12                           // Y- Limit
#define Z_LIMIT_PORT                GPIOB
#define Z_LIMIT_PIN                 12                           // Z- Limit
#define LIMIT_INMODE                GPIO_BITBAND

// EOF

@datdadev
Copy link

datdadev commented Jul 19, 2024

When I build the project using the "17 Release F407 8MHz" option, I encounter numerous warnings and errors related to features that my board does not use or support. How can I disable these features during the build process without affecting the original code? In other words, how can I achieve a clean build in the correct manner?

@datdadev
Copy link

Error logs from STM32CubeIDE
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
arm-none-eabi-gcc "../keypad/display/i2c_leds.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"keypad/display/i2c_leds.d" -MT"keypad/display/i2c_leds.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "keypad/display/i2c_leds.o"
arm-none-eabi-gcc "../keypad/keypad.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"keypad/keypad.d" -MT"keypad/keypad.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "keypad/keypad.o"
arm-none-eabi-gcc "../keypad/macros.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"keypad/macros.d" -MT"keypad/macros.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "keypad/macros.o"
In file included from ../laser/coolant.c:23:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
arm-none-eabi-gcc "../fans/fans.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"fans/fans.d" -MT"fans/fans.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "fans/fans.o"
In file included from ../laser/lb_clusters.c:26:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
arm-none-eabi-gcc "../encoder/encoder.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"encoder/encoder.d" -MT"encoder/encoder.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "encoder/encoder.o"
arm-none-eabi-gcc "../embroidery/brother.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"embroidery/brother.d" -MT"embroidery/brother.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "embroidery/brother.o"
In file included from ../laser/ppi.c:24:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../keypad/display/i2c_interface.c:26:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
arm-none-eabi-gcc "../embroidery/embroidery.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"embroidery/embroidery.d" -MT"embroidery/embroidery.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "embroidery/embroidery.o"
arm-none-eabi-gcc "../embroidery/tajima.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"embroidery/tajima.d" -MT"embroidery/tajima.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "embroidery/tajima.o"
In file included from ../keypad/display/i2c_leds.c:25:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../keypad/keypad.c:26:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../keypad/macros.c:42:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../fans/fans.c:24:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../embroidery/embroidery.h:25,
                 from ../embroidery/brother.c:24:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../encoder/encoder.h:28,
                 from ../encoder/encoder.c:25:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
arm-none-eabi-gcc "../eeprom/eeprom_24AAxxx.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"eeprom/eeprom_24AAxxx.d" -MT"eeprom/eeprom_24AAxxx.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "eeprom/eeprom_24AAxxx.o"
arm-none-eabi-gcc "../eeprom/eeprom_24LC16B.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"eeprom/eeprom_24LC16B.d" -MT"eeprom/eeprom_24LC16B.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "eeprom/eeprom_24LC16B.o"
arm-none-eabi-gcc "../boards/Devtronic_CNC_Controller.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"boards/Devtronic_CNC_Controller.d" -MT"boards/Devtronic_CNC_Controller.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "boards/Devtronic_CNC_Controller.o"
arm-none-eabi-gcc "../boards/btt_skr_2.0.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"boards/btt_skr_2.0.d" -MT"boards/btt_skr_2.0.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "boards/btt_skr_2.0.o"
arm-none-eabi-gcc "../boards/flexi_hal.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"boards/flexi_hal.d" -MT"boards/flexi_hal.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "boards/flexi_hal.o"
arm-none-eabi-gcc "../boards/longboard32.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"boards/longboard32.d" -MT"boards/longboard32.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "boards/longboard32.o"
In file included from ../embroidery/embroidery.h:25,
                 from ../embroidery/embroidery.c:22:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../embroidery/embroidery.h:25,
                 from ../embroidery/tajima.c:23:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
arm-none-eabi-gcc "../boards/st_morpho.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"boards/st_morpho.d" -MT"boards/st_morpho.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "boards/st_morpho.o"
arm-none-eabi-gcc "../boards/st_morpo_dac.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"boards/st_morpo_dac.d" -MT"boards/st_morpo_dac.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "boards/st_morpo_dac.o"
In file included from ../eeprom/eeprom_24LC16B.c:24:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../eeprom/eeprom_24AAxxx.c:26:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../boards/Devtronic_CNC_Controller.c:22:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../boards/btt_skr_2.0.c:25:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../boards/longboard32.c:22:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../boards/flexi_hal.c:22:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
arm-none-eabi-gcc "../bluetooth/hc_05.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"bluetooth/hc_05.d" -MT"bluetooth/hc_05.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "bluetooth/hc_05.o"
arm-none-eabi-gcc "../USB_DEVICE/App/usbd_cdc_if.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"USB_DEVICE/App/usbd_cdc_if.d" -MT"USB_DEVICE/App/usbd_cdc_if.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "USB_DEVICE/App/usbd_cdc_if.o"
arm-none-eabi-gcc "../Src/MCP3221.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/MCP3221.d" -MT"Src/MCP3221.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCP3221.o"
arm-none-eabi-gcc "../Src/can.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/can.d" -MT"Src/can.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/can.o"
In file included from ../boards/st_morpho.c:22:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
arm-none-eabi-gcc "../Src/diskio.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/diskio.d" -MT"Src/diskio.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/diskio.o"
arm-none-eabi-gcc "../Src/driver.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/driver.d" -MT"Src/driver.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/driver.o"
In file included from ../boards/st_morpo_dac.c:22:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
arm-none-eabi-gcc "../Src/driver_spindles.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/driver_spindles.d" -MT"Src/driver_spindles.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/driver_spindles.o"
arm-none-eabi-gcc "../Src/flash.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/flash.d" -MT"Src/flash.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/flash.o"
In file included from ../bluetooth/hc_05.c:24:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../Src/MCP3221.c:24:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../USB_DEVICE/App/usbd_cdc_if.c:26:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../Src/can.c:25:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../Src/diskio.c:14:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../Src/driver.c:30:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../Src/driver.c:38:
C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/grbl/pin_bits_masks.h:27:2: error: #error "Probe input is not supported in this configuration!"
   27 | #error "Probe input is not supported in this configuration!"
      |  ^~~~~
../Src/driver.c:85:2: error: #error Interrupt enabled input pins must have unique pin numbers!
   85 | #error Interrupt enabled input pins must have unique pin numbers!
      |  ^~~~~
arm-none-eabi-gcc "../Src/i2c.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/i2c.d" -MT"Src/i2c.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/i2c.o"
In file included from ../Src/driver_spindles.c:22:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
arm-none-eabi-gcc "../Src/ioports.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/ioports.d" -MT"Src/ioports.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/ioports.o"
../Src/driver.c: In function 'stepperEnable':
../Src/driver.c:589:17: error: 'X_ENABLE_PORT' undeclared (first use in this function)
  589 |     DIGITAL_OUT(X_ENABLE_PORT, X_ENABLE_PIN, enable.x);
      |                 ^~~~~~~~~~~~~
../Inc/driver.h:51:107: note: in definition of macro 'BITBAND_PERI'
   51 | #define BITBAND_PERI(x, b) (*((__IO uint8_t *) (PERIPH_BB_BASE + (((uint32_t)(volatile const uint32_t *)&(x)) - PERIPH_BASE)*32 + (b)*4)))
      |                                                                                                           ^
../Src/driver.c:589:5: note: in expansion of macro 'DIGITAL_OUT'
  589 |     DIGITAL_OUT(X_ENABLE_PORT, X_ENABLE_PIN, enable.x);
      |     ^~~~~~~~~~~
../Src/driver.c:589:17: note: each undeclared identifier is reported only once for each function it appears in
  589 |     DIGITAL_OUT(X_ENABLE_PORT, X_ENABLE_PIN, enable.x);
      |                 ^~~~~~~~~~~~~
../Inc/driver.h:51:107: note: in definition of macro 'BITBAND_PERI'
   51 | #define BITBAND_PERI(x, b) (*((__IO uint8_t *) (PERIPH_BB_BASE + (((uint32_t)(volatile const uint32_t *)&(x)) - PERIPH_BASE)*32 + (b)*4)))
      |                                                                                                           ^
../Src/driver.c:589:5: note: in expansion of macro 'DIGITAL_OUT'
  589 |     DIGITAL_OUT(X_ENABLE_PORT, X_ENABLE_PIN, enable.x);
      |     ^~~~~~~~~~~
arm-none-eabi-gcc "../Src/ioports_analog.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/ioports_analog.d" -MT"Src/ioports_analog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/ioports_analog.o"
../Src/driver.c:589:32: error: 'X_ENABLE_PIN' undeclared (first use in this function)
  589 |     DIGITAL_OUT(X_ENABLE_PORT, X_ENABLE_PIN, enable.x);
      |                                ^~~~~~~~~~~~
../Inc/driver.h:51:132: note: in definition of macro 'BITBAND_PERI'
   51 | #define BITBAND_PERI(x, b) (*((__IO uint8_t *) (PERIPH_BB_BASE + (((uint32_t)(volatile const uint32_t *)&(x)) - PERIPH_BASE)*32 + (b)*4)))
      |                                                                                                                                    ^
../Src/driver.c:589:5: note: in expansion of macro 'DIGITAL_OUT'
  589 |     DIGITAL_OUT(X_ENABLE_PORT, X_ENABLE_PIN, enable.x);
      |     ^~~~~~~~~~~
In file included from ../Src/flash.c:28:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
arm-none-eabi-gcc "../Src/main.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/main.d" -MT"Src/main.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/main.o"
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
arm-none-eabi-gcc "../Src/neopixel_gpo.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/neopixel_gpo.d" -MT"Src/neopixel_gpo.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/neopixel_gpo.o"
../Src/driver.c:593:17: error: 'Y_ENABLE_PORT' undeclared (first use in this function)
  593 |     DIGITAL_OUT(Y_ENABLE_PORT, Y_ENABLE_PIN, enable.y);
      |                 ^~~~~~~~~~~~~
../Inc/driver.h:51:107: note: in definition of macro 'BITBAND_PERI'
   51 | #define BITBAND_PERI(x, b) (*((__IO uint8_t *) (PERIPH_BB_BASE + (((uint32_t)(volatile const uint32_t *)&(x)) - PERIPH_BASE)*32 + (b)*4)))
      |                                                                                                           ^
../Src/driver.c:593:5: note: in expansion of macro 'DIGITAL_OUT'
  593 |     DIGITAL_OUT(Y_ENABLE_PORT, Y_ENABLE_PIN, enable.y);
      |     ^~~~~~~~~~~
../Src/driver.c:593:32: error: 'Y_ENABLE_PIN' undeclared (first use in this function)
  593 |     DIGITAL_OUT(Y_ENABLE_PORT, Y_ENABLE_PIN, enable.y);
      |                                ^~~~~~~~~~~~
../Inc/driver.h:51:132: note: in definition of macro 'BITBAND_PERI'
   51 | #define BITBAND_PERI(x, b) (*((__IO uint8_t *) (PERIPH_BB_BASE + (((uint32_t)(volatile const uint32_t *)&(x)) - PERIPH_BASE)*32 + (b)*4)))
      |                                                                                                                                    ^
../Src/driver.c:593:5: note: in expansion of macro 'DIGITAL_OUT'
  593 |     DIGITAL_OUT(Y_ENABLE_PORT, Y_ENABLE_PIN, enable.y);
      |     ^~~~~~~~~~~
arm-none-eabi-gcc "../Src/neopixel_spi.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/neopixel_spi.d" -MT"Src/neopixel_spi.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/neopixel_spi.o"
arm-none-eabi-gcc "../Src/pwm.c" -mcpu=cortex-m4 -std=gnu11 -DUSE_HAL_DRIVER -DSTM32F407xx -DHSE_VALUE=8000000 -D_VOLUMES=1 -D_USE_IOCTL=1 -D_USE_WRITE=1 -c -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs" -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../USB_DEVICE/App -I../USB_DEVICE/Target -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/lwip/src/include" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/networking/wiznet" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/FatFs/STM" -I"C:/Users/ltd/Documents/STM32/GRBL Driver STM32F401/Drivers/FATFS/Target" -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Src/pwm.d" -MT"Src/pwm.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/pwm.o"
../Src/driver.c:597:17: error: 'Z_ENABLE_PORT' undeclared (first use in this function)
  597 |     DIGITAL_OUT(Z_ENABLE_PORT, Z_ENABLE_PIN, enable.z);
      |                 ^~~~~~~~~~~~~
../Inc/driver.h:51:107: note: in definition of macro 'BITBAND_PERI'
   51 | #define BITBAND_PERI(x, b) (*((__IO uint8_t *) (PERIPH_BB_BASE + (((uint32_t)(volatile const uint32_t *)&(x)) - PERIPH_BASE)*32 + (b)*4)))
      |                                                                                                           ^
../Src/driver.c:597:5: note: in expansion of macro 'DIGITAL_OUT'
  597 |     DIGITAL_OUT(Z_ENABLE_PORT, Z_ENABLE_PIN, enable.z);
      |     ^~~~~~~~~~~
../Src/driver.c:597:32: error: 'Z_ENABLE_PIN' undeclared (first use in this function)
  597 |     DIGITAL_OUT(Z_ENABLE_PORT, Z_ENABLE_PIN, enable.z);
      |                                ^~~~~~~~~~~~
../Inc/driver.h:51:132: note: in definition of macro 'BITBAND_PERI'
   51 | #define BITBAND_PERI(x, b) (*((__IO uint8_t *) (PERIPH_BB_BASE + (((uint32_t)(volatile const uint32_t *)&(x)) - PERIPH_BASE)*32 + (b)*4)))
      |                                                                                                                                    ^
../Src/driver.c:597:5: note: in expansion of macro 'DIGITAL_OUT'
  597 |     DIGITAL_OUT(Z_ENABLE_PORT, Z_ENABLE_PIN, enable.z);
      |     ^~~~~~~~~~~
../Src/driver.c: In function 'systemGetState':
../Src/driver.c:1314:40: error: 'CONTROL_INMODE' undeclared (first use in this function); did you mean 'CONTROL_MASK'?
 1314 |     signals.value &= ~(CONTROL_MASK >> CONTROL_INMODE);
      |                                        ^~~~~~~~~~~~~~
      |                                        CONTROL_MASK
../Src/driver.c:1315:34: error: 'CONTROL_PORT' undeclared (first use in this function); did you mean 'CONTROL_Type'?
 1315 |     signals.value |= (uint16_t)((CONTROL_PORT->IDR & CONTROL_MASK) >> CONTROL_INMODE);
      |                                  ^~~~~~~~~~~~
      |                                  CONTROL_Type
../Src/driver.c: In function 'coolantSetState':
../Src/driver.c:1604:17: error: 'COOLANT_FLOOD_PORT' undeclared (first use in this function)
 1604 |     DIGITAL_OUT(COOLANT_FLOOD_PORT, COOLANT_FLOOD_PIN, mode.flood);
      |                 ^~~~~~~~~~~~~~~~~~
../Inc/driver.h:51:107: note: in definition of macro 'BITBAND_PERI'
   51 | #define BITBAND_PERI(x, b) (*((__IO uint8_t *) (PERIPH_BB_BASE + (((uint32_t)(volatile const uint32_t *)&(x)) - PERIPH_BASE)*32 + (b)*4)))
      |                                                                                                           ^
../Src/driver.c:1604:5: note: in expansion of macro 'DIGITAL_OUT'
 1604 |     DIGITAL_OUT(COOLANT_FLOOD_PORT, COOLANT_FLOOD_PIN, mode.flood);
      |     ^~~~~~~~~~~
../Src/driver.c:1604:37: error: 'COOLANT_FLOOD_PIN' undeclared (first use in this function)
 1604 |     DIGITAL_OUT(COOLANT_FLOOD_PORT, COOLANT_FLOOD_PIN, mode.flood);
      |                                     ^~~~~~~~~~~~~~~~~
../Inc/driver.h:51:132: note: in definition of macro 'BITBAND_PERI'
   51 | #define BITBAND_PERI(x, b) (*((__IO uint8_t *) (PERIPH_BB_BASE + (((uint32_t)(volatile const uint32_t *)&(x)) - PERIPH_BASE)*32 + (b)*4)))
      |                                                                                                                                    ^
../Src/driver.c:1604:5: note: in expansion of macro 'DIGITAL_OUT'
 1604 |     DIGITAL_OUT(COOLANT_FLOOD_PORT, COOLANT_FLOOD_PIN, mode.flood);
      |     ^~~~~~~~~~~
../Src/driver.c: In function 'coolantGetState':
../Src/driver.c:1615:30: error: 'COOLANT_FLOOD_PORT' undeclared (first use in this function)
 1615 |     state.flood = DIGITAL_IN(COOLANT_FLOOD_PORT, COOLANT_FLOOD_PIN);
      |                              ^~~~~~~~~~~~~~~~~~
../Inc/driver.h:51:107: note: in definition of macro 'BITBAND_PERI'
   51 | #define BITBAND_PERI(x, b) (*((__IO uint8_t *) (PERIPH_BB_BASE + (((uint32_t)(volatile const uint32_t *)&(x)) - PERIPH_BASE)*32 + (b)*4)))
      |                                                                                                           ^
../Src/driver.c:1615:19: note: in expansion of macro 'DIGITAL_IN'
 1615 |     state.flood = DIGITAL_IN(COOLANT_FLOOD_PORT, COOLANT_FLOOD_PIN);
      |                   ^~~~~~~~~~
In file included from ../Inc/i2c.h:25,
                 from ../Src/i2c.c:24:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../Src/ioports.c:22:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../Src/main.c:26:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../Src/ioports_analog.c:22:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../Src/neopixel_gpo.c:24:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Src/driver.c:1615:50: error: 'COOLANT_FLOOD_PIN' undeclared (first use in this function)
 1615 |     state.flood = DIGITAL_IN(COOLANT_FLOOD_PORT, COOLANT_FLOOD_PIN);
      |                                                  ^~~~~~~~~~~~~~~~~
../Inc/driver.h:51:132: note: in definition of macro 'BITBAND_PERI'
   51 | #define BITBAND_PERI(x, b) (*((__IO uint8_t *) (PERIPH_BB_BASE + (((uint32_t)(volatile const uint32_t *)&(x)) - PERIPH_BASE)*32 + (b)*4)))
      |                                                                                                                                    ^
../Src/driver.c:1615:19: note: in expansion of macro 'DIGITAL_IN'
 1615 |     state.flood = DIGITAL_IN(COOLANT_FLOOD_PORT, COOLANT_FLOOD_PIN);
      |                   ^~~~~~~~~~
make: *** [Src/subdir.mk:88: Src/driver.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from ../Src/neopixel_spi.c:25:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
In file included from ../Src/pwm.c:23:
../Inc/driver.h:177:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  177 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
../Inc/driver.h:183:2: warning: #warning "Selected spindle is not fully supported - no direction output!" [-Wcpp]
  183 | #warning "Selected spindle is not fully supported - no direction output!"
      |  ^~~~~~~
../Inc/driver.h:189:2: warning: #warning "Selected spindle is not supported!" [-Wcpp]
  189 | #warning "Selected spindle is not supported!"
      |  ^~~~~~~
"make -j8 all" terminated with exit code 2. Build might be incomplete.

@terjeio
Copy link
Contributor Author

terjeio commented Jul 19, 2024

For the spindle error unccoment this line and change it to #define SPINDLE0_ENABLE SPINDLE_NONE

For the other errors either add the missing pin definitions or remove code in driver.c until compilation succeds.

@datdadev
Copy link

Alright, instead of removing the code, I have commented out all out the pin definitions, and now I just left with this error that I don't know how to fix:

18:53:57 **** Incremental Build of configuration Release F407 8MHz for project GRBL Driver STM32F401 ****
make -j8 all 
arm-none-eabi-gcc -o "grblHAL F407 8MHz.elf" @"objects.list"   -mcpu=cortex-m4 -T"C:\Users\ltd\Documents\STM32\GRBL Driver STM32F401\STM32F407VGTX_FLASH.ld" --specs=nosys.specs -Wl,-Map="grblHAL F407 8MHz.map" -Wl,--gc-sections -static --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -u _printf_float -u _scanf_float -Wl,--start-group -lc -lm -Wl,--end-group
C:/ST/STM32CubeIDE_1.15.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: grblHAL F407 8MHz.elf has a LOAD segment with RWX permissions
C:/ST/STM32CubeIDE_1.15.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Src/driver.o: in function `driver_init':
driver.c:(.text.driver_init+0x3a4): undefined reference to `board_init'
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:110: grblHAL F407 8MHz.elf] Error 1
"make -j8 all" terminated with exit code 2. Build might be incomplete.

18:53:59 Build Failed. 2 errors, 1 warnings. (took 1s.710ms)

@terjeio
Copy link
Contributor Author

terjeio commented Jul 19, 2024

Uncomment this line in your map file

#define HAS_BOARD_INIT

@datdadev
Copy link

Uncomment this line in your map file

You meant comment the line, I did and built successfully.
However, the board still can't connect with the laptop via USART:

image

@terjeio
Copy link
Contributor Author

terjeio commented Jul 19, 2024

Check that the correct code is active, e.g. here (driver.c):

image

and here (serial.c):

image

The code that is on a grey background is not used.

If you hover over a symbol such as SERIAL_PORT above you can see the value. Is it correct (2)?

FYI it is sometimes neccesary to rebuild the index to get it working correctly, right click on the project and select Index > Rebuild from the popup menu to do that.

I assume you are using a UART <> USB breakout board (or onboard chip) for communicating. Is that correctly wired?
Can you scope the TX pin? Any output on that?
If you connect with a terminal such as putty and then reset the board do you get any output in the terminal?
If you are programming the board via a ST-link then set breakpoints to check that the code is reached. E.g. in serialPutC() and the related interrupt handler (UART0_IRQHandler). Reset the board via the debugger when doing so - the startup message is output when initialization is complete.

@datdadev
Copy link

Yes, I have checked them all:

image

image

When I scope the TX pin, it stays HIGH all the time (from the beginning after I reset the board).

I am unsure if the issue arises from using a different chip, specifically the STM32F407VET6 instead of the STM32F407VGT6. After building and compiling the code, it does not work as expected. Could this discrepancy be the source of the problem?

@datdadev
Copy link

For the debugging, I toggled the breakpoints here as you said:

image

image

And it did not meet any breakpoints and ended up in this line:

image

@terjeio
Copy link
Contributor Author

terjeio commented Jul 19, 2024

Ok, then something goes badly wrong during startup.
Set breakpoints in driver.c to figure out where/what. Start with driver_init(), is it entered and does it complete? If so then check driver_setup()...

@datdadev
Copy link

datdadev commented Jul 19, 2024

Alright, found this in grbllib.c, when I step into this function, it brings me to the HardFault_Handler function:

image

@terjeio
Copy link
Contributor Author

terjeio commented Jul 19, 2024

Then either is hal.coolant.set_state is null or coolantSetState() (which hal.coolant.set_state points to) in driver.c fails.

@datdadev
Copy link

I believe I just need to comment out that section since I am not using the coolant feature. However, I encountered another issue. The execution gets stuck at the following line and cannot proceed past this statement:

image

Additionally, I would like to ask for more guidance. If I continue debugging like this, I am unsure where to start and stop. Specifically, where does the code loop in the GRBL command send and receive streaming mode?

@terjeio
Copy link
Contributor Author

terjeio commented Jul 19, 2024

Specifically, where does the code loop in the GRBL command send and receive streaming mode?

Inside protocol_main_loop(), this function only returns on a soft reset (CTRL-X received or the grblHAL reset input asserted).

@datdadev
Copy link

After redefining the coolant pins and uncommenting the related code, I was able to successfully run and connect the STM32F407VGT6 (test board). However, I am unable to achieve the same result with the STM32F407VET6 (current project-running board).

The primary difference between these two chips is the flash memory size: the "G" variant has 1024 KBytes, while the "E" variant has 512 KBytes. How can I easily port the project from the "G" variant to the "E" variant?

@datdadev
Copy link

In the STM32F407VETX_FLASH.ld file auto-generated by the IDE, the memory configuration includes:

  • 512KBytes FLASH
  • 64KBytes CCMRAM
  • 128KBytes RAM

I modified the memory section of the VGT6 ld file as follows:

MEMORY
{
  CCMRAM    (xrw)    : ORIGIN = 0x10000000,   LENGTH = 64K
  RAM       (xrw)    : ORIGIN = 0x20000000,   LENGTH = 128K
  BOOT_FLASH(rx)     : ORIGIN = 0x08000000,   LENGTH = 16K
  EEPROM_EMUL(xrw)   : ORIGIN = 0x08004000,   LENGTH = 16K
  FLASH     (rx)     : ORIGIN = 0x08008000,   LENGTH = 512K - 16K - 16K
}

Additionally, I added the following section for CCMRAM:

_siccmram = LOADADDR(.ccmram);

/* CCM-RAM section
 *
 * IMPORTANT NOTE!
 * If initialized variables are placed in this section,
 * the startup code needs to be modified to copy the init-values.
 */
.ccmram :
{
  . = ALIGN(4);
  _sccmram = .;       /* create a global symbol at ccmram start */
  *(.ccmram)
  *(.ccmram*)

  . = ALIGN(4);
  _eccmram = .;       /* create a global symbol at ccmram end */
} >CCMRAM AT> FLASH

After building and uploading it, seemed like not working. Am I do it correctly?

@datdadev
Copy link

Although I can connect to the board and it works pretty well, however, I don't know if I should re-map the memory?

@terjeio
Copy link
Contributor Author

terjeio commented Jul 21, 2024

I don't know if I should re-map the memory?

If it is working now then you do not need to. This since nothing is stored at the higher end of the flash.

@datdadev
Copy link

I think this is a good startup for the setup process.
Thank you for helping me @terjeio. Guess that we can close this issue now.

@terjeio terjeio closed this as completed Jul 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants