Schildkroet / GRBL-Advanced

Grbl-Advanced is a no-compromise, high performance, low cost alternative for CNC milling. This version of Grbl runs on a STM32F411RE / STM32F446RE Nucleo Board. Now with backlash compensation, multi-axis and Tool Table support!
GNU General Public License v3.0
286 stars 84 forks source link

Porting to the STM32F3 #12

Closed hubmartin closed 5 years ago

hubmartin commented 5 years ago

Hello and thanks for this STM32F4 port.

I have a few Nucleo boards but none of them with F4. I tested the code on F4 Discovery and it works fine with a few wires :) https://twitter.com/hubmartin/status/1082408826874327041

My plan is to port your code to Nucleo with STM32F303. I will use STM HAL library. I'd like to ask if you would be interested in pulling my fork later to your branch or if I should not bother with compatibility and create a separate repo for it?

If you think this is a good idea, It would would be great if you give me some hints how to switch in the build between the platforms - if it is good idea to put #ifdefs to the code or choose the right "grbl HAL" in the Makefile.

Thanks Martin

hubmartin commented 5 years ago

Hi, I've managed to get it running but it is far from complete. I've managed to edit the Makefile a little and kept the old files. I've added HAL_F3 and SPL_F3 folders for my port. https://github.com/hubmartin/GRBL-Advanced/blob/software/Makefile#L26

I've changed my mind and ditched the STM HAL library and used Standard Peripheral Library.

https://twitter.com/hubmartin/status/1082775023356706816 Any suggestions how to edit Makefile are welcome, I do not uderstand Makefiles a lot. Thanks. Martin

Schildkroet commented 5 years ago

Hello, i guess it would be best, if you just make your own fork. This version of grbl was designed for an atmega328 and it was never intended for multi platform use. Therefore it isn't really suited for multi platform use and trying to make it support different platforms would mess up the code with many ifdefs etc. which i don't like. (Also i have no F3 to test any changes) It wouldn't be too hard to reorganize the project structure for multi platform support, but this version of grbl is basically dead and chamnit is about to release a new ARM version intended for this purpose.

What exactly do you need to know about the makefile?