The ATmega328 is a single- chip microcontroller created by Atmel in the megaAVR family (later Microchip Technology acquired Atmel in 2016). It has a modified Harvard architecture 8-bit RISC processor core.
64-786: The Atmel 8-bit AVR RISC -based microcontroller combines 32 KB ISP flash memory with read-while-write capabilities, 1 KB EEPROM , 2 KB SRAM , 23 general-purpose I/O lines, 32 general-purpose working registers , 3 flexible timer/ counters with compare modes, internal and external interrupts , serial programmable USART , a byte-oriented 2-wire serial interface, SPI serial port, 6-channel 10-bit A/D converter (8 channels in TQFP and QFN / MLF packages), programmable watchdog timer with internal oscillator , and 5 software-selectable power-saving modes. The device operates between 1.8 and 5.5 volts. The device achieves throughput approaching 1 MIPS /MHz. A common alternative to
128-562: A gate array. What distinguishes a structured ASIC from a gate array is that in a gate array, the predefined metal layers serve to make manufacturing turnaround faster. In a structured ASIC, the use of predefined metallization is primarily to reduce cost of the mask sets as well as making the design cycle time significantly shorter. For example, in a cell-based or gate-array design the user must often design power, clock, and test structures themselves. By contrast, these are predefined in most structured ASICs and therefore can save time and expense for
192-458: A local ASIC house in Trondheim, Norway , called Nordic VLSI at the time, now Nordic Semiconductor , where Bogen and Wollan were working as students. It was known as a μRISC (Micro RISC) and was available as silicon IP/building block from Nordic VLSI. When the technology was sold to Atmel from Nordic VLSI , the internal architecture was further developed by Bogen and Wollan at Atmel Norway,
256-427: A low-cost I/O solution aimed at handling the computer's graphics . Customization occurred by varying a metal interconnect mask. Gate arrays had complexities of up to a few thousand gates; this is now called mid-scale integration . Later versions became more generalized, with different base dies customized by both metal and polysilicon layers. Some base dies also include random-access memory (RAM) elements. In
320-589: A manufacturer held as a stock wafer never gives 100% circuit utilization . Often difficulties in routing the interconnect require migration onto a larger array device with a consequent increase in the piece part price. These difficulties are often a result of the layout EDA software used to develop the interconnect. Pure, logic-only gate-array design is rarely implemented by circuit designers today, having been almost entirely replaced by field-programmable devices. The most prominent of such devices are field-programmable gate arrays (FPGAs) which can be programmed by
384-476: A method of obtaining low cost prototypes. Often called shuttles, these MPWs, containing several designs, run at regular, scheduled intervals on a "cut and go" basis, usually with limited liability on the part of the manufacturer. The contract involves delivery of bare dies or the assembly and packaging of a handful of devices. The service usually involves the supply of a physical design database (i.e. masking information or pattern generation (PG) tape). The manufacturer
448-401: A much higher skill requirement on the part of the design team. For digital-only designs, however, "standard-cell" cell libraries, together with modern CAD systems, can offer considerable performance/cost benefits with low risk. Automated layout tools are quick and easy to use and also offer the possibility to "hand-tweak" or manually optimize any performance-limiting aspect of the design. This
512-484: A reduced clock speed. All recent (Tiny, Mega, and Xmega, but not 90S) AVRs feature an on-chip oscillator, removing the need for external clocks or resonator circuitry. Some AVRs also have a system clock prescaler that can divide down the system clock by up to 1024. This prescaler can be reconfigured by software during run-time, allowing the clock speed to be optimized. Since all operations (excluding multiplication and 16-bit add/subtract) on registers R0–R31 are single-cycle,
576-411: A single chip, removing the need for external memory in most applications. Some devices have a parallel external bus option to allow adding additional data memory or memory-mapped devices. Almost all devices (except the smallest TinyAVR chips) have serial interfaces, which can be used to connect larger serial EEPROMs or flash chips. Program instructions are stored in non-volatile flash memory . Although
640-619: A subsidiary of Atmel. The designers worked closely with compiler writers at IAR Systems to ensure that the AVR instruction set provided efficient compilation of high-level languages . Among the first of the AVR line was the AT90S8515, which in a 40-pin DIP package has the same pinout as an 8051 microcontroller, including the external multiplexed address and data bus. The polarity of the RESET line
704-448: A third-party as sub-components of a larger ASIC. They may be provided in the form of a hardware description language (often termed a "soft macro"), or as a fully routed design that could be printed directly onto an ASIC's mask (often termed a "hard macro"). Many organizations now sell such pre-designed cores – CPUs, Ethernet, USB or telephone interfaces – and larger organizations may have an entire department or division to produce cores for
SECTION 10
#1732793028949768-447: A variety of in-system programming hardware, including Atmel AVRISP mkII, Atmel JTAG ICE, older Atmel serial-port based programmers, and various third-party and "do-it-yourself" programmers. The Program and Debug Interface (PDI) is an Atmel proprietary interface for external programming and on-chip debugging of XMEGA devices. The PDI supports high-speed programming of all non-volatile memory (NVM) spaces; flash, EEPROM, fuses, lock-bits and
832-496: Is a manufacturing method in which diffused layers, each consisting of transistors and other active devices , are predefined and electronics wafers containing such devices are "held in stock" or unconnected prior to the metallization stage of the fabrication process . The physical design process defines the interconnections of these layers for the final device. For most ASIC manufacturers, this consists of between two and nine metal layers with each layer running perpendicular to
896-487: Is a modified Harvard architecture machine, where program and data are stored in separate physical memory systems that appear in different address spaces, but having the ability to read data items from program memory using special instructions. AVRs are generally classified into following: tinyAVR – the ATtiny series The ATtiny series features small package microcontrollers with a limited peripheral set available. However,
960-573: Is an integrated circuit (IC) chip customized for a particular use, rather than intended for general-purpose use, such as a chip designed to run in a digital voice recorder or a high-efficiency video codec . Application-specific standard product chips are intermediate between ASICs and industry standard integrated circuits like the 7400 series or the 4000 series . ASIC chips are typically fabricated using metal–oxide–semiconductor (MOS) technology, as MOS integrated circuit chips. As feature sizes have shrunk and chip design tools improved over
1024-527: Is designed by using basic logic gates, circuits or layout specially for a design. Structured ASIC design (also referred to as " platform ASIC design ") is a relatively new trend in the semiconductor industry, resulting in some variation in its definition. However, the basic premise of a structured ASIC is that both manufacturing cycle time and design cycle time are reduced compared to cell-based ASIC, by virtue of there being pre-defined metal layers (thus reducing manufacturing time) and pre-characterization of what
1088-809: Is featuring multiple microcontroller series, focused on HCI , analog signal conditioning and functional safety. The parts numbers is formatted as AVR ff D xpp , where ff is flash size, x is family, and pp is number of pins. Example: AVR128DA64 – 64-pin DA-series with 128k flash. All devices in the AVR Dx family include: XMEGA the ATxmega series offers a wide variety of peripherals and functionality such as: Application-specific AVR FPSLIC (AVR with FPGA) 32-bit AVRs The AVRs have 32 single-byte registers and are classified as 8-bit RISC devices. Flash , EEPROM , and SRAM are all integrated onto
1152-444: Is intermediate between § Gate-array and semi-custom design and § Full-custom design in terms of its non-recurring engineering and recurring component costs as well as performance and speed of development (including time to market ). By the late 1990s, logic synthesis tools became available. Such tools could compile HDL descriptions into a gate-level netlist . Standard-cell integrated circuits (ICs) are designed in
1216-468: Is largely because ASIC devices are capable of integrating large blocks of system functionality, and systems on a chip (SoCs) require glue logic , communications subsystems (such as networks on chip ), peripherals , and other components rather than only functional units and basic interconnection. In their frequent usages in the field, the terms "gate array" and "semi-custom" are synonymous when referring to ASICs. Process engineers more commonly use
1280-468: Is often referred to as a "silicon foundry" due to the low involvement it has in the process. An application-specific standard product or ASSP is an integrated circuit that implements a specific function that appeals to a wide market. As opposed to ASICs that combine a collection of functions and are designed by or for one customer , ASSPs are available as off-the-shelf components. ASSPs are used in all industries, from automotive to communications. As
1344-499: Is on the silicon (thus reducing design cycle time). Definition from Foundations of Embedded Systems states that: In a "structured ASIC" design, the logic mask-layers of a device are predefined by the ASIC vendor (or in some cases by a third party). Design differentiation and customization is achieved by creating custom metal layers that create custom connections between predefined lower-layer logic elements. "Structured ASIC" technology
SECTION 20
#17327930289491408-529: Is removed. In most variants of the AVR architecture, this internal EEPROM memory is not mapped into the MCU's addressable memory space. It can only be accessed the same way an external peripheral device is, using special pointer registers and read/write instructions, which makes EEPROM access much slower than other internal RAM. However, some devices in the SecureAVR (AT90SC) family use a special EEPROM mapping to
1472-399: Is seen as bridging the gap between field-programmable gate arrays and "standard-cell" ASIC designs. Because only a small number of chip layers must be custom-produced, "structured ASIC" designs have much smaller non-recurring expenditures (NRE) than "standard-cell" or "full-custom" chips, which require that a full mask set be produced for every design. This is effectively the same definition as
1536-555: Is sent to the MOSI pin. The second byte (0x53) will be echoed back by the MCU. Atmel AVR AVR is a family of microcontrollers developed since 1996 by Atmel , acquired by Microchip Technology in 2016. These are modified Harvard architecture 8-bit RISC single-chip microcontrollers. AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM , EPROM , or EEPROM used by other microcontrollers at
1600-408: Is that standard-cell design uses the manufacturer's cell libraries that have been used in potentially hundreds of other design implementations and therefore are of much lower risk than a full custom design. Standard cells produce a design density that is cost-effective, and they can also integrate IP cores and static random-access memory (SRAM) effectively, unlike gate arrays. Gate array design
1664-408: Is widely used. LLVM also has rudimentary AVR support. In fact, Atmel solicited input from major developers of compilers for small microcontrollers, to determine the instruction set features that were most useful in a compiler for high-level languages. The AVR line can normally support clock speeds from 0 to 20 MHz, with some devices reaching 32 MHz. Lower-powered operation usually requires
1728-575: The MCUs are 8-bit, each instruction takes one or two 16-bit words. The size of the program memory is usually indicated in the naming of the device itself (e.g., the ATmega64x line has 64 KB of flash, while the ATmega32x line has 32 KB). There is no provision for off-chip program memory; all code executed by the AVR core must reside in the on-chip flash. However, this limitation does not apply to
1792-430: The open-source software movement in hardware design. Soft macros are often process-independent (i.e. they can be fabricated on a wide range of manufacturing processes and different manufacturers). Hard macros are process-limited and usually further design effort must be invested to migrate (port) to a different process or manufacturer. Some manufacturers and IC design houses offer multi-project wafer service (MPW) as
1856-927: The AT94 FPSLIC AVR/FPGA chips. The data address space consists of the register file , I/O registers, and SRAM . Some small models also map the program ROM into the data address space, but larger models do not. In the tinyAVR and megaAVR variants of the AVR architecture , the working registers are mapped in as the first 32 data memory addresses (0000 16 –001F 16 ), followed by 64 I/O registers (0020 16 –005F 16 ). In devices with many peripherals, these registers are followed by 160 “extended I/O” registers, only accessible as memory-mapped I/O (0060 16 –00FF 16 ). Actual SRAM starts after these register sections, at address 0060 16 or, in devices with "extended I/O", at 0100 16 . Even though there are separate addressing schemes and optimized opcodes for accessing
1920-658: The ATmega328 is the "picoPower" ATmega328P. A comprehensive list of all other members of the megaAVR series can be found on the Atmel website. ATmega328 is commonly used in many projects and autonomous systems where a simple, low-powered, low-cost micro-controller is needed. Perhaps the most common implementation of this chip is on the popular Arduino development platform, namely the Arduino Uno , Arduino Pro Mini and Arduino Nano models. Reliability qualification shows that
1984-505: The AVR can achieve up to 1 MIPS per MHz, i.e. an 8 MHz processor can achieve up to 8 MIPS. Loads and stores to/from memory take two cycles, branching takes two cycles. Branches in the latest "3-byte PC" parts such as ATmega2560 are one cycle slower than on previous devices. AVRs have a large following due to the free and inexpensive development tools available, including reasonably priced development boards and free development software. The AVRs are sold under various names that share
ATmega328 - Misplaced Pages Continue
2048-432: The AVR chip can stay soldered on a PCB while reprogramming. All that is needed is a 6-pin connector and programming adapter. This is the most common way to develop with an AVR. The Atmel-ICE device or AVRISP mkII (Legacy device) connects to a computer's USB port and performs in-system programming using Atmel's software. AVRDUDE (AVR Downloader/UploaDEr) runs on Linux , FreeBSD , Windows , and Mac OS X , and supports
2112-588: The Load Program Memory (LPM) instruction is unnecessary and omitted. (For detailed info, see Atmel AVR instruction set .) In the XMEGA variant, the working register file is not mapped into the data address space; as such, it is not possible to treat any of the XMEGA's working registers as though they were SRAM. Instead, the I/O registers are mapped into the data address space starting at the very beginning of
2176-475: The Micromatrix family of bipolar diode–transistor logic (DTL) and transistor–transistor logic (TTL) arrays. Complementary metal–oxide–semiconductor (CMOS) technology opened the door to the broad commercialization of gate arrays. The first CMOS gate arrays were developed by Robert Lipp, in 1974 for International Microcircuits, Inc. (IMI). Metal–oxide–semiconductor (MOS) standard-cell technology
2240-634: The User Signature Row. This is done by accessing the XMEGA NVM controller through the PDI interface, and executing NVM controller commands. The PDI is a 2-pin interface using the Reset pin for clock input (PDI_CLK) and a dedicated data pin (PDI_DATA) for input and output. Application-specific integrated circuit An application-specific integrated circuit ( ASIC / ˈ eɪ s ɪ k / )
2304-408: The ability to integrate analog components and other pre-designed —and thus fully verified—components, such as microprocessor cores, that form a system on a chip . The disadvantages of full-custom design can include increased manufacturing and design time, increased non-recurring engineering costs, more complexity in the computer-aided design (CAD) and electronic design automation systems, and
2368-413: The address space. Additionally, the amount of data address space dedicated to I/O registers has grown substantially to 4096 bytes (0000 16 –0FFF 16 ). As with previous generations, however, the fast I/O manipulation instructions can only reach the first 64 I/O register locations (the first 32 locations for bitwise instructions). Following the I/O registers, the XMEGA series sets aside a 4096 byte range of
2432-440: The chip erase. Wait until RDY/BSY (PD1) goes high. XA1:XA0:BS1:DATA = 100 0001 0000 , XTAL1 pulse, pulse WR to zero. This is the flash write command. And so on. Serial data to the MCU is clocked on the rising edge and data from the MCU is clocked on the falling edge. Power is applied to V CC while RESET and SCK are set to zero. Wait for at least 20 ms and then the programming enable serial instruction 0xAC, 0x53, 0x00, 0x00
2496-432: The contents need to be changed. Atmel's AVRs have a two-stage, single-level pipeline design. This means the next machine instruction is fetched as the current one is executing. Most instructions take just one or two clock cycles, making AVRs relatively fast among eight-bit microcontrollers. The AVR processors were designed with the efficient execution of compiled C code in mind and have several built-in pointers for
2560-748: The data address space, which can be used optionally for mapping the internal EEPROM to the data address space (1000 16 –1FFF 16 ). The actual SRAM is located after these ranges, starting at 2000 16 . Each GPIO port on a tiny or mega AVR drives up to eight pins and is controlled by three 8-bit registers: DDR x , PORT x and PIN x , where x is the port identifier. Newer ATtiny AVR's, like ATtiny817 and its siblings, have their port control registers somewhat differently defined. xmegaAVR have additional registers for push/pull, totem-pole and pullup configurations. Almost all AVR microcontrollers have internal EEPROM for semi-permanent data storage. Like flash memory, EEPROM can maintain its contents when electrical power
2624-481: The data or program memory, depending on the configuration. The XMEGA family also allows the EEPROM to be mapped into the data address space. Since the number of writes to EEPROM is limited – Atmel specifies 100,000 write cycles in their datasheets – a well designed EEPROM write routine should compare the contents of an EEPROM address with desired contents and only perform an actual write if
ATmega328 - Misplaced Pages Continue
2688-559: The design to be brought into manufacturing more quickly. Cell libraries of logical primitives are usually provided by the device manufacturer as part of the service. Although they will incur no additional cost, their release will be covered by the terms of a non-disclosure agreement (NDA) and they will be regarded as intellectual property by the manufacturer. Usually, their physical design will be pre-defined so they could be termed "hard macros". What most engineers understand as " intellectual property " are IP cores , designs purchased from
2752-410: The designer compared to gate-array based designs. Likewise, the design tools used for structured ASIC can be substantially lower cost and easier (faster) to use than cell-based tools, because they do not have to perform all the functions that cell-based tools do. In some cases, the structured ASIC vendor requires customized tools for their device (e.g., custom physical synthesis) be used, also allowing for
2816-476: The following conceptual stages referred to as electronics design flow , although these stages overlap significantly in practice: These steps, implemented with a level of skill common in the industry, almost always produce a final device that correctly implements the original design, unless flaws are later introduced by the physical fabrication process. The design steps also called design flow , are also common to standard product design. The significant difference
2880-519: The functionality of ASICs. Field-programmable gate arrays (FPGA) are the modern-day technology improvement on breadboards , meaning that they are not made to be application-specific as opposed to ASICs. Programmable logic blocks and programmable interconnects allow the same FPGA to be used in many different applications. For smaller designs or lower production volumes, FPGAs may be more cost-effective than an ASIC design, even in production. The non-recurring engineering (NRE) cost of an ASIC can run into
2944-520: The implementation of their designs. A solution to this problem, which also yielded a much higher density device, was the implementation of standard cells . Every ASIC manufacturer could create functional blocks with known electrical characteristics, such as propagation delay , capacitance and inductance, that could also be represented in third-party tools. Standard-cell design is the utilization of these functional blocks to achieve very high gate density and good electrical performance. Standard-cell design
3008-523: The improved tinyAVR 0/1/2-series (released in 2016) include: megaAVR – the ATmega series The ATmega series features microcontrollers that provide an extended instruction set (multiply instructions and instructions for handling larger program memories), an extensive peripheral set, a solid amount of program memory, as well as a wide range of pins available. The megaAVR 0-series (released in 2016) also has functionality such as: AVR Dx – The AVR Dx family
3072-496: The methods described below use the RESET line to enter programming mode. In order to avoid the chip accidentally entering such mode, it is advised to connect a pull-up resistor between the RESET pin and the positive power supply. The in-system programming (ISP) programming method is functionally performed through SPI , plus some twiddling of the Reset line. As long as the SPI pins of the AVR are not connected to anything disruptive,
3136-423: The mid-1980s, a designer would choose an ASIC manufacturer and implement their design using the design tools available from the manufacturer. While third-party design tools were available, there was not an effective link from the third-party design tools to the layout and actual semiconductor process performance characteristics of the various ASIC manufacturers. Most designers used factory-specific tools to complete
3200-413: The millions of dollars. Therefore, device manufacturers typically prefer FPGAs for prototyping and devices with low production volume and ASICs for very large production volumes where NRE costs can be amortized across many devices. Early ASICs used gate array technology. By 1967, Ferranti and Interdesign were manufacturing early bipolar gate arrays. In 1967, Fairchild Semiconductor introduced
3264-413: The name AVR is not an acronym and does not stand for anything in particular. The creators of the AVR give no definitive answer as to what the term "AVR" stands for. However, it is commonly accepted that AVR stands for A lf and V egard's R ISC processor. Note that the use of "AVR" in this article generally refers to the 8-bit RISC line of Atmel AVR microcontrollers. The original AVR MCU was developed at
SECTION 50
#17327930289493328-404: The one below it. Non-recurring engineering costs are much lower than full custom designs, as photolithographic masks are required only for the metal layers. Production cycles are much shorter, as metallization is a comparatively quick process; thereby accelerating time to market . Gate-array ASICs are always a compromise between rapid design and performance as mapping a given design onto what
3392-485: The projected data retention failure rate is much less than 1 PPM over 20 years at 85 °C or 100 years at 25 °C. Programming mode is entered when PAGEL (PD7), XA1 (PD6), XA0 (PD5), BS1 (PD4) is set to zero. RESET pin to 0 V and V CC to 0 V. V CC is set to 4.5–5.5 V. Wait 60 μs, and RESET is set to 11.5–12.5 V. Wait more than 310 μs. Set XA1:XA0:BS1:DATA = 100 1000 0000 , pulse XTAL1 for at least 150 ns, pulse WR to zero. This starts
3456-451: The register file and the first 64 I/O registers, all can also be addressed and manipulated as if they were in SRAM. The very smallest of the tinyAVR variants use a reduced architecture with only 16 registers (r0 through r15 are omitted) which are not addressable as memory locations. I/O memory begins at address 0000 16 , followed by SRAM. In addition, these devices have slight deviations from
3520-549: The rest of the organization. The company ARM only sells IP cores, making it a fabless manufacturer . Indeed, the wide range of functions now available in structured ASIC design is a result of the phenomenal improvement in electronics in the late 1990s and early 2000s; as a core takes a lot of time and investment to create, its re-use and further development cuts product cycle times dramatically and creates better products. Additionally, open-source hardware organizations such as OpenCores are collecting free IP cores, paralleling
3584-415: The same basic core, but with different peripheral and memory combinations. Compatibility between chips in each family is fairly good, although I/O controller features may vary. See external links for sites relating to AVR development. AVRs offer a wide range of features: There are many means to load program code into an AVR chip. The methods to program AVR chips varies from AVR family to family. Most of
3648-411: The standard AVR instruction set. Most notably, the direct load/store instructions (LDS/STS) have been reduced from 2 words (32 bits) to 1 word (16 bits), limiting the total direct addressable memory (the sum of both I/O and SRAM) to 128 bytes. Conversely, the indirect load instruction's (LD) 16-bit address space is expanded to also include non-volatile memory such as Flash and configuration bits; therefore,
3712-788: The task. The AVR instruction set is more orthogonal than those of most eight-bit microcontrollers, in particular the 8051 clones and PIC microcontrollers with which AVR competes today. However, it is not completely regular: Additionally, some chip-specific differences affect code generation. Code pointers (including return addresses on the stack) are two bytes long on chips with up to 128 KB of flash memory, but three bytes long on larger chips; not all chips have hardware multipliers; chips with over 8 KB of flash have branch and call instructions with longer ranges; and so forth. The mostly regular instruction set makes C (and even Ada) compilers fairly straightforward and efficient. GCC has included AVR support for quite some time, and that support
3776-414: The term "semi-custom", while "gate-array" is more commonly used by logic (or gate-level) designers. By contrast, full-custom ASIC design defines all the photolithographic layers of the device. Full-custom design is used for both ASIC design and for standard product design. The benefits of full-custom design include reduced area (and therefore recurring component cost), performance improvements, and also
3840-538: The time. AVR microcontrollers find many applications as embedded systems . They are especially common in hobbyist and educational embedded applications, popularized by their inclusion in many of the Arduino line of open hardware development boards. The AVR architecture was conceived by two students at the Norwegian Institute of Technology (NTH), Alf-Egil Bogen and Vegard Wollan. Atmel says that
3904-418: The user and thus offer minimal tooling charges, non-recurring engineering, only marginally increased piece part cost, and comparable performance. Today, gate arrays are evolving into structured ASICs that consist of a large IP core like a CPU , digital signal processor units, peripherals , standard interfaces , integrated memories , SRAM , and a block of reconfigurable , uncommitted logic. This shift
SECTION 60
#17327930289493968-460: The years, the maximum complexity (and hence functionality) possible in an ASIC has grown from 5,000 logic gates to over 100 million. Modern ASICs often include entire microprocessors , memory blocks including ROM , RAM , EEPROM , flash memory and other large building blocks. Such an ASIC is often termed a SoC ( system-on-chip ). Designers of digital ASICs often use a hardware description language (HDL), such as Verilog or VHDL , to describe
4032-448: Was introduced by Fairchild and Motorola , under the trade names Micromosaic and Polycell, in the 1970s. This technology was later successfully commercialized by VLSI Technology (founded 1979) and LSI Logic (1981). A successful commercial application of gate array circuitry was found in the low-end 8-bit ZX81 and ZX Spectrum personal computers , introduced in 1981 and 1982. These were used by Sinclair Research (UK) essentially as
4096-415: Was opposite (8051's having an active-high RESET, while the AVR has an active-low RESET ), but other than that the pinout was identical. The AVR 8-bit microcontroller architecture was introduced in 1997. By 2003, Atmel had shipped 500 million AVR flash microcontrollers. The Arduino platform, developed for simple electronics projects, was released in 2005 and featured ATmega8 AVR microcontrollers. The AVR
#948051