A port of Smoothieware V1 for the STM32F4 family of microcontrollers
Pull request Compare This branch is 134 commits ahead, 2 commits behind mattthebaker:edge.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
ConfigSamples
FirmwareBin
bootloader
build
mbed
mri
src
.gdbinit
.gitignore
.travis.yml
CODE_OF_CONDUCT.md
COPYING
ISSUE_TEMPLATE.md
PULL_REQUEST_TEMPLATE.md
README.creole
Rakefile
checksum.pl
fast-stream.py
linux_install
mac_install
makefile
rakefile.defaults.example
smoothie-stream.py
smoothie-upload.py
smoothieware.inf
travis_install
upgrade-notes.md
win_install.cmd

README.creole

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

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, tested
  • stm32f4xx libs - Added, compiles, tested
  • timers - Ported, compiles, tested
  • wdt - Ported, compiles, tested
  • gpio - Ported, compiles, tested
  • adc - Ported, compiles, tested
  • pwm - Ported, compiles, tested
  • build scripts - Added, project builds successfully

CHMT Status:

  • config file - Rough file for testing in nucleo-144 branch
  • pin map - Not Started
  • operation/verfication - Not Started
  • machine testing - Not Started

TODO:

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

Notes/Caveats/Gotchas:

  • 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
  • MRI (gdb over serial) is not supported on stm32, use SWD/JTAG
  • config file must be hardcoded into firmware build

Next Steps/Priority

  • CHMT Pinout Reversing
  • CHMT Config File Development
  • CHMT Machine Testing

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: 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... 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