All Projects → colinrgodsey → step-daemon

colinrgodsey / step-daemon

Licence: GPL-3.0 license
stepd - External planner and stepper for 3d printing

Programming Languages

go
31211 projects - #10 most used programming language
scala
5932 projects
python
139335 projects - #7 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
Less
1899 projects
CSS
56736 projects

Projects that are alternatives of or similar to step-daemon

Pycnc
Python CNC machine controller for Raspberry Pi and other ARM Linux boards
Stars: ✭ 390 (+358.82%)
Mutual labels:  cnc, 3d-printing
adventures-in-motion-control
A realistic simulator for a 3D printer motion controller
Stars: ✭ 31 (-63.53%)
Mutual labels:  cnc, 3d-printing
G2
g2core - The Next Generation
Stars: ✭ 437 (+414.12%)
Mutual labels:  cnc, 3d-printing
rapcores
Robotic Application Processor
Stars: ✭ 14 (-83.53%)
Mutual labels:  cnc, 3d-printing
Qtquickvcp
A Virtual Control Panel for Machinekit written in Qt/C++/QML
Stars: ✭ 104 (+22.35%)
Mutual labels:  cnc, 3d-printing
ldraw2stl
Convert LEGO LDraw files into STL
Stars: ✭ 76 (-10.59%)
Mutual labels:  3d-printing
Alice-like Handwired
A 3D-printable handwired Alice-like mechanical keyboard
Stars: ✭ 120 (+41.18%)
Mutual labels:  3d-printing
OctoPrint-Smuff
OctoPrint Plugin for SMuFF
Stars: ✭ 17 (-80%)
Mutual labels:  3d-printing
PrusaS3DProfiles
My Simplify 3D Profiles for Prusa MK2(s)/MK3
Stars: ✭ 63 (-25.88%)
Mutual labels:  3d-printing
vectorexpress-api
Vector Express is a free service and API for converting, analyzing and processing vector files.
Stars: ✭ 66 (-22.35%)
Mutual labels:  cnc
vscode-gcode-syntax
G Code Language Extension for Visual Studio Code. Turn VSCode into a fully capable G-Code editor, including language support & more.
Stars: ✭ 59 (-30.59%)
Mutual labels:  cnc
Cetus
Full-featured user interface for Machinekit
Stars: ✭ 33 (-61.18%)
Mutual labels:  cnc
GERBER X3
Program for preparing G-code for milling of printed circuit boards on CNC. You can use it as a converter to a PDF file.
Stars: ✭ 150 (+76.47%)
Mutual labels:  cnc
PrntrBoardV2
32-bit 3D Printer controller board using STM32F407 and replaceable TMC2660/2209 stepper drivers.
Stars: ✭ 31 (-63.53%)
Mutual labels:  3d-printing
OpenSCAD connectors
Simple, parametric APIs for connectors such as corner brackets and t-joints. Specializing on connectors for aluminum extrusion connectors.
Stars: ✭ 29 (-65.88%)
Mutual labels:  3d-printing
G-Code-Arduino-Library
Allows any machines and robots to be controlled by G-Code
Stars: ✭ 44 (-48.24%)
Mutual labels:  cnc
fem mesh matlab
MATLAB Toolbox for Handling 2D and 3D FEM Meshes
Stars: ✭ 23 (-72.94%)
Mutual labels:  3d-printing
HelicalGearPlus
Generates straight, helical and herringbone external, internal and rack gears as well as non-enveloping worms and worm gears
Stars: ✭ 55 (-35.29%)
Mutual labels:  3d-printing
q-pack
Open source version of the proton pack from the Ghostbusters movies
Stars: ✭ 78 (-8.24%)
Mutual labels:  3d-printing
xcsg
XML based Constructive Solid Geometry based on carve
Stars: ✭ 24 (-71.76%)
Mutual labels:  3d-printing

Build Status

Step Daemon

Step Daemon (stepd) is an external planner for 3d printers that utilizes Marlin compatible firmware to allow direct step processing by an external computer and enables the use of complex pre-processing. By offloading the planning we are able to optimize the G-code pipeline so that you can reach maximum speed, with advanced features, on even the most complex shapes, without stutter or slowdowns. All this can be achieved with three simple pieces of hardware you probably already have: a Marlin compatible control board, a Raspberry Pi, and a USB cable.

Step Daemon utilizes mostly 64-bit double precision linear algebra and vector math from top to bottom, with some 32-bit single precision floating point used in hot spots where precision can be leveraged safely.

  • Low RAM: less than 64mb.
  • Low CPU: runs at about 5% total CPU on a Raspberry Pi 3.
  • Multithreaded pipeline.
  • Bicubic bed leveling with per-step accuracy (vs per-line).
  • OctoPrint compatible.
  • Developed alongside the direct stepper chunk support for Marlin.
  • Works with Linux (including RPi and other ARM machines), MacOS, and Windows.

Dependencies

  • Go (1.11+) must be installed from a system package or manually.

Marlin Configuration

  • Update with current compatible branch.
  • Only XYZ cartesian builds currently supported (no core or delta support yet).
  • Baud rate of 250kbps or 500kbps suggested for 16MHz devices.
  • Enable DIRECT_STEPPING and ADVANCED_OK.
  • Disable LIN_ADVANCE if enabled.
  • (Optional) Enable AUTO_BED_LEVELING_BILINEAR for bed leveling
    • Bilinear is the only supported mode currently.
    • Must be at least 3x3 sample points.
    • MM mode supported only (no inch mode yet).
    • Bed leveling results are retained locally as bedlevel.json.

Configuration

  • Copy example config from config.conf.example to config.conf.
  • Modify config settings as needed. Units are in mm.
  • Baud rate should match value configured in Marlin.
  • Page format should match the format configured in Marlin (defaults to SP_4x2_256).

Usage

  • Pipe a gcode file directly to the server:
cat print.gcode | go run ./cmd/stepd -device /dev/ttyUSB0 -baud 500000 -config ./config.hjson | grep -v "ok"
  • Or use the Step Daemon OctoPrint plugin. Plugin can be installed from this URL:
https://raw.githubusercontent.com/colinrgodsey/maven/master/step-daemon/octoprint-plugin/latest.zip
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].