Additional documentation can be found at the Marlin Home Page. Please let us know if Marlin misbehaves in any way. Volunteers are standing by!
ALL CREDITS GO TO THE MARLIM TEAM
Marlin 2.0 takes this popular RepRap firmware to the next level by adding support for much faster 32-bit and ARM-based boards while improving support for 8-bit AVR boards. Read about Marlin's decision to use a "Hardware Abstraction Layer" below.
Download earlier versions of Marlin on the Releases page.
Marlin is built for 3D printers. But frankly, it's just a very advanced version of what GRBL should have been. So, instead of attempting to get VFD spindles (and CNC routers) to work in GRBL, I decided to use Marlin instead.
As for a client, CNCJS will do the trick.
This fork contains code for CNC spindles driven by a VFD through an RS485 protocol. I'm using a P2 converter of Huanyang, using a non-std modbus. For more background on how this works, see the protocol specs and R&D, which have been tested already in a small arduino application (and is working).
Note that P2 VFD's have a different protocol than other Huanyang VFD's. However, it is pretty easy to use different protocol commands, because the basic structure is more or less the same. The commands for other VFD's can be found here.
Why modbus/RS485? Well, if you want 10.000 RPM, you don't want 9000 RPM or 8000 RPM. A digital protocol is much more stable and robust for sending digital data. Second, feedback. If you set your spindle to 10.000 RPM, it will take some time to get to that speed. You want to start routing once (and NOT BEFORE) it reaches that speed. And third, if you start up your system, you want to know the parameters before you start messing around with them. And last, if you plumb your drill bit into your piece, you want to make sure that your spindle is running, which can be queried here. RS485 capabilities give you all that, along with all the options to configure your device. It's by far the best option to communicate with serious spindles.
The API interface itself that going to use is pretty much the same as the Spindle_laser code. In other words, I attempted to retain as much of the original API as possible.
Current status: tested & working.
To build Marlin 2.0 you'll need Arduino IDE 1.8.8 or newer or PlatformIO. Detailed build and install instructions are posted at:
Platform | MCU | Example Boards |
---|---|---|
Arduino AVR | ATmega | RAMPS, Melzi, RAMBo |
Teensy++ 2.0 | AT90USB1286 | Printrboard |
Arduino Due | SAM3X8E | RAMPS-FD, RADDS, RAMPS4DUE |
LPC1768 | ARM® Cortex-M3 | MKS SBASE, Re-ARM, Selena Compact |
LPC1769 | ARM® Cortex-M3 | Smoothieboard, Azteeg X5 mini, TH3D EZBoard |
STM32F103 | ARM® Cortex-M3 | Malyan M200, GTM32 Pro, MKS Robin, BTT SKR Mini |
STM32F401 | ARM® Cortex-M4 | ARMED, Rumba32, SKR Pro, Lerdge, FYSETC S6 |
STM32F7x6 | ARM® Cortex-M7 | The Borg, RemRam V1 |
SAMD51P20A | ARM® Cortex-M4 | Adafruit Grand Central M4 |
Teensy 3.5 | ARM® Cortex-M4 | |
Teensy 3.6 | ARM® Cortex-M4 |
- Submit Bug Fixes as Pull Requests to the (bugfix-2.0.x) branch.
- Follow the Coding Standards to gain points with the maintainers.
- Please submit your questions and concerns to the Issue Queue.
For best results getting help with configuration and troubleshooting, please use the following resources:
- Marlin Documentation - Official Marlin documentation
- Marlin Discord - Discuss issues with Marlin users and developers
- Facebook Group "Marlin Firmware"
- RepRap.org Marlin Forum
- Tom's 3D Forums
- Facebook Group "Marlin Firmware for 3D Printers"
- Marlin Configuration on YouTube
The current Marlin dev team consists of:
- Scott Lahteine [@thinkyhead] - USA Donate / Flattr:
- Roxanne Neufeld [@Roxy-3D] - USA
- Chris Pepper [@p3p] - UK
- Bob Kuhn [@Bob-the-Kuhn] - USA
- João Brazio [@jbrazio] - Portugal
- Erik van der Zalm [@ErikZalm] - Netherlands
Marlin is published under the GPL license because we believe in open development. The GPL comes with both rights and obligations. Whether you use Marlin firmware as the driver for your open or closed-source product, you must keep Marlin open, and you must provide your compatible Marlin source code to end users upon request. The most straightforward way to comply with the Marlin license is to make a fork of Marlin on Github, perform your modifications, and direct users to your modified fork.
While we can't prevent the use of this code in products (3D printers, CNC, etc.) that are closed source or crippled by a patent, we would prefer that you choose another firmware or, better yet, make your own.