IndexPNP Build

Show off what you've made and post your build logs here!
Post Reply
Imtippmann
Posts: 16
Joined: Sat Jan 19, 2019 7:22 pm
Been thanked: 1 time

IndexPNP Build

#1

Post by Imtippmann »

My latest project will be to build a Pick-and-place machine based on the IndexPNP design by Stephen Hawes (https://github.com/sphawes/index). I will however be running it on 5/6 axis GRBL instead of Marlin. I am currently printing parts and gathering parts. While I wait for all of the hardware to arrive I am working out how to rewrite some of the GRBL code to be more compatible with a PNP machine (customize a number of G-codes to control outputs).

Modifying GRBL will most likely be the most difficult part. Even though its unnecessary it will be an interesting challenge to learn to do it.

I will try to document my progress here as best I can.
Imtippmann
Posts: 16
Joined: Sat Jan 19, 2019 7:22 pm
Been thanked: 1 time

Re: IndexPNP Build

#2

Post by Imtippmann »

I have not managed to rework grbl yet, but I do have 4 axis coordinated motion. X,Y,Z and A are all moving under the control of OpenPNP. OpenPNP is running via simulated camera input, adding cameras is probably up soon. Once I have cameras set up I can use some component tape to test things as I make the nozzles and such

OpenPNP is a bit on the quirky side to get set up, but not terribly difficult. Setting up for 2 opposing motion heads on 1 axis was easier than I expected.

The first of the motion, I have since added the Z-axis and set up one of the head rotation motors.


Opposing motion heads, I still need to adjust the design for the head carriages to use the incorrectly purchased nema 17 hollow shaft steppers





Sent from my SM-G955U using Tapatalk

Imtippmann
Posts: 16
Joined: Sat Jan 19, 2019 7:22 pm
Been thanked: 1 time

Re: IndexPNP Build

#3

Post by Imtippmann »

I have tuned out some of the motion a bit more. I now have X,Y, Z , and rotation on 2 heads.

I also have written code onto an arduino to control a relay board that will activate things such as camera lighting, vacuum solenoids, blow off solenoids and other miscellaneous things.

I have also set up a pair of old webcams I had to act as top and bottom camera. They are old and super low resolution, so they needed to be really close and well lit. I 3D printed a camera and led ring light assembly and was able to get it set up well enough to identify the tape holes.



Sent from my SM-G955U using Tapatalk

Imtippmann
Posts: 16
Joined: Sat Jan 19, 2019 7:22 pm
Been thanked: 1 time

Re: IndexPNP Build

#4

Post by Imtippmann »

I have 5 axis grbl running fine, however it does not really play well output wise. I can only control one spindle related output and one coolant related pin, the m9 or m5 command will kill all pins related to either. This required having a second arduino controlling the multitude relays needed

I tried using the openpnp branch of Marlin. It runs on the Mega nicely after creating a custom pin map. It allows sending of an M42 Pxx Syy (xx=pin number, yy=0-255). Motion runs smoothly and I can milk a lot more speed from it. The downside is that because it only allows control of 4 axis at a time because 3d printers only need one extruder at a time.

I found a version of marlin that allows up to 6 axis of simultaneous coordinated motion. I'm currently attempting to create a pin map and get it to compile.

In the meantime I'm debating picking up a rearm for smootieware. I have never played with smoothieware, but it seems to be the suggested control software. The rearm allows using smoothie with a ramps board, I would assume I should be able to remap the pins to match the grbl-mega pinout.

Sent from my SM-G955U using Tapatalk

Imtippmann
Posts: 16
Joined: Sat Jan 19, 2019 7:22 pm
Been thanked: 1 time

Re: IndexPNP Build

#5

Post by Imtippmann »

After a full day trying to get grbl or marlin to support everything I need I decided to dive into Smmthieware. Because an Arduino will not support Smoothieware firmware I had to swap everything to a BigTreeTech skr 1.3 that I had laying around. Within an hour I had a known good OpenPNP configuration ported over to the skr and had 4 axis motion(5 drivers, 2 for y axis) and control of all the MOSFETs on the board via M800-M811 commands. After that I adjusted the porting a bit and took over the EXP1 display connection to control the relays I had already set up because my lights are 12v but I am driving the board with 24.

I have a Re-Arm board on order now. I could easily move everything over to the skr and leave it, but it leaves a lot to be desired for this project. I would need an external driver to get up to the 6 total drivers I need, the pins are mapped out all over the board (makes sense for a 3d printer). By driving a GRBLDuino MEGA shield with a more powerful controller I will be able to get the best of both. I will get easily cloned drivers(smoothie wont do that in software), I get the nice labeled screw terminals around the perimeter, and I can push the stepper drives to 40v.

The only change I will probably make to the shield is to swap the dupont stepper connectors to JST XH to match the stepper wires I have.
Imtippmann
Posts: 16
Joined: Sat Jan 19, 2019 7:22 pm
Been thanked: 1 time

Re: IndexPNP Build

#6

Post by Imtippmann »

Well, it took some major work but I got my GRBLDuino Mega working while stacked on top of a Re-Arm board. The wiring is still a mess and I need to mount a few things but it works

I had not expected that the Re-Arm board would not have all of the arduino header pins populated. Of course at least 5 of the pins that were left unconnected would have to be pins I need. Correcting this required jumpering a number of connections. The reason behind this is that GRBL uses a different pin map than that of the ramps1.4 that the Re-Arm was designed for.

Being that the lpc1768 is a 3.3v chip, some pins are running through a 3.3v-5v level shifter. This messes with some of the other functions such as the X-Limit being mapped to what was a heat bed output that behaves as an output only.

After the work, I have it functioning nicely. It is very nice to have the ability to make major changes to the configuration. By simply editing the config.txt on the sd card and pressing the reset button I can enable or disable things, change pinmaps and anything else.ImageImageImageImage

Sent from my SM-G955U using Tapatalk

Post Reply