Hello everyone. I'm Tom from Gearotons. We make the M17, and it has an Arduino library in the Library Manager, so I thought it belonged in Products and Services.
The Gearotons M17 puts four things that you normally buy, wire and configure separately into one NEMA-17 package with no protrusions: the motor, the driver, the encoder and the motion controller. That integration is what makes it more affordable and much easier to use: nothing to source and match, nothing to wire between boards, nothing to assemble, nothing to configure so that one part talks to another. Connect power and one data cable and it works. Plug and play, for makers, classrooms and automation.
The documentation is written to be AI-friendly, so anyone working with an AI assistant will succeed: give the AI the docs and tell it what the motor logic should do. No coding experience needed; I have built many programs for these motors that way. Multiple motors work together on one bus, and you can drive them from an ESP32, Raspberry Pi or Arduino, or straight from a Mac or PC.
Arduino side. Install "Servomotor" (author Gearotons) from the Library Manager. It runs on ESP32, SAMD, RP2040, STM32, Renesas and AVR boards with a hardware UART plus an RS-485 transceiver. The core of an example:
#include <Servomotor.h>
void setup() {
Servomotor motor('X', Serial1); // alias 'X'; the port opens on first use
motor.setPositionUnit(PositionUnit::SHAFT_ROTATIONS);
motor.setTimeUnit(TimeUnit::SECONDS);
motor.enableMosfets();
motor.trapezoidMove(2.0f, 3.0f); // two rotations over three seconds
delay(4000);
Serial.println(motor.getPosition()); // where it actually is, from the encoder
}
void loop() {}
Units are yours to choose (rotations, degrees, radians, encoder counts; seconds or milliseconds); the library converts. Full examples, including two motors on one bus and an ESP32-S3 RS-485 bridge, are in the repository.
Talk to it. There is also an MCP server, so an AI assistant can find the motors on the bus and move them from plain English. A 50-second video of that on a real motor: https://github.com/Gearotons/servomotor-mcp/releases/download/v0.3.1/M17-claude-code-demo.mp4
Specs.
| M17-34 | M17-40 | M17-48 | M17-60 | |
|---|---|---|---|---|
| Length | 33.5 mm | 40.1 mm | 48.7 mm | 59.7 mm |
| Holding torque | 0.28 N·m | 0.42 N·m | 0.55 N·m | 0.65 N·m |
| Weight | 210 g | 285 g | 360 g | 470 g |
| Price | $20 | $25 | $30 | $35 |
All sizes: 12–24 V, up to about 1.1 A, up to 560 RPM, a 32 kHz control loop, RS-485 at 230400 baud, standard NEMA-17 mount.
Open. Hardware, firmware and software are MIT-licensed: GitHub - tomrodinger/servomotor: Open-source NEMA-17 integrated servomotor (motor + closed-loop driver + controller + encoder). RS-485, Python/Arduino libraries, MCP server for AI control. Hardware, firmware and software. · GitHub · MCP server: GitHub - Gearotons/servomotor-mcp: Drive Gearotons M17 open-source servomotors from natural language (MCP server). · GitHub · Docs: Gearotons | Product info · Buy: https://gearotons.com (from $20)
Happy to answer anything about the RS-485 protocol, the closed-loop control, or the Arduino library.
Written with the help of an AI and verified by a human.



