Show Posts
Pages: [1]
1  Using Arduino / General Electronics / Re: Arduino GPRS shield caught fire on: November 30, 2013, 05:15:38 pm
You may be right, and hopefully so. As I mentioned before, I really can't make out what is going on with the power input transistors and mosfets leading into the shield's regulator.

Cutting/removing the 5V pin to the shield may then be unnecessary, but wouldn't hurt.
2  Using Arduino / General Electronics / Re: Arduino GPRS shield caught fire on: November 30, 2013, 12:55:34 pm
Yes, 12v to VIN for both should work fine.

Both the 5v (from the Arduino regulator) and the VIN pins are connected to the GSM shield. As best I can read the schematic, if the GSM shield detects 5v on the 5v pin, it will try to use that instead of VIN, and this is when the capacitor comes into play. If you cut (or bend out of the way) the 5V pin from the Arduino to the shield, then the shield will be forced to use VIN. At that point we have exactly what you propose: 12v to both devices in parallel, and each device will use its own on-board regulator.

I'm not the expert on this stuff so I hope others will confirm but this seems correct to me.

I agree with you Alek, Arduino really needs to put a note about this issue on the wiki page.
3  Using Arduino / General Electronics / Re: Arduino GPRS shield caught fire on: November 28, 2013, 02:01:13 pm
To determine that resistor size would require knowing how much current the chip wants to draw from the pin, which is something it "shouldn't" want to do in the first place. This could be a deep rabbit hole and I think is getting off topic from this thread, so I'll leave it there. Thanks for the warning though.


4  Using Arduino / General Electronics / Re: Arduino GPRS shield caught fire on: November 28, 2013, 12:43:04 pm
Other than powering devices on at the same time (although even then there is always bound to be time differences of at least a few milliseconds), is there any practice recommended to somehow protect against this? It just seems like having power on one side of an equation is something that is going to happen all the time.
5  Using Arduino / General Electronics / Re: Arduino GPRS shield caught fire on: November 28, 2013, 12:19:46 pm
Hey LukeZ, does your solution work? I've recently bought a GSM shield from RS and I've just read this discussion, I've got the orange guy on my board and I'd like to minimize the risk.
Yeah, running power through VIN seems to work though I've only tested the shield by itself on the bench and not with the Arduino in the final application.

One thing to be careful about when two or more sub-systems use separate DC voltage sources is what can happen if some of the voltage sources are turned on and some are turned off. Current can flow to/from input pins in unpowered parts and even pretty small amounts of current can damage clamping diodes and such.

I have not heard of this before, and would be somewhat skeptical but you have 16k posts! In my case the two boards should power on and off and roughly the same moment, but for the sake of understanding this better: let's say I have an Arduino with a digital input pin that reads 0 or 5v. The Arduino is off but there happens to be 5V on the input pin (common ground). This will damage my Arduino??

Or another situation is where you have a powered serial device hooked up to a non-powered Arduino, this would damage the serial pins on the Arduino?

6  Using Arduino / General Electronics / Re: Arduino GPRS shield caught fire on: November 14, 2013, 03:49:25 pm
Since it's going to be detached anyway, I am tempted to power the GSM shield with a dedicated 5v supply distinct from the Arduino, but with a common ground.
Actually, looking at the shield schematic, it appears I can drive the GSM shield through the VIN connection with up to 20 volts (this is what the onboard LMZ12002 regulator can accept). Since my shield won't be connected directly to the Arduino power, I think I can power it straight from the car battery (~12v). In that case I don't believe the capacitor in question will ever even come in to play. So far as I can tell it is only to buffer the +5v input.

Out of curiosity I'm trying to make out what the whole arrangement of transistors / mosfets is for on the shield schematic, that leads into the shield's regulator. I'm assuming it restricts the shield to either +5V or VIN but not both, and chooses one over the other somehow.



7  Using Arduino / General Electronics / Re: Arduino GPRS shield caught fire on: November 14, 2013, 12:40:55 am
Thanks again for that explanation. In my case, room is not an issue so I am tempted to solder an electrolytic in the place of the tantalum. The solder pads are huge and I can bend over the cap so it lies flush with the top of the shield. Will look strange, but that doesn't bother me.

Actually I am using this with the Mega and because of the design of the GSM shield as well as the design of some of my other shields, it won't be possible to have the GSM shield on the stack anyway. Thankfully the GSM shield doesn't require many pins itself so I will just mount it off to the side.

Since it's going to be detached anyway, I am tempted to power the GSM shield with a dedicated 5v supply distinct from the Arduino, but with a common ground. The Arduino regulator is limited in the current it can provide but I can easily make a 5v, 2A supply just for the GSM. This should also make the capacitor in question somewhat less critical in terms of total capacitance.

I can't think of any negatives to this approach but if I am missing something I hope someone will tell me.


8  Using Arduino / General Electronics / Re: Arduino GPRS shield caught fire on: November 13, 2013, 11:06:29 pm
Thanks James, that's exactly what I needed. I was looking for polymer caps on DigiKey but wasn't sure I'd found them; with that part number I was able to find where they were hidden, and actually I see now that "polymer" is an option in their parametric search for tantalum caps.

Well ten bucks is a lot for an SMD cap but the shield cost more than a hundred to begin with, and my truck cost many thousands (that's where this is going), so I'd be losing a lot more that ten bucks if a fire broke out.

Pardon my noob-ness, I don't know much about different capacitor types, just generally what a capacitor does. Is there any reason, other than form factor, that we couldn't use an aluminum electrolytic for this purpose? Certainly you can get very high capacitances at high voltage ratings for very cheap, but maybe there is something about that type that is unsuitable to this purpose.

However we use electrolytics as backups in RC planes for exactly the same sort of situation - current spikes on the main power source (battery) that would cause the receiver to brown out, if not for the capacitor to power the device. This sounds very similar to the description given on the Arduino GSM page for why the orange cap is on the board.
9  Using Arduino / General Electronics / Re: Arduino GPRS shield caught fire on: November 13, 2013, 06:58:01 pm
Ok, I've just bought a GSM shield and some Googling brought me here. Not what I wanted to find out.

I'm wondering if anyone can offer an explicit solution to those of us who have the shield already. As James points out in his blog post:

Quote
There’s really only two options for the board:
Replace the 6.3V Rated Part with a 10V Rated part. This may not be possible given the capacitance value.
Replace the part with a Polymer. Again, limited by the cap value (the largest 6.3V Polymer I know of is 1500µF).

So the two options are neither one apparently very practical given the limitations stated. Is the bottom line that we should simply return our GSM shields and try to get a refund?

Soldering/desoldering is not a problem for me. Is there some reasonable combination of capacitors that could perhaps be installed in parallel somehow? I say reasonable because I don't see much on DigiKey that looks very practical from a size/cost point of view.

There are reams of discussion on this issue in the comments to some of these blog posts but after having pored through it all I don't actually see any specific instructions for correcting the problem that refer to literal part numbers or actual experience with a fix. 

10  Forum 2005-2010 (read only) / Development / Re: SimpleTimer library on: January 19, 2011, 08:01:39 pm
Hi guys, this is a useful library, however, I have found a bug which is easily remedied.

The issue is that prev_millis is not reset for each timer on first creation. Let's say you create a timer, it will be assigned ID = 0. That timer ends, now you create a new timer. The code will just reuse the old ID which is now free, so this second timer will also get assigned ID = 0. However, since prev_millis isn't reset on creation, it will also be assigned prev_millis[0] from the previous timer.

The time that has passed since the first timer was "destroyed" and the new timer created is essentially now reflected in prev_milllis[0]. This time may very well exceed whatever timeout you have on your new timer, so you might be surprised to find that it expires immediately.

The fix is simple enough. In "SimpleTimer.cpp", in the SimpleTimer::SetTimer function, you need to add this line:
prev_millis[numTimers] = millis();

The new function should look like this:

Code:
int SimpleTimer::setTimer(long d, timer_callback f, int n) {
    if (numTimers >= MAX_TIMERS) {
        return -1;
    }

    delays[numTimers] = d;
    callbacks[numTimers] = f;
    maxNumRuns[numTimers] = n;
    enabled[numTimers] = true;
    prev_millis[numTimers] = millis();
    
    numTimers++;

    return (numTimers - 1);
}

This ensures that every timer you create, even if it is reusing some old TimerID, will have its "start time" set correctly.

Maybe someone could update the library source...


Luke
11  Forum 2005-2010 (read only) / Interfacing / Re: Decoding Radio Control signal pulses on: October 01, 2010, 04:53:44 pm
Sorry, here is the link:

http://paparazzi.enac.fr/wiki/MeekPE_PPM_Encoder_Board
12  Forum 2005-2010 (read only) / Interfacing / Re: Decoding Radio Control signal pulses on: October 01, 2010, 04:53:09 pm
Vince and Mem, check here for a design that uses diodes to encode a PPM stream from individual servo pulses:
13  Forum 2005-2010 (read only) / Interfacing / Re: ServoTimer2 - drives up to 8 servos on: December 30, 2010, 05:31:50 pm
Thanks mem for the reply - that's pretty much what I figured. I'll use a different timer interrupt instead.


Luke
14  Forum 2005-2010 (read only) / Interfacing / Re: ServoTimer2 - drives up to 8 servos on: December 30, 2010, 03:31:29 pm
Mem, just a quick question - are your ServoTimer2 and MsTimer2 at all compatible with each other? I'm trying to use both in a sketch and am getting the following compile error:

Quote
MsTimer2\MsTimer2.cpp.o: In function `__vector_9':
C:\Program Files\Arduino\libraries\MsTimer2/MsTimer2.cpp:147: multiple definition of `__vector_9'
ServoTimer2\ServoTimer2.cpp.o:C:\Program Files\Arduino\libraries\ServoTimer2/ServoTimer2.cpp:24: first defined here

Maybe there's some way to get them to work together but I figured I'd just ask if they were clearly incompatible before I start trying to figure out the conflict.

Thanks for all your contributions,


Luke
Pages: [1]