Canned pick and place cycles on Kayo machines

42 views
Skip to first unread message

Laurence M

unread,
Jul 1, 2026, 3:15:35 PM (5 days ago) Jul 1
to OpenPnP
Hi all,

I've been working on an OpenPnP native driver for my Kayo 1706, which is a 6 head machine.
I took a fair bit of inspiration from Superhouse and Glen English's work for the A4 models.
It mostly entirely works using their reversed protocol with a couple of things needing changed. I've managed to get all the way through testing all functionality and have hit a pretty giant hurdle. The 1706 has a supplement valve to open a low pressure regulated air line for the blow functionality. It's two-step - open the supplement valve, delay, then open the nozzle blow valve (closing vac of course). Then close once blow is complete.
It looks like Superhouse had this working on the A4 models via a dedicated protocol command. Bad news for me - the command to open and close the supplement valve is not implemented on the 1706 main controller. I pulled the binary from controller and put it through Ghidra, and sure enough it is not implemented.
The supplement valve functionality is implemented via canned cycles though. According to the reference on Superhouse's OpenKayo, Glen had the canned cycles implemented in his python interface, where it looks like Superhouse directly used the supplement valve command.
Im pretty hesitant to patch the driver binary. Aside from this everything else works.
So I wonder if OpenPnp supports canned cycles? If so, can anyone suggest an approach?
The canned cycles are basically canned pick from a feeder and canned place on board as two separate commands.
Pick does: open feeder, open vac for nozzle, z down, delay, z up, close feeder
Place does: z down, open supplement, delay, close supplement, close vac open blow for nozzle, delay, z up, close blow.
Maybe I have to hijack moveTo and actuate, watching for z moves in my driver and override with canned cycles.

Thanks

j...@oxer.com.au

unread,
Jul 1, 2026, 8:12:41 PM (4 days ago) Jul 1
to OpenPnP
Hi Laurence,

I don’t have an answer for you yet, but this is perfect timing! I’m “SuperHouse”, and I literally took delivery of a Kayo S600 yesterday. This photo is bringing it up my driveway. Right now it's sitting in my loading dock while I plan how to swap out my pair of Kayo A4s without losing too much production time.

So I am about to be diving into the Kayo protocol again and figuring out how the newer S600 handles it.

Let’s see if we can figure it out :-)

Jonathan Oxer
2026-07-01 12.39.09.jpg

Laurence M

unread,
Jul 1, 2026, 8:42:07 PM (4 days ago) Jul 1
to OpenPnP
Hey Jon,
I'd actually sent you an email before I posted here!
Good luck with the new machine. I was looking at them just yesterday.
They seem fairly different to the 1706 I have - newer pc software, different down camera and the fast cameras have moved to the head?

Laurence

Laurence M

unread,
Jul 2, 2026, 3:08:50 AM (4 days ago) Jul 2
to OpenPnP
Well, pending a bit more testing, I think I have a working solution.
Blow is tucked away in canned cycles only in place and discard, so I dont actually need to use the canned cycle for pick. I let openpnp handle that.
For place, I made a KayoNozzle that extends ReferenceNozzle. I override moveToPlacementLocation to add a placementDive=true bool.
Then in moveTo in my driver I can look at placementDive (via headMountable getter) and that tells me if the move is to place the part.
If its true, I send the command to do a canned place, instead of driving z down via normal move.
I also had to remove the (non-working) blow actuators that I had for each nozzle.

Thanks again
Reply all
Reply to author
Forward
0 new messages