• This repository has been archived on 19/Oct/2021
  • Stars
    star
    158
  • Rank 237,131 (Top 5 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created over 9 years ago
  • Updated about 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

CNC firmware for many different control boards and kinematic systems. Originally the brain of the Makelangelo art robot.

Please note

This project is only here for historical reasons. All features for Makelangelo-firmware are now better supported by Marlin-2.0.x or later. For more information please visit the Discord channel at https://discord.gg/Q5TZFmB

Makelangelo-firmware

CNC firmware for many different control boards and kinematic systems.

CNCs are computer controlled machines like mills, lathes, robot arms, and more.

Firmware is the code that lives in the CPU of each robot. The CPU is the brain, the firmware is the lesson taught to the machine.

Control boards are the PCB that surrounds each CPU. Think of it as the nervous system. This firmware has been written for several kinds of control boards from different manufacturers. Please feel free to make a pull request with your favorite flavor.

Kinematic systems is more complicated. All the different types of robots supported eventually boil down to a few motors moving in concert. These moving motors can be rearranged physically to make different shapes. The firmware only knows the state of each motor. BUT there is some room in some brains to add more. More powerful brains can run Forward Kinematics and even Inverse Kinematics with Gradient Descent.

The two leading alternatives right now are GRBL and Marlin. GRBL is made for three axis spingle type cutting CNC machines. Marlin is made for multi-axis 3D printing. Makelangelo-firmware was initially developped by Marginally Clever Robots, Ltd. to address the need for a multi-axis stepper driven system that was neither of these - Plotters, robot arms, stewart platforms, and more. Things without a spindle or hot bits.

This firmware fully or partially supports many kinematic models. It was originally written for the http://www.makelangelo.com/ Makelangelo art robot, a 3 motor polargraph art machine. It has since expanded to suport more types. Please feel free to make a pull request with your favorite flavor.

It pairs really well with Makelangelo Software, a project to give humans a pleasant GUI.

Installation and Usage

Please see the pictoral guide at https://mcr.dozuki.com/Guide/How+to+update+Makelangelo+firmware/4?lang=en

Kinematics aka Shapes

Makelangelo-firmware can be recompiled to work as one of many different types of CNC:

#define POLARGRAPH       1  // Polargraph: wall hanging V shape like Makelangelo
#define TRADITIONALXY    3  // Traditional: classic XYZ gantry
#define COREXY           2  // CoreXY: gantry with cross-belt tensioning
#define ZARPLOTTER       4  // Zarplotter:  4 motor, x-shaped 2D motion
#define SKYCAM           5  // Skycam: 4 motor, x-shaped 3D motion
#define DELTA            6  // Delta: 3 arm delta robot, rotary action.  untested.
#define STEWART_ROTARY   7  // Stewart platform: 6 arm stewart platform, rotary action.  untested.
#define ARM3             8  // Arm3: 3DOF palletizing robot arm.
#define SIXI             9  // Sixi: 6DOF robot arm.
#define TRADITIONAL6    10  // Traditional6: 6 axis machine, no restrictions.
#define SCARA           11  // SCARA: two link, two joint, 2D motion
#define SIXI3           12  // Sixi 3 robot arm.  5-6 DOF + Servo
#define STEWART_LINEAR  13  // Stewart platform: 6 arm stewart platform, linear action.

Controllers aka Brains

Makelangelo-firmware can be recompiled to work with one of many different types of Controllers.

#define BOARD_RUMBA        1  // Reprap discount Rumba board
#define BOARD_RAMPS        2  // Mega2560 + Ramps 1.4
#define BOARD_SANGUINOLULU 3  // Sanguinolulu
#define BOARD_TEENSYLU     4  // Teensylu
#define BOARD_WEMOS        5  // Wemos D1 R2 + CNC Shield v3 (see board_wemos.h)
#define BOARD_SIXI_MEGA    6  // Arduino Mega + custom shield for Sixi 2 robot
#define BOARD_CNCV3        7  // Mega2560 + CNC Shield v3
#define BOARD_ESP32        8  // ESP32 + Marginally Clever Polargraph PCB.

Not all brains can support all kinematics.

Version

Newer versions might be available at https://www.marginallyclever.com/product/makelangelo-firmware/

Note

Unless otherwise stated in the code, the default units of measurement are millimeters (mm), kilograms (kg), and seconds (s).

Dependencies

Makelangelo-firmware depends on a few other libraries. SPI, EEPROM, LiquidCrystal, and SdFat. The Adafruit SdFAT library will NOT work, use the Greiman edition.

Instructions

https://mcr.dozuki.com/Guide/How+to+update+Makelangelo+firmware/4?lang=en

For developers, please see https://github.com/MarginallyClever/Makelangelo/wiki/Home/ and https://github.com/MarginallyClever/Makelangelo-firmware/wiki

Get help

Please visit the forums at https://discord.gg/Q5TZFmB

Special thanks

Makelangelo is derived from the work of Paul Fisher. It is largely inspired by "Hektor":http://hektor.ch/ by Jürg Lehni and Uli Franke.

This file was downloaded from https://github.com/MarginallyClever/Makelangelo/

PlatformIO CI

More Repositories

1

Makelangelo-software

Software for plotters - especially the wall-hanging polargraph also called Makelangelo.
Java
345
star
2

GcodeCNCDemo

a simple example of making a CNC machine from an Adafruit Motor Shield
C++
210
star
3

Robot-Overlord-App

Simulation and control software for robots
Java
172
star
4

MDB-Sniffer

Sniff a Multidrop Bus data stream and make it human readable
C++
165
star
5

weaving_algorithm

weaving thread between nails in a circle to produce an image.
Processing
163
star
6

Rotary-Stewart-Platform-2-firmware

Firmware for the Rotary Stewart Platform 6-axis motion control system
C++
43
star
7

Delta-Robot

Hobby scale for teaching basic robot concepts
Arduino
37
star
8

sixi-2

Sixi 2 Robot Arm
nesC
34
star
9

Skycam

Moving a weight hung on four cables pulled by motors at the top corners of a box
C++
28
star
10

Delta-Robot-v3-firmware

Delta Robot v3
C++
25
star
11

sixi

Sixi Robot Arm
22
star
12

Arm3

A stepper powered, Arduino based 3DOF palletizing robot based on ABB460
Arduino
18
star
13

GcodeSender

Sends file commands to a serial connected device
Java
18
star
14

RotaryStewartPlatform

Controls for a Rotary Stewart Platform hobby servos
Arduino
17
star
15

ArduinoStarterKit

Sample code for our Arduino Starter Kit tutorials
C++
16
star
16

armTorqueCalculator

Calculating forces serial manipulators like robot arms
Processing
12
star
17

Hexapod-firmware

A simulator for a 6-legged crab robot
Java
10
star
18

NodeGraphCore

Core elements for Data flow programming
Java
9
star
19

chiuEtAl2015

Implementation of Chiu Et Al 2015, "Tone‐ and Feature‐Aware Circular Scribble Art"
Processing
8
star
20

ArduinoTimerInterrupt

Example of how to use the internal clock interrupt TIMER1.
Arduino
6
star
21

Camera-PanTilt

Firmware to move a camera pan/tilt system with very high precision and repeatability.
Arduino
5
star
22

Dial

Java Swing Dial UX
Java
5
star
23

makelangeloFirmwareAMS

firmware for makelangelo version <=2
C++
5
star
24

Neopixel_clock

a single line clock using Neopixel LED strips and an Arduino
Arduino
5
star
25

vnh5019_linear_actuator

How to control an electric linear actuator with an Arduino
Arduino
5
star
26

stewart-platform-animatronic

PCB design for animatronic stewart platform
C++
5
star
27

AS5147Test

testing AS5147 sensor
C++
4
star
28

DogML

Unity + machine learning + quadruped
Python
4
star
29

processingPhysics

Physics in Processing
Processing
4
star
30

sixi-joystick

Sixi 2 joystick firmware, STL, and PCB files
C++
4
star
31

zarplotter

simulations and tests of zarplotter style four-motor drawing robot
Processing
4
star
32

LED8x16tetris

an 8x16 WS2811 LED tetris game
Arduino
3
star
33

cycloidGenerator2

generates profiles for cycloid gearbox parts
Processing
3
star
34

micromouseSketches

Processing sketches related to micromouse maze solving robots.
Processing
3
star
35

open-source-servo

rotation sensor + stepper motor = servo!
Arduino
3
star
36

Donatello

Editor for Flow Based Programming
Java
3
star
37

Twitch-Jigsaw-Robot-Controller

Twitch finishes a jigsaw puzzle!
HTML
3
star
38

two-daisy-chained-shift-registers

how to daisy chain shift registers, with schematic diagram.
KiCad Layout
2
star
39

A4988tester

Example code to drive an A4988 stepper motor driver carrier
Arduino
2
star
40

one-shift-register

tutorial resources for connecting one shift register to an arduino
KiCad Layout
2
star
41

LED-grid-8x8

How to use an 8x8 LED grid
KiCad Layout
2
star
42

arduinoMorse

How to make an Arduino blink any message in Morse Code
Arduino
2
star
43

POVSpinner

Spinning LED persistence-of-vision tutorial
C++
2
star
44

PolargraphDifference

Visualizing the mathmatical errors in polargraph setups
Processing
2
star
45

beltMeasurementMachine

A machine to measure precise amounts of timing belt.
C++
2
star
46

robotOverlordArms

Robot arms supported in Robot Overlord app
1
star
47

SpotMicroMissingManual

Missing Manual for Spot Micro robot
C++
1
star
48

MarginallyClever.github.io

Marginally Clever Project descriptions
1
star
49

gcodeBorder

Processing
1
star
50

ELEC-0112-Touchless-Endstop

ELEC-0112 Touchless Endstop example code for Arduino
Arduino
1
star
51

shift-register-tetris

Shift registers and LED grids to teach basics of programming
KiCad Layout
1
star
52

kernighanlin

kernighan lin TSP solving demonstrated in Processing
Processing
1
star
53

RGBLEDMarquee

A full color scrolling text sign that updates on the fly
Arduino
1
star
54

10MinuteCode

Each project takes me about 10 minutes. They build on each other.
Processing
1
star
55

stepperClock

stepper driven analog-style clock with controls, good for film production
C++
1
star
56

TriangleInTestProcessing

Interactive point-in-triangle test in Processing
Processing
1
star
57

fourDigitSevenSegmentDisplay

practical examples, schematics, kicad project.
KiCad Layout
1
star
58

fontConverter

converts black & white bitmap font to 1s and 0s for programmers
Processing
1
star
59

DelaunayTriangulationTest

Interactive Delaunay Triangulation In Processing
Processing
1
star
60

kmeans

k-means clustering demo for Processing
Processing
1
star
61

lineClipTest

line segment/box clipping test in Processing
Processing
1
star
62

LED8x8

How to direct drive a one color 8x8 LED grid from Arduino
Arduino
1
star
63

LEDCube

Arduino code to control LED cubes
Arduino
1
star
64

shared-anodes-and-cathodes

Shared anodes and cathodes example
KiCad Layout
1
star
65

processingErosionMap

Erosion sim in processing
Processing
1
star