0%
0%

FreeExpression

Custom firmware for a Cricut Expression craft cutting machine

thetazzbotthetazzbot

Become a Hackaday.io member

Not a member? You should Sign up.

Already have an account? Log in.

Just one more thing

To make the experience fit your profile, pick a username and tell us what interests you.

Pick an awesome username
hackaday.io/
Your profile's URL: hackaday.io/username. Max 25 alphanumeric characters.
Pick a few interests
Projects that share your interests
People that share your interests
Public Chat
Similar projects worth following
10.6k views
View Gallery
Public Chat
Open Source firmware replacement for Cricut(tm) Expression and Cake stencil cutter machines.<br><br>My sister donated a dead Cricut Expression to me. I immediately took it apart, brought it back to life, and then decided to write new firmware for it. I got the inspiration from another project that was for the Cricut Personal. I used it as a launch pad to get the Expression working, so that I could cut directly from Inkscape using the GRBL plugin.<br><br>What works:<br><br>It cuts from Inkscape<br>LCD Works<br>Keypad works<br>Adjuster wheels work<br><br>By printing from Inkscape, it kinda makes the keypad and LCD a mute feature because you don&apos;t really need any of that.<br><br>Read more here<br><br><a target="_blank" rel="noopener noreferrer" href="https://github.com/thetazzbot/FreeExpression">https://github.com/thetazzbot/FreeExpression</a><br>

**About the Cricut** 

Cricut cutting machines can be had for about 50ドル or less on Craigslist.  They contain two stepper motors, a moving solenoid powered knife holder that generates 12 volts to the solenoid using PWM.  They typically contain wheels that control speed, pressure, and other settings (one of them is usually an optical encoder, the others are potentiometers), a display of sorts, and a keyboard that has a ton of fairly useless buttons with green LED backlights.  Additionally, an onboard USB port and the Atmel ATMega1281 chip running at 16mhz provides all the horsepower you would need.  The stepper motors are controlled by eight mosfets.  So in reality, you get a fairly decent XY controller board with a PWM output for solenoid or laser control for cheap!  One of my future plans are to put a laser diode in place of the knife holder and see what I can do with it.

3/25/2019 - Updated the project settings and files to include contributions from Gary Stofer, for his Cricut Cake Mini machine that uses a different display and button layout, as well as GCode parser.  Compiled with Atmel Studio 7, all compile errors resolved and verified it uploads to the machine and runs.  Still have to perform testing because my machine is currently not responding to button or dial changes, so either the code is flawed somewhere or my machine is (which is not impossible, as I have had it opened and mistreated it with a soldering iron several times).

1/13/2019 Updated project to Atmel Studio 7

6/11/2017 Merged pull request from Gary Stofer to improve HGPL reliability

Previous notes:

Original firmware cannot be copied from another machine (it has been locked and cannot be read from the CPU)

Original firmware cannot be restored through any PC application used for normal firmware upgrades.

This firmware has only been tested on the machine that I have. It may not work on your machine. It may cause permanent damage, and it will certainly void your warranty.

This firmware cannot read your original cartridges ever.

Cricut is a trademark of PROVO CRAFT and this firmware is not a PROVO CRAFT product. This firmware was developed completely independently, without any documentation of PROVO CRAFT products, and without any and all original firmware. If you have problems with this firmware, do not consult PROVO CRAFT.

Originally was forked from https://github.com/Arlet/Freecut

The recent updates include the option of using a Standard 4x20 LCD with a SPI interface (Cricut CAKE)  or the original Oled graphics LCD that comes on the Expression machine. 

If you still want to proceed:

You will need a ATMEL programmer device and an Atmel Studio 6.2 or newer installation. An ATMEL JTAG ICE MKII pod and the JTAG interface of the AVR is a good way to start. See picture and detailing connection and file Connector pinout.txt for details. you can also use an ISP programmer just to program the machine, no soldering necessary, just remove the bottom of the unit, uplug the cable from the from cartridge slot and route it out the front of the bottom of the case. Then plug this 10 pin connector into the 6 pin ISP connector, ensuring the red wire of the cable (pin 1) mates up with the pin 1 on your ISP header.  

Use Inkscape to draw and send a file to the cutter. Inkscape 0.91 has an export to Plot feature (under Extensions) which sends a HPGL langauge file to the COM port where the cutter is connected to. Use 9600 baud and make sure XON/XOFF is selected for flow control. Inkscape works good on WIndows and Linux machines.

FreeExpression.hex

Compiled hex file

hex - 83.33 kB - 08/02/2020 at 02:17

Download

Enjoy this project?

Share

Discussions

Log In/Sign up to comment

Become a Hackaday.io Member

Create an account to leave a comment. Already have an account? Log In.

aususer wrote 02/27/2023 at 09:49 point

has anyone tested this on the “maker” rather than “expression”?


I’ve just gambled and bought a “maker” (new but disabled).. and *hoping* this will work?

Are you sure? yes | no

Jason wrote 05/04/2022 at 01:58 point

Anybody that wants to avoid the hassle of taking this apart you can load the firmware via the card slot see attached file for the connection diagram , precompiled HEX code ( with repaired error ) and the loader software

https://drive.google.com/file/d/1Kw6VKa1a65cxu34uBCOATPnKrdFZhFeK/view

Use Arduino UNO with ISP sketch loaded , make the ISP connections from the UNO to the card slot as per diagram in attached file
run Xloader , select the atmaga1281 as the chip , select the com port the UNO is attached on , select the FreeExpressions.Hex file , hit upload
Watch the UNO for the TX/RX led to flash , if it is , the firmware is loading and wait until it finishes.
The cricut will make a sound when its complete (NOTE: make sure the machine is powered up during the flashing process )

Are you sure? yes | no

Ellis wrote 08/06/2022 at 17:30 point

Thank you very much for the slot pin out, Jason. I did this on Linux with a cheap ISP programmer I got Amazon (Atmel 51...).

Use the command: 

avrdude -c usbasp -p m1281 -U flash:w:FreeExpression.hex

Are you sure? yes | no

tom.nichol01 wrote 10/29/2020 at 13:42 point

This video is long and needs edited but it should help anybody trying to get the project to build and upload.  https://www.youtube.com/watch?v=CaFRl4nlNLY&list=PLMrgzhuKCzU_anG7AdunHVhpePdlkd5AJ&index=1  

Also, I just noticed there is a .hex file listed for download here now, that might be an easy way to get the firmware onboard.

That said, I'm still having some issues with my cricut.  It seems to randomly flip axis on me.  I think its more of an Inkscape issue now that I think about it, but it's hard to say.  Anybody have any advice?

Are you sure? yes | no

NICKARAOKE wrote 08/01/2020 at 04:06 point

just spent all day attempting to build anything even close to a release file(HEX FILE) atmel studio 5 thru 7 along with WinAVR and even github in bash shell mode all say the same thing with everything from the project files to the make file "no rule to make target 'freecut.hex' , needed by all

Are you sure? yes | no

NICKARAOKE wrote 07/30/2020 at 19:17 point

the files on github dont build even on atmels in web studio builder

Are you sure? yes | no

ircole wrote 01/22/2020 at 13:56 point

I have a Cricut Personal which has two stepper motors, etc.  Was wondering if anyone has adapted this project to the Personal model.

Are you sure? yes | no

jschwalbe wrote 10/05/2019 at 23:52 point

For the record, yes I did read your github (and the one you forked from) but had never done anything like this before, so I was groping in the dark, after a few days I thought I'd ask for help. Sorry to have bothered you. Thought a fellow experienced hacker would help a newbie hacker, but apparently not. (Btw if lots of people ask for help w/ your instructions, then maybe your instructions aren't the best, just a thought.)

First I had to figure out how to compile it. Hosting the .hex would be sweet, but I eventually figured it out (I don't have Atmel Studio <or Windows>, so it took a few extra steps). 
But flashing was the hard part. I finally got it to work with an Arduino Uno running this [https://raw.githubusercontent.com/adafruit/Adafruit_Learning_System_Guides/master/ArduinoISP/ArduinoISP/ArduinoISP.ino] - but NOT the one from arduino.cc - and wired up as below:

[ 1 3 5 7 9   ]  -->  [12 13 10 x x  ]

[ 2 4 6 7 10 ] -->  [5v 11 GND x x ]

(female pins with bump on top numbered as looking at it)

Then I used avrdude (on my mac): 

avrdude -c stk500v1 -P /dev/cu.[your-usb-port] -p m1281 -b 19200 -u -V -U flash:w:FreeExpression.X.production.hex:i

And after about the 1000th attempt (and ditching the stupid usbasp clone from china), it worked. Now to try doing something with it.. :)

Are you sure? yes | no

thetazzbot wrote 10/01/2019 at 13:56 point

Does Does anybody read the description there's a link to the GitHub with a files and the instructions

Are you sure? yes | no

jschwalbe wrote 10/01/2019 at 12:28 point

Can anyone help as I try to get this working? I've never flashed an AVR before and am having some troubles - wondering if my setup is wrong, etc.

Are you sure? yes | no

edsantiagodesigner wrote 08/22/2018 at 17:50 point

Have instructions for it?

Are you sure? yes | no

PC wrote 11/15/2017 at 02:51 point

hi there,

could you share the firmware and the process to upgrade the cricut?

Are you sure? yes | no

Similar Projects

Does this project spark your interest?

to follow this project and never miss any updates

Cancel

AltStyle によって変換されたページ (->オリジナル) /