Noob Question: SainSmart MPU6050 - i2c_scanner "No I2C devices found"

Foreword: I'm totally new to arduino, and circuitry in general, other than college level physics about 15 years ago....

...but I'm giving it a shot.

I basically came into this with a specific project in mind - building a gps laptimer / data logger.

Got the adafruit Ultimate GPS shield to work, and was able to log gps data to the SD card.

But, when I tried to hook up the accelerometer I bought, I got nothing.

The sketch "MPU6050_DMP6" said it coudn't connect to the device...

Did a little digging and found the I2C scanner but get this message:

No I2C devices found

I'm a fairly quick study, but I'm somewhat connecting wires per the directions without knowing what I'm actually doing.

I have an Uno
My connections:

VCC > 3.3v (have also tried 5v)
GND > GND
SCL > A5
SDA > A4 (have also tried flipping SCL/SDA between A4/A5 in case I had it backwards)
INT > Digital 2

I removed the GPS shield, in case there was some sort of issue using both at once, that didn't work.

I also tried connecting ADO to Ground and then 5v and 3.3v, based on something I saw on a similar thread.

I believe I have tried all combinations of the different things I've mentioned above while I2C scanner was running to see if I could stumble on something.

I've seen talk of "step up" resistors, some people saying 5v would fry the MPU6050, others saying I2C scanner wouldn't work unless you were hooked up to 5v, and a lot of other confusing stuff....

I don't think I have another I2C device to try out, unless one came with this:

Arduino Uno Ultimate Starter Kit + LCD Module

Hoping someone can help me out here, and talk to me like I'm a 5 year old when they do it...

:slight_smile:

Can anybody provide any insight here?

But, when I tried to hook up the accelerometer I bought, I got nothing.

We need to know which one you bought because some have regulators on board and others don't. Can you provide a link to it.

Grumpy_Mike:
We need to know which one you bought because some have regulators on board and others don't. Can you provide a link to it.

Here it is, sorry I thought saying it was a SainSmart MPU6050 (in the title) was enough identifying info:

Thanks!

Grumpy_Mike:
We need to know which one you bought because some have regulators on board and others don't. Can you provide a link to it.

One other thing I should mention....I noticed the red LED on the MPU-6050 was lighting up intermittently....it seemed to be coming on whenever I put pressure on the 3.3v and/or ground leads in a certain way....

I tried hooking it up using the breadboard, then I soldered a header onto the prototyping area of the GPS shield, then hooked up through that. The LED now stays on continuously.

I think the other leads have solid connections, but the reason I mention is that I'm not 100% sure, and I don't know how to confirm. I also have no idea what the LED means (I assume it shows power, but I'm not really sure), and whether there are other LED's that should be lighting up either intermittently or continuously.

The only thing I can think of to make sure the connections are good would be soldering the MPU6050 on to make sure the connections are good, and a permanent soldered connection is eventually the goal, but that seems like overkill during this initial prototyping phase.

I'm mentioning this because in your responses, don't assume I haven't made a boneheaded noobie move like a bad connection. I'm hooking it up in a similar way to successful connections I've made, but my "career connection count" is probably a dozen or two at this point...

I think the other leads have solid connections, but the reason I mention is that I'm not 100% sure, and I don't know how to confirm.

If you have not got header pins soldered into that board then it is 99% sure that they are not all making a correct connection.

I'm mentioning this because in your responses, don't assume I haven't made a boneheaded noobie move like a bad connection.

True, I can't conceive of anyone thinking just pushing a header pin through holes in a PCB would be sufficient.

.I noticed the red LED on the MPU-6050 was lighting up intermittently....it seemed to be coming on whenever I put pressure on the 3.3v and/or ground leads in a certain way....

That tells you there is a loose connection. I think beginners have it hard enough without having to cope with solderless bread board, it should be banned.

Grumpy_Mike:
That tells you there is a loose connection. I think beginners have it hard enough without having to cope with solderless bread board, it should be banned.

I don't know if I agree with beginners having to solder every connection...

...on that note, I think I fried the board soldering it to a header.... It won't light up at all anymore......

You can not fry an Arduino by soldering it to a header. You can only fry things by making an utter mess with your soldering iron and then applying power without checking what you have done.
You are quite free to disagree with me if you don't mind being wrong.

You've picked a difficult project for your first. Unless you are comfortable with C programming and microcontrollers, start with the Arduino examples.

I would suggest to learn to solder by following the tutorials on various sites like SparkFun, Adafruit, etc. and practice on things that don't cost money, like discarded toys that contain electronics. It is an essential skill if you want things like GPS loggers to actually function.

jremington:
You've picked a difficult project for your first. Unless you are comfortable with C programming and microcontrollers, start with the Arduino examples.

I would suggest to learn to solder by following the tutorials on various sites like SparkFun, Adafruit, etc. and practice on things that don't cost money, like discarded toys that contain electronics. It is an essential skill if you want things like GPS loggers to actually function.

I agree that it's a difficult project for a first.

I do know some C++ and VBA (although I'm a bit rusty)...so I'm able to figure out what the code is doing for the most part. I couldn't write the code I'm working with, but fortunately the examples are pretty well commented - enough for me to comment & uncomment the code to make it work with the specific arduino and modules I'm using.

With the "encouragement" that grumpy gave me, I resoldered the accelerometer and was able to get it to light up and be recognized by IC2_Scanner. However, the light was dim unless I gently lifted up on the back of the accelerometer module and/or played with the "INT" lead. Then I cleaned up the solder a little bit and re-soldered some places, but now it's dead again. Maybe I've got a short or a bad connection.

One question - is it possible to "wear out" or burn out the conductive material on the inside of the holes on the board? Some of them are kind of brownish, but I can't tell if the material is gone or if it is just has maybe a little burned/melted insulator from the wires on it....

I'm thinking I might just upload the GPS logger code and use it at the track this weekend without the accelerometer. That is mostly to measure "lean angle" - a neat metric for motorcycle roadracing, but less useful than the gps plot data for figuring out how to go faster.

It is possible to destroy the tracks and solder holes on circuit boards by using improper soldering techniques (too much force, too much heat, too long heat exposure, etc.) which is why I recommend practicing on something less valuable.

It is also usually possible to repair damaged circuit boards using fine wire and careful technique.

Carefully clean off any resin deposits, if you are using resin-core solder.

jremington:
It is possible to destroy the tracks and solder holes on circuit boards by using improper soldering techniques (too much force, too much heat, too long heat exposure, etc.) which is why I recommend practicing on something less valuable.

I stopped by my local electronics store and he said the holes (traces, I believe he called them) were a little beat up....oddly, the one that I think is causing the problems (INT) didn't look too bad.

He said my soldering actually looked pretty good. The traces that were bad were the 3 I'm not using (at least currently, haven't looked ahead to see if they'll be needed once I get past reading the raw data). I soldered the header pins to those traces to provide more physical support, and I wasn't as gentle when I removed those.

Which brings me to my next question - How does one remove a board that has been soldered to multiple pins of a header on another board?

I tried both the solder sucker and solder wick, but other than 1 or 2 lucky attempts across the 2-3 times I removed and replaced the board, I couldn't get enough solder out of the hole in the board to totally free up the pins. So I wound up heating one at a time, and slowly prying the board up (I wouldn't have tried that with anything more than a $10 board), I slowly moved back and forth across the 3 pins while applying pressure (a little more pressure than I would have liked) and eventually got it off, but I don't know how that would have worked with more than 3 pins or a longer board where the pressure would have been more apt to bend/break it. I'm guessing there's a better way, if anybody cares to share.

Anyways, I ordered another accelerometer board from amazon, I'm not made out of money, but for $15 bucks including 1 day shipping, I'm ok with the cost of the lesson learned.

I think your cheap practice advice is solid, but for $70 I've already replicated a low-end lap timer that would have cost me $200 to buy. If I get the gyroscope / accelerometer going, I'll have replicated a mid-range lap timer in the $400-500 range. Over the winter I'm hoping to add sensors until I have a full digital acquisition system that would run $2000+. I figure I'll have $200-600 in it when everything is said and done.

I have a practice weekend this weekend and I'd like to use this to train for a race weekend the next. True, I'd rather screw up a couple of old toys than a $50 GPS shield, but I'm not too worried about breaking a few eggs in the name of expediency. Racing is an expensive addiction, when you start measuring expenses in track days and tire sets, and you start justifying expenses pretty easily :slight_smile:

How does one remove a board that has been soldered to multiple pins of a header on another board?

It is tricky, but there are various techniques. The simplest way is to cut the header into individual pins with a fine pair of side cutters and then remove then one pin at a time. This of course destroys the header pin strip but they are not too expensive.

The other way of removing them is with a hot air gun, you can heat up all the pins in a header so that they just pull out. This requires a little more skill in not getting the board too hot and playing the gun over the area of the board you want to unsolder while not unsoldering other stuff. I would strongly recommend practicing that first but once you have the knack you can solder / unsolder all sorts of surface mount components. I feel the trick is to look carefully at the solder, you will see a slight change in the surface reflective when it transitions to the molten state.

Update - (including some moments of discovery that might seem mundane but were sort of exciting - I feel like a kid playing with a toy for the first time :slight_smile:

I got the new MPU breakout to work, not with out some troubleshooting though.

I wired up the new one and it wouldn't work with the shield...I hooked it up to the arduino without the shield and BAM! Yaw/Pitch/Roll data right on the serial monitor.

Then I had an idea - I could use the one example project I had actually completed (you know, hook up an LED and a resistor to a light) to just test all the connections. I'm sure that's as normal as breathing to most people on this forum, but it was my first arduino related independent thought, so it was sort of satisfying that it worked. (I've since learned that components on the board/shield don't like reverse polarity, so I'm trying to think through whether I need to be cognizant of that, although I don't think power would flow THROUGH any components as long as I didn't ground one of the leads, then touch the other lead to something - I was simply going from one header to another that was connected by a trace)

Turns out some of my solders on the header weren't up to snuff. Which begs the question of whether or not that was original MPU breakout is still good, although I thought I tried wiring it straight to the arduino...

In addition to continuity from the header on the bottom to the header on top, I tested side by side pins to make sure I hadn't created any shorts (this is where I think I need to be careful in the future and really think through whether this has the potential to send current through a component - I was using 3.3v to test, with a resistor in the circuit, so I don't think I need to worry about overloading a component, but I'd imagine even 3.3v going in the wrong direction could harm a lot of sensitive components).

Interestingly, it seems that the Digital I/O pins are all interconnected - I'm guessing the digital signals can all live on the same circuits and be parsed by the components being addressed?

(aside: I find it interesting that the 5v and Gnd pins are right next to each other, but maybe that's not so scary with some basic soldering skills, as even on my first go I didn't seem to create any shorts.)

Anyways, thanks to everyone who responded.

I also got the board powered via 9v battery by hooking into the GND and VIN pins, which seemed to be a safe way to go, and not have to worry about reversing polarity (due to the size of the project box I'm using, the normal "plug-in" type battery carrier would be sticking out the side of the box if I tried to use that.

Put a toggle switch on it, now it's a self contained GPS logger!

Now I just need to figure out how to get the GPS and accelerometer logging to the SD card at the same time.... I have a sketch that logs GPS, and another that prints accelerometer data to the soft serial, but I'm guessing it will be a little more complicating that cutting and pasting the code together. No luck so far finding something online that works with these two exact boards, so maybe a subject for another thread....