Measuring thousands of sensors using a single board

Thread Starter

rhydo

Joined Jul 5, 2016
14
So you have 50,000 wires from 50,000 resistors that you want to measure?
You may not be the first person to have to measure many sensors but you may be to first to need to do it for 50,000.
Are all the resistors approximately the same value?

The most straight-forward method is to use a multiplexer to sample each resistor.
For common 16-channel multiplexer chips (such as the CD4067) that would require some 3125 chips.
To address each channel would require 12-bits decoded into 3125 select lines and a 4-bit common address for each mux.
So all you have to do then is interface 50,000 resistor connections to 3125 multiplexers and generate the decode multiplexer logic. :eek:
Piece of cake.

The Digikey price for the CD4067 in 2000-up quantities is $0.532/ea so the total cost for the multiplexers alone would be $1663.
And allowing a half-square inch for each mux would require a board of 40 inches on a side for the multiplexers alone.
Thus your total system cost is more like a few thousand dollars as opposed to your budget of a few hundred.

And now you know why I decided to post this query here :(
I considered using multiplexers and the calculations ran off the page soon. I was genuinely hoping someone whould have done something like this at some point in history. Maybe having to keep track of all the RFID tags in a shopping mall or something. I also looked into Data Acquisition Modules but none come even close to the requirements I am looking to design even if I pay an arm and a leg.

Ok, heres another question. What if I scale it down to lets say 500 resistors. Are there any cheap microcontroller boards with enough input pins that I can use to develop this idea into a commercial product? I understand an arduino has multiplexer shields available but I am not sure one can develop something based on an arduino UNO for an industrial application.

Hypothetically, how would you approach designing a system to measure 500 (or even 250 if that helps) resistors sequentially, log that data and then transmit it to a main server every 15 minutes?
 

Thread Starter

rhydo

Joined Jul 5, 2016
14
I think this is initially a hardware design challenge, much more than it's a microprocessor project.

Are all the resistors present at the same time, can the wiring be done so as to suit the measurement circuit, or are you stuck with some existing wiring design? How is connection being made to the resistors, and does insertion/removal need to be an easy process? How accurately must the measurements be made?

And as always, "What is the budget?" This is not going to be something you'll put together on a breadboard with the TV on.

I am flexible with regards to the wiring deisgn, since I am yet to figure out how to build the hardware for something like this without breaking it down in to bite siyed peices of 250 resistos each. As of now I am measuring each reasistor sequentially so there is one wire for each resistor in the prototype circuit I built. The connection to the resisors is made through a wire attached to the respective voltage divider the resistors are part of (http://learningaboutelectronics.com/Articles/Arduino-ohmmeter.php).

The measurements needn't be too accurate. All I BASICALLY need to know is whether there is a finite resistance there or whether it is infinity.
From previous answers I am beginning to think there isn't some readymade solution available in the field for something like this, so I am now thinking of reducing the number of resistors I measure. I haven't decided how many that will be at a time but I do know that the entire final measurement/data logging module shouldn't be more than $200.

Any ideas from you would be appreciated. Just dont ask me to use 10,000 arduinos :p
 

WBahn

Joined Mar 31, 2012
26,398
Trust me I have the insertion problem taken care of. I have been bashing my head over it for a long time and made a break through. I can take care of the removal and replacement of the resistors easily and the errors are theoretically non-existant. The system also worked well when I tested it out on a small scale with an arduino. I have absolutely no idea if it will work on the scale of thousands until I buitd a prototype and test it. I wish I could discuss the mechanical aspect with you but I beleive you will understand that some things I just cannot share online.

You mentioned the ease of the circuit design. So I will have 50,000 wires coming down, each requiring sequential measurement of resistance. How would you go about designing the data logging circuit for this monstrosity? Ignore the issue related to the removal or replacement of resistance values and the contact resistances. The system also doesnt need to be super accurate or overtly fast.
What is the range of resistance values? If they aren't too low, you could use CMOS switches (along the lines of the CD4066) in a tree fashion, but you are still talking about a lot of parts. You need to connect these 50,000 wires to 50,000 different pins on something. If you have a device with, say, eight A2D channels available at the top level, then each channel has to handle 6250 devices. Let's say that each node of the tree connects to eight daughter channels, the you would need six layers in the tree to accommodate 50,000 parts and that would involve about 57,000 switches. They come in four channels per package, so you need over 14,000 of them. In quantities of 5000 they are about $0.13, so let's call it a dime. You are looking at $1400 just for the switches.

You want the entire thing to be under $250 (and I assume that is just the parts costs). That means that you need the cost per channel to be less only half a penny per channel. That will get you about one inch worth of hookup wire?
 

Thread Starter

rhydo

Joined Jul 5, 2016
14
What is the range of resistance values? If they aren't too low, you could use CMOS switches (along the lines of the CD4066) in a tree fashion, but you are still talking about a lot of parts. You need to connect these 50,000 wires to 50,000 different pins on something. If you have a device with, say, eight A2D channels available at the top level, then each channel has to handle 6250 devices. Let's say that each node of the tree connects to eight daughter channels, the you would need six layers in the tree to accommodate 50,000 parts and that would involve about 57,000 switches. They come in four channels per package, so you need over 14,000 of them. In quantities of 5000 they are about $0.13, so let's call it a dime. You are looking at $1400 just for the switches.

You want the entire thing to be under $250 (and I assume that is just the parts costs). That means that you need the cost per channel to be less only half a penny per channel. That will get you about one inch worth of hookup wire?
I understand that this huge quantity of measurements will probably not be feasible.
How about measuring 250 resistors? What are your thoughts on such a system. If you had to design something that measures 250 resistor values sequentially and sends the logged data off to a computer every couple of minutes, what would your deisgn look like? Only condition is that it has to be cheap (<$200) and reliable.
 

dannyf

Joined Sep 13, 2015
2,197
Analog switches plus a mcu (arduino or not).

You can Daisy chain the switches to expand the channels the whole contraption is able to scan.

End of the day, you will find that a layer system, multiple local slaves being managed by a master is the approach to go.
 

John P

Joined Oct 14, 2008
1,908
A budget in the hundreds is far far out of range for this project. If that's the deal, you'll have to rethink this whole thing. Could you replace the resistors with optical targets and have a video camera checking for their presence/absence? No wiring, no multiplexers, no contacts, it sure would be simpler.
 

crutschow

Joined Mar 14, 2008
27,718
...................
Hypothetically, how would you approach designing a system to measure 500 (or even 250 if that helps) resistors sequentially, log that data and then transmit it to a main server every 15 minutes?
I would just scale down the multiplexer approach.
That would require 32, 16-channel multiplexers for 512 resistors or 16 multiplexers for 256 resistors.
All could be controlled by a microcontroller or PC with a USB data logger.

For example this USB logger (12-bit resolution) for $99 has 8 analog inputs and 8 digital outputs, so you could group the muxes to have 8 parallel outputs to the logger, with the mux addresses controlled by the 16 digital outputs (4-bits for each mux address and 2 or 4 bits for the mux group select signal).
Each address change would give 8 new analog outputs to measure by the logger.
 

NorthGuy

Joined Jun 28, 2014
611
Reading through the thread, I think I start to undertand what are you trying to do, which is nothing similar to this description:

Imagine there are 10 'items' on a shelf. You are tasked with tracking whether each item stays in place or is removed.

10kohm measured at a location (lets say) = 'Item is present'
Infinite resistance measured = 'Item is absent'
5kohm measured (on the same location) = 'This item has been misplaced from the 5kohm shelf'

This is it.
Looks like you have some sort of surface and you have 50,000 test points located over that surface, as if you had some sort of mat and you would attach 50,000 needles from the top and 50,000 needles from the bottom and then try to measure the resistance between the corresponding pair of needles on the top and on the bottom. Then you want to monitor the resistance map and send the result to the computer at regular interval. Is that similar to what you want to do?
 

atferrari

Joined Jan 6, 2004
4,425
Looks like you have some sort of surface and you have 50,000 test points located over that surface, as if you had some sort of mat and you would attach 50,000 needles from the top and 50,000 needles from the bottom and then try to measure the resistance between the corresponding pair of needles on the top and on the bottom. Then you want to monitor the resistance map and send the result to the computer at regular interval. Is that similar to what you want to do?
Like this?

multipoint.jpeg
 

KL7AJ

Joined Nov 4, 2008
2,229
Hello everyone,

I initially developed a system based on Arduino where I could measure 6 resistors sequentially and basically ascertain whether they were there or not. So infinite resistance basically meant 'no resistor'. This way I could tract the presence, absence and misplacement of resistors. This was not very hard to do. Now here is the problem -

I have to scale this exact system to one that measures thousands of resistors (50,000 as of now), ascertains whether each is in its place or not and then transmits this acquired data wirelessly to a main computer every 15 minutes.

I have experience in circuit design and basic programming and sensor measurement but I have never worked on such a massive scale. Could any of you guy kindly help me figure out where to start? What would be the cheapest and easiest hardware platform to utilize in order to solve this problem. I went through certain Data Acquisition Devices but there are so many of them and most seem expensive (above $200).

I hope I have explained the problem clearly. Any help would be highly appreciated!
I might suggest that you contact the engineering folks at either CERN or Stanford Linear Accelerator (SLA C)......collecting massive sensor data sets is what they do.
 

joeyd999

Joined Jun 6, 2011
4,477
This thread has gotten a bit silly. In fact, I believe OP is probably overcomplicating what it is he is trying to do. So, let me add to the complication:

For each resistor, add a Bluetooth 4.0 LE radio and a GPS. This way, each resistor can broadcast its value and location to a cell phone for attention.
 
I’d take the following approach… I think it would make sense here to divide and conquer and so I’d look at having a number of measurement boards that would each handle a set number of measurements and report back to a controller that could aggregate all the measurements.

For each board, we want to maximise the number of measurements it can take. All of the Atmel range have a limited number of analogue inputs but usually have many more digital IO pins hence a solution that made use of digital IO would make sense. Looking at the Atmel range, I notice that there are parts that have up to 86 IO pins and hence a board designed around this would probably make sense.

As for the measurement, see the attached diagram. The idea is that a particular input is selected for measurement by taking the Sel line high, all other Sel lines would be tristate or low. This then makes a voltage divider for the resistor under test; the resulting voltage will be higher than ground and thus can be seen through, for example, D3. R2 ensures that the analogue input isn’t affected by any stray capacitance. Diodes D1, D2, D4, D5, D7 and D8 are for protection and ensure that the inputs are clamped to be within Gnd and VCC. The part of the circuit in the dotted box would be replicated as many times as there are io pins available and so for some Atmel parts could be as many as 80.

The downside is that for 50000 inputs, you’re still looking at 625 boards but at these volumes it probably makes sense to have custom boards fabricated using surface mount parts. The cost of a board seems to be affected greatly by its size so using small parts saves cost.

Note that I have not validated any of this, it’s just my initial thoughts.

upload_2016-7-8_10-7-31.png
 

WBahn

Joined Mar 31, 2012
26,398
The measurements needn't be too accurate. All I BASICALLY need to know is whether there is a finite resistance there or whether it is infinity.
Then do it digitally via a switch matrix. Choose a threshold resistance such that any value much below that results in a LO reading while any value much above that results in a HI reading. Basically you use a passive pullup and then use the resistors being checked as pulldown resistors.
 

WBahn

Joined Mar 31, 2012
26,398
Do all the resistors have one end common?
He's claiming that the resistors are being removed and inserted into the measurement system and that that's all taken care of and that we don't need to know any of those details. I'm not convinced that those details are taken care of nearly as well as he thinks they are and I tried previously to find out if he is actually trying to measure these resistors in-circuit. Hopefully you'll have better luck drawing these key points out of him.
 

dannyf

Joined Sep 13, 2015
2,197
If you don't need to know the precise value of those resistors, one way to go about it is to set up the circuit so that the voltage sensed can be reliably measured in high or low logic levels.

Then s bunch of serial in shifters can be used.
 

John P

Joined Oct 14, 2008
1,908
I understand that this huge quantity of measurements will probably not be feasible.
How about measuring 250 resistors? What are your thoughts on such a system. If you had to design something that measures 250 resistor values sequentially and sends the logged data off to a computer every couple of minutes, what would your deisgn look like? Only condition is that it has to be cheap (<$200) and reliable.
I'm pretty sure that a system of this size and budget could be built, but you'd have to be doing it as a hobby and paying zero for the labor.

Years ago I did design a system that effectively measured 256 resistors, actually 256 resistive crosspoints in a 16x16 matrix. It worked pretty well.
 

Thread Starter

rhydo

Joined Jul 5, 2016
14
I'm pretty sure that a system of this size and budget could be built, but you'd have to be doing it as a hobby and paying zero for the labor.

Years ago I did design a system that effectively measured 256 resistors, actually 256 resistive crosspoints in a 16x16 matrix. It worked pretty well.
Sounds similar to what I would like to do. My initial query is now redundant. As has been shown multiple times that nothing short of NASA or CERN would do it. Can you kindly give me some basic information about which board you used and what your hardware setup was? I have decided to break the problem down into 200 or so manageable measurement chunks. Any guidance would be highly appreciated.
 

BR-549

Joined Sep 22, 2013
4,938
rhydo, I have read this thread several times, and still haven't a clue as to what you are asking.

Are you sorting resistors? If so, how do they come? Are they on tape?

How are you matching the measurement to the individual resistor?

Please explain exactly what you are talking about.

Use 1 resistor as an example. From the start to the finish. What has to be done?

We need context.

Very, very confusing.
 
Top