Consistent ATmega328P (Old Bootloader) and Windows 10 failures

Hello!

I'm brand new to the world of Arduinos. I am having trouble getting 3 different Windows 10 laptops to talk to all Arduino Nanos and Elegoo Nano clones. I've been doing a lot of digging around to find avrdude sync issues, but cannot seem to find the answer.

As a bit of a background, the project I'm attempting is creating a small Back to the Future 'time circuit' control clock. I found the instructions from the same developer via Futuristic Clock BTTF Style : 14 Steps (with Pictures) - Instructables and https://www.thingiverse.com/thing:2980120\

The code below requires the ATmega328P (Old Bootloader), yet every time I try to upload a sketch that bootloader will not work. Even though I've installed the CH340 driver, it still won't work.

The computer will 'talk' to the different boards without using the Old Bootloader to do basic functions like "Blink," but I keep running into a wall. Any and all advice would be greatly appreciated!

Thanks in advance!

Here's the error I've been receiving:

Arduino: 1.8.12 (Windows 10), Board: "Arduino Nano, ATmega328P (Old Bootloader)"

Sketch uses 8932 bytes (29%) of program storage space. Maximum is 30720 bytes.
Global variables use 653 bytes (31%) of dynamic memory, leaving 1395 bytes for local variables. Maximum is 2048 bytes.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xe4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xe4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xe4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xe4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xe4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xe4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xe4
Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xe4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xe4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xe4

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

And here's the code I'm trying to upload:

[code]
#include "SevenSegmentTM1637.h"
#include "SevenSegmentExtended.h"
#include "RTClib.h"

// Sortie horloge Rouge
const byte PIN_CLK_Red = A0;   // define CLK pin
// Sortie horloge Verte
const byte PIN_CLK_Green = A1;   // define CLK pin
// Sortie horloge Orange
const byte PIN_CLK_Orange = A2;   // define CLK pin

//RED Displays
const byte PIN_DIO_R1 = 3;
SevenSegmentExtended      red1(PIN_CLK_Red, PIN_DIO_R1);
const byte PIN_DIO_R2 = 4;
SevenSegmentTM1637       red2(PIN_CLK_Red, PIN_DIO_R2);
const byte PIN_DIO_R3 = 5;
SevenSegmentExtended     red3(PIN_CLK_Red, PIN_DIO_R3);

//GREEN Displays
const byte PIN_DIO_G1 = 6;
SevenSegmentExtended      green1(PIN_CLK_Green, PIN_DIO_G1);
const byte PIN_DIO_G2 = 7;
SevenSegmentTM1637       green2(PIN_CLK_Green, PIN_DIO_G2);
const byte PIN_DIO_G3 = 8;
SevenSegmentExtended     green3(PIN_CLK_Green, PIN_DIO_G3);
int greenAM = 12;
int greenPM = 13;

// ORANGE Displays
const byte PIN_DIO_O1 = 9;   // define DIO pin (any digital pin)
SevenSegmentExtended      orange1(PIN_CLK_Orange, PIN_DIO_O1); // SegmentExtended pour utiliser la methode "PrintTime"
const byte PIN_DIO_O2 = 10;
SevenSegmentTM1637        orange2(PIN_CLK_Orange, PIN_DIO_O2); //SegmentTM1637 pour utiliser la methode "print" permet d'enlever les ":" entre les chiffres
const byte PIN_DIO_O3 = 11;
SevenSegmentExtended       orange3(PIN_CLK_Orange, PIN_DIO_O3);

bool parse = false;
bool config = false;
int Hour = 0;
RTC_DS3231 rtc;
int backlight = 50;
int year_red = 2028;
int year_orange = 2018;

void setup() {

  pinMode(PIN_CLK_Red, OUTPUT);
  pinMode(PIN_CLK_Green, OUTPUT);
  pinMode(PIN_CLK_Orange, OUTPUT);
  pinMode(PIN_DIO_O1, OUTPUT);
  pinMode(PIN_DIO_O2, OUTPUT);
  pinMode(PIN_DIO_O3, OUTPUT);
  pinMode(PIN_DIO_G1, OUTPUT);
  pinMode(PIN_DIO_G2, OUTPUT);
  pinMode(PIN_DIO_G3, OUTPUT);
  pinMode(PIN_DIO_R1, OUTPUT);
  pinMode(PIN_DIO_R2, OUTPUT);
  pinMode(PIN_DIO_R3, OUTPUT);
  pinMode(greenAM, OUTPUT);
  pinMode(greenPM, OUTPUT);

  Serial.begin(9600);       // initializes the Serial connection @ 9600 baud
  orange1.begin();            // initializes the display
  orange2.begin();
  orange3.begin();
  green1.begin();
  green2.begin();
  green3.begin();
  red1.begin();
  red2.begin();
  red3.begin();
  orange1.setBacklight(backlight);  // set the brightness to 100 %
  orange2.setBacklight(backlight);
  orange2.setColonOn(0); // Switch off ":" for orange "year"
  orange3.setBacklight(backlight);
  green1.setBacklight(backlight);
  green2.setBacklight(backlight);
  green3.setBacklight(backlight);
  red1.setBacklight(backlight);
  red2.setBacklight(backlight);
  red3.setBacklight(backlight);
  red2.setColonOn(0); // Switch off ":" for red "year"

#ifndef ESP8266
  while (!Serial); // for Leonardo/Micro/Zero
#endif

  Serial.begin(9600);

  delay(3000); // wait for console opening

  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC lost power, lets set the time!");
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }

}

void loop() {

  DateTime now = rtc.now();
  //    Serial.print(now.year(), DEC);
  //    Serial.print('/');
  //    Serial.print(now.month(), DEC);
  //    Serial.print('/');
  //    Serial.print(now.day(), DEC);
  Serial.print(" ");
  Serial.print(now.hour(), DEC);
  Serial.print(':');
  Serial.print(now.minute(), DEC);
  Serial.print(':');
  Serial.print(now.second(), DEC);
  Serial.println();


  if (now.hour() == 0)
  { 
    Hour = 12;
    digitalWrite(greenAM, 1);
    digitalWrite(greenPM, 0);
    Serial.write(" =0");
  }

  else if (now.hour() == 12)
  { 
    Hour = now.hour();
    digitalWrite(greenAM, 0);
    digitalWrite(greenPM, 1);
    Serial.write(" =12");
  }
  
  else if (now.hour() >= 13) {
    Hour = now.hour() - 12;
    digitalWrite(greenAM, 0);
    digitalWrite(greenPM, 1);
    Serial.write(" >=13");
  }

  else {
    Hour = now.hour();
    digitalWrite(greenAM, 1);
    digitalWrite(greenPM, 0);
    Serial.write("else");
  }


  //Red displays -  Destination TIME 11.05 2028 10:04
  red1.printTime(11, 9, true);
  red2.print(year_red, true);
  red3.printTime(10, 07, true);

  //Green Displays - Present TIME - Heure actuelle
  green1.printTime(now.month(), now.day(), true);
  green2.print(now.year());
  green3.printTime(Hour, now.minute(), true);

  // Orange Displays - Last time departed 10.26 1985 01:24
  orange1.printTime(11, 9, true);
  orange2.print(year_orange, true);
  orange3.printTime(01, 24, true);

}

[/code]

Code does not differentiate between '328P old boot loader' and '328P'; it depends on the boot loader that is on the 328P which version you need to use.

If you can upload e.g. blink using the non-old boot loader, that's the boot loader that you need to select for your project.

PS:
Karma added for using code tags in your first post.

Thank you so much, sterretje! I truly appreciate it! I'll give that a further shot and hope it works!

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