4
\$\begingroup\$

AVR is just an integrated circuit microchip, made by Atmel. It looks something like this:

enter image description here

(source: https://stackoverflow.com/questions/1447502/whats-the-difference-relationship-between-avr-and-arduino)

However, ESP8266 doesn't seem to share the same architecture, or does it?

Is ESP8266 an AVR? If not, how come we can use it as one through libs such as this one?

\$\endgroup\$
3
  • 4
    \$\begingroup\$ No - the microcontroller inside the ESP8266 is NOT an Atmel (AVR) device. A quick Google search will reveal all. FWIW - search out Neil Kolban's excellent guide to the ESP8266. \$\endgroup\$ Commented Aug 7, 2017 at 21:33
  • 1
    \$\begingroup\$ This question should be moved to the SE Arduino group. \$\endgroup\$
    – MatsK
    Commented Aug 7, 2017 at 22:09
  • 1
    \$\begingroup\$ the Arduino IDE supports more than just AVR boards. \$\endgroup\$
    – dandavis
    Commented Aug 7, 2017 at 22:20

3 Answers 3

9
\$\begingroup\$

ESP family isn't a AVR!

The Library you refere to is a Arduino IDE (Integrated Development Environment) library.

The Arduino IDE has a hardware layer that gives it the ability to utilize several MCU arhitectures that isn't AVR, but they share the programming environment.

\$\endgroup\$
3
\$\begingroup\$

No, not even close.

The ESP8266 uses a 32-bit Xtensa RISC core licensed from Tensilica and is made by Shanghai-based Espressif Systems.

The AVR is a much older 8-bit RISC architecture and is made by US-based Microchip Technology (since they bought Atmel).

The Arduino environment can be used to program ESP8266 controllers (as well as others such as some ARM MCUs), but the ESP8266 is not related at all to the AVR.

\$\endgroup\$
2
\$\begingroup\$

However, ESP8266 doesn't seem to share the same architecture, or does it? Is ESP8266 an AVR?

No, the ESP8266 is not AVR architecture.

Is ESP8266 an AVR? If not, how come we can use it as one through libs such as this one?

Generally the idea behind the Arduino project is to define a standard core API that will be the same/similar for any platform. The architecture-specific code is hidden behind this API. The "ESP8266 core for Arduino" that includes the library you mentioned contains this architecture specific code as well as the necessary toolchain. A separate hardware package is used for AVR, most commonly "Arduino AVR Boards", which is bundled with the Arduino IDE.

However, I think you're confused about the purpose of the ESP8266AVRISP library. It is used to turn the ESP8266 into an ISP programmer for AVRs. This does not require the programmer microcontroller to be an AVR but indeed the target microcontroller must be an AVR.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.