Building a 3D motor printed motor is one thing, but creating a completely custom servo motor with encoder requires some significant engineering. In the video after the break [365 Robots] takes us through the build process of a closed-loop motor with a custom optical encoder.
The motor, an axial flux design, uses a stack of 0.2mm PCBs with wedge shaped coils clamped in a 3D printed body. It’s similar to some of the other PCB motors we’ve featured, but what really sets this build apart is its custom optical encoder, which was a project in its own right. The 4-bit absolute position encoder uses IR LEDs to shine through an PCB disc with concentric gray code copper encoder rings onto IR receivers. This works because FR4, the composite material used in PCBs doesn’t block IR light.
The motor’s body was printed from ABS to withstand the heat during operation. [365 Robots] didn’t skimp on the testing either, creating a 3D printed closed-loop test stand with load cell and Arduino. Like other PCB motors it produces very little torque, roughly 2% of a typical NEMA17 stepper motor. Even so, the engineering behind this project remains impressive.
Today, we shall talk about how [Adam Bäckström] took a DS3225 servo and rebuilt it to improve its accuracy, then built a high-precision robot arm with those modified servos to show just how much of an improvement he’s got – up to 36 times better positional accuracy. If this brings a déjà vu feeling, that’s because we’ve covered his servo modifications before, but now, there’s more. In a year’s time since the last video came out, [Adam] has taken it to the next level, showing us how the modification is made, and how we ourselves can do it, in a newly released video embedded below.
After ordering replacement controller PCBs designed by [Adam] (assembled by your PCBA service of choice), you disassemble the servo, carefully setting the gearbox aside for now. Gutting the stock control board is the obvious next step, but from there, you don’t just drop the new PCB in – there’s more to getting a perfect servo than this, you have to add extra sensing, too. First, you have to print a spacer and a cover for the control board, as well as a new base for the motor. You also have to print (or perhaps, laser-cut) two flat encoder disks, one black and one white, the white one being eccentric. It only escalates from here!
[Adam]’s first robot arm build was a major disappointment, when the servos he had purchased for the build turned out to be terrible at holding an angle. With limited funds, he elected to improve on what he had, learning much about precision control techniques along the way. [Adam] taught himself how to implement industrial strength control loops using hobby hardware, by implementing additional encoders into servos and taking into account velocity and torque in addition to just position. With a magnetic encoder on the servo output shaft and a tiny optical encoder hand-built for inside the motor itself, much higher accuracy is achievable by allowing the control system to compensate for backlash.
There’s this whole class of vertically scrolling rhythm games that take both hands and look really fun to play, albeit hard on the joints. You can buy specialized controllers for them, but they’re ridiculously expensive for what they are — just a handful of switches and two knobs. It’s exactly the kind of thing you should build to your taste for far less money.
Inspired by a pocket version of the Voltex controller that is also pretty darned expensive, [OmniSaiRen] set out to make their own on the cheap by building an awesome little macro keyboard that’s smaller and easier to use than the specialized controller. Inside there’s an Arduino Pro Micro taking input from eight Cherry MX switches and two optical encoders. The game treats the encoders as vertical and horizontal mouse movements, so [OmniSaiRen]’s code scans the encoders for their positions.
[OmniSaiRen] wrote their own matrix code and says it’s ugly, but it works well enough to play the game. What more can you ask for? A cool sticker to go on the top? Done. It’s too cold outside to paint, anyway. If it’s a one-handed game pad you need, check out this sweet little thing.
When the Prusa i3 MK3 was released in 2017, it was marketed as being “bloody smart” thanks to the impressive number of sensors that had been packed into the printer. The update wasn’t really about improving print quality over the MK2, but rather to make the machine easier to use and more reliable. There was a system for resuming prints that had stopped during a power outage, a thermometer so the firmware could compensate against thermal drift in the inductive bed sensor, RPM detection on all of the cooling fans, and advanced Trinamic stepper drivers that could detect when the printer had slipped or gotten stuck.
But the most exciting upgrade of all was the new filament sensor. Using an optical encoder similar to what you’d find in a mouse, the Prusa i3 MK3 could detect when filament had been inserted into the extruder. This allowed the firmware to pause the print if the filament had run out, a feature that before this point was largely unheard of on consumer-grade desktop 3D printers. More than that, the optical encoder could also detect whether or not the filament was actually moving through the extruder.
In theory, this meant the MK3 could sense problems such as a jammed extruder or a tangle in the filament path that was keeping the spool from unrolling. Any other consumer 3D printer on the market would simply continue merrily along, not realizing that it wasn’t actually extruding any plastic. But the MK3 would be able to see that the filament had stalled and alert the user. The capabilities of the optical filament sensor represented a minor revolution in desktop 3D printing, and combined with the rest of the instrumentation in the MK3, promised to all but eradicate the heartbreak of failed prints.
Fast forward to February of 2019, and the announcement of the Prusa i3 MK3S. This relatively minor refresh of the printer collected up all the incremental tweaks that had been made during the production of the MK3, and didn’t really add any new features. Though it did delete one: the MK3S removed the optical encoder sensor used in the MK3, and with it the ability to sense filament movement. Users would have to decide if keeping the ability to detect clogs and tangles was worth giving up all of the other improvements offered by the update.
But why? What happened in those three years that made Prusa Research decide to abandon what promised to be a huge usability improvement for their flagship product? The answer is an interesting look at how even the cleverest of engineering solutions don’t always work as expected in the real-world.
We’ve all heard the complaints from oldsters: “Cars used to be so simple that all you needed to fix them was a couple of wrenches and a rag. Now, you need a computer science degree to even pop the hood!” It’s true to some extent, but such complexity is the cost of progress in the name of safety and efficiency. And now it seems this complexity is coming way down-market, with this traction control system for a Power Wheels Lamborghini.
While not exactly an entry-level model from the Power Wheels line of toddler transportation, the pint-sized Lamborghini Aventador [Jason] bought for his son had a few issues. Straight from the factory, its 6-volt drivetrain was a little anemic, with little of the neck-snapping acceleration characteristic of an electric drive. [Jason] opted to replace the existing 6-volt drive with a 12-volt motor and battery while keeping the original 6-volt controller in place. The resulting rat’s nest of relays was unsightly but sufficient to see a four-fold increase in top speed.
With all that raw power sent to only one wheel, though, the Lambo was prone to spinouts. [Jason] countered this with a traction control system using optical encoders on each of the rear wheels. A NodeMCU senses speed differences between the wheels and controls the motor through an H-bridge to limit slipping. As a bonus, a smartphone app can connect to the Node for in-flight telemetry. Check out the build and the car being put through its paces by the young [Mr. Steal Your Girl] in the video below.
From Ferraris to F-16s, some things just look fast. This Rubik’s Cube solving robot not only looks fast, it is fast: it solved a standard cube in 380 milliseconds. Blink during the video below and you’ll miss it — even on the high-speed we had trouble keeping track of the number of moves this solution took. It looked like about 20.
Beating the previous robot record of 637 milliseconds is just the icing on the cake of a very cool build undertaken by [Ben Katz]. He and his collaborator [Jared] put together a robot with a decidedly industrial look — aluminum extrusion chassis, six pancake servo motors with high-precision optical encoders, and polycarbonate panels for explosion containment which proved handy during development. The motors had to be modified to allow the encoders to be attached to the rear, and custom motor controllers were fabricated. [Jared] came up with a unique board to synchronize the six motors and prevent collisions between faces. Machine vision is provided by just two PlayStation Eye cameras; mounted at opposite corners of the enclosure, each camera can see three faces at a time. They had a little trouble distinguishing the red from the orange, which was solved with a Sharpie.
[Ben] and [Jared] think they can shave a few milliseconds here and there with tweaks, but even as it is, this is a great lesson in optimization and integration. We’ve covered Rubik’s robots before, like this two-motor slow and steady design and this six-motor build that solves a cube in less than a second.