Category Archives: Craft Cutting

Low cost markers that fit the Expression

I found some inexpensive markers that fit (a bit tightly) the pen holder in the Cricut Expression.

They are $2.97 at Walmart, and can be found in the kid’s coloring section with the crayons.  They are Cra-Z-Art Washable Mini Markers.  I didn’t notice the “Washable” bit until just now as I was writing this post.  The mini Sharpies might work too, but they are a bit expensive.  I’ll probably browse the shelves at Office Depot to see if I can find the Sharpie minis.

Repurposing the cricut expression

Now that I have the firmware in a working condition, I’m contemplating all the neat little uses I can get out of this machine.

To be honest, I’m probably really late to this whole craft cutting party, since I’m really not a crafting person.  I’m more of an electronics/computer programming hobbyist, so that is my style of crafting.  However, this machine interests me greatly because I’ve always been intrigued with programming tiny micro controllers that control machines.

Luckily, I don’t have a huge investment in cartridges like this person on Craigslist:


I mean, really!  Could you imagine the money involved in this?  I’ll be honest, I admire Provo Craft’s product development, engineering and marketing teams that were able to design, produce, and sell this machine and it’s required proprietary cartridges.

Provo Craft invested heavily in their artwork library, product development, the little books that come with the cartridges, etc.  I really do hand it to them.

If you’re a normal user, you can be perfectly happy living in the Provo Craft eco system.  If you’re like me, where you want to create just anything arbitrarily, then the love affair ends.

For example, I wanted to cut a Star Trek logo out of card stock to make little lamp shades.  I could not do that with the regular Cricut.  So my only option was to print the logo using my large format inkjet printer, then use an exacto knife to cut them out.

Now that I have my own software running on the machine, I can cut anything I want:


And since there are tons of these machines on Craigslist and Ebay for cheap, anyone who is able to use my firmware can pickup a really good machine, skip the cartridge investment, and express their Free Expression:


So what’s next?  I think I’m going to build a laser cutting head so that I can do some burnishing and engraving wood, leather, etc.


The laser cutter mod would actually be very simple to implement, and it’s at the top of my list.

Another modification I’d like to try is automatic registration so that I can increase the accuracy of multi-cuts.

The controller in the Expression has a lot of IO that I could borrow from some controls that I’m not using, such as the three dials that control pressure, size, speed, or the cartridge port which has four digital pins I could use.

Another mod that is possible is adding Dremel tool, but this will require some more extensive mods that may end up being overkill.  I might save the Dremel mod for my stand alone table top CNC  machine that I plan to build from used Cricut Personal machine parts.


FreeExpression Firmware Roadmap

Now that I have the base code working, and all the moving parts moving, I am planning the full firmware roadmap.  The original expression machine is a very capable machine but it is designed to be used with the manufacturer’s cartridges.  My ambition with this project is of course to break that cord and use the machine with open source software (Inkscape) in a user friendly manner.  Previous attempts by other people to use these machines with third party software have either been incredibly tedious, or resulted in litigation (yuck).

My approach is quite different.  I have decided to completely write new software that is installed onto the machine itself, erasing the manufacturer’s software (to avoiding copyright infringement) and implement my own grand design for the machine.


Let’s talk about the user controls on the machine:


There are three dials marked Speed, Size, Pressure.  These are convenient because while the software (Inkscape) can manage these as well through the Export/Plot interface, it seems logical to support this functionality through the dials.


The size dial is an interesting one.  In the original machine’s design,  you load a shape from a cartridge and then you use the size dial to resize it.  In this new paradigm, where you are using Inkscape, you simply would set your design size in Inkscape.  So the Size dial is kind of useless unless I implement some other feature (see below) that could make use of it.


The pressure dial is very useful, as it allows us to set the pressure in one of four (five??) increments.  This would tell the firmware to adjust the voltage going to the solenoid that pushes the knife head down.  This in turn controls how hard the solenoid “presses” on the knife.


Adjusting the speed of a cut can help with thicker materials that require more delicate handling, or with thinner materials that can handle faster cutting.  It makes sense to allow the user to adjust the speed before the cut begins. I’m not sure if it should adjust the speed during the cut….


The keypad has numerous keys that perform a wide range of functions.  Many of these keys are used to select a shape from the cartridge library.  Without the need for cartridges, there is a lot of keypad real estate that is going to be unused.

The main keys, A-B, 0-9, and some basic shapes (from Wingdings library) will allow the user to cut using a standard font (Comic Sans).

Direction keys

These keys allow you to position the cutting head over a specific area of your material

Stop key

This key will stop the cutting process completely and basically aborts your project, returning the machine to its home position and ejecting the mat.  There is no way to stop the incoming stream, so the machine will just have to ignore the remaining data and allow the internal buffers to clear out until it receives the final “end of job” HPGL command.

Cut key

There really is no current plan for this key.  Cutting is started at the computer.

Option keys

These keys are just to the right of the display and control things like multi-cut, portrait, mix n match, quantity, auto fill, fit to page and fit to length.  I’m not sure what possible use these can have in the future, but I’ll try to implement some of the options if they make sense.


The display works fine in my current firmware, so I will continue to use it for user input/output.  On the original expression, when a user selects a shape, the machine shows a small image of what they selected.  This will not be possible since the main goal of this project is to allow you to cut whatever you want, the code could not possibly interpret your image completely and display it.  So, the display will just be for menu prompts and confirmations.

Onboard memory

Since the machine has 512k bytes of on board memory storage, I have considered the option to allow the user to save their favorite projects and shapes into the memory, and allow them to easily retrieve them through the keypad or use the speed wheel to browse through the their custom shape library.  If this is implemented, then several of the option keys have meaning again, as well as the size wheel.

SD Card add on


Another interesting possibility is the addition of an SD card port at the cartridge port.  The cartridge port is ideally designed to allow expansion, and in fact the Atmel AVR control pins that are connected to the cartridge port are the very same pins that standard SD card readers use.  The feature would work like this:

User inserts an SD card, and the machine reads the list of files, giving them a menu to browse through them using the speed wheel.  Once a file is selected, they can have the option of storing it, or cutting it.  If they store it, it will be placed into the machine’s on-board permanent memory.  This is useful for those stars, squares, hearts, snowflakes that we use every day 🙂


Cutting my first design from Inkscape to my craft cutter

I’ve spent about two weeks writing software for my custom craft cutting machine that replaces the manufacturer’s original program on the machine.  Why would I do that you ask?  Well, you can read the full story in another post, but for a short answer, because I could!  Well, the machine was given to me by my sister, and it was dead on arrival.  I received no cartridges or anything with it.  So I had to first, determine why it was dead, then my brain went directly to “ok, how does it work?”

Skipping over the next two weeks, I have it working and cutting with Inkscape perfectly.

However, there are some gotchas.

First and foremost, for cutting purposes, all our designs have to be simplified to a path.  So when you draw something on the canvas, you have to use the Object to Path menu to make this conversion.

Sometimes, it doesn’t seem to do anything visibly to the design, but if you skip this step, the output will not be desirable 🙂

Here I have drawn a simple star.  You can see the black outline and if you try to cut it as is, you will get some cuts but not the complete star.  Selecting the Path menu, then Object to Path, Inkscape will make the necessary changes internally and when you send this to the export extension, it will then cut perfectly.


Font’s are similar in nature:


Here I have simply entered some text, set the font to Comic Sans, and made it big.  However, sending this to the HPGL export plugin would fail miserably because it is not a path, and Inkscape can only send Paths to HPGL.

We must always simplify our objects to a path.  However, with fonts it seems to be a little more challenging.  Simply clicking on Object to Path doesn’t do the trick. A font is actually an object made up of two parts, a fill, and a stroke.  Most of the time, the stroke is turned off.  The stroke would be the “outline” you might see around the font.  However, it is this that we are interested in, as plotters and cutters don’t usually care about fills, only the “outline” which instructs the device where to draw or cut.

The options we need are on the Font panel that appears when you add a text object to your drawing:


We want to turn OFF the fill, and turn ON the stroke:


How, we can use Object to Path or even Stroke to Path.

After you do this, you will not see any visible change to your object, but what you will see is that your text panel no longer considers this object as text.  The interesting side effect of this is we can now manipulate our sign as a drawing object.  I’ll cover that in a future post!

You’ll notice the stroke in the above image is very thick. This kinda makes it ugh.. painful to work with, although it doesn’t matter for the cutter, from a visual aesthetics point of view, it seems to be easier on the eyes if we change our stroke size down a bit.  We can select our object and change the stroke style to our liking.  You can un-group the object to work with individual “letters” and add nice effects like sizing, rotation, skew, etc etc.


Now we can send this to our machine through the export plot menu described in my earlier post.

My first sample cut is shown below:


Next, since it was Valentine’s Day, I decided to play around with this craft foam stuff that I had laying about.  I used a deep cut blade for this.  You can see just at the bottom of the heart where it kinda-sorta didn’t cut all the way through.  I’m actually encountering a little bit of a blade pressure problem at the moment…




Here’s a Youtube video of the machine cutting away:

I’ll upload more/better videos soon!