The sensor seems to work with Vcc = 5V -> we can use the end stop connectors directly - except for the pin-out. The stops on the machine has the pinout gnd, signal, vcc. Female connector.

Current state*: the current cables are 70 cm, which is too short. 2 of them are joined by pin-header pieces - temporarily. The X end-stop is wired with jumper wires to the socket on the machine. The firmware doesn't

support endstops yet.

Power supply

12V. Brown lead -, blue lead +.

Suction pump

The suction pump can be wired between +12V and the 3rd screw connector from the left - D9 on the Arduino. 4th screw from the left is +12V.
A red LED on the RAMPS board lights up when this output is active.
At 12V, the pump draws 100 mA while running, 500 mA if stalled (inlet blocked). The pump is rated for 24V.

Arduino program

The arduino receives commands over the serial link, and generates stepping pulses. The program contains configuration variables for the maximum acceleration (steps/sˆ2) and axis range (steps). The program will not step outside the defined range for any axis, or below 0.

The current commands are:

S

Stop

Stop as soon as possible without loosing position.

W

Where

Reply with the current position, four integers.

V x,y,z,r

Velocity

Set the target velocity for each axis x,y,z,r are integer values for steps/second.

P

pick

turn on suction pump

p

place

turn off suction pump

integers can be negative

if arguments are missing, they are assumed to be 0

The V command sets the target velocity. The motors accelerate to this velocity, with the maximum acceleration for each axis, which is defined
in the arduino program.

Additional planned commands, not implemented:

G x,y,z,r

Go

Go to the absolute position specified by x,y,z,r as fast as possible.

M x,y,z,r

Move

Move x,y,z,r steps relative to the current position as fast as possible.

Also needed:

vacuum pump and valve control

set acceleration and axis ranges ?

home

Note: This is not Gcode. A move will not be along a straight line, since the axes can have different acceleration settings.
The Accelstepper library supports straight-line movement for several motors, but only with a constant velocity - not with acceleration.
These commands will be useful for bookmarking locations, e.g. above the component storage and above the target circuit board.

wishlist

python modules

camera

menu->preferences->Raspberry Pi Config, enable camera

set GPU memory to 128

Joystick interfacing

We currently have the following two joysticks.

Logitech WingMan Extreme Digital

PC game port joystick. The old-school analog mode works, but only when the joystick is powered.
The two stick axes, the hat switch, and two buttons work in the analog mode.
In the github repository is a program for a Pro Micro board, to convert an analog game-port joystick to and USB joystick (pick_n_place/joystick/pro_micro_joystick/).

The joystick has a digital mode as well, which gives access to more buttons, but I could not get this to work.
[1][2]

Attack3

USB joystick. Will use this one for now, since it gives easy access to all buttons.

Button numbering (starting from 1, most buttons have their number printed on them):