We worked almost for year on our own small desktop CNC. During the FabAcademy, we decided to make some improvements.

I was responsible for integrating with Mechaduino control board for stepper motors.

We use Nema 23 Stepper Motor for axis control (https://www.omc-stepperonline.com/nema-23-stepper-motor/), and RAMPS board which controls it with RepRap firmware.

My task was to try use Mechaduino for our motors.

Tropical Labs engineers have been developing an affordable open-source servo motor, opening the door to sophisticated mechatronics applications. Our design leverages the low cost of mass produced stepper motors. We are able to achieve very high resolution via 14b encoder feedback (after calibration routine!).

Main idea was to implement software-based end sensors, which allows to get rid of end sensors for CNC at all! Since Mechaduino is open-source solution, it can be modified and improved. We wanted to be able to set “home” position for our CNC and to implement “find and stop” command: when axis meets something on its way, we can control current peak and stop engine.

Also I added “move_to_degree” and “move_to_distance” commands for current Firmware:

Full codebase at GitLab https://gitlab.com/reactlabs/mechaduino-firmware-custom/

Here I show two new improvements:

  • When I touch axis, motor stops.
  • Then I set home position, make a little rotation, and then send “home” command. Motor gets home again.