Intro and some beginner questions

496 views
Skip to first unread message

Lisandro B

unread,
Aug 5, 2015, 1:13:46 PM8/5/15
to OpenPnP
Hi to all:
First ill like to deeply thanks anyone involved with openpnp development, I really think this would be a game changer

Some questions:

Im planing on building a p&p, have built a cnc and a delta 3d printer in the past. Currently Im thinking about the design and defining the basics. what do you think abous these:

"inspired" on the CHMT36 Chinese p&p

-two nema 17 on the Y axis
-one on the X
-Tree on Z, two heads and one for tape dragging
- nema 8 hollow shaft
- 9mm linear rails for  Z
-GT2 6mm on all

On the nozzle front, cant decide between these two:
http://www.aliexpress.com/item/JUKI-NOZZLE-500-type-for-pick-place-machine-copy-new/2046763430.html
http://www.aliexpress.com/item/SAM-CP45-CN030-nozzle-for-pick-place-SMT-machine/2047179501.html

for the electronics im thinking on a arduino mega , wich I have and can replace easily, with some drv8825 drivers, maybe linuxcnc with a mesa card in the future
-




table size will be established latter, for now im working on the purchase list

Really appreciate any input on this

Jason von Nieda

unread,
Aug 5, 2015, 10:03:01 PM8/5/15
to ope...@googlegroups.com
Hi Lisandro,

Welcome to the list! You might want to take a look at http://openpnp.org/hardware to see my OpenBuilds design. This is a completely open source design based on OpenBuilds extrusions and with a head inspired by the TM-240, which is itself the inspiration for the CHMT36. It's pretty similar to the specs you list.

For nozzles, I am currently using Fuji CP6 nozzles but I am working on switching over to the Juki style nozzles.

Jason


--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To post to this group, send email to ope...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/b4622c6b-307b-4e1a-b525-4874bf4290f2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Lisandro B

unread,
Aug 6, 2015, 8:12:45 AM8/6/15
to OpenPnP
Dear Jason:
Thanks for your reply, REALLY like your design ;)

I saw your videos on youtube, do you think that your design could benefit if upgrading to some beafier nema23 steppers? Or I didnt found a video of the machine at full speed?
Also couldnt find any pictures of the head on the chinese p&p without the shroud, did anybody has one?
Did you consider the CP45 nozzle?

Jason von Nieda

unread,
Aug 7, 2015, 5:23:41 AM8/7/15
to ope...@googlegroups.com
Hi Lisandro,

I run my machine at 12v, so if I wanted it to go faster I'd probably start by using a higher voltage. I'm happy with the speed I have now, though. And actually, as more vision is added it will slow down some. I guess my answer is that I'm not concerned with speed right now :)

I am working on getting some pictures of the TM-240 head without it's shroud. I'll let you know.

I looked at the CP45 nozzles a bit, but I have not been able to find a good nozzle adapter for them. I decided instead to focus on the Juki nozzles. They seem to be more readily available and are starting to be used by some other low end pick and place machines, which should increase availability. See: http://www.robotdigg.com/product/517/Nozzle+w/+Adapter+to+5mm+Hollow+Shaft+Stepper

Jason


--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To post to this group, send email to ope...@googlegroups.com.

mojalovaa1

unread,
Aug 7, 2015, 8:23:16 AM8/7/15
to OpenPnP
Jason have you experience with robotdigg , my friends is buy some stepper motors on that web  and newer is come to hem ?
I m send some questions about nozzle holder and stepper and newer answer me .

Jason von Nieda

unread,
Aug 7, 2015, 9:39:18 AM8/7/15
to ope...@googlegroups.com
I have only ordered from them once. The process was complex but my items arrived just fine. When ordering you have to email them and then send the money by PayPal - they do not have a cart checkout. 

Jason


On Fri, Aug 7, 2015 at 8:23 PM, mojalovaa1 <moja...@gmail.com> wrote:
Jason have you experience with robotdigg , my friends is buy some stepper motors on that web  and newer is come to hem ?
I m send some questions about nozzle holder and stepper and newer answer me .

--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To post to this group, send email to ope...@googlegroups.com.

Richard Hornbaker

unread,
Aug 20, 2015, 3:59:02 PM8/20/15
to OpenPnP
Robotdigg.com ... Great prices, but expensive shipping to the US, and delivery is slower. (Like $50+ for a typical order, and several weeks for delivery.) So, add all the extras you might need in your first order.

Lisandro B

unread,
Aug 21, 2015, 7:50:04 AM8/21/15
to OpenPnP
Robotdig has an aliexpress store, wich i think its better because you get some purchase protection:
  1. http://www.aliexpress.com/store/228043

Maddog

unread,
Sep 11, 2015, 1:32:26 PM9/11/15
to OpenPnP
If I already have an existing delta printer using marlin firmware, are the only required firmware changes to add PNP is add pick, place and actuator ON OFF commands to the marlin firmware?

How are the changing of picker tips from 0402 to 1206 (and other larger sizes) handled in the firmware/openpnp?
Thanks for the insight?

Thomas S. Knutsen

unread,
Sep 11, 2015, 1:55:02 PM9/11/15
to openpnp
For the marlin firmware, you do not need to do any changes. The neccessary changes are done in the marlin driver in openpnp.

BR.
Thomas.

--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To post to this group, send email to ope...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--

 Please  avoid sending  me  Word  or  PowerPoint  attachments.
 See  <http://www.gnu.org/philosophy/no-word-attachments.html>
PDF is an better alternative and there are always LaTeX!

Rich Obermeyer

unread,
Sep 11, 2015, 5:48:09 PM9/11/15
to ope...@googlegroups.com
Thomas,
Can you elaborate?
It sounds like I just hook it up but I am confident there is more to it than that as you can see below.
Have you done something like this already?

In my firmware M106 is Fan ON so M106 S255 "Pick" (in OpenPNP). I guess that means is to drive the Vacuum ON.  So if I connected the vacuum power to the Fan, it should pick up parts if the right adapter for that part is attached to the PNP head.
In the firmware M107 is Fan OFF so M107 is "place"(in OpenPNP).  I guess that means Turns the Vacuum OFF and the component should stay where it is.

The firmware has NO matching code to M8 "actuator-on", M9 "actuator-off", M17 "enable" or M18 :disable".
So you can see my confusion when you say
"For the marlin firmware, you do not need to do any changes. The necessary changes are done in the marlin driver in openpnp."

The obvious question to me is what do these 4 commands do?
The other question is how is the stepper motor that does the component rotation work and configured?
Thx for the help.
Rich


OpenPNP default gcodes using Marlin driver.
<pick-gcode>M106 S255</pick-gcode>
<place-gcode>M107</place-gcode>
<actuator-on-gcode>M8</actuator-on-gcode>
<actuator-off-gcode>M9</actuator-off-gcode>
<enable-gcode>M17</enable-gcode>
<disable-gcode>M18</disable-gcode>

Below is the list of implemented codes from the Arduino code I have.
Implemented Codes

- G0  -> G1
- G1  - Coordinated Movement X Y Z E
- G4  - Dwell S<seconds> or P<milliseconds>
- G20 - Units for G0/G1 are inches.
- G21 - Units for G0/G1 are mm.
- G28 - Home all axis or named axis.
- G29 S<0..2> - Z-Probe at the 3 defined probe points. S = 1 measure avg. zHeight, S = 2 store avg zHeight
- G30 - Single z-probe at current position
- G31 - Write signal of probe sensor
- G32 S<0..2> P<0..1> - Autolevel print bed. S = 1 measure zLength, S = 2 Measure and store new zLength, P = 1 iterative correction for delta
- G90 - Use absolute coordinates
- G91 - Use relative coordinates
- G92 - Set current position to coordinates given
- G131 - set extruder offset position to 0 - needed for calibration with G132
- G132 - calibrate endstop positions. Call this, after calling G131 and after centering the extruder holder.

RepRap M Codes

- M104 - Set extruder target temp
- M105 - Read current temp
- M106 - Fan on
- M107 - Fan off
- M109 - Wait for extruder current temp to reach target temp.
- M114 - Display current position

Custom M Codes

- M20  - List SD card
- M21  - Init SD card
- M22  - Release SD card
- M23  - Select SD file (M23 filename.g)
- M24  - Start/resume SD print
- M25  - Pause SD print
- M26  - Set SD position in bytes (M26 S12345)
- M27  - Report SD print status
- M28  - Start SD write (M28 filename.g)
- M29  - Stop SD write
- M30 <filename> - Delete file on sd card
- M32 <dirname> create subdirectory
- M42 P<pin number> S<value 0..255> - Change output of pin P to S. Does not work on most important pins.
- M80  - Turn on power supply
- M81  - Turn off power supply
- M82  - Set E codes absolute (default)
- M83  - Set E codes relative while in Absolute Coordinates (G90) mode
- M84  - Disable steppers until next move,
        or use S<seconds> to specify an inactivity timeout, after which the steppers will be disabled.  S0 to disable the timeout.
- M85  - Set inactivity shutdown timer with parameter S<seconds>. To disable set zero (default)
- M92  - Set axisStepsPerMM - same syntax as G92
- M104 S<temp> T<extruder> P1 F1 - Set temperature without wait. P1 = wait for moves to finish, F1 = beep when temp. reached first time
- M105 X0 - Get temperatures. If X0 is added, the raw analog values are also written.
- M112 - Emergency kill
- M115- Capabilities string
- M116 - Wait for all temperatures in a +/- 1 degree range
- M117 <message> - Write message in status row on lcd
- M119 - Report endstop status
- M140 S<temp> F1 - Set bed target temp, F1 makes a beep when temperature is reached the first time
- M190 - Wait for bed current temp to reach target temp.
- M201 - Set max acceleration in units/s^2 for print moves (M201 X1000 Y1000)
- M202 - Set max acceleration in units/s^2 for travel moves (M202 X1000 Y1000)
- M203 - Set temperture monitor to Sx
- M204 - Set PID parameter X => Kp Y => Ki Z => Kd S<extruder> Default is current extruder. NUM_EXTRUDER=Heated bed
- M205 - Output EEPROM settings
- M206 - Set EEPROM value
- M207 X<XY jerk> Z<Z Jerk> E<ExtruderJerk> - Changes current jerk values, but do not store them in eeprom.
- M220 S<Feedrate multiplier in percent> - Increase/decrease given feedrate
- M221 S<Extrusion flow multiplier in percent> - Increase/decrease given flow rate
- M231 S<OPS_MODE> X<Min_Distance> Y<Retract> Z<Backlash> F<ReatrctMove> - Set OPS parameter
- M232 - Read and reset max. advance values
- M233 X<AdvanceK> Y<AdvanceL> - Set temporary advance K-value to X and linear term advanceL to Y
- M251 Measure Z steps from homing stop (Delta printers). S0 - Reset, S1 - Print, S2 - Store to Z length (also EEPROM if enabled)
- M280 S<mode> - Set ditto printing mode. mode: 0 = off, 1 = on
- M300 S<Frequency> P<DurationMillis> play frequency
- M303 P<extruder/bed> S<printTemerature> X0 - Autodetect pid values. Use P<NUM_EXTRUDER> for heated bed. X0 saves result in EEPROM.
- M320 - Activate autolevel
- M321 - Deactivate autolevel
- M322 - Reset autolevel matrix
- M340 P<servoId> S<pulseInUS> : servoID = 0..3, Servos are controlled by a pulse with normally between 500 and 2500 with 1500ms in center position. 0 turns servo off.
- M350 S<mstepsAll> X<mstepsX> Y<mstepsY> Z<mstepsZ> E<mstepsE0> P<mstespE1> : Set microstepping on RAMBO board
- M400 - Wait until move buffers empty.
- M401 - Store x, y and z position.
- M402 - Go to stored position. If X, Y or Z is specified, only these coordinates are used. F changes feedrate fo rthat move.
- M500 Store settings to EEPROM
- M501 Load settings from EEPROM
- M502 Reset settings to the one in configuration.h. Does not store values in EEPROM!
- M908 P<address> S<value> : Set stepper current for digipot (RAMBO board)
*/


You received this message because you are subscribed to a topic in the Google Groups "OpenPnP" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/openpnp/65leRra5K-E/unsubscribe.
To unsubscribe from this group and all its topics, send an email to openpnp+u...@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Rich

Thomas S. Knutsen

unread,
Sep 11, 2015, 6:58:47 PM9/11/15
to openpnp
Marlin should not need any changes, the basic code from the marlin github repo should work with no changes. 
The C axis motor should go in the extruder position E0. 

Then you do the following changes in your machine.xml file:
 Pick gcode: "M106 255", place gcode: "M107" 
Actuator on: "M42 P8 S254" (not sure why 255 didnt work here)
Actuator off: "M42 P8 S0"
Vibrator actuator on (its a new actuator class I made): "M42 P32 S254"
Vibrator actuator of: "M42 P32 S0"
Enable (pressing start button, this starts vacuum pump): "M42 P16 S254"
Disable "M42 P16 S254" (stop the vacuum pump when machine not running)

The M42 command is a direct port write command, and are much simpler to get working than the annoying interrupts in marlin. 
The P value is the port in the arduino, as such you need to look closely at the RAMP schematic. 
By using M42 you need to have your tounge in the rigth mouth, or you may mess up the stepper drivers and such. Start by using the connectors on the bottom of the board where one can attach a LCD. to interface, to drive any loads, you just use a N-channel MOSFET, personal favorite is IRF510 or such. 

If you want, I can send you my marlin config file if you think that helps?

Thomas.


For more options, visit https://groups.google.com/d/optout.

Rich Obermeyer

unread,
Sep 11, 2015, 7:29:12 PM9/11/15
to ope...@googlegroups.com
Thomas,
Very enlightening.  I didn't know about using the M42 command to do the work directly.
So I would modify the commands in the config file to direct openpnp to use?
How is the translation done for the C axis?  I need to use E1.  Where is this set?
Thx for the info,
Rich


Neil Jansen

unread,
Sep 12, 2015, 12:09:03 AM9/12/15
to ope...@googlegroups.com
By "existing delta printer", do you mean a FirePick Delta, or some other linear tripod-type delta (Kossel, Rostock)?
 
--
Neil Jansen, Co-Founder
Tin Whiskers Technology

Rich Obermeyer

unread,
Sep 12, 2015, 12:47:38 PM9/12/15
to ope...@googlegroups.com
Rostock max


--
You received this message because you are subscribed to a topic in the Google Groups "OpenPnP" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/openpnp/65leRra5K-E/unsubscribe.
To unsubscribe from this group and all its topics, send an email to openpnp+u...@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.

Maddog

unread,
Sep 26, 2015, 2:18:38 AM9/26/15
to OpenPnP
How are the stepper motors for extruders addressed in openpnp if used to drive an paste extruder?
Reply all
Reply to author
Forward
0 new messages