Modular, opensource, high performance G-code interpreter and CNC controller written in Object-Oriented C++
Pull request Compare This branch is 2 commits ahead, 1 commit behind Smoothieware:edge.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Current build status:

STM32/CHMT Notes

To build, follow normal smoothie build process to get setup. Then checkout chmt branch and rebuild.

Port Status:

  • mbed hooks - Added, compiles, untested
  • stm32f4xx libs - Added, compiles, untested
  • timers - Ported, compiles, untested (clock freq calc is most likely wrong)
  • wdt - Ported, compiles, untested
  • gpio - Ported, compiles, untested
  • adc - Not Started
  • build scripts - Added, project builds successfully

CHMT Status:

  • config file - Not Started
  • pin map - Not Started
  • operation/verfication - Not Started
  • machine testing - Not Started


  • Target initialization and board bringup (clocks, mpu, etc)
  • Verification of ported peripherals (step generation, watchdog, gpios)
  • Debug/Comm uart setup
  • CHMT controller specific configuration


  • ADC not yet ported
  • smoothie mbed was ancient, so the oldest stm32 mbed available was integrated to reduce friction -- incompatibilities, and bugs from dated mbed may have been introduced
  • mbed had some mpu code that may or may not work with stm32
  • MRI (gdb over serial) is not supported on stm32, use SWD/JTAG

Next Steps/Priority

Board Bringup: Load firmware onto a dev board and start walking through device init, fixing issues.



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 :

NOTE it is not necessary to build Smoothie yourself unless you want to. prebuilt binaries are available here: Nightly builds and 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...

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


Please take a look at : 

Contributions very welcome !


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


Smoothieware is released under the GNU GPL v3, which you can find at