Hi great to have the diagrams put out to review. So (with an absence of a design specification) starting from“1) Outdoor sensors: A small electronic sensing system plug into the wall and sits outside your home taking regular readings. It has an RF transmitter, which sends the data wirelessly …..“[BTW Wireless – to me - implies there might be a time it runs off batteries and where possible plan to have a good battery life. ]
General:G1- Mechanical? What is the mechanical configuration – is it meant to fit into something and go outdoors and have the sensors in air with the rest of the circuit protected from dust and moisture.
G3-Sensors Power Managed. No sensor power can be switched, but data sheet suggests switching it on to conserve life of sensor.
G4- Physical – What is physical configuration, Looks like CMOS Gas Add-on is just stuck into Sensor Interface Shield-G4A how do the boards stay stuck together – is it friction of connector.
-G4B how do the CMOS Gas Add on sensors get addressed over the TWI/I2C bus, or know what slot they are in. Does the board/code have to be compiled to say which slot they are in, which would seem to mean that there is danger of cards (Tiny24) with the same TWI/I2C address responding at the same time.
G5 Can all the devices part numbers be identified eg no power regulator is identified U1 or U2.
Shield BoardS1 – Pullups on SDA/SCL ? Is this on the mega328 port pullups or on the shield board.
S2- PCA9540B is specified for VddMax=3.6V but Vcc is 5V
S3 - What is the reason for the PCA9540BD I2C Channel Mux? It would seem that with only 4 expansion slots, that the mega328P SCL(C5)/SDA(C4)) should cope.
S4 – should heater V be switched to design for more stable heater sensitivity and power savings if battery driven.Sensor Powering (from An2 FAQ) - 40mW no drift over 6000Hrs (250days) – to me implies a lifetime target of 6000hrs.Rh(e2v mics2710) range 66-73ohms @1.7V gives 44-40mW (target is 43mw so excellent)U2Vreg has capability to switch, but needs port.
S5 What are the values of series resistors R1 R2 R3. Mics2710 sense R0 is from 0.8 to 8Kohm, Sensitivity factor is 6-100Not able to analyze the circuits. Need to do paper analsis for air quality health threshold of NO2 100ppb.
1A) the hardware put out for review is not well defined, no BOM made available, and incomplete description of hw can be used.For an independent peer review – not some one involved in the internal processes - the hardware needs a greater level of description. So its seems valid and something is moving forward.
1B) The method of making it available for review through http://solderpad.com/vicatcu/aqe-sensor-interface-shield/ is like peaking through a keyhole at the circuit diagram. Shows there is something, and if a competent engineer is working on it, it’s a reasonable deliverable.
1C) A review of the critical real sensor data flow, from raw physical measurement to a measureable unit is not possible. Resistor values – value and type - are missing.The analog data path seems to be ratio metric and probably workablePersonally (as with a lot of other people) I’m donating my time on this and its up to the designers to provide all the details needed for a review of sensors.I hope you guys are doing a circuit and system verification and also manufacturing calibration.Otherwise, in my opinion, the data is going to be relatively worthless.
A wish list of stuff that seems to be missing :) (maybe next release I guess).
1) Put LEDs on the CMOS-gas-add-on so it is easy to see if the boards are working.
2) Make plug-able boards addressable – there are 4 slots - so that a user - local or remote - can see what board is in what slot, with what sensor. Make it simple and foolproof.
If I understand the way it is right now with the I2C mux the PCA9540B – a remote user can’t ask for the card in “slot2” to be pulled.
A local user could have 4 boards in the slots, and only three report and they wouldn’t know which board is faulty. Especially with no leds.For two boards of the same type, if they are put in the first two or last two slots, whether they will actually work is indeterminate.
3) Support extending the life of sensor by making it switchable
Heater voltages above the specified maximum rating willdestroy the sensor due to overheating. Heating by PWMbetween 0 and 5 V has been tested until 100,000 Hz anddestroys the sensor. The heating voltage must be pureDC voltage.
and using a series resistor for the heater element.“Long-term tests have shown that at 40 mW, no drift is measurable over 6000 hours.” (which is 250days)(see App Notes mics_an2-MICS FAQ at http://airqualityegg.wikispaces.com/Hardware-Sensors
Neil,1A) the hardware put out for review is not well defined, no BOM made available, and incomplete description of hw can be used.For an independent peer review – not some one involved in the internal processes - the hardware needs a greater level of description. So its seems valid and something is moving forward.I'm working on the BOM and will be publishing it to Solderpad in the near future. This is an iterative and interactive process (think spiral, not waterfall). Please try and be patient as the design evolves through the community process... me asking for a peer review from the group doesn't mean the design phase is complete and final. Some aspects of the BOM are not concrete, as I've said before, since the board is meant to accept different sensors, and each sensor may need different resistor values for the range selection chain (TBD).
1B) The method of making it available for review through http://solderpad.com/vicatcu/aqe-sensor-interface-shield/ is like peaking through a keyhole at the circuit diagram. Shows there is something, and if a competent engineer is working on it, it’s a reasonable deliverable.Solderpad has the actual Eagle CAD source files there too (stored in a git repository), the in-browser viewer is just a PNG rendering of those CAD files. If you want to see more detail (higher resolution) install Eagle freeware and open the source files...
1C) A review of the critical real sensor data flow, from raw physical measurement to a measureable unit is not possible. Resistor values – value and type - are missing.The analog data path seems to be ratio metric and probably workablePersonally (as with a lot of other people) I’m donating my time on this and its up to the designers to provide all the details needed for a review of sensors.I hope you guys are doing a circuit and system verification and also manufacturing calibration.Otherwise, in my opinion, the data is going to be relatively worthless.I, for one, appreciate the time you have been donating so generously, so thanks a ton! Please keep it up. As I have said before manufacturing calibration has never been in the budget and planning/schedule for this phase of the project. The hardware doesn't preclude the possibility of calibration / re-calibration (there's plenty of non-volatile memory in the system for example). I think it's something we will without a doubt revisit (repeatedly) in the future, but it's not productive to dwell on it right now, imho. To deem the data worthless before it even exists, I think is being a tad disrespectful to the subset of this community that is working on addressing the "calibration problem" at the application layer. You are, of course, entitled to your opinion.
A wish list of stuff that seems to be missing :) (maybe next release I guess).I have dragged my feet in sending the designs out for prototype, so I can in fact incorporate some changes before doing so still. Silver lining I guess.1) Put LEDs on the CMOS-gas-add-on so it is easy to see if the boards are working.Sure, how about a power red power LED and a green status LED that can blink whenever the sensor board gets polled by the master board?
2) Make plug-able boards addressable – there are 4 slots - so that a user - local or remote - can see what board is in what slot, with what sensor. Make it simple and foolproof.I need you to explain this concept better please. Right now the design is completely agnostic of which slot the sensor modules are plugged into so long as they are all different sensor types. If you have two sensors of the same type, that is also supported, so long as you plug one of them into Bus 1 and the other into Bus 2. I don't want to add wires to the cable, and I don't want to lose sight of the fact that while there are four connectors on the shield, the design supports the use of something like the Seed Studio Grove I2C Hub as a means of adding more sensors to the bus.
A local user could have 4 boards in the slots, and only three report and they wouldn’t know which board is faulty. Especially with no leds.For two boards of the same type, if they are put in the first two or last two slots, whether they will actually work is indeterminate.The Sensor Box doesn't have a User Interface - it's dumb by design. I think incorporating LEDs into the sensor modules as you've suggested is a really good idea, though, to give some minimal diagnostic feedback at the end points. Users simply need to be smart enough to plug sensors of the same type into separate sides of the Bus, as I said earlier. That can be debated at length, but there's a fundamental trade-off between flexibility and resilience to users at play here, and I leaned toward flexibility in this instance. It's still unclear to me to what extent the "multiple sensors of the same type in a single sensor box" scenario is even realistic, though it is at least supported right now.
I wasn't quite sure how to reconcile this note with the individual sensor datasheets. The heating elements themselves are characterized as having a min/max operating resistance. How does a series resistor improve matters and how would you "appropriately size" it? I could add the a spot for another 0805 series resistor, but I would really like to understand what its role actually is and if its the correct thing to do or not. Looking at page 15 of the Dev Kit User's Guide it seems like they make reference to 82 ohms to get 76mW and (51 + 82 =) 133 ohms to get 43mW but they are also running the whole thing off of 5V.and using a series resistor for the heater element.“Long-term tests have shown that at 40 mW, no drift is measurable over 6000 hours.” (which is 250days)(see App Notes mics_an2-MICS FAQ at http://airqualityegg.wikispaces.com/Hardware-SensorsIn their context, lets take the MiCS-2710 whose datasheet suggests a heating voltage of 1.7, a typical heater resistance of 66 ohms, and a typical heater power of 43mW. So they would invoke a 133 ohms series resistance to get that. The voltage drop over the 66 ohm heater would be 5V * 66 ohms / 199 ohms = 1.65V. Switch over to the MiCS-5525 that has a heating voltage of 2.4V, a typical heater resistance of 74 ohms, and a typical heater power of 76mW. So they would invoke an 82 ohm series resistor. The voltage drop over the 74 ohm heater in that case is 5V * 74 ohms / 156 ohms = 2.37V.In our case we are using a regulator to drive the voltage across the heater directly... so what's the difference? I thought using regulators would be a more reliable means of creating the operating voltage drop across the heater called for by the datasheet. It's certainly possible I have misinterpreted the datasheets.I've posted a question to the electrical engineering stack exchange to see if anyone there has any thoughts on the matter (feel free to up-vote to give the question traction).
3) Support extending the life of sensor by making it switchable
Heater voltages above the specified maximum rating willdestroy the sensor due to overheating. Heating by PWMbetween 0 and 5 V has been tested until 100,000 Hz anddestroys the sensor. The heating voltage must be pureDC voltage.
V_x ------ R_heater --- (V_a) --- R_series ------ GND
P_heater = V_heater * I_heater = (V_x - V_a) * (V_a / R_series)
Neil and others,I'm not quite done with the Sensor Module updates, but the I added a "heater coprocessor" to the Egg Shield to handle the heater feedback constant power regulation control loop. Talks to its own little SPI potentiometer and monitors the heater divider. I haven't updated resistor values on the egg shield yet, I need to get some sleep at this point, but I wanted to let ya'll know I've been hard at work on it and encourage people to take a look at the progress and provide comments.Vic
git clone git://solderpad.com/vicatcu/aqe-cmos-gas-add-on.git
The adjustable regulators + the digital potentiometers are for feedback control of the sensor heaters to optimize for constant power. Basically, adjust Heater V+ through the digital pots and measure Heater V- to obtain the target power dissipation in the sensor heater. For example: P = (V+ - V-) * I; I = V- / R18; so P = (V+ - V-) * V- / R18. We know R18 and V+ (ala the digital potentiometer and adjustable LDO known feedback resistor), so we can calculate P and adjust V+ until P is where its supposed to be for that particular sensor. Does that make sense?
On Thursday, June 14, 2012 11:41:55 AM UTC-4, vicatcu wrote:
Finally, the adjustable power supply chips are Microchip TC1071VCT713; I'm not using fixed supplies because we are optimizing to keep the heater power in bounds of the datasheet by controlling the heater voltage. Am I missing something in your comment about using a "dedicated powersupply chip"? The sensor operating voltage is fixed on purpose. I can't think of a good reason to justify making it adjustable in software.
Long-term tests have shown that at 40 mW, no drift is
measurable over 6000 hours. At 80 mW, the heater
resistance can rise up to 30%. By powering the sensor with
an appropriate series resistance on the heater, this
resistance does not impact the sensor power by more than
2% over the same period, which is sufficient for most
applications. More sophisticated “constant power” circuitry
can be used to fully eliminate this effect.
Neil,There are two TC1071s because the two sensors require different power. CO wants 76mW while NO2 wants 43mW, so I wanted to be able to manage the heater power on each sensor independently.To review AN 2:
Long-term tests have shown that at 40 mW, no drift is
measurable over 6000 hours. At 80 mW, the heater
resistance can rise up to 30%. By powering the sensor with
an appropriate series resistance on the heater, this
resistance does not impact the sensor power by more than
2% over the same period, which is sufficient for most
applications. More sophisticated “constant power” circuitry
can be used to fully eliminate this effect.What I think I've implemented is the "more sophisticated 'constant power'" circuitry approach alluded to in the last sentence and what I think you were referring to is the "appropriate series resistor" in the middle of the paragraph.I think you are referring to the "pulsed modes" on the last page of AN 2 in the last part of your response. For our initial implementation, I'm not going to attempt this technique since, to paraphrase AN 2, "these application modes are very powerful and very complex" and "these methods have significant potential but require specific development for each application." But what I've done by incorporating your feedback is to design the hardware to *support* the pulsed modes if we want to try to use them in the future.Best Regards,Vic
Neil,
Yes, a goal is to keep the heater power relatively stable and on target over time to eliminate that variable.
Cheers,
Vic
OK, I've pushed updated design files for the Egg Shield (attached for convenience). I need to make a few analogous changes to the Add-on Sensor Module tomorrow to keep the two boards consistent from a software perspective. I think it's evolving into a pretty solid and sophisticated design and we're almost there on these boards!Cheers,Vic
Hi Vic, once again I want to thank you for keeping this design process open & well documented. I've got two questions that I haven't been able to answer based on the materials/documentation so far:1. Could you estimate the total power consumption of the shield as it's currently designed, including the sensors (CO: 76mW + NO2: 43 mW)? And what about the other add-ons (like O3)? For those of us who are interested in battery-powering Eggs, at least for limited amounts of time, this would be great information. I'm sure it will change since you're alpha testing now---just a ballpark estimate, that's all. Trying to figure out how big of a battery I'll need ... :-)
2. Is the shield still pin-compatible with Arduino-based host boards other than the Nanode? Like the Uno or Pro?
3. Assuming it's pin-compatible, would you expect the firmware to run on other boards with minimal or moderate revisions? (We could start a thread about firmware, maybe that's appropriate...)