-
Start
4 小時前 • 0 commentsA conversation about something in school brought up mechanical television somehow. It suddenly made me remember that it's a kind of project that I've been meaning to do for decades now, so why not now.
I hustled around looking for spare parts. Of course I didn't find the right stuff, but I found some good enough stuff. Which is:
- a DVD motor with a center tap (4-wire) but no hall sensors
- A3144 hall sensors
- logic-level n-channel MOSFETs AO3400
- 3 diodes, 2 of them SS34 or something from a DC-DC converter that I recently killed and one 1N4007 which should be good enough for freewheeling
- prototyping stuff: stripboards, breadboards, arduinos, pipicos...
Good enough to get going!
I did order a MiniFOC board with integrated inline current sensing meanwhile, but who knows how long will it take to get delivered. Meanwhile...
First thing I designed a Nipkow disc in OpenSCAD. That's easy.
Then the motor control.
At first I tried the most basic open-loop control hoping to just wing it. Made a 6-step table, fired it up with a very slow ramp to let it pick up the speed. With some trial and error and not without released smoke in the process it did start up. But there were two main problems with it:
- the motor would get crazy hot really quickly, even without a disc attached
- it would stall at the slightest hint of traction
I have a few 0.03ohm resistors lying around and I could use them for current sensing. But before that I wanted to try something that seemed more simple, adding a single Hall sensor. The DVD motors are fairly small and these A3144 through-hole Hall sensors are relatively thick as it turns out. I remembered how a few years ago some guy from Japan solved a similar problem with a Dremel.
![]()
Said and done! I destroyed 2 or three before I realized that it's safe to grind away the backside, which is just the lead frame, but from the front side you can't take more than maybe 0.5-0.6mm. Fixed it with a drop of CA glue first, then reinforced the pins with UV resin (it's so transparent it's practically invisible in the photo).
I had no idea how to really use it though. After a few consultations with Gemini which produced more words than I could read I decided to just go ahead and do the simplest thing I could think of. Which is:
- measure time between Hall interrupts
- divide it by number of steps (6) in my MOSFET sequence
- use this number as a new step delay
- don't forget to reset the current sequence to zero
Amazingly, as basic as it is, it just works. It needs an old open-loop kick-start to pick up the rotation and then electromechanics and feedback loop do their job and the disc spins up as if by magic. I can feel a bit of random beating in it when I hold the motor by hand, but it's minor. I think a tighter control loop with proper timer interrupts could fix that.
![]()
I can definitely continue with this project without waiting for parts. Except that I don't have a nice bright LED.
I should also mention things that I decided against:
- stepper motors: I have a few, and I've got the drivers for them. But they are a bit heavy and not really designed for 2000rpm continuous rotation. A typical NEMA17 would not even budge when given 5V. And I want to skip smoke-happy multi-voltage arrangements this time.
- toy DC motors from, well, toys: they are abundant, but they could be difficult to control with any degree of precision. Their longevity is questionnable. But it would probably be my second choice if I didn't have a DVD motor.
svofski
