one more point
[web/gag.com] / pcb / csm84 / index.mdwn
1 # Surface Mount Robot
2
3 For a long time, we've hand-loaded prototypes and then sent production board
4 runs out to one of several 3rd-party surface mount assembly shops.  We've
5 tired of dealing with these assemblers, however, would like more control
6 over the process, and are intrigued by the [OpenPnP](https://openpnp.org)
7 project. 
8
9 After playing around for a while with building a machine from scratch, Bdale
10 was offered a surplus Philips (Yamaha) CSM84 pick and place robot.  This is
11 a massive thing to make room for in a home shop, but as designed it's meant
12 to be able to hold 84 reel feeders with 8mm width reels, has a conveyer belt
13 for loading and unloading assembly panels, 3 placement heads, and very good
14 fundamental mechanical accuracy and repeatability.  Unfortunately, the machine
15 controller is 1980's era technology, and the machine isn't really capable of
16 handling 0402 parts as-is.  The goal, therefore, is to convert the machine
17 over to using a modern control and vision system running OpenPnP, capable of
18 loading [Altus Metrum](https://altusmetrum.org) and other products that make
19 heavy use of 0402 passive components, and fine-pitch integrated circuits.
20
21 ## Challenges
22
23 * The existing control computer will be replaced with a PC-compatible system
24   running [Debian GNU/Linux](https://debian.org) and 
25   [OpenPnP](https://openpnp.org).
26
27 * It appears that the stock board for doing things like sensing axis limits,
28   operating pneumatic actuators, etc, is actually attached to the control
29   computer using SCSI-1, and is based on an Intel 8031 with external EPROM.
30   Bdale hopes to reverse-engineer the protocol in use over this bus and use
31   a simple SCSI-1 interface on the control computer to interface with this
32   working board, so that it doesn't need to be replaced.  This would also
33   allow us to leave almost all of the system wiring harness, all of which
34   is working, in place.
35
36 * The existing analog servo amplifiers are fairly tightly coupled to the 
37   control computer's electronics.  Since the CSM84 came with some DC servo
38   control modules that take step and direction inputs and thus look can make
39   the axis servos look like stepper motors to the rest of the system, we're
40   going to try using a Smoothieboard and these modules to run the axis servos
41   using the existing power supplies.
42
43 * The axis limit sensors currently feed into the main system I/O board, but
44   we'd like the Smoothieboard to be able to read them.  This may require a
45   custom interface to extract those signals and feed them to the Smoothieboard
46   at appropriate interface voltages.
47
48 * The existing vision system will be completely replaced by USB camera modules
49   attached to the new control computer.
50
51 * The head-mounted vacuum sensor board will be replaced with something better
52   suited to OpenPnP's needs.
53
54 * The reel feeders provided with the machine advance 8mm tapes by 4mm per
55   step, which is correct for parts that are of 0603 geometry and larger.  
56   To feed 0402 parts, we either need to modify these feeders for a 2mm 
57   advance, replace them with feeders that do 2mm advance per step, or just
58   throw away every other part on our 0402 reels.
59
60 ## Sub-Projects
61
62 * The stock machine has a nozzle vacuum sensing board that uses an analog
63   amplifier and comparators to output 3 states per nozzle as a 2-bit digital
64   signal.  OpenPnP would rather have simple analog vacuum sensors on each 
65   nozzle, readable by one of the system's control interfaces, then implement
66   the thresholds in software.  That that end, Bdale designed a [replacement
67   vacuum board](https://git.gag.com/hw/csm84vacuum) that uses 3 NXP 4115
68   series analog output vacuum sensors, intended to be attached to three of
69   the "thermistor" inputs on the Smoothieboard that also provides axis servo
70   control.
71