EE109 – Spring 2023 Introduction to Embedded Systems

EE109 – Spring 2023: Introduction to Embedded Systems

Problems

This page contains information about various problems that students in EE109 have encountered with their Arduino and the "avr-gcc" programming environment, and what to do to hopefully solve the problem.

Mac says "No AVR part has been specified"

It was all working before but now when you do a "make flash" on a Mac, it responds with a message about "No AVR part has been specified" and then give a very long list of all the AVR microcontrollers that is should be able to program, including the ATmega328P that is on your Arduino.

$ make flash
avrdude -c arduino -b 115200 -P /dev/cu.usbmodem* -p atmega328p -U flash:w:main.hex:i
avrdude: No AVR part has been specified, use "-p Part"

Valid parts are:
  uc3a0512 = AT32UC3A0512
  c128     = AT90CAN128
  c32      = AT90CAN32
  c64      = AT90CAN64
  pwm2     = AT90PWM2
  pwm2b    = AT90PWM2B
  pwm3     = AT90PWM3
  pwm316   = AT90PWM316
  pwm3b    = AT90PWM3B
  1200     = AT90S1200
  2313     = AT90S2313
  2333     = AT90S2333
  2343     = AT90S2343
   .
   .
   .

From the Terminal window type the command below that lists what Arduino-like devices are connected to the computer.

$ ls /dev/cu.usbmodem*
/dev/cu.usbmodemFA1221		/dev/cu.usbmodemFA12421

In this case it shows that the system thinks there are TWO Arduino-like device connected to the computer, but you probably only have one connected. The bogus Arduino is probably something left over from when the computer went to sleep with the Arduino plugged in, and now it thinks it's still there along with the real one. The easiest solution to this it to unplug the Arduino and restart the system. When the Mac reboots it will clean up things so the bogus Arduino is no longer there.