Code not getting uploaded to UNO R3 board

When I am trying to run the basic example code (blink) to a UNO R3 board, its not getting uploaded and giving the following error:
Sketch uses 924 bytes (2%) of program storage space. Maximum is 32256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
An error occurred while uploading the sketch
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xbb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xbb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xbb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xbb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xbb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xbb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xbb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xbb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xbb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xbb

I have already checked the port and board options, also I have pressed reset button as well. Nothing works, it is my first time running into this issue and I would be glad if someone can suggest any help.
PS- Checked the board with 3 different USB cables and two different PCs as well. Same result each time.

Hi! Welcome to the Forum.

If you’re using Windows:

  • When you connect the board it shows up in the device manager?
  • If you have a clone Arduino, have you installed the CH340 driver?

Welcome!

If you have Linux it will work if you are a member of the dialout group.

The first thing it to check if you have the correct board selected in the IDE, if that is true then try a different cable, preferable one that is known good. There are data and charger cables for the USB and they look alike.

One thing I do is program a board that has a hello message, then I just plug it in and connect with the terminal, if that works the cable is good. Sad part unless you have access to a working setup you would be out of luck.

0xBB usually means:

Host is receiving garbage because:

  • Wrong baud rate (unlikely on an Uno)

  • Bootloader not running

  • Damaged bootloader section

  • The MCU is running random code because flash got corrupted

  • RX/TX lines are damaged

  • The chip partially works but not enough to sync

Does the Arduino reset when you hit upload?

When you click Upload, the UNO should:
– flick the “L” LED once (bootloader start)
– RX/TX flash briefly

If none of that happens:
The bootloader isn't responding.
Either the 328P is dead, the bootloader is corrupted, or the reset line is broken.

Or the USB chip is cooked.

Yes the board is visible in the Device manager and it is an orginal Arduino UNO R3. I have tried the loopback test and it passed that as well.

I am using a Windows setup. And I have checked with two different working PCs and three different working USB cables. Hence I am confident that the issue with the Uno board.

When I am clicking upload, there's no flicker in the L LED, it continues glowing constantly. But the RX LED does blink during the process.

Quick sanity check: does the bootloader even run?

Press the RESET button on the Arduino (don’t touch Upload yet).

Watch the L LED:

  • If the bootloader is healthy, you should see:

    • L goes off briefly

    • Then a quick series of blinks (usually 3-ish short flashes)

    • Then either stays on/off depending on your sketch

  • If L just stays solid, or only does whatever your sketch does (no distinct blink pattern right after reset):

    • The bootloader might be gone/corrupted.

    • Or the 328P is in a weird fuse state.

Do that test and pay really close attention to the first second after hitting reset.

Yes the L LED remains constantly glowing when pressing reset button. There's no flickering .So, this means that bootloader is gone? Is there any way to recover that or is the board beyond help now?

Set up another Arduino as “Arduino as ISP” and try reflashing the bootloader.