Liteplacer - what I have learned and issues / problems remaining

1,097 views
Skip to first unread message

Peter Chaisty

unread,
Jul 4, 2018, 11:56:17 AM7/4/18
to OpenPnP
Hi all

I've been converting my Liteplacer to OPEN PNP (TinyG).

Firstly its a lovely clean GUI and I love the xml settings and GCode driver.

Crucial to getting it going from a fresh machine was was the notes below

<command type="COMMAND_CONFIRM_REGEX">
            <text><![CDATA[.*ok.*]]></text>
         </command>
         <command type="MOVE_TO_COMPLETE_REGEX">
            <text><![CDATA[.*stat:3.*]]></text>
         </command>

Pulled from various posts.
Without this one cannot send commands and get a response Open PNP likes..

I put the latest firmware on the TinyG board.

I took a Liteplacer machine settings from another user and I had some little success. (JL GV)


I made the following hardware  change

1/ Swopped limit switches on Z


I swopped the Z direction using 

$3po=0
$zsx=3
$zsn=0







So current status

Downward camera works (the new higher definition ones)

I can Jog X

If I jog Y the nozzle moves up / down as per the pnp doc page on axis definitition




I tried putting N1 instead of * into the Z axis definition but that didn't help

<axis name="z" type="Z" home-coordinate="0.0">
               <head-mountable-ids class="java.util.HashSet">
                  <string>N1</string>
               </head-mountable-ids>
            </axis>


Jogging the Z axis causes the nozzle to rotate.


I think the C axis is pulsing the vacuum solenoid.. either way its stuck on and gets very hot !.

What confuses me is that the machine file came from a Liteplacer setting file so how can I be so far off ?

I'd appreciate any help.

Regards

Peter







machine_initial.xml

Peter Chaisty

unread,
Jul 4, 2018, 12:38:57 PM7/4/18
to ope...@googlegroups.com
Just to answer something in my own post

On TinyG / Lightplacer

The Pump is on the spindle Control so M3, M5
The Solenid is on the Coolant so M8, M9

Added as boolean actuators as per the documentation here


Peter


--
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/ARzqnxObmSQ/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.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/888138e4-0cb5-447b-998b-0992d87bfc5a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jt Whissel

unread,
Jul 4, 2018, 6:10:49 PM7/4/18
to OpenPnP
I have been writing lots of code to support auto hight pick and placing / just getting everything to work smoothly on OpenPnP. I attached the latest TinyG firmware that I have been working on and my machine file if you're interested. Use these at your own risk since I'm in the middle of making sure everything is perfect. 
machine.xml
tinyg.hex

Peter Chaisty

unread,
Jul 5, 2018, 3:48:06 AM7/5/18
to ope...@googlegroups.com
Thanks so much for sharing our hard work.

I flashed the TinyG code ok
The machine file throws up an error though ?


 ERROR: java.lang.Exception: Error while reading machine.xml (No enum constant org.openpnp.machine.reference.driver.GcodeDriver.CommandType.HOME_COMPLETE_REGEX)

  </command>
         <command type="HOME_COMPLETE_REGEX">
            <text><![CDATA[.*momo:4,stat:1.*]]></text>
         </command>

Any ideas ?

Peter


Peter Chaisty

unread,
Jul 5, 2018, 5:12:49 AM7/5/18
to OpenPnP
oops Your hard work sorry.


Trying to get used to one of these Microsoft ergonomic split keyboards.

M. Mencinger

unread,
Jul 5, 2018, 5:29:18 AM7/5/18
to ope...@googlegroups.com
Hello 
Here is a test of hardware with Juki nozzles... https://youtu.be/DO8lbh_2isU  
Mike 

Sent from my iPhone
--
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.

Jt Whissel

unread,
Jul 5, 2018, 1:23:05 PM7/5/18
to OpenPnP
Yea you need to wait for the pull request to go through on github with my feature of adding that to openpnp.


On Thursday, July 5, 2018 at 3:48:06 AM UTC-4, Peter Chaisty wrote:
Thanks so much for sharing our hard work.

I flashed the TinyG code ok
The machine file throws up an error though ?


 ERROR: java.lang.Exception: Error while reading machine.xml (No enum constant org.openpnp.machine.reference.driver.GcodeDriver.CommandType.HOME_COMPLETE_REGEX

Jt Whissel

unread,
Jul 5, 2018, 1:25:50 PM7/5/18
to OpenPnP
Or you can just remove that line from that machine.xml if you wanted to use it right now :). Then when you home, you will have to double home if you use visual homing. 


On Thursday, July 5, 2018 at 3:48:06 AM UTC-4, Peter Chaisty wrote:

Jason von Nieda

unread,
Jul 5, 2018, 1:30:20 PM7/5/18
to ope...@googlegroups.com
PR has been merged to develop. You can download now from http://openpnp.org/downloads/ if you want, or wait a month and it will be promoted to Stable.

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.

Jt Whissel

unread,
Jul 5, 2018, 1:49:19 PM7/5/18
to OpenPnP
Ha, I was just coming back to retract my statement on waiting for the PR. That was some fast PR merging :) 

Peter Chaisty

unread,
Jul 5, 2018, 1:51:06 PM7/5/18
to ope...@googlegroups.com
Thanks Jason

Trying it now

Peter

Jt Whissel

unread,
Jul 5, 2018, 1:52:27 PM7/5/18
to OpenPnP
Sorry about the double post, but I just remembered something. Make sure you don't just load up that machine file and just moving stuff around. I have nozzle calibration turned on and you probably have different head offers (maybe) and camera locations. So make sure all those locations are good before you take flight. I don't want you to jam your nozzle into anything. 

Peter Chaisty

unread,
Jul 5, 2018, 1:55:04 PM7/5/18
to ope...@googlegroups.com
Hi

Thanks

I was just going to try and jog xy first ?
Anything I need to disable ?

Peter

Peter Chaisty

unread,
Jul 5, 2018, 1:57:47 PM7/5/18
to Peter, ope...@googlegroups.com
On trying to connect i get a timeout

Timeout waiting for response to G21 G90 G92 X0 Y0 Z0 A0 M8 M5



2018-07-05 18:55:44 Main DEBUG: Bienvenue, Willkommen, Hello, Namaskar, Welkom to OpenPnP version 2018-07-05_01-59-22.7719e36.
2018-07-05 18:55:44 OpenCvCamera DEBUG: Setting camera OpenCvCamera width to 1280
2018-07-05 18:55:44 OpenCvCamera DEBUG: Camera OpenCvCamera reports width 0.0
2018-07-05 18:55:44 OpenCvCamera DEBUG: Setting camera OpenCvCamera height to 1024
2018-07-05 18:55:44 OpenCvCamera DEBUG: Camera OpenCvCamera reports height 0.0
2018-07-05 18:55:44 OpenCvCamera DEBUG: Setting camera OpenCvCamera width to 1280
2018-07-05 18:55:44 OpenCvCamera DEBUG: Camera OpenCvCamera reports width 640.0
2018-07-05 18:55:44 OpenCvCamera DEBUG: Setting camera OpenCvCamera height to 1024
2018-07-05 18:55:45 OpenCvCamera DEBUG: Camera OpenCvCamera reports height 720.0
2018-07-05 18:55:45 CameraView DEBUG: Failed to load camera specific reticle, checking default.
2018-07-05 18:55:45 CameraView DEBUG: No reticle preference found.
2018-07-05 18:55:45 OpenCvCamera DEBUG: Setting property CAP_PROP_ISO_SPEED on camera Bottom Vision to 400.0
2018-07-05 18:55:45 OpenCvCamera DEBUG: Setting property CAP_PROP_AUTO_EXPOSURE on camera Bottom Vision to 0.0
2018-07-05 18:55:45 OpenCvCamera DEBUG: Setting camera Bottom Vision width to 1280
2018-07-05 18:55:45 OpenCvCamera DEBUG: Camera Bottom Vision reports width 0.0
2018-07-05 18:55:45 OpenCvCamera DEBUG: Setting camera Bottom Vision height to 1024
2018-07-05 18:55:45 OpenCvCamera DEBUG: Camera Bottom Vision reports height 0.0
2018-07-05 18:55:46 OpenCvCamera DEBUG: Setting property CAP_PROP_AUTO_EXPOSURE on camera Bottom Vision to 0.0
2018-07-05 18:55:46 OpenCvCamera DEBUG: Setting camera Bottom Vision width to 1280
2018-07-05 18:55:46 OpenCvCamera DEBUG: Camera Bottom Vision reports width 640.0
2018-07-05 18:55:46 OpenCvCamera DEBUG: Setting camera Bottom Vision height to 1024
2018-07-05 18:55:46 OpenCvCamera DEBUG: Camera Bottom Vision reports height 1024.0
2018-07-05 18:55:46 CameraView DEBUG: Failed to load camera specific reticle, checking default.
2018-07-05 18:55:46 CameraView DEBUG: No reticle preference found.
2018-07-05 18:55:56 ReferenceMachine DEBUG: setEnabled(true)
2018-07-05 18:55:57 GcodeDriver DEBUG: sendCommand(null, 250)...
2018-07-05 18:55:57 GcodeDriver DEBUG: sendCommand(COM3 null, 250) => []
2018-07-05 18:55:57 GcodeDriver DEBUG: sendCommand($SV=2, 10000)...
2018-07-05 18:55:57 GcodeDriver DEBUG: sendCommand(COM3 $SV=2, 10000) => [[sv]  status report verbosity     2 [0=off,1=filtered,2=verbose], tinyg [mm] ok>]
2018-07-05 18:55:57 GcodeDriver DEBUG: sendCommand($ME, 10000)...
2018-07-05 18:55:57 GcodeDriver DEBUG: sendCommand(COM3 $ME, 10000) => [$ME, tinyg [mm] ok>]
2018-07-05 18:55:57 GcodeDriver DEBUG: sendCommand($1pm=1, 10000)...
2018-07-05 18:55:57 GcodeDriver DEBUG: sendCommand(COM3 $1pm=1, 10000) => [[1pm] m1 power management         1 [0=disabled,1=always on,2=in cycle,3=when moving], tinyg [mm] ok>]
2018-07-05 18:55:57 GcodeDriver DEBUG: sendCommand($2pm=1, 10000)...
2018-07-05 18:55:57 GcodeDriver DEBUG: sendCommand(COM3 $2pm=1, 10000) => [[2pm] m2 power management         1 [0=disabled,1=always on,2=in cycle,3=when moving], tinyg [mm] ok>]
2018-07-05 18:55:57 GcodeDriver DEBUG: sendCommand($3pm=1, 10000)...
2018-07-05 18:55:57 GcodeDriver DEBUG: sendCommand(COM3 $3pm=1, 10000) => [[3pm] m3 power management         1 [0=disabled,1=always on,2=in cycle,3=when moving], tinyg [mm] ok>]
2018-07-05 18:55:57 GcodeDriver DEBUG: sendCommand($4pm=1, 10000)...
2018-07-05 18:55:57 GcodeDriver DEBUG: sendCommand(COM3 $4pm=1, 10000) => [[4pm] m4 power management         1 [0=disabled,1=always on,2=in cycle,3=when moving], tinyg [mm] ok>]
2018-07-05 18:55:57 GcodeDriver DEBUG: sendCommand($mt=1000000000, 10000)...
2018-07-05 18:55:57 GcodeDriver DEBUG: sendCommand(COM3 $mt=1000000000, 10000) => [[mt]  motor idle timeout 1000000000.00 Sec, tinyg [mm] ok>]
2018-07-05 18:55:57 GcodeDriver DEBUG: sendCommand(G21 G90 G92 X0 Y0 Z0 A0 M8 M5, 10000)...
2018-07-05 18:56:07 MessageBoxes DEBUG: Enable Failure: Timeout waiting for response to G21 G90 G92 X0 Y0 Z0 A0 M8 M5


Peter

Jt Whissel (Phara0h)

unread,
Jul 5, 2018, 10:12:55 PM7/5/18
to OpenPnP
If you run this shitty python script i whipped up it should set your board values to the same as mine. That is my first guess to your problem. Make sure to set your TinyG com port to "COM3" in the device tree (assuming your using windows) if not you will have to edit it in the python script. Make sure your gcode driver com port is pointing to the right port as well. 
restore_tinyg_settings.py
tinyg2.conf

Peter Chaisty

unread,
Jul 6, 2018, 10:44:20 AM7/6/18
to ope...@googlegroups.com
Thanks 

I'm making some progress.
I'll get back when I have more of it working.

Peter

Jt Whissel (Phara0h)

unread,
Jul 6, 2018, 11:59:38 AM7/6/18
to OpenPnP
I am still working on it every night for hours when I get home for work. I will be updating with progress as well. I just want to place 0402 better than my shaky hands. Who knew this would be such a hard thing to do? 

Peter Chaisty

unread,
Jul 7, 2018, 10:43:13 AM7/7/18
to OpenPnP
0402's are the spawn of evil !

My aim is to save my back bending over a board for hrs assembling by hand.
My biggest hope is to place QFP's accurately.

I started with a blank machine setup and using your tinyG hex I can jog x,y,z and home on the limit switches.
Down looking pixel scaling is done now and I can move 300mm on the ruler with no discernible error on a steel ruler in x and Y.
 
As I do each stage i am copying over the G code from your machine.xml file.

Next is the Nozzle setup.

I havn't looked at your machine file for placing yet but I noticed in PNP that the height of the nozzle is set by manual jogging.
Whats the procedure using your code ?
I was used to the Liteplacer code where it probed for the board height etc .

I'm hoping on Monday to pickup and place a component so I am just anticipating problems in advance ?

Peter

Peter Chaisty

unread,
Jul 7, 2018, 10:58:51 AM7/7/18
to ope...@googlegroups.com
In fact i see

G38.2 - probe toward workpiece, stop on contact, signal error if failure
So you implemented G38 in the Tiny G code ?

<command type="PLACE_COMMAND">
            <text><![CDATA[G0 Z-30]]></text>
            <text><![CDATA[G38.2 Z-50 F500]]></text>
            <text><![CDATA[M9]]></text>
            <text><![CDATA[G4 P1]]></text>
            <text><![CDATA[G0 Z0]]></text>
         </command>

I assume this means on each pick it probes down until it detects the part
Pump on
Pause for P1
Then raise the pickup head 

very neat






Peter Chaisty

unread,
Jul 7, 2018, 11:02:46 AM7/7/18
to Peter, ope...@googlegroups.com
In fact for completeness so others can see

<command type="PICK_COMMAND">
            <text><![CDATA[G0 Z-30]]></text>
            <text><![CDATA[G38.2 Z-50 F500]]></text>
            <text><![CDATA[M8]]></text>
            <text><![CDATA[G4 P1]]></text>
            <text><![CDATA[G0 Z0]]></text>
         </command>
         <command type="PLACE_COMMAND">
            <text><![CDATA[G0 Z-30]]></text>
            <text><![CDATA[G38.2 Z-50 F500]]></text>
            <text><![CDATA[M9]]></text>
            <text><![CDATA[G4 P1]]></text>
            <text><![CDATA[G0 Z0]]></text>
         </command>
         <command type="PUMP_ON_COMMAND">
            <text><![CDATA[M9]]></text>
            <text><![CDATA[M4]]></text>
         </command>

Tomislav Darlic

unread,
Mar 13, 2019, 7:26:34 PM3/13/19
to OpenPnP
Hi 

I have the same problem trying to setup the Liteplacer with TinyG. I am using official tinyg-master-440.20 firmware and I have to "double home" every time. Essentially, my visual home works only every second time. For the life of me I cannot get it to work whatever I try. I've been pulling my hair over this for last 2 days. Would you care to explain why is this happening. 
Is the tinyG hex file you provided specific version or you have compiled your own version with the changes you need?

Thanks

Juha Kuusama

unread,
Mar 14, 2019, 3:08:39 AM3/14/19
to OpenPnP
Hi Tomislav,
Please send me email about your issue, let’s work this out.
Best regards, Juha
Reply all
Reply to author
Forward
0 new messages