MakerLab Reference: Arduino BT - The Bluetooth-Enabled Classic
Explore the Arduino BT, an early Arduino board that integrated Bluetooth connectivity for wireless projects.
The Arduino BT, released around 2007, was a significant step in the Arduino family's evolution, aiming to bring wireless communication capabilities directly to the microcontroller board. It was designed for makers and hobbyists who wanted to experiment with Bluetooth without needing external modules, simplifying the process of creating remote-controlled devices or data logging systems that could communicate wirelessly with computers or other Bluetooth-enabled devices.
At the heart of the Arduino BT is the ATmega168 microcontroller, a popular 8-bit AVR processor known for its robustness and ease of use. This chip provides the core processing power and memory for running Arduino sketches. The board's unique feature is the integrated Bluetooth module, typically a Class 2 module, which allows for wireless serial communication over short distances. This integration made it a compelling choice for projects requiring a wireless link, bridging the gap between wired and truly mobile embedded systems.
Positioned as an advanced variant of the original Arduino Diecimila, the Arduino BT offered a more integrated solution for wireless projects. While later boards like the Arduino Nano and Uno became more prevalent for general-purpose use, the Arduino BT held a special place for those specifically targeting Bluetooth applications. Its release predated the widespread adoption of Wi-Fi and BLE in the maker community, making Bluetooth the go-to wireless standard for many early connected projects.
This board is best suited for makers, students, and embedded engineers interested in the history of connected microcontrollers or those working with legacy Bluetooth projects. It's ideal for learning about serial communication, basic wireless protocols, and how to integrate wireless capabilities into embedded systems. While its processing power and memory are modest by today's standards, it remains a capable platform for many introductory and intermediate projects that don't require high bandwidth or complex networking.
Watch
Related video, embedded from YouTube.
Specifications
| Microcontroller / SoC | Atmel ATmega168 |
| Architecture | 8-bit AVR RISC |
| Clock speed | 16 MHz |
| Flash / Storage | 16 KB (of which 2 KB used by bootloader) |
| RAM / SRAM | 1 KB |
| Operating voltage | 5V |
| Digital I/O pins | 14 (of which 6 can be used as PWM outputs) |
| Analog / ADC | 6 analog inputs (10-bit resolution) |
| PWM | 6 pins (3, 5, 6, 9, 10, 11) |
| Connectivity | Integrated Bluetooth (Class 2) |
| USB | None (requires external FTDI adapter or Bluetooth for programming) |
| Power input | 7-12V DC via barrel jack or Vin pin, or 5V via USB (for power/FTDI) |
| Dimensions | 75mm x 53mm |
Pinout & pin functions
| Pin | Function |
|---|---|
| GND | Ground |
| 5V | 5V Power Output |
| 3.3V | 3.3V Power Output (from onboard regulator) |
| AREF | Analog Reference voltage |
| A0 | Analog Input 0 / Digital I/O 14 |
| A1 | Analog Input 1 / Digital I/O 15 |
| A2 | Analog Input 2 / Digital I/O 16 |
| A3 | Analog Input 3 / Digital I/O 17 |
| A4 | Analog Input 4 / SDA (I2C) |
| A5 | Analog Input 5 / SCL (I2C) |
| D0 (RX) | Digital I/O 0 / UART Receive |
| D1 (TX) | Digital I/O 1 / UART Transmit |
| D2 | Digital I/O 2 |
| D3 | Digital I/O 3 / PWM |
| D4 | Digital I/O 4 |
| D5 | Digital I/O 5 / PWM |
| D6 | Digital I/O 6 / PWM |
| D7 | Digital I/O 7 |
| D8 | Digital I/O 8 |
| D9 | Digital I/O 9 / PWM / SS (SPI) |
| D10 | Digital I/O 10 / PWM / MOSI (SPI) |
| D11 | Digital I/O 11 / PWM / MISO (SPI) |
| D12 | Digital I/O 12 / SCK (SPI) |
| D13 | Digital I/O 13 / LED Built-in |
| RESET | Reset Button |
| VIN | Voltage Input (7-12V) |
| GND | Ground |
| BT_EN | Bluetooth Module Enable (usually HIGH) |
| BT_STATE | Bluetooth Module Status Indicator |
| BT_RX | Bluetooth Module Receive (connects to Arduino D0/RX) |
| BT_TX | Bluetooth Module Transmit (connects to Arduino D1/TX) |
Wiring & circuit basics
Powering the Arduino BT requires attention to its voltage requirements. The board can be powered via a 7-12V DC power supply connected to the barrel jack or the VIN pin. Alternatively, it can be powered by a regulated 5V supply connected to the 5V pin, but this bypasses the onboard voltage regulator and should only be done if the supply is stable at exactly 5V. Avoid connecting higher voltages directly to the 5V pin, as this can damage the ATmega168 and other components. The board also has a 3.3V output pin, which is regulated from the main power source and can be used to power low-voltage external components, but it's typically not sufficient for the Bluetooth module itself which has its own power management.
The Arduino BT operates at a logic level of 5V. This means that digital HIGH signals are 5V and digital LOW signals are 0V. When connecting external components, especially sensors or modules that operate at 3.3V, it is crucial to use level shifting circuits to prevent damage. For example, if connecting a 3.3V sensor's output to an Arduino BT input pin, a voltage divider or a dedicated logic level converter should be used. Conversely, if the Arduino BT needs to send a HIGH signal to a 3.3V device, ensure the device can accept a 5V input, or use a level shifter.
A simple LED project illustrates basic wiring. Connect the anode (longer leg) of an LED to a digital pin, such as D13 (which also has an onboard LED), through a current-limiting resistor (typically 220-330 ohms for a standard 5V LED). Connect the cathode (shorter leg) of the LED to a GND pin. When the digital pin is set to HIGH (5V), current flows through the resistor and LED, illuminating it. The resistor protects both the LED and the Arduino's output pin from excessive current. For more complex sensors like an I2C device, connect its VCC to the Arduino's 5V pin, GND to GND, SDA to A4, and SCL to A5.
Programming & getting started
The primary toolchain for programming the Arduino BT is the Arduino IDE. Download and install the latest version from the official Arduino website. Once installed, select 'Arduino BT' from the 'Tools > Board' menu. For uploading sketches, the Arduino BT does not have an onboard USB-to-serial converter. You will need an external USB-to-serial adapter (like one based on the FTDI chip) connected to the board's serial pins (D0 RX, D1 TX) and GND. Alternatively, you can program it wirelessly via Bluetooth after establishing a serial connection with a computer running the Arduino IDE, though this requires an initial setup.
To upload your first sketch, connect the USB-to-serial adapter to the Arduino BT's serial pins (RX to TX, TX to RX, and GND to GND) and to your computer's USB port. In the Arduino IDE, select the correct COM port for your USB-to-serial adapter. Then, write a simple sketch, such as the 'Blink' example, modifying the pin number if necessary. Click the 'Upload' button. Once the upload is complete, the sketch will begin running on the Arduino BT. For Bluetooth programming, you'll need to pair your computer with the Arduino BT's Bluetooth module first, then open a serial monitor connection through the Bluetooth link in the Arduino IDE.