Balanced Design And How To Know When To Quit Optimizing

I got a relatively inexpensive 6040 CNC machine, and have been spending most weekends making the thing work, and then cutting stuff, learning the toolchain, and making subsequent improvements. Probably 90% of my machine time has been on making improvements. It’s not that the machine was bad — I got the version with ballscrews and a decently solid frame — but it’s that it somehow didn’t work together as a whole. It’s just an incredibly unbalanced design.

Let’s start with the spindle motor. It’s a 2.2 kW water-cooled beast that is capable of putting tons of work into a piece and spinning at very high speed. Yet to keep up with the high speed spindle, the motors that move it around would have to be capable of high speeds as well — it’s a feeds and speeds thing if you’re not a CNC geek. And they can’t. Instead, the stepper motors that came with the kit are designed for maximum force at low speeds. Which can make sense for some machines, but for one with a slightly flexible X-axis like this one, that’s wasted as well. The frame just can’t handle the low-end grunt that the motors are capable of, so it can’t take advantage of the spindle’s power either. The design is all over the place.

Over the last two months’ of weekends, I’ve been going through this iterative procedure of asking “what is my limiting factor right now?”, working on fixing that thing up, running it some, and then asking the question again. And it’s a good general procedure, and I believe that it’s getting me to the machine I want at the minimum cost of time, money, and effort.

At first, it was the driver hardware/software with its emulated USB parallel port, so I swapped out the controller for an Arduino running GRBL, soldered directly to the DB-25 that comes out of the back. At least it can put out pulses fast enough to order the motors around, but they would still stall out at high speeds. Swapping the stepper motors out for a high-speed pair only cost me €40, which makes you wonder why they didn’t just put the right motors on in the first place. The machine now travels fast enough to make use of the high-speed spindle, and I’m flying through plywood and plastics without leaving burn marks. It’s a huge win for not much money.

The final frontier is taking big bites out of aluminum. The spindle can do it, but I fear I’m up against the frame’s rigidity on the X-axis. For whatever reason, they went with unsupported rods on the X, which are significantly more flexible than an axis that’s backed up by more metal. And this is where the limiting factor may actually be my time and patience, rather than money. I just can’t bear to disassemble and reassemble the thing again. So for now, it’s going to be small nibbles, taking advantage of the machine’s speed, if not yet the spindle’s full horsepower.

But it’s odd, because this machine is a bundle of good parts. It’s just that they haven’t been chosen to work together optimally; the frame doesn’t work with the stepper motors, which don’t work with the spindle. If they went through my procedure of saying “what’s the limiting factor?” they could have saved themselves €100 by just shipping it with a wimpier spindle, which would have been a balanced, if anemic, machine. Or they could have built it with the right motors for more speed. Or supported rails for more grunt. Or both!

I’ll never know why they quit optimizing their design when they did. Maybe they never got past the slow USB/parallel port speed? But I’m near the end of my path, and I can tell because the limiting ingredient isn’t a simple upgrade, or even mere money anymore, but my own willpower.

How can you tell when you’re at the top of a mountain in a dense fog? A step you take in any direction would lead you downhill. How can you tell when you’re satisfied with a project’s state? When you don’t have the need, or desire, to undertake the next most obvious improvement.

Giant Clock Made In The Nick Of Time

When [tnjyoung] was asked to build a huge lighted clock for a high school theater’s production of Cinderella with only two weeks before opening night, he probably wished for a fairy godmother of his own to show up and do it for him. But he and his team pulled it off, and it looks amazing. That medallion in the middle? It was laid out painstakingly by hand, using electrical tape.

This thing is 12 feet wide and weighs more than 500 pounds. Even so, it isn’t a permanent set piece, so it has to move up and down throughout the show on airplane cables. Now for the minutiae: there’s an Arduino Uno with built-in Wi-Fi that receives UDP commands from a phone to raise and lower the clock at the appropriate times. The ‘duino is also controlling two stepper motors, one for the hour hand and one for the minute hand.

Time is almost a minor character in the story of Cinderella, since she has to get back by midnight. Because of this, [tnjyoung] programmed a dozen or so time cues that move the steppers at various speeds to achieve different effects, like time flying by as she dances the night away with the Prince. Hour you still just sitting there? Sweep past the break to watch the build process fly by in a matter of minutes.

Got all the time in the world? Make a clock out of clocks. Clocks all the way down.

Continue reading “Giant Clock Made In The Nick Of Time”

‘Bit’ Installation Combines Art, Markov Chains

A Markov chain is a mathematical concept of a sequence of events, in which each future event depends only on the state of the previous events. Like most mathematical concepts, it has wide-ranging applications from gambling to the stock market, but in this case, [Jonghong Park] has applied it to art.

The installation, known simply as ‘bit’, consists of four machines. Each machine has two microswitches, which are moved around two wooden discs by a stepper motor. The microswitches read bumps on the surface of the disc as either a 0 or 1, and the two bits from the microswitches represent the machine’s “state”.

When a machine is called, the stepper motor rotates 1/240th of a revolution, and then the microswitches read the machine’s current state. Based on this state and the Markov Chain algorithm coded into the machines, a machine with the corresponding state is then called, which in turn moves, continuing the chain.

The piece is intended to reflect the idea of a deterministic universe, one in which the current state can be used to predict all future states. As an art piece, it combines its message with a visually attractive presentation of understated black metal and neatly finished wood.

We love a good art installation here at Hackaday – like this amazing snowflake install from a couple years back. Video after the break.

Continue reading “‘Bit’ Installation Combines Art, Markov Chains”

Chess Robot’s Got The Moves

[RoboAvatar]’s Chess Robot consists of a gantry-mounted arm that picks up chess pieces and places them in their new location, as directed by the software. The game begins when the human, playing white, makes a move. When a play has been made, the human player presses a button to let the robot to take its turn. You can see it in action in the videos we’ve posted below the break.

Running the robot is an Arduino UNO with a MUX shield as well as a pair of MCP23017 I/O expander chips — a total of 93 pins available! Thanks to all those pins, the Arduino is able to listen to 64 reed switches, one for every square.

The robot detects the human’s move by listening to its reed switches and identifying when there is a change. The gantry consists of X and Y tracks made out of PVC slabs, with half-inch lead screws turned by NEMA-23s and powered by ST-6600 stepper drivers.

Unlike some chess robots that rely on pre-existing software, this one features a custom minimax chess algorithm that [RoboAvatar] coded himself. It consists of Python scripts run on a computer, which interacts with the Arduino via a serial connection. In the second video, he explains how his algorithm works. You can also download the Arduino and Python files from [RoboAvatar]’s GitHub repository.

You’d be surprised how many chess-playing robots we’ve published, like the ChessM8 robot and this voice-controlled chess robot.

Continue reading “Chess Robot’s Got The Moves”

An Organ Made From Back-Driven Steppers

[Josh] wrote in to tell us about an experimental instrument he’s been working on for a couple of months. We’re glad he did, because it’s a really cool project. It’s an organ that uses the principle of back-drive—applying torque to the output shaft of a motor—to create sounds.  [Josh] is back-driving four octaves worth of stepper motors with spinning wooden disks, and this generates alternating current. At the right speeds, the resulting sinusoidal waveform falls within the range of human hearing and can be amplified for maximum musical enjoyment.

[Josh] built this organ from the ground up, including the keys which are made from oak and walnut. Each of the forty-nine stepper motors has a corresponding wooden disk. The larger the wooden disk in the stack, the higher the resulting pitch. [Josh] says that if he built it for a full 88 keys, the highest note’s disk would be sixteen feet in diameter.

This stack of disks is driven independently by a separate DC motor, and the speed determines the key it will play in. When [Josh] plays a note, that note’s lever is actuated and its stepper motor makes contact with its disk in the stack. When they meet, the motor is back-driven by the spinning disk. In other words, they work in concert to produce some cool, eerie sounds.

Here’s a somewhat similar sort of build made from lasers and fans, if you consider that both instruments create music from objects that weren’t built to do so. Watch [Josh] play his stepper organ after the break. He has several build videos on his YT channel, and we’ve also embedded the one that covers the motor, power, and electronics part of the build.

Continue reading “An Organ Made From Back-Driven Steppers”

An Etch-A-Sketch To Fetch The Time

For someone who has never used stepper motors, real-time clocks, or built anything from scratch, [Dodgey99] has done a great job of bending them to his will while building his Etch-A-Sketch clock.

He used two 5V stepper motors with ULN2003 drivers. These motors are mounted on the back and rotate the knobs via pulleys. They are kind of slow; it takes about 2 1/2 minutes to draw the time, but the point of the hack is to watch the Etch-A-Sketch. [Dodgey99] is working to replace these steppers with Nema 17 motors which are much faster. [Dodgey99] used an EasyDriver for Arduino to drive them. He’s got an Arduino chip kit in this clock to save on the BOM, but you could use a regular Arduino. He left out the 5V regulator because the EasyDriver has one.

[Dodgey99] has published three sketches for the clock: one to set up the RTC so that the correct time is displayed once the Etch-A-Sketch is finished, some code to test the hardware and sample the look of the digits, and the main code to replace the test code.

The icing on this timekeeping cake is the acrylic base and mounting he’s fashioned. During his mounting trials, he learned a valuable lesson about drilling holes into an Etch-A-Sketch. You can’t shake an Etch-A-Sketch programmatically, so he rotates it with a Nema 17. Check it out after the jump.

If you’re paying attention, you’ll realize we just saw the exact opposite of this project a few hours ago: a CNC tool (laser cutter) controlled by turning Etch-A-Sketch knobs.

Continue reading “An Etch-A-Sketch To Fetch The Time”

Dumpster Diving Nets 100 Arduino-powered Motor Controllers

Never one to pass up the recycle pile at work, [Scott] usually doesn’t find much. A few old hard drives, maybe a ancient laptop every once in a while, but on very rare occasions he finds something actually useful. This latest haul is a gaggle of stepper motor drivers that, with a bit of work, can be reverse engineered and turned into an Arduino.

After prying into one of the plastic-enclosed boards, [Scott] found a LED, a quartet of transistors for powering the motor, and an ATMega168 microcontroller. Interestingly, most of the pins for the 168 were already broken out on the DA15 connector on each controller. The only thing needed was to build a programmer to dump the Arduino bootloader onto these little widgets.

After much trial and error (and building a new programming interface), [Scott] now has 100 Arduinos with a single stepper motor controller built in. He’s already made a toy light cycle rotate on a small stepper (after the break) and blink a LED, but with this many widgets, we’re wondering what crazy contraption [Scott] will come up with.

Continue reading “Dumpster Diving Nets 100 Arduino-powered Motor Controllers”