LasaurApp

LasaurApp is the official Lasersaur app. It has all the functionality to operate this kind of laser cutter:

  • load vector files and send them to the Lasersaur;
  • file support for SVG, G-code (subset), DXF (subset);
  • GUI widget to move the laser head;
  • pausing/continuing a job;
  • firmware flashing;
  • handy G-code programs for the optics calibration process.

This app is written mostly in cross-platform, cross-browser Javascript and Python. This allows for very flexible setup. The backend can either run directly on the Lasersaur (Driveboard) or on the client computer. The frontend runs in a web browser either on the same client computer or on a tablet computer.

Architecture

The software system is comprised of three parts that reside each in its own directory:

/firmware
Contains the C language sources and the already compiled binaries of the modified grbl CNC controller software that is installed on the ATmega chip that manages all the circuitry on the DriveBoard;
/backend
Contains the Python language sources of the service that runs on the BBB. It communicates on one side via a serial line to the ATmega and on the other side with the client that runs the GUI in the web browser;
/frontend
Contains the HTML and JavaScript code used to run the GUI in the web browser. It communicates with the backend using the HTTP protocol.

Overally the system can be represented in a simple graph as follows: