I stumbled upon the Arduino Pro Mini and thought that this would be a great little guy to use for my project. But I see that it is now retired (https://www.sparkfun.com/products/9218). I was looking at comments and found that some have stated that it is unreliable, possibly due to the crystal. However, these comments are 2-3 years old.

Does anyone know if this is the reason why it was retired? Were they made more reliable later prior to retirement? Does anyone have more recent info on this? If this isn't reliable, is there an more inexpensive board out there that I could use for my project.

I require 2 analog ins, 5-7 digital outs (4 for an H-bridge, the rest for LEDs). I ran across the ATtinys but I'm not sure they have enough memory (haven't looked into it far enough and am having trouble figuring out the download procedure).

Thanks.

Adrian

I'm a programmer dammit, not an engineer! Like this post? Please give me some karma for it. Thanks!

Gravitech still carries them toohttp://www.gravitech.us/arpromi5v.htmlhttp://www.gravitech.us/arpromi3.htmlNot unreliable at all. I have about 10 of them running, turned on en masse 3 times a week for a couple of hours at a time.

Want to go smaller?https://solarbotics.com/product/kardw/

Make your own board?http://www.nkcelectronics.com/arduino-runtime-board-rev-b.html

Or surface mount?http://www.crossroadsfencing.com/BobuinoRev17/ $3 a bare board, includes US mail (to US address)

I require 2 analog ins, 5-7 digital outs (4 for an H-bridge, the rest for LEDs). I ran across the ATtinys but I'm not sure they have enough memory (haven't looked into it far enough and am having trouble figuring out the download procedure).

It's worth it to learn how to use a bare chip like the ATTinys. As far as enough memory goes you just have to look at the size of your compiled script to know what you need. But if you think you still need the full 32K you can just buy a bare ATMega328P-PU for under $3; programming it is the same as with the Micro.

Chagrin, yeah, I'm getting interested in trying out bare chips. Since these projects are probably going to be battery operated, I probably won't need any voltage regulator so long as I don't go above the specified voltage, right? But I will have to somehow indicate or shut off the system when the voltage has dropped below the spec. Is there a circuit to redirect the power to stop powering the chip and just flash an LED or chirp a speaker?

I'm a programmer dammit, not an engineer! Like this post? Please give me some karma for it. Thanks!

Chagrin, yeah, I'm getting interested in trying out bare chips. Since these projects are probably going to be battery operated, I probably won't need any voltage regulator so long as I don't go above the specified voltage, right? But I will have to somehow indicate or shut off the system when the voltage has dropped below the spec. Is there a circuit to redirect the power to stop powering the chip and just flash an LED or chirp a speaker?

If your battery is of appropriate voltage then no, you don't need a regulator.

The AVR chip itself can monitor its own battery voltage. You have to set the analogReference to INTERNAL (which is 1.1V) or use an external voltage reference such as a TL341 and then measure the battery voltage against that. Once your chip recognizes that the battery is low you can set it into a sleep mode, waking it periodically to blink your LED, etc. and that will be much simpler and more efficient than any external monitoring circuit.

The AVR chip itself can monitor its own battery voltage. You have to set the analogReference to INTERNAL (which is 1.1V) or use an external voltage reference such as a TL341 and then measure the battery voltage against that. Once your chip recognizes that the battery is low you can set it into a sleep mode, waking it periodically to blink your LED, etc. and that will be much simpler and more efficient than any external monitoring circuit.

Isn't 1.1 V too low a voltage? Doesn't that mean that if the voltage goes above 1.1V that the value returned will just be maxed out at 1023?

I'm a programmer dammit, not an engineer! Like this post? Please give me some karma for it. Thanks!

The AVR chip itself can monitor its own battery voltage. You have to set the analogReference to INTERNAL (which is 1.1V) or use an external voltage reference such as a TL341 and then measure the battery voltage against that. Once your chip recognizes that the battery is low you can set it into a sleep mode, waking it periodically to blink your LED, etc. and that will be much simpler and more efficient than any external monitoring circuit.

Isn't 1.1 V too low a voltage? Doesn't that mean that if the voltage goes above 1.1V that the value returned will just be maxed out at 1023?

Yes, that's correct; you would need to use a voltage divider to keep it under whatever your reference voltage is. Well, point being that you have to compare the battery voltage against some known reference. Leaving it as analogReference(DEFAULT) would be comparing it to itself.

The AVR chip itself can monitor its own battery voltage. You have to set the analogReference to INTERNAL (which is 1.1V) or use an external voltage reference such as a TL341 and then measure the battery voltage against that. Once your chip recognizes that the battery is low you can set it into a sleep mode, waking it periodically to blink your LED, etc. and that will be much simpler and more efficient than any external monitoring circuit.

Isn't 1.1 V too low a voltage? Doesn't that mean that if the voltage goes above 1.1V that the value returned will just be maxed out at 1023?

Yes, that's correct; you would need to use a voltage divider to keep it under whatever your reference voltage is. Well, point being that you have to compare the battery voltage against some known reference. Leaving it as analogReference(DEFAULT) would be comparing it to itself.

There are a couple of different methods to allow a arduino to 'measure' it's own Vcc voltage. Perhaps the easiest is to just wire the shield's 3.3vdc pin to a unused analog input pin and use the resulting reading as a compensation value to compute what the internal Vcc reference (actually Avcc) must be.

Another method is to select the analog input mux to read it's internal 1.1vdc band-gap voltage directly and then 'reverse calculate' what the Avcc voltage must be.

So, as long as the voltage is higher than 1.1V, even if the rest of the system has dropped below 5V or 3.3V (depending on hardware), it will get an accurate reading for 1.1V? Does the chip have an on board voltage regulator to ensure an accurate 1.1V over a range of voltages so it can be done just using the bare chip?

I'm a programmer dammit, not an engineer! Like this post? Please give me some karma for it. Thanks!

So, as long as the voltage is higher than 1.1V, even if the rest of the system has dropped below 5V or 3.3V (depending on hardware), it will get an accurate reading for 1.1V? Does the chip have an on board voltage regulator to ensure an accurate 1.1V over a range of voltages so it can be done just using the bare chip?

The band-gap voltage can be considered a 'regulated' source not effected by Vcc variation. However while it's a pretty constant value for any specific AVR chip the actual value of the band-gap is subject to a device tolerance specification. So one does have to derive what their specific band-gap voltage is if they are going to use it for 'calibration' purposes.