/Smoothieware-STM32F4

A port of Smoothieware V1 for the STM32F4 family of microcontrollers

Primary LanguageC++GNU General Public License v3.0GPL-3.0

This is a port of Smoothieware V1 for the STM32F4 series of processors. This code is based on the great work from Matt Baker, who started the port.

Matt's original work can me located here: https://github.com/mattthebaker/Smoothieware-CHMT

I'm testing this port on a Rigidbot 3D printer. With hardware of my design: https://github.com/ghent360/PrntrBoard

Port Status:

  • build tested on STMF407VE, STM32F446RE and the original LPC1768 target
  • basic functionality tested on F446 NUCLEO-64 board
  • thermistors and temperature control work
  • SPI works
  • TMC2130 drivers work and printer can move
  • homing works
  • SPI based LCD interface work

Notes/Caveats/Gotchas:

  • I have not tested LPC1768 code, it compiles
  • MRI (gdb over serial) is not supported on stm32, use SWD/JTAG
  • config file must be hardcoded into firmware build
  • not supported on STM32: sd-card, USB, Network
  • there are some stability issues - sometimes the printer just hangs

Smoothie

Overview

Smoothie is a free, opensource, high performance G-code interpreter and CNC controller written in Object-Oriented C++ for the LPC17xx micro-controller ( ARM Cortex M3 architecture ). It will run on a mBed, a LPCXpresso, a SmoothieBoard, R2C2 or any other LPC17xx-based board. The motion control part is a port of the awesome grbl.

Documentation can be found here : http://smoothieware.org/

NOTE it is not necessary to build Smoothie yourself unless you want to. prebuilt binaries are available here: recent stable build

Quick Start

These are the quick steps to get Smoothie dependencies installed on your computer:

  • Pull down a clone of the Smoothie github project to your local machine.
  • In the root subdirectory of the cloned Smoothie project, there are install scripts for the supported platforms. Run the install script appropriate for your platform:
    • Windows: win_install.cmd
    • OS X: mac_install
    • Linux: linux_install
  • You can then run the BuildShell script which will be created during the install to properly configure the PATH environment variable to point to the required version of GCC for ARM which was just installed on your machine. You may want to edit this script to further customize your development environment.

Building Smoothie

Follow this guide... http://smoothieware.org/compiling-smoothie

In short... From a shell, switch into the root Smoothie project directory and run:

make clean
make all

To upload you can do

make upload

if you have dfu-util installed.

Alternatively copy the file LPC1768/main.bin to the sdcard calling it firmware.bin and reset.

Filing issues (for bugs ONLY)

Please follow this guide https://github.com/Smoothieware/Smoothieware/blob/edge/ISSUE_TEMPLATE.md

Contributing

Please take a look at : 

Contributions very welcome !

Donate

The Smoothie firmware is free software developed by volunteers. If you find this software useful, want to say thanks and encourage development, please consider a Donation

License

Smoothieware is released under the GNU GPL v3, which you can find at http://www.gnu.org/licenses/gpl-3.0.en.html