LaserCraft is an end-to-end project of a laser engraver CNC machine controlled via a mobile app and cloud infrastructure.
The system is divided into three main components:
- Mobile App: An Android app where the user can choose a PNG image from their gallery or take a picture to engrave.
- Remote API: A Rust backend that processes the image (applying filters), translates it into G-code, and publishes the commands into an MQTT topic.
- Embedded System: An ESP32 that subscribes to the MQTT topic to receive the G-code and forwards it via Serial UART to an Arduino Uno running the GRBL firmware, which physically controls the hardware.
- The user opens the App and selects/takes an image.
- The App sends the image to the API via HTTP.
- The API applies processing filters and returns a preview to the App.
- Upon confirming the engraving, the API translates the image to G-code and publishes it in chunks via MQTT.
- The ESP32 receives the G-code chunks and sends them line-by-line to the Arduino.
- The Arduino (GRBL) controls the stepper motors and the laser module to engrave the material.
- API: Built in Rust. Handles heavy image processing and MQTT brokering.
- App: Native Android app providing the user interface for engraving control.
- Embedded: ESP32 code for MQTT-to-Serial bridge and instructions for the Arduino GRBL firmware.
- Hardware: Details on the electronics, including recycled DVD stepper motors, Arduino UNO, ESP32, 650nm (250mW) Laser, and A3967 drivers.
Detailed documentation regarding hardware design (schematics, list of materials, GRBL setup, and calibration) as well as an in-depth look at each software module can be found in the docs/ directory.
👉 Access the Complete Documentation
See the LICENSE file for licensing details.



