DIY Automated rotary table for automatic polar measurements

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Design goals:
- make a complete polar measurement with 1 mouse click
- table must be strong enough to carry my Abbey clone speakers (+-50kg)
- it must be DIY

Status so far:

- PIC motor en encoder control board finished
- rotary table finished
- positioning works very accurate and fast (PID controlled)
- "scope" function for position routine works also (used to fine tune PID parameters)

What's left:
- program shortcut key's to make it easier to control it from Auto-It script
- adapt Auto-it screen to work with new software and ARTA
- do some code clean-up
- writing some documentation
- testing testing testing...


I will make all source code open source, and executables will also be posted. The pcb is very simple (see circuit attached). The only "difficult" thing for DIYers will be programming the PIC and finding a suitable motor cheaply.

I found a PITMANN motor on Ebay with a reduction of 63 and a 256 inc encoder for 30 €. Maxon motors with quadrature encoder show also up every now and then. For bearing I used one of these: Drehkranz Drehlager Drehteller Drehscheibe Ø 330 mm | eBay

remark: I have no affiliation with this seller. I just posted this because it’s ideal to make an automated rotary table.

The above should allow many people here to build an automated rotary table.
 

Attachments

  • USB_WIM_IO.JPG
    USB_WIM_IO.JPG
    285.7 KB · Views: 623
  • IMG_4811.jpg
    IMG_4811.jpg
    93.1 KB · Views: 207
  • IMG_4810.jpg
    IMG_4810.jpg
    87.2 KB · Views: 208
  • IMG_4808.jpg
    IMG_4808.jpg
    126.5 KB · Views: 217
  • IMG_4807.jpg
    IMG_4807.jpg
    116.9 KB · Views: 231
  • IMG_4805.jpg
    IMG_4805.jpg
    94.5 KB · Views: 239
  • IMG_4804.jpg
    IMG_4804.jpg
    94.4 KB · Views: 611
  • parameter setup.png
    parameter setup.png
    12.5 KB · Views: 593
  • parameter finetuning.png
    parameter finetuning.png
    54.6 KB · Views: 599
  • main screen.png
    main screen.png
    24.7 KB · Views: 633
Question by Gedlee posted in another thread:

Would you sell me one? What kinds of loads will it take? That usually ends up being the problem.

One suggestion. I do not test at equal intervals, its better to have more forward resolution than aft. But typing in the numbers would also be a pain. Could a numerical table be setup where one just clicks a button and it goes to the next value in the table? That coupled with HolmImpulse would be exceptional.

I may even make my polar mapping program available and for the first time in history we could all be looking at very high resolution and accurate polar data that is done the same way and hence comparable.

------------------------------------------

I will not be selling anything. But as everything will be made open source, it should be easy to build one. I also have no problem at all with somebody else making kits available. I would even encourage this, but I do not have the time to do this myself.

Loads: the brearing I use can take 300kg (theoretically). For testing I place my desk chair on top of it while programming (that a load of +80kg :) )

Nummerical table: this should be possible. I still have some work with the Auto-It scrip but I will look into that.

Coupled with HolmImpulse: that should be no problem to write a script in Auto-it to do this. Currently I am targetting ARTA because it has a polar responce plot and holm does not.

Integrating your polar program: I am very interested to take a look at this. In what language is it written? I currently use C# 4.0 in VS2010.
 
Wow very cool. I've been thinking about something like this for a very long time, although I wouldn't make it automated. The problem I keep running into is how do you keep the baffle equidistant from the microphone? As it spins, doesn't the driver/baffle move further from the measurement point?

I've been trying to figure out a track method to put the mic and stand on a track that circles the speaker. I've stated building the stand. 2" PVC pipe set in a 5 gal bucket of concrete. Then an arm sticking out that houses the mic.
 
Integrating your polar program: I am very interested to take a look at this. In what language is it written? I currently use C# 4.0 in VS2010.

I use VB.net in VS2010 - not identical but extremely similar. The number crunching is all done in FORTRAN because of the superiority of this languages numerical abilities, but this is just linked in as a DLL - there is no user interface to anything FORTRAN.

My techniques are extremely complicated, but they yield extremely high resolution data. Far better than anything that I have seen from ARTA or any other program. There is more to doing an accurate polar map than just plotting the raw numbers.
 
I use VB.net in VS2010 - not identical but extremely similar. The number crunching is all done in FORTRAN because of the superiority of this languages numerical abilities, but this is just linked in as a DLL - there is no user interface to anything FORTRAN.

My techniques are extremely complicated, but they yield extremely high resolution data. Far better than anything that I have seen from ARTA or any other program. There is more to doing an accurate polar map than just plotting the raw numbers.

Sound very interesting. I have programmed VB.net before (actually learned VB.net and then switched to C# for a customer), so that is not a problem.

It would also be very interesting to compare the diffences between an ARTA polar and a Gedlee polar. Please send me your code, and I look into it. If it works ok, I think it would be possible for me to program 2 buttons: "automated measurement with ARTA" and "automated measurement with HolmImpulse".

I am currently looking into the possibility to control ARTA/HolmImpulse from .net by using one of the following:

UI Automation Overview

white

This way I could avoid using an external AutoIt script, which is much more flexible.

I will be travelling for the next couple of days, so probably will have no time to post here.
 
I am not sure that I want to let the code out of my hands. I am not a hobbiest, I do this stuff for a living and its very valuable to me. Best case I would make the executable available, but right now its still a little buggy. I can always get it to work, but its not always obvious what the problem is. As you know there are lots of ways that a program can crash.

I would love to do an ARTA comparison because everything that I see from ARTA looks far better than what I get with my system - by that I mean that ARTA is not showing the "warts" that I see. Might make sales better I suppose!

How about you do a measurement of a system with ARTA and send me that data (impulse responses) and I'll plot it on my system then we will post the two results. (I am sure that the impulse responses measured from ARTA are fine as long as they use log swept sine as in Holm. Its the post processing of these impulses that is the tricky part.) As I have posted before, I use 0, 5, 10, 15, 20, 30, 40, 50, 60, 80, 100, 120, 150, 180 degress. This is almost ideal if you look at where the maximum rate of change with angle is and put more points at higher rates. I can deal with equal spacing, its just more points, but nothing over 7.5 degrees in the forward direction is worth doing as there is not enough resolution in the data to get good results. Every 5 degress works well, but its far more data than is really required. Every 10 degrees is too coarse.

Can we do that?
 
Last edited:
Slightly OT but when you talk about it (maybe someone might be interested) - this is measurement of my approx. 10" OSWG with Celestion CDX1-1745, Holm file, but measured only up to 70 deg (I can redo it completely around, still have the speakers at home). I'd love to see it plotted with Dr. Geddes's software.

Download HOLMImpulse file

The speakers (the big ones, measured with all the drivers in place):
 

Attachments

  • 2031418.jpg
    2031418.jpg
    180.6 KB · Views: 385
  • wg_test.png
    wg_test.png
    85 KB · Views: 381
Last edited:
Wow very cool. I've been thinking about something like this for a very long time, although I wouldn't make it automated. The problem I keep running into is how do you keep the baffle equidistant from the microphone? As it spins, doesn't the driver/baffle move further from the measurement point?

Place the speaker back of center on the platform so that the baffle rests on the center line. Problem solved?
I've been trying to figure out a track method to put the mic and stand on a track that circles the speaker. I've stated building the stand. 2" PVC pipe set in a 5 gal bucket of concrete. Then an arm sticking out that houses the mic.
You will create additional measurement inaccuracy because the microphone is moving around in the room. Consider what would happen if you using a moving microphone system, but also rotated the speaker at the same time, so that the speaker was always pointing directly at the mic. Now do you expect to get exactly the same result throughout the full circle? ... Definitely not.
 
but measured only up to 70 deg (I can redo it completely around, still have the speakers at home). I'd love to see it plotted with Dr. Geddes's software.

I have no problem with plotting and posting other peoples data, but it has to meet with my criteria as my software is simply not set up to adjust to various angles. I have spent a lot of time figuring out what the best data set is and I am not interested in using anything else.

As I have posted many times, what I need is the Holm "zip" file (full setup) with data at 0, 5, 10, 15, 20, 30, 40, 50, 60, 80, 100, 120, 150 and 180 degress. Sample rate must be either 48 kHz or 44.1 kHz and correct (if you change the sample rate, Holm will report the current sample rate even if the data was taken at another sample rate, so be careful with this.)

There is a very good reason for data beyond 90 degress and that is that a full spheriucal modal is used. With no data in an entire 1/2 plane the software does not converge very well. Add just a few data points and it converges nicely.
 
The problem I keep running into is how do you keep the baffle equidistant from the microphone? As it spins, doesn't the driver/baffle move further from the measurement point?

The way that I analyze the data it doesn't matter. But if you measure too close and you do not account for this then it can be a problem. The mic should be kept at a constant distance from the point of rotation, not the baffle. And it should rotate about the center of the speaker, not the baffle.
 
Place the speaker back of center on the platform so that the baffle rests on the center line. Problem solved?


But there there would be a reflection off the platform.

The mic should be kept at a constant distance from the point of rotation, not the baffle. And it should rotate about the center of the speaker, not the baffle.

Oh, interesting. Ok. I've been doing it manually like this, but always thought my measurements had some degree of error because my distance to baffle was increasing slightly twards 180d.
 
Now is maybe not the right time to suggest adapting a horizon-to-horizon satellite dish motor. See ebay for "SG2100 Satellite Dish Motor". 140 degrees movement, under $100 including shipping, sturdy and weatherproof. It can be controlled directly from a satellite tuner card, or there's probably a way to use a microcontroller to send DiSEqC commands. Even a sound card: Small programs - Juras-Projects
 
But there there would be a reflection off the platform.



Oh, interesting. Ok. I've been doing it manually like this, but always thought my measurements had some degree of error because my distance to baffle was increasing slightly twards 180d.

If you place the rotating table at the bottom and put the speaker stand on the rotary table, you do not have this problem.

Requirement is however the structure is strong and the motor movement not to abrupt.

I made a quick sketch to show what I mean...
 

Attachments

  • quick sketch rotary table.jpg
    quick sketch rotary table.jpg
    34 KB · Views: 334
Perhaps this might interest some readers already while “waiting” for some usable source code:
- Pre-Compiled Auto-it script to take a polar measurement with ARTA (_Wim_Macro_for_ARTA_Loop_Measurement.exe)
- The script (source code) itself (_Wim_Macro_for_ARTA_Loop_Measurement.au3)
- A simulated automatic rotary table (RotaryTableSim.exe)
I made the above files as a proof of concept. This is mainly based on the excellent work of Fabian Reimann (http://www.artalabs.hr/AppNotes/AP-8%20Repetitive%20measurements%20with%20script%20language%20AutoIT%20EngRev1.pdf) , I just added some extra’s (automated rotary table and polar plot generation)
How it works:
Step1) Do a few measurements manually, generate a polar diagram and close ARTA => This way ARTA remembers your preferred settings (eg. Sequence length, sample rate, volume, gate times, directory for saving files…) Remark: you need a purchased version of ARTA, as you must be able to save measurements.
Step2) Run the exe (or run the script if you have Auto-It installed). Now you will see a form (see attached picture) that allows you to configure the number of measurements, how you want to save them, and if you want to use an automated rotary table or not. I wrote a little command line executable to simulate the rotary table I was going to make (RotaryTableSim.exe)
Step3) Press button “Okay – Start ARTA”. Now the script will control ARTA and take the number of measurements you requested, save them in the requested formats and generate a polar response afterwards. Overlays will also be saved.
Step4) Close ARTA (and run script again for a second measurement)

Remark: for people who do not want to build an automated rotary table, but want to save some typing and mouse clicks when taking a polar plot, this script should be all they need (set the delay time between measurement to the time you need to rotate your speakers manually)
 

Attachments

  • Auto-It Script proof of concept.png
    Auto-It Script proof of concept.png
    22.5 KB · Views: 299
  • ProofOfConcept.zip
    417.3 KB · Views: 77
Sorry for my late reply, I have been very busy (work).
I use a dc motor with a quadrature encoder attached. The encoder has 256 pulses per revolution of the motor. As the motor has a gearhead of 64, this gives a resolution of 16000 pulses per turn of the output axis.

As he dc motor at full speed does 3000 rpm, 256 pulses is a little bit to much for he pic to handle (12800 interrupts per second, and my code is not programmed for efficiency) For this reason I power my 24vdc motor with 12vdc (so max speed is approx 1500rpm)

The ideal motor to be used with the bearing described above, would have a gearhead of approx 120, and an encoder with Max 128 pulses. But as I use second hand parts, the motor I now have was the best compromise and it works ok.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.