Garbled serial output on specific boards

I have a three nano 3 clones which all output the same garbled output when trying to write text over serial at any baud rate. I've tried a few debugging steps I've found here and on reddit, nothing has helped so far.

below is the code and the error. I've made sure the arduino and serial monitor are at 9600 baud, other arduino boards also work but these specific ones dont.

void setup() {
  Serial.begin(9600, SERIAL_8N1);
  Serial.println();
  Serial.write("The quick brown fox jumps over the lazy dog.\n");
}

void loop() {

}

the output in the serial monitor


x�xxx�xxx�xxxx��xxxx��x�x�x�x�x���x�xx��xxxx��xx�x���x�xxx�x��x�xxx��xx�x�x��x�x�xx�xx�x

and here's some info avrdude spits out at compile

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\Juli\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"

         Using Port                    : COM3
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 3
         Firmware Version: 5.0
         Vtarget         : 0.3 V
         Varef           : 0.3 V
         Oscillator      : 28.800 kHz
         SCK period      : 3.3 us

They have ATmega328P's with the old bootloader. Below are some pictures of the boards


Welcome to the forum

What happens if you put a delay(200); after the Serial.begin() ?

I assume that the Serial monitor is set to the correct baud rate

Still garbled the same way, even with a bigger delay

if I run the code of post 1 on a Nano (old boot loader) I get (with no delays()

The quick brown fox jumps over the lazy dog.

any other baudrate than 9600 give garbage

as @UKHeliBob asked are you sure you have the Serial Monitor baudrate set to 9600?

like i said in my first post its at 9600, and this exact setup works on other models of boards

That is not a Atmega328 processor but a LGT8F microprocessor.

You need a separate core for it to work properly.

On the back of your board you can see it is Nano compatible. That means the footprint of the board is compatible with the nano V3. Except for the 6-pin ICSP programmer connection that is missing. It has a 5 pin SWD connection instead (on the short side opposed to the USB connector).

1 Like

What you’re experiencing is typical of a baud rate mismatch. The baud rate must be the same on both ends for proper communication. Different boards can have different default baud rates. Check the lower-right corner of the Serial Monitor to ensure it matches the baud rate you specified in Serial.begin() in your code.

thank you, installing the correct core fixed it

Those boards work fine for me. You even get some nice extra features like two more 16 bit timers, a DAC and a bunch of pins that can drive 80mA.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.