Mechanical Hardware, refer child sections below for details

  • Base CNC X Y Z Router
  • Pick Place Heads
  • Vacuum pump
  • Feeders
  • PCB Holder Array

Circuit boards commercial

  • Stepper driver PCB(Supplied with router)

Circuit boards custom made

  • Parallel port breakout PCB
  • 8 x Stepper Driver PCB  20110908: now obsolete after heads converted to Pneumatic cylinders
    • 3 bit address line
    • 8 x SN754410 Half H Bridges, 4 bit IN1-3
  • 4 x 4 way optoisolatedMosfet driver PCB's
    • 4 x optoisolated Mosfet switches on each PCB
    • Switch to ground
  • Interface PCB (PIC18F4620)
    • Microprocessor board to accept Mach 3 commands via parallel port and drive selected heads via Pick Place Head Driver Board & Head Vacuum Driver Board x 2


  • 36V switched PSU (Supplied with Router)
  • 24V PSU for pneumatic valves
  • PSU for 5V & 12V (Old ATX PC PSU)
  • Emergency stop switch (EBay)
  • Seasky Vacuum pump (Aliexpress) Thomas Industries 'Wobble' pump


  • 2 x DealExtreme.com USB microscopes

Base CNC X Y Z Router

Ebay CNC router package from .cn Approx US$1600, arrived... (eventually..., late shipping, poor communication..)

Large table

X, Y Z = Nema steppers, have 1.8deg step resolution.

Ball screws = 5mm pitch

Limit switches: unit comes with 6 microswitches in the box but no fittings/wiring

Steppers and leadscrews coupled with 8mm - 8mm (5/16) couplings)

Supplied as ready to run with PSU & Stepper controller PCB

Mechanical changes:

  • Removed Bosch Router
  • Removed Z axis completely
  • Added X & Y axis limit switches
  • Added left and right head arrays
  • Added USB camera in middle of left/right head arrays
  • Remounted Y axis stepper motor as was very flimsy
  • Loosened / retightened all bolts to align parts as much as possible, adding washers where ever possible
  • Removed Y Gantry steel backing plate, replaced with smalll light aluminium angle plate.
  • Drilled/lightened Y gantry struts
  • Drilled lightend X main plate

Pick Place Heads

Update 20110829: Conversion from DVD drive headsto Pneumatic is completed

I am using DVD drive head positioning units for pick place heads.

Each DVD drive provides a bipolar stepper driving a horizontal DVD pickup head via lead screw.

I remove the optical components from the DVD head and attach my own spring cushioned pickup head to the DVD head base.

Each head is a 5/32 tube with a industrial syringe tip attached.  The tube is spring loaded via U type bracket so the downward stroke does not need to be accurate.  This is particularly useful as the DVD drive heads have varying pitch on the leadscrews

Note to self re Motor setup in Mach 3 fot this z axiz

- The DVDs have differing pitch on their leadscrews. 

- Mach3 Z axis is set up for 1 step per mm, speed 30,00 acceleration 500

- Heads in the spreadsheet have custom z value per head


USB cameras

20110101-camera-1.jpg pickplace-usb-camera-up.jpg


On the Y gantry between the 2 rows of 4 Pick Place heads is a downward looking USB camera

On the main baseis an upward looking USB camera

Both cameras are used for calibrating Mach 3 offsets

Vacuum Pumps

Pumps are a hassle.

Tried multiple fish tank pumps, Chinese purpose built vacuum pumps but spit oil and overheat.  Tried vacuum ejectors but they run my regular compressor too hard and it overheats

Currently using an old Thomas Industries dual head diaphram 'wobble' pump.  Is the best yet but runs a bit hot as well

Stepper Driver PCB

Supplied with the router. Refer child page for additional details.  Seems a quite nice PCB.  Don't unplug a stepper whilst it's powered up or this PCB will go bang (my accidental empirical testing found that out)

Note on steps per mm calculation for Mach 3:

Steppers ar 1.8 degrees so without microstepping = 360/1.8 per rotation = 200 steps.

If pitch is 5mm, then steps per mm = 200 / 5 = 40

Setting micro stepping to 1/16 = 40 * 16 = 640 steps per mm

20110802: X axis has temporary 24" 10 acme lead screw.  Pitch = 2.54mm

Steps per mm at 1/16 microstepping = ( (360/1.8) / 2.54 ) * 16 = 1259.8425...

ok, at 1/8 microstepping:

( (360/1.8) / 2.54 ) * 16 = 629.92126...


Although this is a reasonably complicated project, mechanised feeders would make it much more so.

Do we actually really truly need mechanised feeders?  Probably not at this time..

I have purchased multiple poor quality 8mm static feeders off ebay approx US$40 per unit (ouch).  Each holds 5 x 8mm component tape reels. (Only 8mm tape width is available thus far).  These are intended to be used for manual part placement and actually work quite well for that.

Our CNC router is wide enough to take 5 of these units across an end, so 25 x 8mm components are available at one end.

Before each PCB run we will feed the required component tape through and peel back the cover for the quantity of components required for that run.

The maximum no of components per feeder that can be exposed per run is 32 before the heads collide with the reels.

For other components (ie other than 8mm) the intention is to make our own static feeders along similar lines later.

Issues: Pulling the component tape through requires it to to be aligned correctly for pickup operation, I have pins at each end (cutoff syringes) but these are not accurate / repeatable enough.  However longer term resolving the centering issue will negate the need for any more accuracy.

Counting components and sequential component offsets:

Of the up to 32 components available on each of the 8mm tape feeders above per run, the GCode increments a counter variable (Mach3 variable) for each feeder after a component is picked from that feeder.  For the next pickup from that feeder it's counter is multipled by the component offset to determine the pickup point for that component.  So nice and simple.

PCB Holder Array

With the larger boards now getting populated, no more arrays for now

Sounds fancy but is simply a piece of Board with holes drilled at regular intervals.  With the use of pegs, allows multiple blank PCB's of the same design to be arrayed for inclusion in a single run.

Driling these holes manually and accurately was a pain.  I wish I had a CNC router machine to do it.  Hmmm.

As all my smt PCB designs utilise standard set of dimensions (y dimension mounting holes are spaced to a 10mm grid, and x dimension is either 41mm or 92 mm between mounting holes) this allows one peg board to accomodate almost all my SMT designs.

When set for a 0 degrees rotation, PCB must be oriented per its orientation in the PCB design package (So the PCB Pick Place export table is usable)

Parallel port breakout

Splits the Mach 3 parallel port output from the PC per the Mach 3 Parallel Port Mapping

Connects to:

  • Stepper Driver PCB
  • Limit Switches
  • EStop switch
  • Interface PCB

Note that Limit switches and EStop switch are inputs are pulled high on this PCB and switch to ground when activated

Next revision:

  • Purpose built PCB (Currently on proto board and has been altered a bit), needs to be more robust longer term.

8 x Stepper Driver PCB

20110908: now obsolete after heads converted to Pneumatic cylinders

Provides the ability to drive 8 x addressable Quad Half H bridge SN754410 IC's.

2 IO input ports:

  • Output Select: 3 bits to select one of 8 channels (0-7)
  • Drive: 4 bits corresponding to the addressed Quad Half H bridge
  • Didnt have an 74HC238 on hand so used a 74HC154 & 2 x 74HC04 inverters

Note that RefDes of the schematic and PCB image below dont align as added LEDs in the PCB package first as a quick&dirty(tm)..

Also made a mistake and second enable on all the 754410's (pin 7 maybe) is permanently high, so had to cut traces and hardwire the fix.. (Sch below is correct now but PCB isn't)

8-x-Quad-Half-H-sch.jpg Quad-half-Hx8-top-side.JPG 8xstepper-fix.jpg 8xstepper-top.jpg

Next revision:

  • use 74HC238 (only had an HC154 on hand for this one so had to add 74HC04 inverters), with 4 bits addressing and jumpers to determine if board is addressed by 0-7 or 8-15.
  • perhaps double sided purpose built PCB (Currently home made single sided PCB, lots of jumpers)
  • 3.3V compatible so can use a Plug & Program.com mainboard board
  • top left LEDS don't work (blonde moment doing the sch in a rush)

Head Vacuum Driver Board

4 x optoisolated Mosfet switches

20110908: Need of these currently, have made 3 of the design below and also one older stripboard version.

Inputs are pulled low.  Mosfets switch high side to ground.  Can directly drive a moderate DC load, or a mechanical relay or SSR.

4-x-Opto-isolated-Mosfet-Low-Side-Switch.jpg 4xopto-pcb1-20101201_2.JPG


Next revision:

  • check is 3.3v compatible


Interface PCB

The secret sauce.  General purpose PIC18F4610 or PIC18F4620.  A PCB I designed / home made a few of back in 2007.

Senses signal changes on inputs B0-B7 and drives Pick Place Head driver board and Vacuum solenoid boards as appropriate.

Refer child page for additional details

Next revision:

  • 2007 PCB design had analogue switch between ICSP and IO to allow for using both PIC16F & PIC18F processors, and both 28 & 40 pin:
    • Remove analogue switch (as no longer need PIC16F compatibility
    • 40 pin 18F processor only (no longer need 28pin MCU compatibility as price is so close between 28 & 40 pin parts anyway)
    • Double sided (Is home made single sided PCB)

Support hardware/components

  • Generic 36V switched PSU (Supplied with Router)
  • PSU for 5V & 12V (Old ATX PC PSU)
  • Generic Emergency stop switch (EBay)
  • small vacuum solenoids (Ebay automotive)