Overview Project Mechsoftronic
Overview Project Mechsoftronic
https://github.com/mhouse1/mechsoftronic
10/28/2015
mercredi 28 octobre 15
What is CNC?
✤ Computer Numeric Control
✤ CNC Machine
✤ CNC Controller
mercredi 28 octobre 15
3D Print vs Milling
what kind of output do you need?
✤ extrusion
✤ layer by layer
✤ low structural integrity
✤ slow
✤ photopolymerization:
✤ layer by layer
✤ better structural integrity
✤ faster
✤ create more complex shapes
mercredi 28 octobre 15
Adaptable Mechanical Platform
mercredi 28 octobre 15
Why not just buy one?
✤ Cost
✤ high cost even for a CNC mill
with small milling area
✤ Customizable
✤ add on laser cutter, plastic
extruder, plasma cutter, exacto
knife, ... anything you want
✤ Full understanding of how the
machine works and its limits
mercredi 28 octobre 15
Design
Linear motion hardware
rack and
ball screw acme belt drive
pinion
✴almost no backlash ✴will hold a load in place ✴easily expandable to larger ✴can accommodate semi
✴low friction (good for by design machines large machine
moving but bad for stopped) ✴backlash; unexpected play ✴complex; requires proper ✴simple
✴will tend to rotate away due to clearance or looseness gear reduction and other ✴not so great at high speeds
from loads of mechanical parts hardware to eliminate radial ✴typically used by
✴must use oversized loads ✴limited size load on the motor shaft hobbyists because its one of
to mitigate back driving ✴not so expensive ✴can become expensive if the cheaper options for
loads performance desired performance
✴expensive
mercredi 28 octobre 15
Hardware
Modified OpenHardware Shapeoko 2 1000mm x 1000mm rails
2014
Today, 2015
mercredi 28 octobre 15
Software:Firmware
Task1 Task2 Task3
•make sure FIFO don’t over flow •read queued data from task 1 and •dequeues step and direction and
•read serial data from UART convert to data packets writes to hardware for FPGA
FIFO •if threshold # of data packets modules to determine acceleration
•queue data for task 2 to received, signal sender to stop and synchronization
consume sending
•sender will be required to send • process data packets
gcode at a slower rate than •either commands
commands •or GCode
•GCode is interpreted into steps and
dir and queued for Task 3 to consume
•Commands are processed right
away
•see GUI for commands available
The 3 tasks run in parallel on MicroC OS II RTOS, this was done because the FPGA is configured with the “free” Nios II/
e CPU core where vectored interrupts are not available.
mercredi 28 octobre 15
Software:GUI
✤ configure nominal pulse settings
for 1 step
✤ where 1 step is a square
wave
✤ each count = 20ns
✤ so x-axis in this case would
output 4ms of high and 4ms
of low per step
✤ acceleration settings only applies
to z-axis
mercredi 28 octobre 15
Software:GUI
✤ The parse_gcode.py module doubles
as an preview tool if ran individually
✤ allows user to preview points
with respect to time and position
✤ To use:
✤ modify GCode file name
✤
mercredi 28 octobre 15
FPGA: special components
✤ pulse generator
✤ used to generate step and dir signal that goes to the stepper
motor driver
mercredi 28 octobre 15
FPGA: motion generator Z-axis
✤ z-axis acceleration is
handled by the FPGA
given a nominal
speed and a speed
change, the curve
generated is similar to
simulation shown
(left)
✤ This had to be
redesigned for XY
axis to work properly
mercredi 28 octobre 15
FPGA: motion generator Z-axis
tested using Xilinx test bench
odd # of steps
mercredi 28 octobre 15
FPGA: motion generator XY axis
✤ Design and implementation in
progress
✤ currently limited to no acceleration
✤ this means xy axis should move
much slower
✤ redesign is basically a clock tick that
can be sped up or slowed down
used to synchronize xy axis while
maintaining acceleration
mercredi 28 octobre 15
Project Status
acceleration implemented
★ As of 4/23/2014 project been OpenSourced on GitHub
★ 5 users watch project
★ starred 17 times
★ forked once
mercredi 28 octobre 15
Future work
mercredi 28 octobre 15
Everything documented
documented
mercredi 28 octobre 15
Everything documented
• From May, 2013 to today
mercredi 28 octobre 15
Tools
mercredi 28 octobre 15