• Members 5 posts
    Jan. 27, 2020, 8:54 p.m.

    This printer is new and has been available on the market since November 2019, I think. I am trying to get it to work with Inkcut. I am assuming that this printer uses GPGL. Is this correct? I'm wondering about the following:

    • Because I had difficulty cutting with similar software writen in Python running through inkscape, I am assuming that Silhouette changed or extended GPGL, or am I mistaken? The difficulty I am seeing is I can't use tool #2.

    • Is there a developer's guide for GPGL? How can one learn some of the specifics or features of this protocol?



  • Members 5 posts
    Jan. 29, 2020, 4:41 p.m.

    Looking though the code of gpgl.py:

    from inkcut.device.plugin import DeviceProtocol
    class GPGLProtocol(DeviceProtocol):
        def connection_made(self):
        def move(self, x, y, z, absolute=True):
            self.write("%s%i,%i"%('D' if z else 'M', x, y))
        def set_velocity(self, v):
            self.write('!%i' % v)
        def set_force(self, f):
            self.write("FX%i,1" % f)
        def set_pen(self, p):

    It looks like when we set the pen, we don't set the pen. I assume this is because we don't know how to do that?

  • Members 5 posts
    Jan. 29, 2020, 6:27 p.m.

    Looking at Jan Henrik's code for converting hpgl to gpgl at github.com/Jan--Henrik/MP2300-Tools/blob/master/hpgl2gpgl.py I see code for selecting a pen:

    elif c[:2] == "SP":

    I might be inclined to try replacing the last two lines with:

    def set_pen(self, p):
            self.write("j%i" % p)

    I'll give it a shot when I can.


  • Feb. 1, 2020, 4:13 a.m.

    Thanks for investigating! Your changes look correct. Feel free to make a pull request.

    I don't think set_pen is actually being used anywhere yet as I'm not sure how its typically used (never had a cutter with more than one pen). If you have any suggestions let me know.

  • Members 5 posts
    Feb. 3, 2020, 2:45 p.m.

    Thanks frmdstryr. So I think if I were to make that change I would also edit one of the enaml files and place a tool selector (dropdown 1-8) on it and default it to 1. Then during the initialization, if there is a non-1 present I would send a set_pen() with whatever number was selected.

    I don't have time to do that right now as I am learning to use the machine in Windows using Silhouette Studio but once I'm comfortable with using the machine and understand its quirks I will hopefully get to it.


  • Members 15 posts
    Feb. 16, 2020, 2:02 p.m.

    The Silhoutte Cameo line is widely used in the "Hobby Toilor" communities (intensively here in Germany) for printing sewing pattern without the need for glueing a couple of special marked DIN A4 sheets together.
    The Cameo 3 - first cutter with 2 tools, blade + pen - was special designed for this community to allow them to cut a pattern incl. seam allowance and paint the sewing line at the same time.
    The new Cameo 4 cutters are also developed for this community to allow them not only cutting patterns but also cutting fabrics directly.
    So the Cameo 4 does not only support Graphtec like blades and pens but also "Kraft-Blades", rotary blades (for cutting fabrics), sketch pens and punching tools.
    The downward pressure of Cameo 4 is 10 times!! more as on Cameo 3 - 5kg!!
    Further announed are two more versions, plus/pro with 15"/20" width.

  • Members 1 post
    June 5, 2020, 2:52 p.m.

    That looks correct, except that the J needs to be uppercase. I tested it with:

    echo "J2" | sudo tee /dev/usb/lp0
    echo "J1" | sudo tee /dev/usb/lp0

    and the head moves each pen into position as expected.

    There's some old documentation of the GPGL protocol ; the Cameo 4 also uses many other commands that don't appear in that command set.