Close

Bug Fixes. Boring. Necessary.

A project log for Cricut Hacking

Putting Marlin 2.x on the Cricut Expression because, well, why not? Also, some reverse engineering on CRV001

jc-nelsonJ.C. Nelson 09/29/2022 at 02:550 Comments

The next stage was a ton of debugging to find out that I literally didn't remember that PORTA and PORTC are pointers, and if one builds logic off a comparison...it's probably good to make sure you're comparing the same thing.

This made the Y axis behave perfectly well, and let me test a few things about how my gcode would work. I have an X limit switch, so the machine would always G28X to home that, but Y is whatever the user says it is. G92 is our friend, letting us SET the positions, so G92 Y0 lets us tell Marlin "Start from right here." 

There is no X axis, and I got to looking at the different modules, and realized there's not a ton of difference between Marlin's laser tool (M3, M5) and a cutting head with an "ON" pin and a "PWM" pin for pressure.

This let me set a few more pins correctly, and somewhere along the way I defined the beeper pin so tones work.  

At this point, I had to step back and re-evaluate what happens next.

LaserWeb is an electron app that converts SVGs to gcode and can send them, and I began working on a machine profile for the expression, and cut a test heart.

Yep.

A  heart.

I learned so much, but the key thing I learned was that my used Cricut came with an extremely dull knife. I have ordered a new one off amazon.

That lead me to look closely at the keyboard code in FreeExpression. If I can get the +/-/Ok buttons working, Marlin's three button menu will work, and of course it would be cool to have the arrow buttons on the right hand of the keyboard work to move the axis.

The keyboard will come in two phases:

1. Understanding how the keyboard works and getting a sketch that can read it.

2. Integrating that code as a button handler in Marlin.

Discussions