Hacker News new | past | comments | ask | show | jobs | submit login
A home made PCB stepper motor (kevinlynagh.com)
271 points by nvalis on Feb 3, 2022 | hide | past | favorite | 68 comments



My eyes weren't cooperating with the illustration from the Theory section, animated it here (author is free to use of course) - https://imgur.com/a/hVYWBB2

(note that i reverse a few frames in the loop to be less jarring visually, the current is probably not correct when the puck is moving left)


Helpful. Another thing to notice: You don't necessarily need a pcb. For small demo purposes you could close-pack one layer of serpentine insulated wire, then a second layer of a second serpetine wire. There would be a height difference, but perhaps not more than with a two-layer pcb.


Incredibly helpful to conceptualize what is going on. Thanks!


This is incredibly cool. The research video showing the little "robots" placing drops of glue to assemble carbon fibers is AWESOME! I haven't been this excited by an internet video in months.

My immediate thought: how could this be used to make a really cheap desktop pick-and-place system?


There's a YouTuber named Stephen Hawes[1] whose made his own pick and place machine.

[1] https://youtu.be/6Sa9jNhaRbg


Yeah, but Index prices out at like $500 plus labor to put it together.

This has the potential for:

* way less material cost

* way less assembly, and

* way higher reliability due to fewer moving parts


And potentially higher repeat accuracy because you don't have the rotational joints to deal with. Those are pretty lousy when you get further out from the axis of rotation.


Get it to make more little robots!

Even smaller ones...


Magnetic drive is poor below the micron scale, but you could switch to electrostatic. No equivalent of diamagnetism to draw on tho.


> My immediate thought: how could this be used to make a really cheap desktop pick-and-place system?

The limitations of homebrew pick-and-place are the vision system, not the control system.

If you solved the vision system problems, you could probably build a pick-and-place out of Legos.


> If you solved the vision system problems, you could probably build a pick-and-place out of Legos.

Someone made one, and it’s amazing.

https://youtube.com/watch?v=LHsl9jSOO6M


There’d have to be some way to temporary bond components to the bots. Regular pick n’ place machines use suction.


I imagine having two little microbots working like tweezers. Theoretically, it's possible to manipulate the field to make one of the robots rotate. Two magnets rotating in tandem could make something like a tiny pair of tweezers.


The problem: there is solderpaste on the board before placement. Therefore, you have to bring the components to the board from above and push them into the solder paste. The suction based pick and place machines are well suited for this task. Tiny robots walking over the board (with lots of obstructions such as solder-paste and through holes) are not such a good match.


Suspend the board upside-down above the robots. They just need to smoosh parts on from below.

I.e., not practical, but fun to think about.


Actually, I bet this would be possible if the bots had a tiny magnetically actuated suction piston. You’d have to figure out how to create electromagnetic force in the z-direction independently from the x-y force though. Not sure if that’s possible.

Heavy components could be held by multiple bots.


Why couldn't the bots apply the paste as well?

I think of this being a tiny version of a home SMT assembly where you're dispensing paste and placing components manually, one at a time.

I also suspect that you can have the target PCB separate from the one the magnets move on.


Or have them be asymmetrical, one has the half-tweezer at the left side the frame, the other at the right.


Put the whole thing in the dark, small solar cells on top and then short circuit them through a coil, that could power a tiny gripper whenever they are lit up.


Steer a laser beam over to the robot.


> pick-and-place system

Most likely not, but bio/chemical experiments yes.


Pedantic: this isn't a stepping motor, it's just a plain linear motor.

Stepper motors have multiple teeth per pole: https://en.wikipedia.org/wiki/Stepper_motor#/media/File:Step...

The rotor has slightly fewer teeth than the stator, such that one "electrical rotation" (each coil being switched on in sequence) causes the rotor to advance by the number of missing teeth. That is what makes a stepper so precise; it gets 4+ divisions per tooth.


Equally pedantic: it functions as a linear stepper motor, therefore it is a stepper motor. That it doesn't have a platen is not relevant. Being a stepper is not a statement of precision, it is a matter of principle, does the movement occur in discrete steps or does it occur by continuous movement through a magnetic field? This is a stepper by any practical definition.


> it is a matter of principle, does the movement occur in discrete steps or does it occur by continuous movement through a magnetic field?

motor typology is not well defined, so we're arguing a moot point. That said, I think this is a poor criterion for stepping. BLDCs, SRMs, and doubly-wound machines are all steppers by this definition. IMO it is not useful.

All motors which are called stepper motors have one unique thing in common: they take multiple electrical rotations per mechanical rotation. This motor does not do that.


You could make it move continuously by using an infinite number of microsteps.


The same holds for a rotating stepper.


If you can lock the movement into a specific position and it's repeatable because of the geometry of the motor, it's a stepper.

Yeah, of course it doesn't have the same design of the steppers you buy around. That's obvious from the title alone. That doesn't make it not a stepper. And yeah, it's less precise than the ones you can buy¹. That should be expected too.

1 - Although, that conclusion is way too simplistic to make. It has a different kind of imprecision, so depending on how you compare, you may as well conclude that it's more precise.


> If you can lock the movement into a specific position and it's repeatable because of the geometry of the motor, it's a stepper.

BLDC, series wound, and switched reluctance motors will also hold their position. Cogging torque exists in the majority of motor types. It is not very useful for dividing motors into families, and is certainly not specific to the group of machines called stepper motors.

If you energize each coil of a BLDC, series wound, or SR motor (not the wires, each actual coil) in sequence, the shaft of the motor will rotate once (or very close to once). If you do the same with a stepper motor, the shaft will have turned 22.5 degrees or less.

It is possible to make a linear stepping motor. The Vernier scale is basically stepping as applied to measurement. This is not that.


More pedantry: it's a PM (permanent magnet) stepper motor, whereas I think most common stepper motors are hybrid VR (variable reluctance) / PM type..


This strongly reminds me of the ongoing efforts at the Miniatur Wunderland in Hamburg [0] (a very large model railway) to implement a model Formula 1 race track on which tiny race cars can move completely freely [1].

[0] https://en.wikipedia.org/wiki/Miniatur_Wunderland

[1] https://www.youtube.com/watch?v=xPUEOhMBpUw


That is ridiculously cool.


Very cool. Might make for a fun chess board or model train/model city layout.

Edit: Glad he mentioned Carl Bugeja's youtube channel, this instantly brought Carl's work to mind.


The model city application is indeed currently developed [0] at the Miniaturwunderland [1] in Hamburg, Germany.

[0] https://www.youtube.com/watch?v=xPUEOhMBpUw (in German)

[1] https://www.miniatur-wunderland.com/


That first video is amazing, what a dedication. And they got it working in the end. Super impressive.


How many robots can you move independently though (all moving in different directions or staying in place)?


Seems like any magnets on the same coil will move in the same direction. So it boils down to how well you can isolate the coils and/or orchestrate their motion so they aren't sharing a coil when you don't want them to be.

I wonder if you could use induced currents in the pucks instead of permanent magnets to create the opposing force. Then you could tune the PCB coil to target specific elements. So 212kHz moves puck A, 241kHz moves puck B, etc


Once you get rid of the permanent magnets though you'd need to power the pucks somehow. With permanent magnets you don't need any kind of active element on the pucks for movement alone.


You could let the pucks make contact with the PCB, and power them like that. If the pucks are pulled towards the PCB, then it is easy to let them make contact.


That would cause the whole thing to wear out in no time. I don't think any contact scheme would work for this kind of application you'd get all of the headaches of motors with brushes but on a tiny scale. Spark erosion would destroy the traces. Part of the elegance of this design is that it is non-contact.


You could power inductively, perhaps. So create a fluctuating magnetic field to deliver power to a coil (which is on the puck), then let a microprocessor on the puck control the flow of current to different coils (also on the puck) which are then pulled towards permanent magnets in the PCB.


Hm. You got me thinking about this: another layer below that can send a 'charge' pulse to a coil on the puck to charge a super cap. Bonus points if you can turn that into a levitation mechanism.


This is along the lines of what I was thinking initially but more by reacting to the instantaneous current induced in the coil rather than a charge/discharge action.

Basically a small version of the ring launcher - https://www.youtube.com/watch?v=V690VphqTwg

Where the ring launcher works by counter emf that evolves in the conductor, a tuned emf (like for RFID chips) could be made with specific properties. Eg. it might only respond to certain frequency bands and possibly (?) allow for both repulsive and attractive forces by either maintaining or inverting the exciter phase in the board.


I'm absolutely itching to give this a shot but I really should be concentrating on other things right now.


You could let a microcontroller on the puck control the allowed currents. If you do this sufficiently fast, you can multiplex over different pucks on the board.

Creating a tuned oscillator could be interesting too, but could also turn out to be too heavy, in terms of component weight.


Have through hole vias everywhere and turn your PCB into the surface of a tiny airhockey table?


Neat! Not too much pressure though or you'll be peeling your robots off the ceiling :)


You could power the pucks through induction.


Would you need to if they can move at 36cm/s ?


I have wanted to do exactly this concept controlled via RPi with voice recognition to make a real ouija board. I only mention it because I will realistically never get around to it myself.


Wow, actual innovation. Amazing stuff. And that video is from 2014!


Different principle, but it reminds me of OpenDrop:

https://www.youtube.com/watch?v=pSls9L_h3Q0



> Next steps: Levitation / sliding enhancements

I wonder if vibration would help reducing friction. I.e. superimposing a low-power high-frequency component in the field to avoid static friction.


Man magnetic fields are so fun to experiment with. These, or magnetic locks, so "magical"


If you have a bunch of magnets lying around have a look at Halbach arrays.


Wow; I knew something like this was possible since we've all held refrigerator magnets and such that obviously had oddly arranged fields, but I only had the vaguest idea. Thank you.


Halbach arrays and some correction coils can be used to make a passive magnetic bearing (long sought after holy grail). They are super interesting.


I've seen that a few years ago, for denser motors. Do they have any other use ?

Thanks for the suggestion nonetheless


Levitation through forward motion, passive magnetic bearings, what's not to like?


the Sri demo shows 2d motion. pcbs make it pretty straightforward to have an X and a Y array, but for some reason it doesn't seem to me like you can just easily drive both axes independently. could you really tune a 'step' to be on an arbitrary slope?


I'd say that depends more on how much you are willing expend on hardware to drive it. You could slice your coils into tiny segments (essentially: just the tops) and then use the back of the PCB to drive them. They'd be magnetic pixels. Maxels?


good idea - but that's alot* of drivers


You might be able to do something here along the lines of row and column addressing of DRAM.


If you move X,Y separately but with a small enough step, it would be virtually indistinguishable from moving along the slope.


Interesting challenge, can you 'microstep' along two axis at once without losing sync? That would be neat. I think I've worked out a way to rotate them as well!


I would imagine so; it should be the same problem as helical interpolation, but confined to two axes. https://infosys.beckhoff.com/english.php?content=../content/...


With 4 layers, it would be a trivial extension to drive a y axis


Electromagnets are cool.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: