2 wheel balance bot (sainsmart bot v3) nasty design flaw

After assembling the version #2 bot and getting it to work, I tried my hand at version #3.

V3 is the 'shorty' version. Not just short (as in low height), but 'short-circuity' as well. Totally disappointed in the potentially nasty design flaw.

The balance bot from the web site image looks like this:

sainsmart_bot_v3.jpg

I put the bot together. The main things to look out for are: short-circuit issue; and orientation of the accelerometer (6050 mpu device) and the nrf24L01 wireless module. The instructions don't show users which pins are what. In the end, I used google 'images' to make sure I installed these small modules correctly (ie. correct pin slots). The general rule that I ended up using is - there are 3 blue trim-potentiometers. The wireless module and the mpu module need to be installed so that the wireless module board does NOT hang over the trim-pots, which means that the wireless board needs to be facing the 'other' direction (ie. not over the trim pots). The mpu board and the wireless board end up being side-by-side (next to each other).

The design flaw is in the set of solder bumps associated with one of the connectors (for one of the motors). Unsuspecting people (like myself) will assume that nobody is going to design and sell a commercially-available system that will have a whole set of solder bumps that will become short-circuited by a metal surface.

In this case, I was oblivious to the situation where mating the motor shield to the arduino 2560MEGA board will lead to 3 or 4 pins getting short-circuited by the shiny metal USB connector casing.

This not only meant 1 motor not working (when the unit became powered), but also possibly destroying something - components when powered-on.

After finding the issue, I needed to use a dremel grinder to grind down the solder bumps - to make the bumps shorter (to prevent the shorting). But the damage was already done. So I'm getting 12 V output to one motor, while the other motor is getting about 0.14 (yep....zero point one four) Volt.

Also, just like my V2 bot, the MPU (accelerometer/gyro) board was faulty. One of the axes kept reading 32768. So, once again (just like my version 2 bot experience, and having learned from it), I replaced the mpu with one of my own.....and the mpu issue was fixed.

But that doesn't fix a broken board. I might try my hand at tracking down what component/components is busted. It might even be the L298P surface mount chip has failed. I don't know at the moment. I decided to order another bot (of the same kind) to use as a reference in order to fix this one. This is hoping that the bot (to arrive) has 'working' parts.

Shown below is the problem area to look out for:

Actually, now that I think of it, the metallic hexagonal posts that come with the bot can be an issue as well, as one or more of them can cause short circuits too.

One final thing ...... physically connecting (mating) the motor shield to the arduino 2560MEGA board can be quite fiddly..... since existing pin positions and existing hole locations need to be just right in order to couple the two boards. The problem is..... not all pins and holes will be at those 'ideal' locations. So coupling the boards could first involve inserting a row of pins into your own individually-bought connectors.... to straighten them up and to pre-align them, and bending the female header sockets of the 2560MEGA to make them vertical. If lucky, they two boards can be coupled in a reasonably short amount of time, otherwise, could take 20 minutes of half an hour.

The design flaw is in the set of solder bumps associated with one of the connectors (for one of the motors). Unsuspecting people (like myself) will assume that nobody is going to design and sell a commercially-available system that will have a whole set of solder bumps that will become short-circuited by a metal surface.

In this case, I was oblivious to the situation where mating the motor shield to the arduino 2560MEGA board will lead to 3 or 4 pins getting short-circuited by the shiny metal USB connector casing.

Well its a lesson in why close visual inspection of all new bits of kit and while assembling is a good idea.

You should add some insulating tape to the top of the connector.

I use Seeedstudio's Arduino clones which are cheaper, more colourful, have mini-USB or micro-USB
connectors and thus no such issue. (More importantly I use their Mega clone which has more pins brought out).
I suspect the huge USB-B connector will become a thing of the past for the standard Arduinos soon.

[ I should point out I have a number of original Arduinos too, I'm just pointing out that the USB
B-socket is a solvable problem ]

MarkT:
Well its a lesson in why close visual inspection of all new bits of kit and while assembling is a good idea.

Well, after this recent episode, a new golden rule about assembling kits is to ensure that shield solder bumps don't clamp down onto a metal chassis - such as the USB metal casing. End-users expect the kit to come together with adequate head-room that avoids issues like a whole row of solder-bumps being shorted.

I don't mind the USB metal casing. I definitely do mind a bad design flaw though.

You should add some insulating tape to the top of the connector.

Yeah..... I added three layers of kapton tape after I had discovered for myself the short circuit (but after that, I discovered that the damage had already been done). Hence I report my findings here to give others heads-up, and try save them some hassles if they encounter this kit.

It was unfortunate that the damage was done already though. It might be a failed L298P driver chip. So I'm thinking of replacing that chip. I ordered one for a few bucks. But also ordered another full bot (V3) kit, plus two extra motor shields (from a different seller) - all for spare parts - future spares. Hopefully replacing the L298P will sort things out.

[UPDATE: 31-Aug-2016]

A new motor 'shield' came in yesterday, and I was able to (after 15 minutes of struggling with trying to coax all those pins into the MEGA2560 board) test the balance bot. The testing was successful. Both motors working. This time, however, I ground down the 'protruding' solder joints in advance.

Looks like I need to fix the previously-damaged motor shield board.

seems good!

I am having a nigtmare time with a V3

The controller worked once I changed the I2C address of the LCD.

The robot nearly worked. I spotted the shorts issue ahead of putting it together (really should be better designed) and everything went together fine and the controller and robot communicated without the motors connected.

I then connected the lipo batteries and a capacitor popped on the MEGA shield instantly and nothing worked from there on on the USB power but would work when the board was powered from a 9v battery sometimes.

I received a spare shield from Sainsmart. This didn't even power up.

I received a second complete kit and tried the MEGA and shield from this without building the robot. Nothing worked. I mixed and matched the boards and shields but nothing worked.

I have sent Sainsmart a large number of emails and videos. There replies are polite but don't really move things forward. I got a kind of "have you plugged it in" email which really pissed me off.

As I write I have been asked to wait another 24-48 hours for their technical department to get back to me.

I have offered to return the MEGAs and shields but not been taken up on that offer.

Others also have problems with this robot but some also seem to have success...

GROAN

Hi ACB. You'll get there in the end! Definitely sure of that.

I haven't rigged up the wireless remote control for the V3 bot yet. But the balancing is just fine.

I haven't started to implement the quadrature wheel encoders yet either. But I tinkered with the code to (at least) measure velocities of the left wheel and the right wheel.

I managed to figure out that pin 19 and pin 18 of the shield (and MEGA) are linked with one of the quadrature encoders. While pin 3 and pin 2 are linked to the other quadrature encoder.

I want to later use the velocity information to see if I can 'prod' a particular motor with some extra voltage whenever one wheel hasn't got enough current to get going (while the other is already starting to move). I already added voltage offsets to each motor to try match their starting behaviours and to deal with dead-band effects.

I was surprised that extra motor shield boards (the peripheral board) were relatively inexpensive. So I ordered a few of them.... just in case.

I like your optimism about my 'getting there'.

I think you'll find all the code is supposed to be in the provided sketches so I don't why you will have to write any code to get this working (hardware permitting). You did get the ZIP file with you robot?

Today I received an email (almost daily these come) with exactly the same code and support files (Arduino v1.5.2) in a zip file that I had when I started the project. And this includes the sketch for the controller with the wrong I2C address for the LCD. Why have they sent me this?

Also a 15 second video from their tech department showing LEDs lit up on the MEGA board! What is that all about?

ACB ..... we always get there in the end with effort and persistence. You'll have your system working soon I bet.

I believe that the code they gave should work. I used the code for V2 (actually...modified/amended it) for my V3, and added extra code to measure the wheel velocities.

I once tried the V3 code (downloaded), but my V3 bot wasn't doing much when it was loaded. I will try uploading the stock V3 code again ..... and will see what happens.

Not sure why they sent you those emails. Bit odd of them to do that. Maybe some kind of automated thing.

I have no doubt the code is fine. My first kit did everything it should with respect to communicating with the controller and I could see the diagnostics on the LCD (once the correct I2C address was used).

The problem came when the power to the motors was provided and a capacitor popped instantly on the MEGas shield. Thereafter nothing.

Replacement shield didn't even power up even on the USB when either shield was connected.

A complete replacement kit didn't work. I just tested the MEGA and shield.

I video'd the whole process from unboxing to testing including combinations of both MEGAs and the three shields. Sent them this video and on the basis of the email I got back they don't appear to have really bothered to look it.

All in all, two videos and 21 eMails have been sent. I received emails from them like 'can we see a video of the robot trying to balance' after they have been told that the boards will not even power up... Definitely not automated responses.

I am a pretty experienced builder of things (Makerbot for example) and smart enough to spot the dreadful shorting possibility of the shield on the USB connection before I put it together. If the hardware worked there could be some way forward - but it doesn't.

I have checked over the internet and this appears to be poor quality control at best and at worst bad/faulty design and manufacture with this item. The gist is that these emails simply delay the inevitable - all very polite but useless.

I have reviewed the support I have received and apart from their willingness to send out more hardware the technical help has been very, very poor. Time to call this one, and on the basis of this lack of adequate support I have asked for my money back - let's see if I can 'get there' this time.

Acb..... I wasn't impressed with the short circuit flaw..... that's for sure.

I have a V2 and a V3..... both balancing just fine and working well. Only thing is.... the V2 doesn't have wheel encoders. But I bought two V3 motors recently ... for fitting to my V2. I also have a spare V3 complete kit still in box. For spare parts. But also have a couple of spare V3 shields bought via ebay.

My working V3 is using an ebay-bought shield.... that replaced the blown one from the short circuit episode. The bots do work well though. But certainly necessary to have spare parts.... just in case....including accelerometer/gyro modules.

My opinion about the kit. Good quality components. But code and assembly guide needs work.

I got my money back eventually.

acboother:
I got my money back eventually.

Geez....they sure took a while! Nice to hear you got your money back ACB.

So, i just bought the SainSmart shield v3 and building my self-balancing robot... I also noticed and can confirm the design flaws. I think that nothing is broken with my setup but nothing is working. The LED light on the shield and the MPU LED turns on and the red LEDs also light up on the Arduino Mega board. But no motion of the wheels, so i don't know how to test the robot.

I did not connect anything else on the shield other than the MPU module, the motors cables and the power cables. For my first test, i just want the robot to balance on its own without using a controller. But i'm wondering if i must connect the wireless module onto the shield? I do not have the controller and i have not seen the design or schematics for it anywhere so i cannot build it even if i wanted to, so what should i do? I'm thinking that i could plug in a bluetooth module instead of the 24L01 and then just use my phone to control the robot via bluetooth. That would be much easier and more convenient. All i would then have to do is to upload the v4 code to the Arduino. But i'm not sure if i can connect the bluetooth module (i've got an HC-05, HC-06 and HM-10) to the shield and which pins?

Check the sketch for the robot and I think you'll find that it needs to be in communication with the controller to perform properly.

Sorry I have no knowledge of BT devices but if your Arduino skills and understanding of BT are good enough I don't see why you shouldn't be able to it.