Diyouware TwinTeeth: The PCB mini-factory
Diyouware TwinTeeth is an open-source PCB mini-factory targeted to the electronic hobbyists. It is an innovative fabricator of Arduino™ shield-size PCBs which will help you to make PCB prototypes at home.
It includes the following functions:
- UV Laser photoengraving on sensitive film or presensitized boards using an ultraviolet laser.
- Drilling vias and holes using any mini-rotary tool like Dremel® or Proxxon®.
- Dispensing solder paste with precision on SMD PCB pads.
- Plotting circuits with a permanent pen-maker (if you prefer this method).
- 3D printing knobs, casings, front-panels, even print circuits with conductive filament, or make circuits supports.
- Milling/Carving soft materials or etching PCB copper with a v-bit (if you prefer this etching method).
- And much more… because it is extendable and you can use any other tool you can fix on it.
Diyouware TwinTeeth comes with interchangeable Toolheads which automates the processing of most PCB fabrication stages. They are fixed at the top of the robot so it is very easy to interchange them.
While traditional 3D printers or CNC machines move the tool while the working piece is fixed on the bed, TwinTeeth moves the bed while the tool is fixed. The first method is good if the tool is small and you want to make large pieces. But if the tool is heavy like a mini-rotary tool or a 3D extruder and the piece you are working on is light like a PCB, it is better to move the piece because it provides more precision and reduces vibrations.
Last year we fought with mechanical vibrations and belt resonances when we developed DiyouPCB. When we began TwinTeeh project we were afraid of not finding a free-vibration mechanical designing because we tried almost everything to avoid vibrations in DiyouPCB.
Belt resonances can be avoided using lead-screws. This was the base of our new designing. But we didn’t have a clear idea about how to eliminate other kind of vibrations, mainly produced by motors and linear bearings.
It is very important to avoid any kind of vibration when drawing with a laser because the beam is very fine (aprox. 620 nm) and any tiny motion would move it and distort the drawing.
Inspiration arose from my twin babies when they tried to brush their teeth for the first time. One of them was brushing his teeth in the normal way but the other one thought it was easier to move the head instead the brush. Why not?
I immediately thought that maybe we might avoid vibrations if we fix the laser while moving the PCB. And it works! So we called the project “TwinTeeth” to remember that day.
Fixing the tool on the top of the robot has other benefits: we can interchange it very easily because it is not attached to any moveable part. Also because the robot doesn’t have to move wirings, filaments, heavy loads, cable chains, etc.
- Working area (X,Y,Z): 70x80x60mm We reduced it considerably to an “Arduino™ shield-size” because we preferred to do something small but precise. We rarely create big circuit boards and reducing the working area has some benefits: the robot is cheaper, more precise, more robust, smaller and more manageable. However, it’s scalable, so you can make it bigger if you want.
- Motion: TwinTeeth is powered by three Nema 17 motors, lead-screws and anti-backlash nuts.
- Speed: it can go as fast as 1200-1500mm/min.
- Code: it supports G-Code, postscript and BMP files. Eagle CadSoft can export to postscript format very easily. Support BMP files means than in addition to PCBs it can also print and etch photos on copper, alu or bronze.
- Laser: we are using the same PHR-803T optical pickup than DiyouPCB with a wavelength of 405nm.
- Rastering: the robot draws the PCB circuits in rastering mode in a similar way any paper printer does: moving the laser (or the bed in our case) from one side of the printer to the other.
- Resolution: In rastering mode we are printing at 600DPI resolution. The laser beam spot is approx. 0.04 wide when is focused. Incredibly thin! Theorically mechanical precision is 0.94um.
- Auto bed-levelling – it keeps the bed flat with a tolerance of less than 0.01mm while the robot is moving. It’s very important to improve printing quality and provide precision.
- Auto-Focus: – small focus differences on the PCB surface affect printing quality so we implemented a robust focusing system which takes some points on the PCB and extrapolates the results with a bilinear equation. With that info the robot adjusts the focus automatically while printing.
- Infrared focusing: the auto-focus system uses an infrared laser to avoid film blurring. Films or presensitized boards are only sensible to ultraviolet light.
- Electronics – we are using the well known combination of Arduino™ Mega + RAMPS 1.4 + A4988 Motor Drivers. We also improved the Pickup Driver Circuit we developed for DiyouPCB and now it includes new features.
- Precision fixture bed – it is very important to keep the PCB fixed to the bed while the robot is moving. Also, when printing two-sided PCBs we have to be sure that both sides are correctly aligned. TwinTeeth includes a precision aluminium fixture bed and dowel pins which allow correct fixing and positioning of the PCBs. A stencil is also included which helps to drill the PCB’s 4-positions holes.
- Camera – we included a small USB camera because it is difficult to see tiny details on high-density PCBs. The camera is also useful to set the home position which is very important to obtain accuracy.
- 3D Printing: we use FFF (Fused Filament Fabrication) with 1.75mm PLA/ABS and a 0.35mm extrusion nozzle. Printing quality is similar to any 3D printer you can find in the market.
We developed a complete software suite for the mini-factory.
- TwinTeeth Firmware: we deeply modified Marlin firmware to support multiple tools, manage and control the laser, implement the auto-focus system, print in rastering mode, improve the buffering, and much more.
- TwinTeeth Management Console – TwinTeeth comes with a new easy-to-use management console which includes functionality specially designed for the multi-tool environment. We also included functions to calibrate the printer, move the axis (jogging), and adjust the parameters of each tool. This software communicates with the robot through an USB 2.0 port.
- TwinTeeth Eagle ULPs – we developed some ULPs (Eagles’s user language programs) to generate the drilling and paste dispensing g-code files. You can also use the files generated by other ULPs like PCBCode.
- Eagle Cadsoft – It is a popular electronic CAD software company. They provide a freeware version for non-commercial use. It easily generates the postscript, drilling and solder paste dispensing files which TwinTeeth uses to make the circuits.
- 3D Slicing software– for 3D printing you can use any slicer software like Slic3R or Cura.
TwinTeeth Management Console
It is the PC side software which allows you managing and controlling TwinTeeth. It was developed on Java using Processing development environment.
It includes the following funcionalities:
- Connect/disconnect with the robot using any USB port.
- Tool tabs – select the tool which you want to use.
- Homing – move the bed to the bottom position
- Goto zero – go to the homing position (X0,Y0,Z0) for this ToolHead.
- Center X/Y – center the x/y axis.
- Jogging – manually moving the robot bed on the X,Y,Z axis.
- Setting speed – seek rate of X/Y and Z axis.
- Z min – Set the Z min position for a particular tool
- Calibrating the robot – setting the program zero position, running the bed auto-leveling, resetting the tool config.
- Running – open a Postcript, BMP or g-code file and run the job.
- Stopping/Pausing/Resume – controlling the evolution of the job.
- Panic Button – quickly stop the robot by emergency.
- 3D Graphic Window –it shows a 3D view of the evolution of the job. It’s possible to zoom, tilt, rotate, etc. the image.
- Dialog window – shows information and important messages to the user.
- Camera view – a window to the USB camera. Very useful for homing and inspecting the job.
For more detail: Diyouware TwinTeeth: The PCB mini-factory