Sun Jul 15 14:31:48 EST 2018

Date Created: 2013-12-09 06:18:24 -0600 (Mon, 09 Dec 2013)

Neje Engrave - Web Enabled Laser Engraving


  This guide shows how to control a Neje DK-8-KZ laser engraver via a Web application.

The software is configured with Ansible on the command line.


Hardware Connections

Software Prerequisites - Target Host

Software Prerequisites - Control Host

This projects uses Ansible to configure software. The 'control host' is the Linux machine were ansible commands are issued to configure the target Raspberry Pi host.

Use pip3 to install the same Ansible version found on the target machine. In this case the target host (the Raspberry Pi) had ansible version

pip3 install --user 'ansible=='

In this project, ansible uses SSH to communicate between the control and target hosts. If you don't have sshpass installed, then issue this command on the control machine:

        sudo apt install sshpass

The configuration software for this project is hosted on Issue the following commands to download and change directory the project:

git clone

cd electronics/neje-engrave/src/main/provisioning/


Before continuing, update IP address in the file 'hosts/raspberry-pis' to match the actual IP address of the target Raspberry Pi.

The commands in this section install application dependencies as well as the application itself. The commands in this section also require the password of pi user on the Raspberry Pi and the sudo password.

Unless these were explicitly changed, the password for pi user is 'raspberry'. If the default password was changed, then use that password when prompted for the commands in this section.

The following command takes a good while to finish the first time it is run, since it is downloading and installing a bunch of software to the target host's operating system.

$ ansible-playbook install.yml -i hosts/raspberry-pis -vvvv --ask-pass --ask-sudo-pass

While it does take several minutes to finish, no errors should occur when the above command executes.

Use ssh-copy-id to avoid entering credentials (and the "--ask-pass --ask-sudo-pass" parameters) every time.

Once ssh-copy-id is used on the target host, the command looks like this:

$ ansible-playbook install.yml -i hosts/raspberry-pis

Once this command completes, the software is installed.

Running the Application

To start the NejeEngrave application issue this command:

$ ansible-playbook start-neje-engrave.yml -i hosts/raspberry-pis

After a bit of time, the application is available at this URL:


Change 'raspberrypi-host' in the above URL to the IP or hostname of the target Raspberry Pi.

Here is a screenshot of the NejePrint application:

Execute this command to stop the Web application:

$ ansible-playbook stop-neje-engrave.yml -i hosts/raspberry-pis


Basic usage of the laser engraver involves two steps:

  1. Use the 'Upload to Filesystem' button to send an image to the Raspberry Pi, which in turn sends the image to the engraver.
  2. Click the 'Start' button to begin the engraving process.

Other features include reset and pause buttons.


Going Further