- C++ 63.6%
- G-code 18.7%
- Python 8.4%
- CMake 5.4%
- C 3.5%
- Other 0.4%
| .github/workflows | ||
| .vscode | ||
| deps | ||
| include | ||
| lib | ||
| util | ||
| .gitignore | ||
| .gitmodules | ||
| bcpp.sh | ||
| build-win32.sh | ||
| CMakeLists.txt | ||
| README.md | ||
| Toolchain.mingw32 | ||
Serial communications and a simple test application for interfacing with cutters.
Film at 11.
Cutters
This list is incomplete. If you have more information, please file a pull request to update this table or otherwise let us know:
| Cutter | Version | Status |
|---|---|---|
| Cricut Cake | v2.35 | should work |
| Cricut Cake Mini | v1.54 | should work |
| Cricut Create | v1.51 | should work |
| Cricut Create | v1.54 | should work |
| Cricut Expression | v2.00 | too old |
| Cricut Expression | v2.31 | works |
| Cricut Expression | v2.34 | should work |
| Cricut Expression | v2.43 | should work |
| Cricut Personal | v1.00 | too old |
| Cricut Personal | v1.31 | works |
| Cricut Personal | v1.34 | works |
Encryption / communication keys
These are not provided with the library for various reasons. Please do not ask for them here or elsewhere.
Providing keys
You must provide keys at runtime by passing in a path to a key configuration file to each utility.
Key config files are a simple text file with a key's name and a key on each line, separated by whitespace. Like this (using fake keys):
MOVE_KEY_0 0x0123abcd
MOVE_KEY_1 0x0123abcd
MOVE_KEY_2 0x0123abcd
MOVE_KEY_3 0x0123abcd
LINE_KEY_0 0x0123abcd
LINE_KEY_1 0x0123abcd
LINE_KEY_2 0x0123abcd
LINE_KEY_3 0x0123abcd
CURVE_KEY_0 0x0123abcd
CURVE_KEY_1 0x0123abcd
CURVE_KEY_2 0x0123abcd
CURVE_KEY_3 0x0123abcd
Running any command that requires keys will also explain this format :).
Developer Notes
Dependencies
libcutter itself does not have many dependencies outside of OS-level serial port drivers. However, some of the utilities need the following:
- libsvg - a copy is in deps folder, need to patch png_set_gray_1_2_4_to_8 to png_set_expand_gray_1_2_4_to_8 in src/svg_image.c
- libpng - needed by libsvg
- SDL2 & SDL2GFX - needed by some of the simulator tools
Installing libsvg
If you're on a Mac:
brew install libsvg # or `brew install --build-from-source libsvg`
Otherwise, extract the file in the deps/ directory and follow the instructions in INSTALL. You may need to apply the patch mentioned above: patch png_set_gray_1_2_4_to_8 to png_set_expand_gray_1_2_4_to_8 in src/svg_image.c.
Building for Linux/UNIX/Mac
cmake --preset release -G Ninja -B build
cmake --build build
Note: draw_svg is dynamically linked to libsvg (among a few other things), which means that you must have installed libsvg to run it.
Note: If you're on a Mac, this will probably show an error message that the file was not written by an authorized developer. You can fix this by:
- Run the above so that you get the error message.
- Open Settings > Security & Privacy > General
- Under
Allow apps downloaded from, you should see the name of the executable you just ran with a buttonAllow anyway. Click that button. - Run the program again. It should now work!