Arduino damaged?

Hi,

I was using for a while an Arduino Pro Mini board with a MPU6050 via I2C and a S14432 for radio purposes... Everything worked fine until a few days.

I can upload sketches, it seems that works fine but radio starts to go slower and I start getting timeouts. I tried the SI4432 module with other Arduino and works fine.

I dissasemble everythink (was soldered) and try to isolate the problem.

Now, I have the new Arduino board (identically as broken) and a HC-05 bt module wired to RX/TX

With the new board, the code (paste at the end) works fine (get bytes from BT).
With the broken, the code starts ok but never received bytes.

I tried both pins of RX/TX (two in a side, other two in gnd,vcc and dtr part) of the arduino broken board, for example uploading code. Both of them works fine, so I think is not a "pin problem".

I'm pairing the BT module with phone and BT Terminal app. Baudrate is 57600 and like I said, with no "broken" arduino board works perfect.

Here is the code

void setup()
{
  Serial.begin(57600);
  Serial.println("Ready");
}

void loop()
{ 
  if (Serial.available())
  {
    Serial.print(Serial.read(),DEC);
    Serial.print("\t");
  }
}

Output in Serial monitor of PC (I type 3 'A' in BT mobile app):

Ready
65	65	65

If I try the same (A,A,A) in "broken" board:

Ready

But, in the BT console I get "Ready"...

  • First question: Why? Is there any way AVR command or something to test the arduino board or atmega328 chip?

  • (Solved) Second question: Why when I type something in Serial monitor it doesnt arrives to BT module? Only if in code I have Serial.print/write arrives to module... why?

Example:

  1. Starts app and sync with BT. Serial Monitor and BT App have "Ready" (OK)
  2. Send from BT App to Arduino 'A' -> BT App type 'A', Serial Monitor "65\t" -> Why this doesnt arrive to BT?
  3. Send from Serial Monitor to BT App 'A' -> Serial Monitor print 'A' but doest arrive to BT App, why?
  4. In loop code, I put delay(200), Serial.println("Hi") -> Serial Monitor shows "Hi" AND BT App too, why? Is not the same?

I want to investigate this because I do nothing extrange with the "broken" module and dont want to solder the same again and get the same results.

Any help will be welcome, thank you.

Forget the second question. The app was waiting for \r\n.
Setting up with no end flag now the same on BT App is on Serial monitor.

Sorry.

Still First question!!! :stuck_out_tongue:

JotaStar:
Now, I have the new Arduino board (identically as broken) and a HC-05 bt module wired to RX/TX

With the new board, the code (paste at the end) works fine (get bytes from BT).
With the broken, the code starts ok but never received bytes.

That strongly suggests to me that the first Arduino is broken.

I assume you have only one HC-05 module and you have transferred it to the working Arduino. However if you have two of them the problem may be with one of the HC-05s

You have not told us how it may have been damaged?

...R

Thank you for reply.

I have no idea how it may been damaged and yes, it was the same HC-05 module.

Literally I was testing the project (a drone) to fly with radio and everything and it was ok (in fact, I havent bluetooth module). I was finish for this day and the next day only change a PID values of code and when try to test I realized that the motors spin erratically (PWM pulse) (I tried old values) and the supossed values was 0 (no spin).

I tought maybe some short circuit with other component... but dissabled all and nope, in fact the MPU get the correct yaw pitch roll through I2C. But PWM (I use ServoTimer2 or similar, (dont use PWM mode, just a counter that it was working fine for me), and radio, serial and now bluetooth that it seems that it uses interrupts and timers doesnt work. (but delay() or micros() yes wtf!)

Is for that my question about if is any way to test deeply arduino board. Counters, timers, pins, resistors, registers... I dont know, something...

EDIT: Something interesting...

I try with SoftwareSerial on pins 10,11 and 8,9 and it works fine with "broken" arduino.

UART problem?

EDIT 2: Everything points to a failure of the UART. In "no-broken", I can send massive message like "Hello there." x 100 from Serial to BT and arrives ok.

In broken, the same test, arrives the data with "errors" in the "message", like wrong baudrate.
In fact, from BT to Serial doesnt work, nothing, no data arrives. So I think that maybe the UART clock is broken or somethink like that.

What do yo think?

Hi,
How are you powering this project and the hardware hanging off the arduino.
Are you using the 5V pin on the arduino to power the external components, it sounds like you have a power regulator problem and damaged the first arduino's regulator.

Can you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png?
Including your power supply(s)
Please, not a fritzy diagram.

Tom...... :slight_smile:

Hi TomGeorge,

I will make one tomorrow, but is quite simply in the HC-05 bt module.

For the simpliest test with BT, I'm using an USB FTDI cable (+5v 500mAh). I'm powering the BT with VCC pin and It works fine.

In the board that I made, I powe it with BEC: 5V/1A of an ESC.

Maybe, in a horrible moment, I connect power between wrong pins, BUT, if so, if the power regulator is broken or damaged, nothing will work, isn't?

Taking a look to pin distribution

DTR
TX
RX
VCC
GND

Maybe I connect VCC to RX, and GND to VCC. Can this make that the Arduino "works fine but not at all"?

Thank you.

Simple serial test code you can try.

//zoomkat 6-29-14 Simple serial echo test
//type or paste text in serial monitor and send

String readString;

void setup() {
  Serial.begin(9600);
  Serial.println("Simple serial echo test"); // so I can keep track of what is loaded
}

void loop() {

  while (Serial.available()) {
    char c = Serial.read();  //gets one byte from serial buffer
    readString += c; //makes the String readString
    delay(2);  //slow looping to allow buffer to fill with next character
  }

  if (readString.length() >0) {
    Serial.println(readString);  //so you can see the captured String 
    readString="";
  } 
}