Firstly, I ordered a cheap laser module from AliExpress, which took a couple of months to arrive. Also, decided to repurpose some old hobby drone motors I had laying around. At the time I was experimenting with an Odrive and had little experience with it, so I used this project to get into using it. I got away from the usual stepper motor approach. Instead, these brushless motor-encoder pairs, provide a closed loop control over position, overcoming a huge disadvantage of steppers, missing steps. Did I mention the drive system with ODrive and brushless motors is completely silent?

The first thing I did was design an enclosure to hold the motor and encoder in a practical and sturdy way. 

The motors (see picture) had a short shaft, that wouldn't let me get a hold of it from both sides of the motor. I could have used belts and pulleys, but I decided to have longer axes machined, and replaced the ones that came with the motors for these longer ones, so I could grab the encoder shaft from one side of the motor, and a pulley for motion on the other end.

Then designed a one axis moving head, and built the rest of the machine upon it. All I used to build this were 16mm OD aluminum tubes, available in hardware stores (2020 aluminum extrusion isn't widely available in Uruguay, neither cheap) and 3d printed parts. Some screws hold everything together. Over a couple iterations and faulty printed parts, I ended up with this design in Fusion 360.

Making the design a reality and seeing it function is what makes me keep doing these kind of projects.

Brief technical insight

  • 3d printed parts are Yellow PLA for the frame of the machine and motor-encoder coupling, and grey PLA for the motor enclosures.
  • For the drive system I used GT2 pulleys and 6mm wide belt, enough and quite standard for such a small machine.
  • The whole thing is controlled by an Arduino Nano, flashed with Grbl ( ).
  • The Nano talks to the FOC controller as if it were a couple of stepper motor controllers, and these are in charge of rotating the motors precisely and as fast as possible.
  • For uploading instructions to the Arduino I'm using LightBurn ( software with a trial license (expiring soon :\).


First single axis movement test. Its crazy not to hear any whining compared to a stepper motor (possibly with a not-so-good driver).

At first, results were pretty terrible. As you can see, the lines weren't straight and the axes weren't perpendicular.

Probably one too many design flaws. But with some adjustments and replaced parts, everything turned out much better.


All in all, I'm very happy with the results. Have only tested it on cardboard for the time being. There are still some optimizations that I will try to make, but I'm very pleased with the end result. Some upgrades such as 2020 aluminum, more precise wheels and better bearings would make this machine even better. I'd like to increase work area (approx. 35cm x 22cm right now).

Thanks to Informática Carrasco for providing the power supply used to power the motors and laser module.


Could cut 3mm black PVC no problems with a couple of passes, full power and slow speed settings.

PS. I'm migrating my projects from another platform, so some aspects may be incomplete.