Go Down

Topic: Ruggedized Nano? (Read 326 times) previous topic - next topic

Gahhhrrrlic

Has anyone ever come across a Nano variant which has more robust electrical/mechanical/thermal limits than the standard?  Anything with a beefed up regulator, better crystals or higher fidelity circuitry?  I'm looking for something that is more likely to stand the test of time in less than optimal environments while having stable voltage characteristics and which can handle a more reasonable current draw.  Rugged-circuits.com has something like this for the UNO but I was hoping for something similar in a Nano.  With limited board space, I'm not expecting the works but any improvement on the standard components would be welcomed.  Anybody know of any such projects?  Thank you.
https://turbofuture.com/misc/The-Ultimate-Arduino-Tutorial

ron_sutherland

#1
Oct 10, 2017, 08:59 am Last Edit: Oct 10, 2017, 09:13 am by ron_sutherland
Robustness is complicated, I would check if the BOM parts have a life expectancy (e.g. electrolytic capacitors are normally 3k to 10k). If there are ceramic capacitors, which may thermal shock, then did they reflow them properly and do they show signs of rework with a soldering iron. Finally,  if my experience with RoHS solder is an indicator (e.g. tin pest and tin whiskers) then maybe robustness is meaningless since the thing will stop working and go in the trash in a few years.

Gahhhrrrlic

In my case, it's not "shelf life" per se but performance characteristics that I'm after.  I guess I did mention durability so your comments are germane but the highest priority is that the electrical performance characteristics are spot on (5V is really 5V for example), the components are strong (can handle 20V on the VIN pin), etc.  I figured there would be a 3rd party that had simply replaced some of the BOM with better components and used better fabrication methods/materials.
https://turbofuture.com/misc/The-Ultimate-Arduino-Tutorial

ron_sutherland

#3
Oct 10, 2017, 11:54 pm Last Edit: Oct 11, 2017, 01:41 am by ron_sutherland
20V on the VIN pin would probably need a switchmode power supply (SMPS). I think it is a good practice to have some copper planes between the MCU and the SMPS.  I'm not too sure it is a good idea to put an SMPS adjoining the MCU.

I have started to use an [OKI-78SR-5] for 5V on my boards, it takes up to 36V and outputs up to 1.5A. I have it working with the Pi zero and on some AVR boards (m328p and m1284p).  It has enough input range to work with 24V batteries and I can even charge the battery in the circuit (e.g. 24V LA charge at up to 30V).

[OKI-78SR-5]: https://www.digikey.com/product-detail/en/murata-power-solutions-inc/OKI-78SR-5-1.5-W36-C/811-2196-5-ND

The problem I would have with using the SMPS and a Nano is smoking the MCU with all that current. I need some sort of valve to limit the current to a safe level for the pins. I have tied those resettable fuses and they do not work fast enough. What works is a resistor. Another thing that works is to add current sources to the board so they can not damage the MCU pin. Unfortunately once the current source is in place I want to be able to run it from the VIN voltage (those wants are a PITA).

Years ago I noticed some circuits that level shifted I2C with a nearly useless BSS138 N-CH MOSFET. After playing with some SPICE simulations I started using the level shift for 12V to 5V and now 36V to 5V. It turns out that running a 20mA current source from 36V and then into a level shift before going into the MCU allows the MCU to control a ridiculous string of LED.

I end up smoking things like the Nano fairly quick. I do better if there are some power sources that are intrinsically safe to use with the MCU inputs, and it helps if the MCU inputs are as tolerant of my mistakes as possible without getting overly in the way of what I am trying to do.

Gahhhrrrlic

Perhaps one day I'll simply design my own board and have it fabbed but for now I'm better off buying off the shelf complete boards that have already been designed because I'm buying something that has been tested and I know what to expect.

Since I'm throwing a nano in my car soon, I want it to be able to cope with alternator voltage, which can swing from 9V to 16V with possible transients outside of that range. 

I think an upgraded voltage regulator on the VIN pin would be my #1 "want".  The next one would be better 5V and 3.3V regulators for more stable voltages on my digital pins and as reference on my analog pins (right now I can't rely on the accuracy of my ADC readings).  The 3rd thing I might want is higher quality oscillators and lastly, the ability to draw 20mA on a few pins without experiencing voltage depression.

Also, there is something strange going on in my car whereby if I turn off the arduino before I turn off the car, the car goes into "limp mode" which means it cuts power by about 80% or so and runs like shit.  The reason it does this is because the throttle body is drive-by-wire and there are 3 throttle sensors (one for the pedal, one for the commanded plate angle and one for the actual plate angle) and they all have to agree within a narrow tolerance.  Somehow the Arduino is sending feedback through the sensor wire and throwing off the voltage on one of the sensors when I turn the Arduino off.  I don't know if this is due to the quality of the board or it's just a design constraint but all in all, I feel there's more to be desired in terms of electrical stability and I was hoping that there would be a 3rd party board that had addressed this by using more expensive components that don't fluctuate or burn out as easily.
https://turbofuture.com/misc/The-Ultimate-Arduino-Tutorial

ron_sutherland

#5
Oct 11, 2017, 10:38 pm Last Edit: Oct 11, 2017, 11:27 pm by ron_sutherland
I delved into a small JD tractor problem some years back. It was producing huge voltage spikes, over 60V if I recall.  The battery cable was having connection problems. I think the alternator can go way over 16V if there are battery connection problems and vibration wiggles the cables. I think a cars computer module is designed for upwards of a 100VDC input.

DC to DC converters can be found that can take the peak alternator voltage and provide regulated power for something like an Arduino. Another option that cost less for testing is to use a separate battery for the Arduino so it does not see the wacky power from the car's 12V tiny-grid (micro-grid was taken).

Robust computing is not going to happen until there is robust regulated power.

I would argue that the voltage on the digital pins is less important to regulate since both 4V and 5V are seen as HIGH. What is important is ensuring that nothing going into the microcontroller is outside the voltage range (i.e. about a diode drop from the supply rails). The microcontroller has a bandgap reference that can be calibrated. Once it is calibrated the temperature compensation built into it is good and very localized to the ADC, but using it is a learning curve (which I have not completed yet).

Fly by wire electronics and RoHS solder, the mind boggles... Anyway, I would need to see a schematic, but I think this is the sort of thing I like to avoid, cause it can go wrong, and then I would feel bad.

One other note about that JD tractor is that it was Diesel and had no spark generation, so I could ignore EMI as a cause of problems, but if an engine is doing the spark thing then that can play hell on these microcontrollers as well. They need to be in an EMI friendly space.

westfw


Quote
throwing a nano in my car soon 
1) I think an upgraded voltage regulator on the VIN pin would be my #1 "want".
An automotive-grade pre-regulator should solve that problem.


Quote
2. The next one would be better 5V and 3.3V regulators for more stable voltages on my digital pins
There have been a couple posts recently where people don't seem to understand the essence of "digital" logic, or the nature of voltage regulators.  Digital logic has 1s and 0s that are "non-critical: in their exact values.  You can't count on getting "stable voltages" out of digital pins.  You can only count on them being with the defined range for 0 or 1.


Quote
3. and as reference on my analog pins (right now I can't rely on the accuracy of my ADC readings).
That's a different matter, though I think it's more likely to be related to noise on the actual analog pins than problems with the voltage regulators.  You have to get prety specific with your requirements, though.  a 10bit A2D nominally requires a 0.1% voltage reference to give "accurate" results, and those tend to be expensive and the opposite of "robust."


Quote
The 3rd thing I might want is higher quality oscillators
More accurate?  More robust?  One of the reasons that resonators (~0.1%-1% freq accurate) get used instead of crystals (0.01% accurate or better) is that the resonators are more physically robust...


Quote
the ability to draw 20mA on a few pins without experiencing voltage depression.
"ye canna change the laws of physics..."  High current IO pins on microcontrollers are going away, rather than getting better.  And see (2).

Gahhhrrrlic

Lol is that Scotty?

Ok guilty as charged on getting my wording wrong.  I sometimes say one thing and mean another.  I mean in some cases I do want a robust board.. this is automotive after all but when I talk about the electrical issues I'm having, I guess I'm going for higher fidelity which as you pointed out tends to be less robust.  So be it.  And I guess I don't really care about the digital logic per se.  I'm more focused on accurate timing and having predictable voltage levels for my analog inputs, since most of my projects involve analog signals. 

For my car application, I'm reading RPM, Knock, Manifold Pressure, Throttle Position and Air-Fuel Ratio, which all rely on a voltage between 0 and 5.  However I find myself having to recalibrate everything because the numbers the Arduino is reporting don't jive with my dedicated automotive diagnostic hardware, probably because of voltage drift or  depression or whatever the right term is for it.  I took great care to control noise on the input lines by using Tefzel wire, which also handles the environmental hazards as well.  So I'm pretty happy with the wiring job I've done.  I also made sure to have the chassis of the car act as a common ground for everything so I didn't have floating voltages or anything contaminating my signals.  Despite the signals being fairly clean, I can't seem to get stable readings from my code and I think it's because of the reference voltages in the board moving around.  If the interrupts trigger on certain voltage threholds that are supposed to have a built-in tolerance (anything from 4-5V being high for example) but the highest voltage I can read is 4.2, it's no wonder I'm triggering my interrupts with noise ripples on my signal.

Well, it's not the end of the world.  I can always achieve what I need with discrete circuitry.  I was just asking about upgraded boards so as to reduce the chance of error on my part, integrating everything.
https://turbofuture.com/misc/The-Ultimate-Arduino-Tutorial

Go Up