Hi Guys, I would like to setup a data logger that will log about 10 sensors over 12 weeks on battery power alone. The interesting data will come in only as a few events over those 12 weeks. How can I go about it.
I would like to keep the size and the price low. Any ideas ?
You don't say how much data is to be logged or how much current the sensors require or how long they need to be turned on in order to acquire a sample or the space available to your for batteries or the temperatures the device is expected to be able to survive or in fact most of the critical design questions that would need to be answered in detail, but as a first approximation I'd suggest you use an MSP430 and if necessary an external SPI EEPROM or even an SD/MMC card.
Using 2 2600mA NiMH, you can run a micro with 2.7V/2mA average. However, active A2D probably need tens of mA, so you need to put the micro to sleep most of the time. As other stated, need more spec and reqt.
Ultimately a few events will occur over the 12 weeks period. The events can be described as sudden. Consider them a crash event recorded by an accelerometer. By the time the sleeping SBC wakes up, the data is gone.
I doubt the accelerometer actually does any recording.
Sounds like some part of the circuit must always be on especially an oscillator, and a wake up circuit. These then power up and trigger an A/D and FIFO, whilst some permanent mechanism for storage is powering up.
As you have not said how fast and wide the data has to be sampled, how long and maximum storage size, it is difficult to work out what is the best requirement to meet the sampling and power regime. Especially the startup time or if this really must be continuously monitoring.
If for example your 10 channels has an aggregate sampling speed of 1MHz+ and is 12/16bits wide+ it is going to be a lot harder to get this to be battery powered, where as 8/10 wide can be relatively easily done with video speed A/Ds (even with 10 of them)!
If it is using a SBC (single board computer) that is off the shelf, then it sounds like you are designing this the wrong way round. You have specified no doubt your computer and OS before looking at the important issues of what data sampling and storage regime with power requirements you have. I suspect you understand software and little about electronics/hardware.
This is akin to designing a tunnel boring machine but stating first that it must be based around a specific model of car.
The sampling method and how to determine when to sample is the most crucial part of this project, until that is cracked in a low power way, anything else is meaningless.
Paul Carpenter | email@example.com
How much of the problem is examing the data leading up to the event(s)? Do all of the sensors need to be active prior to the event(s); Can you describe the event sequence What kind of data rate and resolution will be needed
I cannot get anything from the data leading upto the events. Think when to deploy a air-bag. I cannot realy predict when it will happen from the data leading upto it.
The "event" can occur on any one of the sensors
Well most sensors will record something. I only realy need to know the highest value among all sensors. Effectively I meed to know how hard the box was nocked during the 12 week period.
Don't know, I am learning :-)
OK, The help you guys are giving me is great. I applologise if I am breaking some of the posting rules. I am on a learing curve :-)
First this microprocessors is an area I have not delved in, but the concepts are not too far. I am a Mechanical design Engineer with copmputer science and automation background.
Now 10 sensors is arbitrary, but I would like to stick to that number.
Imagine that I have those ten sensors, and I am waiting for a spike in the data. How can I record that one spike in 12 weeks.
I have one idea and that is to have a miriad of interrupts. This "spike" will trigger an interrupt. When the device wakes up is simply records the time and the interrupt that woke it up and then it doses off again.
That would work for me but it is a bit of a cludge.
Forgive my ignorance, but I have some vague ideas.
Can an accelerometer that has SPI output feed it's output into a storadge device with a very rudimentary clock ?
Finaly I am now looking at the very low powered AVRs.
is down and I am very excited with the possibilities. Its sounds like a fun world
The following device is very impressive
Maybe I can attatch my sensors to this, write a very efficient program and log everything.
If it is only the peak value of a step function then the problem is very different than continuous logging looking for peak. It is possible that a mechanical peak detector with a time stamp may be all that is needed.
It is possible that having a separate data logger for each sensor approach makes the overall system reliability better than one data logger and multiple sensors.
Focus on identifying the problem parameters before selecting the implementation technology. A search of the transportation industry data loggers may find units that already have the kind of capability you are looking for.
Saying it is like (or is) an airbag helps a lot. I will assume that it is an airbag since this helps to frame the sample rate and resolution you need. I am also assuming that you are sampling an analog signal and not an already converted digital signal.
This means you need to continuously sample all sensors. Is it up to your recorder to detect when an event has occurred that needs to be recorded? Is there an input that says, "this is an event"? Even if this input comes after the event has started or happened, it will relieve the processor of the burden of discriminating an event from a non-event. This is a separate problem from recording the event, so they need to be dealt with separately.
He is being a bit nit-picky saying that the sensor does not do the "recording" that is up to your processor. Ok, this is getting more interesting. You actually don't need to record the full shock waveform, just the max? I guess for development and debug you will want to record the waveform so you can analyze how the data analysis goes. Now, I am also assuming that you have to determine when you have an event.
This will be cruicial. The slower you can sample the lower your power consumption. Watching for 1 MHz shocks will be very power consuming. If we are talking about shipping shock, you might even be able to use a simple analog filter to discriminate a threashold event and start up the MCU with that. That could potentially keep your power level very low between shocks.
It would take some logic inbetween since both devices are slaves and you need a master to coordinate. But you might not need an MCU. A CPLD could do the job if simple enough and it could be very low power. But an MCU could be very low power as well if you don't run it at a high rate all the time.
Don't worry about the MCU until you have figured out your problem. You have to have requirements on the MCU before you can pick one. You might be surprised at which one ends up being the best. We recently replaced an AVR with an ARM in a new design partly because of power.
I suggest that you prototype with a COTS MCU board and get more info on what your device needs to accomplish and how you might go about it. You need to define your problem better before you can pick an approach and select components.
What sensors are you using? This will have the biggest impact on the design.
If you only need to know the maximum amplitude and don't need to know the shape of the impulse nor the exact timing between the sensors, I would suggest just storing the maximum peak value in a capacitor for a while and then move the value into a more permanent memory at some later time.
Some piezoelectric sensors alone will give quite large voltages when hit. The voltage could be connected through a diode to a capacitor, which would hold the maximum value. If both positive and negative peaks need to be stored, two diodes and two capacitors would be needed. For other types of sensors, a low power consumption amplifier may be needed between the sensor and the diode and capacitor.
However, in practice, the capacitor charge will leak out slowly, so the value should be read out periodically and the capacitor discharged, say once a minute. If you have some processor to perform the reading, it needs to be activated only for transferring the reading from the capacitor to memory, thus reducing the average power consumption.
In order to get consistent readings no matter when the impulse occurred between the processor activations, the wake-up cycle should be set so that the capacitor leakage is only a few percent between processor activations.