Skip to content

vortex2jm/LaserCraft

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

107 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LaserCraft ⚙️⚡

Remotely controlled laser engraver CNC machine

Android Rust Arduino ESP32 MQTT

Overview

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:

  1. Mobile App: An Android app where the user can choose a PNG image from their gallery or take a picture to engrave.
  2. Remote API: A Rust backend that processes the image (applying filters), translates it into G-code, and publishes the commands into an MQTT topic.
  3. 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.

How it Works

  1. The user opens the App and selects/takes an image.
  2. The App sends the image to the API via HTTP.
  3. The API applies processing filters and returns a preview to the App.
  4. Upon confirming the engraving, the API translates the image to G-code and publishes it in chunks via MQTT.
  5. The ESP32 receives the G-code chunks and sends them line-by-line to the Arduino.
  6. The Arduino (GRBL) controls the stepper motors and the laser module to engrave the material.
Project Architecture

Project Structure

  • 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.

Complete Documentation

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

Showcase


See the LICENSE file for licensing details.

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Kotlin 66.5%
  • Rust 20.0%
  • C++ 12.5%
  • Dockerfile 1.0%