MakerLab
ArduinoArduino BT

MakerLab Reference: Arduino BT - The Bluetooth-Enabled Classic

Explore the Arduino BT, an early Arduino board that integrated Bluetooth connectivity for wireless projects.

Arduino BT

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 / SoCAtmel ATmega168
Architecture8-bit AVR RISC
Clock speed16 MHz
Flash / Storage16 KB (of which 2 KB used by bootloader)
RAM / SRAM1 KB
Operating voltage5V
Digital I/O pins14 (of which 6 can be used as PWM outputs)
Analog / ADC6 analog inputs (10-bit resolution)
PWM6 pins (3, 5, 6, 9, 10, 11)
ConnectivityIntegrated Bluetooth (Class 2)
USBNone (requires external FTDI adapter or Bluetooth for programming)
Power input7-12V DC via barrel jack or Vin pin, or 5V via USB (for power/FTDI)
Dimensions75mm x 53mm

Pinout & pin functions

PinFunction
GNDGround
5V5V Power Output
3.3V3.3V Power Output (from onboard regulator)
AREFAnalog Reference voltage
A0Analog Input 0 / Digital I/O 14
A1Analog Input 1 / Digital I/O 15
A2Analog Input 2 / Digital I/O 16
A3Analog Input 3 / Digital I/O 17
A4Analog Input 4 / SDA (I2C)
A5Analog Input 5 / SCL (I2C)
D0 (RX)Digital I/O 0 / UART Receive
D1 (TX)Digital I/O 1 / UART Transmit
D2Digital I/O 2
D3Digital I/O 3 / PWM
D4Digital I/O 4
D5Digital I/O 5 / PWM
D6Digital I/O 6 / PWM
D7Digital I/O 7
D8Digital I/O 8
D9Digital I/O 9 / PWM / SS (SPI)
D10Digital I/O 10 / PWM / MOSI (SPI)
D11Digital I/O 11 / PWM / MISO (SPI)
D12Digital I/O 12 / SCK (SPI)
D13Digital I/O 13 / LED Built-in
RESETReset Button
VINVoltage Input (7-12V)
GNDGround
BT_ENBluetooth Module Enable (usually HIGH)
BT_STATEBluetooth Module Status Indicator
BT_RXBluetooth Module Receive (connects to Arduino D0/RX)
BT_TXBluetooth 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.

Project ideas

Bluetooth Controlled RobotBuild a simple mobile robot chassis and control its motors wirelessly using the Arduino BT. The board's digital pins can drive motor controllers, and its Bluetooth module allows for remote commands from a smartphone app or computer, teaching motor control and wireless communication.
Wireless Sensor Data LoggerConnect various sensors (temperature, humidity, light) to the Arduino BT's analog and digital pins. The board can collect data and transmit it wirelessly via Bluetooth to a computer for logging and analysis, demonstrating sensor interfacing and data transmission.
Bluetooth MIDI ControllerCreate a custom MIDI controller using buttons, potentiometers, and sliders connected to the Arduino BT's I/O pins. The board can then send MIDI messages wirelessly over Bluetooth to a computer or synthesizer, exploring human-interface devices and serial MIDI protocols.
Remote LED ControlUse the Arduino BT to control an LED or a string of LEDs wirelessly. Buttons or a simple serial interface on a connected computer can send commands via Bluetooth to turn LEDs on/off or change their color (if using RGB LEDs), reinforcing basic digital output and wireless command reception.
Bluetooth Chat ApplicationSet up two Arduino BT boards to communicate with each other wirelessly. Each board can read serial input (from a computer or keypad) and transmit it via Bluetooth to the other board, which then displays the message, teaching peer-to-peer wireless communication and serial protocols.
Simple Wireless Presence DetectorConfigure the Arduino BT to detect when a Bluetooth-enabled device (like a smartphone) enters or leaves its vicinity. This can be achieved by scanning for specific Bluetooth device addresses and triggering an action, such as lighting an LED or sending a notification, introducing basic Bluetooth device discovery concepts.

Buying tips & gotchas

When purchasing an Arduino BT, be aware that it is an older board and may be harder to find new. Look for reputable sellers or consider used options. Be cautious of clones, as their quality and component choices can vary significantly. The most common pitfall is attempting to program it without an external USB-to-serial adapter or understanding the Bluetooth pairing process, as it lacks onboard USB programming. Ensure you have a compatible Bluetooth adapter on your computer if you plan to program or communicate wirelessly. Accessories like a 7-12V power adapter, jumper wires, breadboards, and basic electronic components (resistors, LEDs) are essential for getting started.