Mini A5 Laser

Mini A5 Diode laser

On this page you find the problems (and solutions) of building a cheap chinese A5 17×20 2000mW mini laser. See this as hints that you can use for improving your own mini laser, but there are no guarantee, so use on your own risk!!

You working with lasers that might damage your eyes when used improperly. Be aware of your own (and other bystanders) safety.

This is a cheap chinese clone of Eleksmaker A5 you can buy on aliexpress

Specifications :

  • Engraving area 17x20cm
  • 2000MW / 2W blue laser (450nm)
  • Delivered with Arduino nano with GRBL 0.8 (and baudrate only 9600!)

This laser is only able to cut normal paper or engrave (mark) wood. For cutting materials you need more power (>40W or more). I use this laser for events to promote makerspace TwenSpace


They included a video where they show how to build the machine. Some details are not clearly sown so here some extra notes :

  • before you screw on the acry legs be sure you have the nuts installed in the upper slide for Y axes for adjusting the belts.


Default version 0.8 was installed, this is a old version and has no laser support. I updated to GRBL 1.1f but an extra challenge is that pin D11 and D12 are swapped (so you can use hardware PWM)

Three ways to update the PWM (swap D11&D12 pin) on Arduino nano GRBL 1.1

1) Modify harware pins

Arduino nano GRBL.JPG

I solved this by hardware, I don’t user pin D12 any way (=Z home limit) and rerouted pin D11 to position of D12. I cut off the pin D11 and bend the leg of D12 to the position of D11. I used a extra long header pin, but I don’t think it’s really necessary.

Extra advantage is if you put back the old original arduino everything stills works.

2) recompile with ‘ VARIABLE_SPINDLE’

You could also fix this in software by disable the option ‘#define VARIABLE_SPINDLE’ in config.h, but then you have only laser on/off control, wich is very limited.

3) modify PCB

Other way to fix this is by modify the pcb “You can cut the track connected to D12 on your board and connect it to D11 to install grbl v1.1.”

GRBL settings

If you not familiar with grbl, it has a terminal in which you can give commands and view settings. You can connect through USB serial in Arduino IDE or program that you use to send G-code to the controller. If you change something this is immediate stored in EEPROM, so you don’t need to ‘save’ a setting. To view current settings enter ‘$$’ and you will see all the defined variables. See here for more information to configure your grbl board.

For the A5 laser cutter change the default GRBL 1.1f settings to:

  • $32=1 (laser mode enable)
  • $100 = 80 (steps per mm/ X)
  • $101 = 80 (steps per mm/ Y)
  • $110 = 1000 (max. rate mm/min in X)
  • $111 = 1000 (max. rate mm/min in Y)
  • $120 = 100 (acceleration mm/s^2 in X)
  • $121 = 100 (acceleration mm/s^2 in Y)


I added a 12V fan for my external casing. Luckly on the board there is a free pins with label “7-12 V”. With 12V as power supply the output is also 12V, so just solder your fan on this port and you are ready.

Other useful resources

  • jewelrycycle collection of information / video on the A5 laser (reviews, building video)
  • shapeoko on gcode