Arduino Extreme: The Powerhouse of Early Arduino
An early, powerful Arduino board with an ATmega128 processor, offering more memory and I/O for ambitious projects.
The Arduino Extreme was a significant board in the early evolution of the Arduino platform, released around 2005. It was designed to provide more processing power and memory than the original Arduino boards, which were based on smaller microcontrollers like the ATmega8. This made it suitable for more complex applications that required handling larger datasets or running more sophisticated algorithms.
At the heart of the Arduino Extreme is the Atmel ATmega128 microcontroller. This 8-bit AVR RISC processor boasts a substantial 128 KB of Flash memory for program storage and 4 KB of SRAM for data. This was considerably more than its predecessors, allowing for larger, more feature-rich programs and the ability to manage more variables and complex data structures. The ATmega128 also features a wider range of peripherals, including more timers, communication interfaces, and analog-to-digital converter channels.
Positioned as a higher-end option within the early Arduino family, the Extreme board offered a bridge towards more professional embedded development while retaining the ease of use that defined Arduino. It appealed to advanced hobbyists, students in engineering programs, and even professionals looking for a rapid prototyping platform that could handle more demanding tasks. Its expanded I/O capabilities and memory made it a go-to for projects involving data logging, custom sensor interfaces, or early forms of networked communication.
The Arduino Extreme's legacy is one of pushing the boundaries of what was possible with the Arduino ecosystem at the time. While newer boards have since surpassed its raw specifications, the Extreme demonstrated the potential for accessible, yet powerful, microcontroller development. It fostered innovation by enabling projects that were previously constrained by limited memory or processing power, paving the way for the diverse range of Arduino boards available today.
Watch
Related video, embedded from YouTube.
Specifications
| Microcontroller / SoC | Atmel ATmega128 |
| Architecture | 8-bit AVR RISC |
| Clock speed | 16 MHz |
| Flash / Storage | 128 KB |
| RAM / SRAM | 4 KB |
| Operating voltage | 5V |
| Digital I/O pins | 53 |
| Analog / ADC | 8 channels (10-bit) |
| PWM | 6 channels |
| Connectivity | UART (2), SPI, I2C |
| USB | None (requires external programmer or serial adapter) |
| Power input | 7-12V DC via barrel jack or Vin pin |
| Dimensions | Approx. 101mm x 53mm (standard Arduino shield form factor) |
Pinout & pin functions
| Pin | Function |
|---|---|
| GND | Ground |
| GND | Ground |
| 5V | Power output (regulated) |
| 3.3V | Power output (regulated) |
| AREF | Analog Reference voltage |
| RESET | System Reset |
| D0 (RX0) | Digital Input/Output, UART RX (Serial communication receive) |
| D1 (TX0) | Digital Input/Output, UART TX (Serial communication transmit) |
| D2 | Digital Input/Output |
| D3 | Digital Input/Output, PWM |
| D4 | Digital Input/Output |
| D5 | Digital Input/Output, PWM |
| D6 | Digital Input/Output, PWM |
| D7 | Digital Input/Output |
| D8 | Digital Input/Output |
| D9 | Digital Input/Output, PWM |
| D10 (SS) | Digital Input/Output, SPI Slave Select |
| D11 (MOSI) | Digital Input/Output, SPI Master Out Slave In |
| D12 (MISO) | Digital Input/Output, SPI Master In Slave Out |
| D13 (SCK) | Digital Input/Output, SPI Serial Clock |
| A0 | Analog Input, Digital Input/Output |
| A1 | Analog Input, Digital Input/Output |
| A2 | Analog Input, Digital Input/Output |
| A3 | Analog Input, Digital Input/Output |
| A4 (SDA) | Analog Input, Digital Input/Output, I2C Serial Data |
| A5 (SCL) | Analog Input, Digital Input/Output, I2C Serial Clock |
| A6 | Analog Input, Digital Input/Output |
| A7 | Analog Input, Digital Input/Output |
| D14 (RX1) | Digital Input/Output, UART RX (Serial communication receive) |
| D15 (TX1) | Digital Input/Output, UART TX (Serial communication transmit) |
| D16 | Digital Input/Output |
| D17 | Digital Input/Output |
| D18 | Digital Input/Output |
| D19 | Digital Input/Output |
| D20 | Digital Input/Output |
| D21 | Digital Input/Output |
| D22 | Digital Input/Output |
| D23 | Digital Input/Output |
| D24 | Digital Input/Output |
| D25 | Digital Input/Output |
| D26 | Digital Input/Output |
| D27 | Digital Input/Output |
| D28 | Digital Input/Output |
| D29 | Digital Input/Output |
| D30 | Digital Input/Output |
| D31 | Digital Input/Output |
| D32 | Digital Input/Output |
| D33 | Digital Input/Output |
| D34 | Digital Input/Output |
| D35 | Digital Input/Output |
| D36 | Digital Input/Output |
| D37 | Digital Input/Output |
| D38 | Digital Input/Output |
| D39 | Digital Input/Output |
| D40 | Digital Input/Output |
| D41 | Digital Input/Output |
| D42 | Digital Input/Output |
| D43 | Digital Input/Output |
| D44 | Digital Input/Output |
| D45 | Digital Input/Output |
| D46 | Digital Input/Output |
| D47 | Digital Input/Output |
| D48 | Digital Input/Output |
| D49 | Digital Input/Output |
| D50 | Digital Input/Output |
| D51 | Digital Input/Output |
| D52 | Digital Input/Output |
| D53 | Digital Input/Output |
Wiring & circuit basics
The Arduino Extreme operates at a 5V logic level. When connecting external components, ensure they are compatible with 5V or use a level shifter if interfacing with 3.3V devices. Power can be supplied via the DC barrel jack (7-12V recommended) or the Vin pin. The onboard voltage regulator will step this down to 5V for the board and connected components. Avoid applying more than 12V to prevent overheating the regulator. Ensure your power supply can provide sufficient current, typically at least 500mA for most projects, more if driving many peripherals or motors.
Connecting an LED is a fundamental starting point. Connect the longer leg (anode) of the LED to a digital I/O pin (e.g., D13) and the shorter leg (cathode) through a current-limiting resistor (typically 220-330 ohms for a standard 5V LED) to a GND pin. This prevents the LED from drawing too much current and burning out. The resistor value can be calculated using Ohm's Law (R = (Vcc - Vf) / If, where Vcc is 5V, Vf is the LED's forward voltage, and If is the desired forward current).
For I2C communication, use pins A4 for SDA (Serial Data) and A5 for SCL (Serial Clock). These pins are multiplexed with analog inputs but function as digital I/O for I2C. When connecting an I2C sensor, remember that both SDA and SCL lines require pull-up resistors (typically 4.7k ohms) to the 5V supply. The Arduino Extreme's ATmega128 has hardware support for I2C, making communication with multiple devices on the same bus efficient.
Programming & getting started
The primary toolchain for the Arduino Extreme is the Arduino IDE, which supports C/C++ programming. You will need an external programmer, such as an AVR-ISP programmer, or a USB-to-serial adapter (like an FTDI breakout board) connected to the board's serial pins (RX/TX) to upload code, as the Extreme lacks onboard USB-to-serial conversion. Download and install the latest Arduino IDE, select the 'Arduino Mega 128' board (or a similar ATmega128-based board if not listed explicitly) from the board manager, choose the correct COM port for your programmer/adapter, and upload your sketch.
To upload your first program (a 'Blink' sketch), connect your programmer or USB-to-serial adapter. Wire the adapter's TX to the Arduino's RX pin (e.g., D0) and the adapter's RX to the Arduino's TX pin (e.g., D1). Connect the adapter's GND to the Arduino's GND. Then, connect the programmer's ICSP header to the Arduino's ICSP header. Open the Arduino IDE, paste the Blink sketch, select the correct board and port, and click the Upload button. You should see the built-in LED (often connected to D13) blink.