New upload schematic and PCB for simple 3 axis CNC / LASER. Checkout the wemosminiboard folder
I make this project to learn about the controller.
simple multi axis motor controller for use in cnc project. This project is possible because other people work:
its not 100% exact code, but i have read lots of their code, so my code will effected by them
feature i need to have in this software is: (* implemented)
Yes, its support EEPROM and modification in repetier host.
Still work in progress, especially for ESP8266 Progress:
NONLINEAR -Delta -Deltasian -Scara
Subpixel bresenham algorithm, will increase the resolution of the bresenham especially on low speed movement. just like AMASS on GRBL.
Non linear slicing happen in the core of movement. By implementing a virtual step/mm and calculate real step in the motion loop. So 1 Gcode will save in 1 path buffer, then segmented when this buffer is active.
for now it already use timer interrupt, but still can use polling mode using micros() to control the timing (especially for new mcu that we dont know how to use timer, or for simulation in pc)..
Project files: karyacontroller.project - just for editing in codelite karyacontroller.ino - arduino ide motion [motion.exe].PRJ - for quincy IDE, we can show graphics of the motion simulation here
Original code is in freebasic, you can check the old folder
5-11-2019 Multiple job stored on flash, and more other feature.
5-3-2019 Auto level using MESH bilinear interpolation.
10-12-2018 Able to upload gcode to internal wemos flash, and start print without pc, without sdcard
20-5-2018 New PCB using Wemos D1 mini, the smallest CNC/3D board ! not tested yet.
12-5-2018 Backplanner using grbl code, minimum corner using repetier code.
recode backlash algorithm laser cutting co2 work (m3 S100 to turn on laser on G1) fix timer problem on very slow speed (below 1)
i share my stm32 board too
5-2-2018
I change the feedrate acceleration algorithm, previously using mainloop that calculate f by adding it with a*dl , which dl is from 1/f, this cause problem cannot reach the target velocity.
Now it use inversesquare of accumulative value from acceleration, which is maybe costly on the mainloop, but more easy on path planner.
Also i have make the analog read better by able to pool more than 1 analogread and keep the result on buffer.
Also i plan to use more library, such as DIO2.