Thursday, August 21, 2008
AS5040 Encoder
Here's a Closeup of the AS5040 encoder on the motor.
The adapter to hold the magnet is nylon. This encoder is really overkill-- its 2000 count resolution per turn, and the motor is geared down 40:1, turning the feed screw with 18:1 lead.
The result is a very crazy 14.4 M counts per inch! The pic 18F4331 interrupt handler very happily keeps up with them all though
The adapter to hold the magnet is nylon. This encoder is really overkill-- its 2000 count resolution per turn, and the motor is geared down 40:1, turning the feed screw with 18:1 lead.
The result is a very crazy 14.4 M counts per inch! The pic 18F4331 interrupt handler very happily keeps up with them all though
Controller board, v2
The second version of the controller board for cncFDM is complete. I already have a list of fixes that are required for version 3, but I limped this one along. (Yes, you can guess, the first version didn't go so well ).
I use one-sided boards so i can mill and drill them in one shot on the mill. Here's the eagle file:

And the resulting populated and connected board:

The firmware is written in C using a demo version of mikroC (http://www.mikroe.com/en/compilers/mikroc/pic/ ) Quite a nice compiler.
I almost ran out of memory on the PIC18F4331, bit after some extensive optimization i finally fit it all in.
More on the firmware later
I use one-sided boards so i can mill and drill them in one shot on the mill. Here's the eagle file:
And the resulting populated and connected board:
The firmware is written in C using a demo version of mikroC (http://www.mikroe.com/en/compilers/mikroc/pic/ ) Quite a nice compiler.
I almost ran out of memory on the PIC18F4331, bit after some extensive optimization i finally fit it all in.
More on the firmware later
Basic Architecture
Another retro-active post, this one describes the overall system architecture I'm going with for the initial version of cncFDM:
Existing 3-axis mill, home-built.
machine controller, EMC2
--> stepper control for x,y,z axes
--> axis GUI, with pyVCP plugin for extruder monitoring and control
--> python hal user space driver to monitor and communicate with extruder
cncFDM toolhead
--> step/direction input so that motor motion is controlled like an axis (A) instead of spindle
--> serial interface for setting temperature,gains, and other parameters
--> PID control for temperature and motor position/speed/acceleration
--> extruder enable/fault bits for hardware communication with EMC
--> off-the-shelf cartridge heater for improved reliability
--> thermocouple for temperature feedback
--> Single board design ( if possible ) to keep things simple.
Toolhead firmware:
The toolhead firmware will be based on the following chips/solutions:
Existing 3-axis mill, home-built.
machine controller, EMC2
--> stepper control for x,y,z axes
--> axis GUI, with pyVCP plugin for extruder monitoring and control
--> python hal user space driver to monitor and communicate with extruder
cncFDM toolhead
--> step/direction input so that motor motion is controlled like an axis (A) instead of spindle
--> serial interface for setting temperature,gains, and other parameters
--> PID control for temperature and motor position/speed/acceleration
--> extruder enable/fault bits for hardware communication with EMC
--> off-the-shelf cartridge heater for improved reliability
--> thermocouple for temperature feedback
--> Single board design ( if possible ) to keep things simple.
Toolhead firmware:
The toolhead firmware will be based on the following chips/solutions:
- PIC 18F4331 . This version includes motor encoder feedback and PWM for driving the extruder head motor
- MOC3031. Triac driver to control heater duty cycle
- AS5040. Magnetic encoder for motor encoder board
- MAX 6675. SPI-enabled thermocouple reading chip
- LMD18200. 3A H-bridge driver. Bi-direcitonal control is important to allow the motor to reverse.
- MAX3232. Serial Line Driver
- 7805 and other supporting passives and misc.
Wednesday, August 20, 2008
Welcome to cncFDM!
My goal is to make an FDM (Fused Deposition Modeling ) toolhead that can be bolted onto a typical 3-axis cnc milling machine, and used to make rapid prototyped parts.
cncFDM Goal:
Build an FDM toolhead for a cnc machine, which:
cncFDM Goal:
Build an FDM toolhead for a cnc machine, which:
- Allows interchanging a cncFDM toolhead with a traditional spindle on the same (3 or more axis ) cnc machine without mechanical rework ( reconfiguration of software is ok ).
- Uses standard 1/8" diameter ABS welding rod as input material.
- Keeps construction cost inexpensive
- Has good reliability. The heater shouldn't need rebuilding/replacing every 20 hours of runtime, for example. I'm willing to sacrifice more difficult construction to achive this goal.
- Leverages Gcode and other common cnc tools to save work. No need to re-write motion algorithms, acceleration profiles,etc etc, they are already available.
- Has accuracy deviating by no more than 0.010" on x and y axes, and 0.020" on z axis. This will require melt flow compensation and other techniques used by commercial vendors.
Assumptions and goals that contrast RepRap ( and are one of the main reasons I started this blog ):
- Line level power is ok, since cnc machines already have it available.
- ABS plastic is the main material, other materials that are more environmentally friendly can be accomodated but are not the focus
- Use existing tools that are commonly available, even if they are not GPL/free. For example, I do not care which solid modelling package is used to create the STL, as long as it works.
- It is ok to have parts that require a lathe or a mill to make. Of course, avoiding work is good, but "assemble with hand tools" is not all that important.
One other point I'll mention is that this is a problem that has been solved by many commerical vendors, most notably Stratsys. Their patent literature describes in some detail the many challenges ( and solutions, woo hoo! ) one might encounter along this journey.
Since I'm not intending to sell or in any way profit from this project, ( at best others may follow this path and construct one themself ), I do not have any problem learning from and employing the patented techniques that commercial vendors use.
Of course, the RepRap project is the best source of inspirational ideas :)
More later.
Subscribe to:
Posts (Atom)