Pick and place

Fra Bitraf
Hopp til navigering Hopp til søk

Bitraf har nå en pick-and-place-maskin (bestykkningsmaskin) Denne krever kurs, som blir satt opp i løpet av sommeren 2018.

Vi har en SmallSMT VP-2500HP-CL32

Brukermanualen ligger her: Dropbox/Bitraf Felles/Manualer/Vision placer_V2.pdf

Se for øvrig siden som ble opprettet før vi gikk til innkjøp av maskinen: pick_and_place_innkjop

Se også oversikt over tilgjengelige komponenter: Smd_parts_library

Rommet har også en egen side: Smut_cave

Starting the machine

The machine seems picky about the order of start-up. Here is what seems to work consistently best.

  1. Start VisionPlacer V2,
  2. Turn the machine on using the shutdown button
  3. Open the camera (select "VideoNo2" and press the "Open" button)
  4. Press Connect

If the machine has been turned off, but the program is still running, you can do this instead:

  1. Turn the machine on using the shutdown button
  2. Press Connect

Note: it takes about a minute or two before the fan(s) on the machine quiets down. TODO: one or more fans should be replaced.

The Small SMT is now a part of the Tools system and can be checked out as Small-SMT.

Compressed air

  • Remember to turn on the air compressor before you begin (a black switch you turn on the top of the white box near the valve)
  • When you're done you should turn off the compressor and release the pressure

Visual alignment

The machine has two bottom cameras that can be used for visual alignment of parts.

  • Camera 1 (left): visual area 9 x 9 mm up to 14 x 14 mm (Camera List settinss shows 16 x 16 mm)
  • Camera 2 (right): visual area 20 x 20 mm up to 24 x 24 mm (Camera List settinss shows 22 x 22 mm)

Note: parts that are bigger than this will be placed wrong if you use visual alignment!

Setting up feeders

There are 3 areas for reel feeders. 19* proprietary component feeders on East, and 23 on West. In addition there is space for 32 CL-feeders on South.

  • 1 feeder is outside the workarea and cannot be used.

It is possible to position the camera at any feeder by right-clicking the feeder in the list, and using "Camera to feeder test".

Component rotation happens between picking and visual inspection. So one can check that the component is rotated correctly in the camera view before placement.

Tip: use spray glue on the PCB (use one that you can afford to lose) when setting up feeders and doing test mounting. 41-5034[1] from Clas Ohlson is kind of "lumpy" but it works quite well.

Part depending parameters

  • Part Angle: correction value for pick up to reach zero degree position. Chip resistor have the following orientation: West = 90 degrees, North = zero degrees, East = 270 degrees, South = 180 degrees
  • Part Length & Width: definition of visual area (Note: max area is limited to camera preset!)
  • Part Height: Most important for placement - need to be set smaller than real part height to apply some force to push part into paste

Machine depending parameters

Feeder number
Feeder index needs to be unique on each feeder side.
Feeder orientation
West, North, East, South (South used for CL Feeder they can be located on different physical positions)
Pickup coordinate X/Y
We setup using camera and CX / CY buttons or using nozzle head 1 center position by X / Y button.
Suction Delay
used to stabilize vacuum before head moves on pick up cycle. Normal value between 25 to 100 ms for small parts and nozzles (CN030 - CN065) and 100 to 200 ms for bigger nozzles (CN220, CN400)
Put Delay
most important parameter on place cycle - the part will be blown away if vacuum was closed and pressure push occurs. For sensitive parts slow Z speed and longer push delay should be defined. Normal value is 25 ms, for a TQFP we use 100 to 200 ms.
Nozzle Height
the local nozzle height setting should be used on all plastic tapes and grid box feeders.
We have two common pickup height parameters in basic settings dialog for head 1 and head 2.
* Nozzle 1 to Feeder Height (Measurement using nozzle in head 1 standing on part surface in common feeder line)
* Nozzle 2 to Feeder Height (Measurement using same nozzle in head 2 standing on part surface in same feeder line like measurement for head 1)
If there are problems - like part rotates or shifts during pick up, we need to define a local pick up height or need to adjust the basic settings.
For feeder defined (local) setting use the assigned nozzle for this part to get the pickup height!
Plastic tapes, grid feeder, vibration feeder need to set the local pickup height.
For the paper tapes mostly, the basic setting is ok.
Note - if Nozzle Height is set to zero the global parameter will be valid!
Feeder Mode
Push Feeder = Integration Feed, Push Feeder using 2mm component pitch = 0402, CL Feeder = Auto Feed, Grid Box = Grid Box, Vibration Feeder = Vibration Feed

Grid (Box) Feeder

Any position in machine working area can be used as grid feeder. It is only necessary to define pickup position and row and column plus pitch. For strips you only use row or column count to define the strip orientation. The used parts will be stored inside of the feeder and machine will skip empty locations. Don't forget to save because feeder states (are) stored in ini files!

  • Row: row count
  • Col: Column count
  • Row Space: distance in Y direction (take care need to be negative on negative Y Axis!)
  • Col Space: distance in X direction
  • Place all Parts: reset the stock state information

right click on a box opens movement menu and position can be check by nozzle or camera position.

Using components from tray

TODO: document

Exporting a PCB

Exporting from KiCad

Bottom side

  1. Place the auxillary axis in the top left corner.
  2. File->Fabrication outputs->Footprint Position (.pos) File

Setting up a PCB

TODO: document

Physically place the PCB

The PCB should be placed with the same orientation as it has when you view it in KiCad / Pcbnew.

Always place the PCB in the upper left corner of the frame in the Pick and place machine (furthest back and to the left when seen from the front of the machine).

Loosen the spring-loaded clamps (tools are in the holder on the right side of the machine) and adjust them so that the PCB can be removed by pressing the front clamp agains the springs. Tighten the screws that holds the clamps.

Set up PCB in program

In Eleesen SMT Control System:

  1. PCB button
  2. Pcb Edit
  3. "Add" if left column is empty
  4. Import Pcb File (this is the file that has the positions of all the footprints)
  5. Choose file type
    1. Both Eagle and KiCAD is natively supported, and has been tested.
    2. In KiCAD, the files must have Windows line endings. If you use Linux, convert the file with an external program.
  6. Open Pcb File and find file
  7. Import All To Project
  8. Ok
  9. Move camera manually to PCB origin
  10. Pcb Edit
  11. Pcb Properties
    1. Add PCB height
    2. Origin X - use the CX to get camera X position
    3. Origin Y - use the CY to get camera Y position

Test coordinate system

  1. Right click a part
  2. Move camera to part coordinate
  3. Verify that the camera moved to the correct position
    1. If it's not correct - adjust origin X/Y in Edit Pcb (see above)

Picking up parts

In the feeder view, figure out where your reel is mounted. You can click around in the camera view until you're above what you want to pick up. Then look at the X/Y pos and compare that to the presets for the feeders.

At Bitraf, the normal reels of resistors and caps are on the West Bay (W1-W24). Manually defined parts are on the North bay (Manual/grid placement behind the front lid). CL feeders are on the East Bay. When you have located the feeder you want to pick from (using "Camera to Feeder Test", you are ready to adjust this feed.

  1. Move camera to part coordinate. Use the zoom to get the component precisely inside the square.
  2. Double click the feed in the list. Set CX/CY to the current position. Close the dialogue.
  3. Double click the feed in the list again. Set the component to the right type and orientation. Close the dialogue.
  4. For successful pickup, you need to set the contrast correctly. You want to see the outline of the component, not just parts of it. In the main window's camera view - Click the green arrow to display the camera controls. Set the Visual W/H to be twice the size of your component. A 1x2mm cap should be set to 4x4mm (twice the size of the largest measure to compensate for rotation errors). Play with Contrast and Brightness until you fully see the outline of the component.
  5. Double click the feed in the list again. Make sure the correct camera (1 or 2) is selected and click the "Get" button to copy settings. Close the dialogue.

Adjusting origin

Testing so far shows that the machine must be adjusted for good results. Do it in this order:

  1. Visual Origin: Adjust manually with the mouse so the visual origin is in the cross (Set -> Basic Settings -> Visual Origin Coordinate -> Click the CX & CY buttons to set current position as origin)
  2. PCB Origin: Adjust camera manually to align with the Lower Left corner of the PCB (Note: KiCad users should use position of "Auxilliary origin"). Click the "PCB Edit" button (fgreen icon). Next to the Origin X & Y, click the CX/CY button to set current position as the coordinate.
  3. Component Reel origin: Click the Reels-icon and Double-click the reel you want to adjust. Adjust manually with the mouse so the cross is dead centered on the component you want to pick up ( -> Visual Origin Coordinate -> Click the CX & CY buttons to set current position as origin)
  4. Camera coordinates: Move Nozzle to Camera 1. Adjust so it's dead center. (Set -> Camera List -> Double click Camera 1 -> Set Camera X/Y Coordinates -> Press the X/Y button)

Nozzle sizes

Nozzle sizes, component sizes they can be used with, and example vacuum values.

Nozzle Components Vacuum
CN030 0201 .. 0402 75
CN040 0402 .. 0603 72
CN065 0603 .. 1206, SOT-23, MINIMELF 45
CN140 SO-8, DFN, MLF, Diodes,, 30
CN220 Bigger parts like IC, caps, inductors 25
CN400 Bigger parts like IC, caps, inductors, TQFP, BGA 25

Bitraf nozzles

Bitraf has the following nozzles (amount and size), listed from smallest to biggest. Please update with any changes (new nozzles, broken nozzles).

# Nozzle comments
1 CN030
2 CN040
1 CN065
1 CN140
1 CN220
1 CN400

Nozzle changer

Warning: the PnP machine can't recognize if there is a nozzle in the head or not! Please make sure that all nozzles are in the nozzle changer, and that both heads are empty before using the nozzle changer! If you turn off the machine, put the nozzles back into the nozzle changer manually.

Note: when a nozzle is correctly placed in the nozzle channger, the "round disc" of the nozzle is below the metal.

You will find the setup for the Nozzle changer in the Nozzle List menu. Nozzles are numbered 1 - 6, which corresponds to nozzle changer positions from left to right. Normal setup for Bitraf PnP machine is

number / slot Nozzle comments
1 CN040
2 CN065
3 CN220
4 CN400
5 CN030
6 CN140

Part size settings

Name size length (mm) width (mm) height (mm) speed recommended nozzle size
resistor 0402 1.0 0.5 0.3 small parts speed CN030 / CN040
resistor 0603 1.6 0.8 0.5 mount speed CN040 / CN065
capacitor 0603 1.6 0.8 0.8 mount speed CN040 / CN065
ferrite bead 0603 1.65 0.85 0.85 mount speed CN065
resistor 1206 3.2 1.6 1 mount speed CN065
TQFP48 14 14 1 take the chip speed CN220 / CN400
SO-8 6 6 1 take the chip speed CN220 / CN140
SO-16 10 6 1.2 take the chip speed CN220
SOT-23 SOT-23 3.6 1.5 1.2 take the chip speed / vision mount speed CN065
MBRS140 SMB403A 5.6 4 2.6 vision mount speed CN140 / CN220

Because of different part orientation you should use the same size for width and length and choose the largest size!

Package database

TODO: document


  1. Change Camera to mark 1
  2. Reset origin
  3. Nozzle 1 to Visual Camera 1
  4. Correct offset
  5. Camera list -> Correct camera X, Y
  6. Reset Origin

Calibration Movements

  1. To place a component more to the left, decrease the value of the nozzle x in "Basic settings".
  2. To place a component more down, decrease the value of the nozzle y in "Basic settings".
  3. If there is a difference between the calibration on top and bottom, calibrate for top and then adjust the origin when exporting for bottom.

Known or unknown error messages

  • 1Feed Error -> Wrong feeder has been chosen.
  • Error E4 -> The lid is physically open
  • Online Error! -> ? (powering down the machine and starting it again helped)
  • Mark test error -> We`ve received this if detection of fiducials (Pcb Edit) have been turned on (but it fails)
  • Coordinate limit reached ! End -> The machine attempts to move outside the work area/ soft limits. Please check that the part positions are inside the workable area and that you used the correct null-point in your file.
  • Devices are automatically work, the execution is prohibited! -> Connect to the machine...
  • Devices are automatically work, not operating rack ! -> Seems to be a software issue. Close and restart the SMT control software
  • 138:[Line] No feeder assigned! -> Make sure all parts which have a blue tick in the "Mount" column have a feeder assigned to them. The row(s) causing the issue with be highlighted once you accept the error message, but you may need to scroll up and down to see them if you have a long list of parts.

Other problems

  • Visual origin is wrong, and the visual origin mark looks oval instead of round - Quit VisionPlacer, and start it again. After connect, the problem goes away.
  • Sometimes, the machine stops responding (You can't reset origin, or move the axes at all). Then you have to save your work, exit Vision Placer and start again.
  • If the machine refuses to pick up a part and you must press "stop", the machine can loose it's position. Always perform a "home all axes" after stopping the machine during a job. This also applies if a job is stopped without any component pickup issues.

Questions and workarounds

This sections is for questions we haven't been able to answer yet, and any workarounds. If you find a definite answer, please put it in the section it needs to go and remove the corresponding text from this section.

Save feeder setup

It is useful to be able to save part of a feeder setup, for example the North feeders which are strip / grid box feeders and are very project dependent. As of version 2.044, I can't find a way to do this from within the program.

save feeder workaround

For now, I exit the program (VisionPlacer) this saves the whole feeder setup in (directory: c:\smt) config_feed.fig (and possibliy config_strip.fig) files.

orientation - part angle

Is there a standard orientation for components on tape like diodes etc. that needs to be mounted with correct orientation? (In other words: a resistor can be mounted at 0 or 180 degrees will still work, but a diode will not work if it is mounted the wrong way)

Ok, it seems (based on a few examples) that the cathode always is orientated closest to the feed holes on the tape.

Part library

It is desirable to standardize on a set of components at welldefined positions, for some of the reels.

Possible inspirations include: Seed Studio Open Part Library


Updated Settings

Here we can document any (software) settings that we update to improve machine operation.

Calibrated nozzle 1 to top camera settings. Made a Libreoffice Calc spread sheet that seems to work.
Nozzle changer - it seems that the value Nozzle_Z_Exit corresponds to "Head 1 to part surface" (when used without Nozzle changer). So I canged it to
  • Nozzle_Z_Exit:-18.5311

for all nozzles. I also changed the Vacuum Test Value for each nozzle. New values

number / slot Nozzle Nozzle_X / Nozzle_X_Exit Vacuum Test Value comments
1 CN040 31.6000 50
2 CN065 43.1557 45
3 CN220 71.2480 25
4 CN400 83.9198 30
5 CN030 112.2321 70
6 CN140 123.5020 30

hopefully, this will make the nozzle changer work now. Tingo (diskusjon) 2. aug. 2019 kl. 18:39 (CEST)

I set up the Nozzle Changer in the pick and place machine. Coordinate values was "all over the place" (initially the machine picked to different places for where it thought different nozzle changer positions were) so the nozzle changer was not configured correctly from the factory / vendor.

Current values are

  • common for all nozzle change positions
    • Nozzle_Y: -663.6340
    • Nozzle_Y_Exit: -651.5847
    • Nozzle_Z: -15.85 (except slot / nozzle 4 which has -15.80)
    • Nozzle_Z_Exit: -16.59
  • values per slot / nozzle
number / slot Nozzle Nozzle_X / Nozzle_X_Exit Vacuum Test Value comments
1 CN040 31.6000 72
2 CN065 43.1557 45
3 CN220 71.2480 25
4 CN400 83.9198 30
5 CN030 112.2321 75
6 CN140 123.5020 30

more testing tomorrow. Tingo (diskusjon) 30. jul. 2019 kl. 17:10 (CEST)

In Camera List, Camera 1, Visual Preferences Set, changed Precision XY from 1 (0.0275 mm) to 2 (0.0550 mm), changed Precision A from 1 (0.0563 degrees) to 4 (0.2250 degrees) - this is the reccommended settings from the manual (chapter 8.3 Visual Preference Set). Tingo (diskusjon) 23. jul. 2019 kl. 12:07 (CEST)
In Camera List, Camera 2, Visual Preferences Set, changed Precision A from 1 (0.0563 degrees) to 4 (0.2250 degrees). Tingo (diskusjon) 23. jul. 2019 kl. 12:10 (CEST)

Software updates

Updated Vision Placer to 2.060. -Elias
Olav purchased ManyCam License. -Elias
Updated Vision Placer to 2.049. -Elias
Updated Vision Placer to 2.047T. Downloaded manuals and placed in Dropbox folder Bitraf Felles -Elias
Updated Vision Placer to 2.046R1. One major improvement is that older pictures are kept in a log. -Elias
kjørt Windows Update. Maskina har nå Win 10 Home versjon 1903. Måtte også oppdatere ManyCam til nyeste versjon ( for at kamera skulle fungere i VisionPlacer. Tingo (diskusjon) 1. aug. 2019 kl. 13:33 (CEST)
Oppdatert programvare (Vision Placer) til V2.044. Tingo (diskusjon) 16. jul. 2019 kl. 17:27 (CEST)

Hardware Updates

Changed the Digitizer to EasyCap, had to download the driver.
the W24 feeder is not feeding. Don't know why. Tingo (diskusjon) 2. aug. 2019 kl. 16:31 (CEST) (I think this issue was solved by replacing the driver. An extra driver came with the machine. Jensa and Elias changed it.)


Maskinen har følgende spesifikasjoner:

  • Model: VP-2500HP-CL32
  • mounting area: 300x500 mm
  • XY moving range: 460x660 mm
  • Z moving range: 22 mm
  • number of heads: 2
  • Resolution XY, Z, A: 0.025mm, 0.025mm, 0.0125° placement pitch >=0.45mm
  • motor type: AC Servo Leetro 400W / 600W
  • positioning mechanics: Ballscrew system HIWIN 0,03mm precision over 300mm travel
  • machine guide lines: HIWIN linear guide lines
  • positioning system: Closed loop encoder coupled to ballscrew spindle
  • placement speed with vision: 2000 to 4500cph
  • Nozzle changer: 6 slot
  • nozzle type: Samsung CP45 NEO
  • vision system: 1 top and 2 bottom 640x480 CCD cameras using different optics
  • alignment modes: area centering and vision model based assistance
  • placement range: 0201 to 24x24mm optional 30x30mm
  • feeder types: Push feeder, CL feeder, vibration feeder, strip feeder, trays
  • CL feeder slots: 32x 8mm cassettes slots
  • push feeder count: 19x 8mm lines + 21x 8mm lines total 40 included
  • vibration feeder: Optional 4x vibration feeder using each 7x SO-8 tubes width
  • JEDEC tray: 1x Jedec tray holder included
  • dispenser option: optional
  • machine dimensions: 960x1132x520mm
  • machine weight: 165 kg
  • power supply: AC 230V / 110V
  • air supply: External oil and water free 110L/min at 6Bar. Integrated 3 pressure regulator for push feeder, vacuum generator and CL feeder bank

Tools support

PnP maskinen er utstyrt med en kontroller for Bitraf sitt Tools system, men denne er ikke ferdig integrert med medlemssystemet.

Foreløpig må man sende en mqtt-melding for å sjekke ut PnP-maskinen (merk: normalt er maskinen utsjekket, dette er ikke noe vanlige brukere trenger å tenke på).

Tools-kontrolleren har egen strømforsyning, og egen 230V-ledning til strømforsyningen. Dersom Tools-kontrolleren slutter og virke, dra ut strømmen på den, vent litt og sett inn igjen. deretter må det sendes mqtt-melding på nytt for å sjekke ut maskinen.


VisionPlacer V2
aka "Eleesen SMT Control System" - programmet som brukes for å kjøre jobber på maskinen