• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Stepper Motors: Someone feel like helping me out with a loudspeaker turntable design for measurement purposes?

hardisj

Major Contributor
Reviewer
Joined
Jul 18, 2019
Messages
2,907
Likes
13,915
Location
North Alabama
Hey, fellas. I'll try to keep this OP brief and to the point, especially since I know not everyone here is "up" on what loudspeaker testing consists of.

I am laying the foundation for testing loudspeakers. I have spent a good deal of time the past few days trying out various methods of measurement. Ultimately, it looks like I'll be going with what is called a "ground plane" measurement. This involves simply placing the speaker on the ground.

However, I need to take measurements with the loudspeaker at different axes. I need to capture data at 10 degree increments.

For this, I have gone the traditional DIY route of purchasing a lazy susan bearing and sandwiching it between two sheets of 2x2 foot plywood. Here's an example of the turntable with a speaker on top:
index.php




The place where a stepper motor would come in handy is...
Right now taking my measurement process is: sweep the signal through the speaker, walk to speaker, rotate speaker 10 degrees, walk back to computer, sweep, rinse, wash, repeat until I have collected all the data I need. The speaker is about 40 feet away. And I'm taking 20+ measurements. That takes a decent chunk out of my testing time. Not to mention leaning over to align the speaker at the right angle. I have a bad back as it is.

Thinking I could just find a way to mount a motor under the platform, purchase a universal adapter to bolt through and call it a day, I thought "hey, maybe I could use a stepper motor and controller for this task". So, I googled and suddenly felt overwhelmed. There's a billion motors and all sorts of 'servo', 'stepper' and other types as well as sizes. I have been watching YouTube videos for the past few hours and I still don't see a clear solution. So I am coming to you guys for help.

What I need is:
  • Motor/Platform must be able to support 100 lb speaker BUT located off center (where the front of speaker (the "baffle") would be the center of rotation)
  • Speaker would be on a platform like in the above
  • Ability to set increments of rotation in 10 degrees
  • Push button from my computer either in a GUI or have code that permits just a 'next' type function to have the motor spin the platform so I can then sweep the speaker again and continue to repeat this process until I have collected all the measurements I need. OR remote controlled. Just anything to keep me from having to walk to the speaker over and over.
  • I can code in Matlab and am familiar with various languages. I am not a coder... but I have made my way around Matlab. I understand arduinos are often used for stepper motor tasks so if I have to go that route, I'll manage... surely there's some sample code out there that will fit my needs.

Edit: Also, the turntable top needs to be flush with the ground. That way the speaker is on the same level with the ground. I even dug a 1.5” pit today so I could sit my current one in the ground and make the spinning portion flush.


I hope this is clear. Clear enough, at least, to get some general guidance. Budget wise, I need as cheap as I can get but I'm assuming this is going to cost me $150+. I hope not. But I'm prepared for that. At this point, if there is a "buy this" solution for $200 I'll gladly do that, too. I'm already way behind on where I wanted to be with testing at this point and with tele-work I am ironically working more hours. This company actually makes one that, if I really had the money, I would just outright buy and be merry. But it's $800 USD. Ouch.

If someone could spoon-feed me on this I would certainly appreciate it. Sometimes I want to learn; but at this point I just need to make something work and I learn as I go.

Thanks in advance,
Erin
 

Attachments

  • 1588042976785.png
    1588042976785.png
    211.9 KB · Views: 152
Last edited:

boXem

Major Contributor
Audio Company
Joined
Jun 19, 2019
Messages
2,019
Likes
4,907
Location
Europe
Hey, fellas. I'll try to keep this OP brief and to the point, especially since I know not everyone here is "up" on what loudspeaker testing consists of.

I am laying the foundation for testing loudspeakers. I have spent a good deal of time the past few days trying out various methods of measurement. Ultimately, it looks like I'll be going with what is called a "ground plane" measurement. This involves simply placing the speaker on the ground.

However, I need to take measurements with the loudspeaker at different axes. I need to capture data at 10 degree increments.

For this, I have gone the traditional DIY route of purchasing a lazy susan bearing and sandwiching it between two sheets of 2x2 foot plywood. Here's an example of the turntable with a speaker on top:
index.php




The place where a stepper motor would come in handy is...
Right now taking my measurement process is: sweep the signal through the speaker, walk to speaker, rotate speaker 10 degrees, walk back to computer, sweep, rinse, wash, repeat until I have collected all the data I need. The speaker is about 40 feet away. And I'm taking 20+ measurements. That takes a decent chunk out of my testing time. Not to mention leaning over to align the speaker at the right angle. I have a bad back as it is.

Thinking I could just find a way to mount a motor under the platform, purchase a universal adapter to bolt through and call it a day, I thought "hey, maybe I could use a stepper motor and controller for this task". So, I googled and suddenly felt overwhelmed. There's a billion motors and all sorts of 'servo', 'stepper' and other types as well as sizes. I have been watching YouTube videos for the past few hours and I still don't see a clear solution. So I am coming to you guys for help.

What I need is:
  • Motor/Platform must be able to support 100 lb speaker BUT located off center (where the front of speaker (the "baffle") would be the center of rotation)
  • Speaker would be on a platform like in the above
  • Ability to set increments of rotation in 10 degrees
  • Push button from my computer either in a GUI or have code that permits just a 'next' type function to have the motor spin the platform so I can then sweep the speaker again and continue to repeat this process until I have collected all the measurements I need. OR remote controlled. Just anything to keep me from having to walk to the speaker over and over.
  • I can code in Matlab and am familiar with various languages. I am not a coder... but I have made my way around Matlab. I understand arduinos are often used for stepper motor tasks so if I have to go that route, I'll manage... surely there's some sample code out there that will fit my needs.


I hope this is clear. Clear enough, at least, to get some general guidance. Budget wise, I need as cheap as I can get but I'm assuming this is going to cost me $150+. I hope not. But I'm prepared for that. At this point, if there is a "buy this" solution for $200 I'll gladly do that, too. I'm already way behind on where I wanted to be with testing at this point and with tele-work I am ironically working more hours. This company actually makes one that, if I really had the money, I would just outright buy and be merry. But it's $800 USD. Ouch.

If someone could spoon-feed me on this I would certainly appreciate it. Sometimes I want to learn; but at this point I just need to make something work and I learn as I go.

Thanks in advance,
Erin
Is it an issue having the motor side to the table and use a belt to drive?
 
OP
hardisj

hardisj

Major Contributor
Reviewer
Joined
Jul 18, 2019
Messages
2,907
Likes
13,915
Location
North Alabama
Is it an issue having the motor side to the table and use a belt to drive?

The turntable top needs to be flush with the ground. That way the speaker is on the same level with the ground. I even dug a 1.5” pit today so I could sit my current one in the ground and make the spinning portion flush.

Not sure how easy it would be to have the same with a belt driven setup unless I trench out a path or just deal with the speaker not being level with the ground plane.

I will edit my OP.


This is pit I dug out. My turntable sets inside so the speaker is flush with the ground.

B5DF7A2B-D3C1-4446-8924-A71FD8581FA1.jpeg
 

boXem

Major Contributor
Audio Company
Joined
Jun 19, 2019
Messages
2,019
Likes
4,907
Location
Europe
The turntable top needs to be flush with the ground. That way the speaker is on the same level with the ground. I even dug a 1.5” pit today so I could sit my current one in the ground and make the spinning portion flush.

Not sure how easy it would be to have the same with a belt driven setup unless I trench out a path or just deal with the speaker not being level with the ground plane.

I will edit my OP.


This is pit I dug out. My turntable sets inside so the speaker is flush with the ground.

View attachment 60795
I see. Since you are ready to dig in, both belt and motor could be under ground. I was initially worried by the motor being a source of reflexions, problem solved.
The advantage of the solution is that it opens a world of choices for motor size and power.
 

617

Major Contributor
Forum Donor
Joined
Mar 18, 2019
Messages
2,433
Likes
5,383
Location
Somerville, MA
Man I've been through this exact project. I never finished it, but I did end up making major upgrades to my manual turntable.

A stepper motor is a simple device in application; you send it pulses and it steps a certain number of steps. The number of steps per rotation is known, so moving fairly accurate angular measurements is not too difficult.

You need to break this down into a few different problems.


First, you need to generate pulses from some kind of input. I used an arduino board which can be easily programmed to step motors; you can get fairly easy libraries for arduino which allow you to ramp the motor up and down, even, which should help accuracy. I have no real programming skills, so someone with your brain should be able to do this relatively easily. Now, if your objective is to save time, you'll want to make the input triggered by something; most simply a switch, or perhaps a series of switches (move +/- 5 degrees) or perhaps you can get someone to write an interface that works with ARTA, I can tell you what I know about that if desired.


Second, you need to make the pulses big enough to power a stepper. This is where a stepper driver comes in. A lot of the stepper drivers sold with arduinos are tiny and can't really run a big motor, so you'll want to look at how big a motor you need. Motors are generally sized according to their NEMA rating, which as far as I can tell refers to their frame size. Motors have square faces with a simple bolt pattern and have a variety of shafts. If you go to OMC-STEPPERONLINE.com you'll see all the stuff they sell, and the motors all have torque data.

Third, you need the motor mounted to a turntable. Torque is an issue here - so gearing down a lot helps makes the job easier for the motor. It also makes positional accuracy better, since the less the turntable moves per step, the smaller the minimum angle will be. Error will be minimized as well.

Power transmission is a tricky thing - I'd use the sort of belts used by 3d printers and cnc machines - you can find gears for them fairly easily which are made to go on standard nema motors. In essence what you are building is a 1 axis cnc, so borrow from those hobbyists and professionals. Let me know if you want me to dig up my files on that stuff.

You also need to worry about bearings - I designed mine to use a bolt and a skateboard bearing for rotation, and then use these up-mounted ball bearing things for the table to slide on. I can send you some of those if you want, they look like this:
1588045714353.png


Let me find the techtalk thread which documented some of my ideas and struggles.
 

617

Major Contributor
Forum Donor
Joined
Mar 18, 2019
Messages
2,433
Likes
5,383
Location
Somerville, MA

Dave Zan

Active Member
Joined
Nov 19, 2019
Messages
169
Likes
490
Location
Canberra, Australia
There's a billion motors and all sorts of 'servo', 'stepper' and other types as well as sizes. ..

Hi Erin

What you want is a "stepper" motor rather than a "servo" motor.
There are USB interface for stepper motors which avoids many of the complexities that "617" discussed.
They are not too expensive so would be my choice.
There are also planetary reduction boxes that fit on the end of the motor, avoids the complexities of belts.
Also not too expensive.
So you end up with a simple structure, motor on the rotation axis, some kind of friction reduction maybe inverted balls as 617 shows.
Even a small motor will be adequate with the reduction box.
$150 is in the ballpark in the US, maybe even less.
Search on USB stepper motor.

Best wishes
David
 
OP
hardisj

hardisj

Major Contributor
Reviewer
Joined
Jul 18, 2019
Messages
2,907
Likes
13,915
Location
North Alabama
Thanks for all the feedback, guys.

I think I have a good path. I'm going to see if I can find a few things to dig up and put on eBay to get some money in my PayPal account and hopefully make the order before too long.

I'll update you guys if/when I make the order and see if it works out.

Thanks again!
 

somebodyelse

Major Contributor
Joined
Dec 5, 2018
Messages
3,759
Likes
3,066
Firmata and Grbl might be of use. Both can run on arduinos and control stepper motors, although for grbl the stepper driver needs to be one with inputs for step and direction. Neither require any arduino coding - you can just open the example and hit 'upload' unless you want to make any tweaks. You then send commands over the serial interface to configure and control. There are libraries for a wide range of languages to make interacting with Firmata easy. Grbl is a CNC controller, so uses G-code. It doesn't need to know that your axis is rotary not linear - just use the steps per mm as steps per degree. Send 'G91' to switch to relative mode then 'G1 X10' to move the X axis 10 degrees and so on. With a little more work you can add limit switches and have the positioning absolute.

Have a look at the bearing assembly under the turntable in your microwave for inspiration - simple and effective.

I'd probably go for the belt rather than the reduction box, but it's a marginal call. It probably comes down to the tools you're familiar with.
 

EmilMadsen90

Member
Joined
Mar 2, 2020
Messages
14
Likes
13
This is a funny project. I actually made something for the exact same purpose 6 years ago for my Mechanical Engineering Bachelor's Thesis project.
- For actuator and transmissions, we went with a BLDC motor with a 10:1 planetary gear followed by a friction wheel pressed against the edge of the circular plate. This was possible because the plate was metal (aluminium). Not sure how it would work for MDF, the surface pressure could damage the MDF. Due to the gear ratio of the friction wheel transmission not being strictly fixed (in contrast to a toothed gear meshing), we had to use an absolute rotary encoder for the plate.
- The rotating plate was supported by wheels from roller skates.
- The rotating plate was a sandwich construction of two aluminium plates with LDL/bitumen/sticky black sh*t in between. This was quite dead acoustically.
Screenshot_20200526_004742_com.dropbox.android.jpg
Screenshot_20200526_005117_com.dropbox.android.jpg
Screenshot_20200526_010540_com.dropbox.android.jpg
Screenshot_20200526_005752_com.dropbox.android.jpg
Screenshot_20200526_005851_com.dropbox.android.jpg
 

Trouble Maker

Addicted to Fun and Learning
Joined
Jan 6, 2020
Messages
679
Likes
733
Location
Columbus, Ohio, US
Arduino is where my mind went too, but I'm not versed enough to offer support in any detail.
That community seems pretty massive with depths of knowledge and shared info. I can't imagine there is not code for a stepper motor out there you could use that is most if not all of the way there for what you want to do.

I was also wondering if you used a stepper motor if it would still be nice to have actual position data. You can get CAN shields for Arduino and probably re-purpose an automotive steering wheel angle sensor. If you go to old you will find only relative sensors and even further back ones that just output analog for another ECU to interpret. But most newer ones will (probably) be an absolute sensor with CAN output. Maybe there is a better source than this, but being in this field it is just where my mind went.
https://www.google.com/search?q=steering+wheel+angle+sensor&tbm=isch
Unfortunately these are meant to be in cabin so they are not weather resistant so maybe not the best application if you will bury it in the ground semi-permanently.

There may even be some way, some other communication you would wire between the Arduino and whatever you are using for the audio side so you could capture the actual angle data there automatically. This seems like it would be necessary if you wanted to automate any analysis of the data e.g. turn the spins into curves like listening window, PIR, etc. You could probably write programming in the Arduino to run the test, but would have to be able to use it to trigger running audio sweeps/burst in whatever you are to make and capture the audio.

I think with Matlab you can leverage ActiveX to run other programs that are compatible (with ActiveX) e.g. use Matlab to iterate the modes through angles (sending commands to your rig spinymaggier) and REW or whatever audio program you are using to run the sweeps.

Then Matlab can capture or be sent the data from REW and spinymaggier to make 1 big file of data.

I like the flexibility of Excel after unless you have a program that is better suited to whatever data you are analyzing. In my experience Matlab kind of sucks for visualization of X-Y line graph information and very flexible (not easy to on the fly manipulate the data). You could use Matlab to capture/run the data and have it (Matlab) output into a standardized excel file. Then that Excell file can have pre-made graphs in it. You can also just output a text, CSV, etc. if that is a file that can be brought into another program you are using to visualize more easily.

Sorry, not all of the answers but just some ideas that popped into my head.
 
Last edited:
Top Bottom