Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use Adafruit KB2040 Kee Boar Driver: Examples, Pinouts, and Specs

Image of Adafruit KB2040 Kee Boar Driver
Cirkit Designer LogoDesign with Adafruit KB2040 Kee Boar Driver in Cirkit Designer

Introduction

The Adafruit KB2040 Kee Boar Driver is a compact and versatile microcontroller board designed specifically for keyboard and input device applications. Powered by the RP2040 chip, it offers robust performance, USB-C connectivity, and compatibility with a wide range of input devices. Its small form factor and advanced features make it an excellent choice for custom keyboard projects, macro pads, and other human interface device (HID) applications.

Explore Projects Built with Adafruit KB2040 Kee Boar Driver

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino Nano-Controlled Robotic Platform with Bluetooth and Motion Sensing
Image of Operation Drone for 'Noobs' who can't read!: A project utilizing Adafruit KB2040 Kee Boar Driver in a practical application
This is a Bluetooth-controlled motor driver circuit with motion sensing capabilities. It uses an Arduino Nano to drive four DC motors via MOSFETs, receives commands from an HC-05 Bluetooth module, and senses motion with an MPU6050 accelerometer/gyroscope. The circuit includes back EMF protection diodes, gate resistors for the MOSFETs, and is powered by LiPo batteries with a toggle switch for power management.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Controlled Multi-Axis Actuator System with Orientation Sensing and Light Detection
Image of Auto_Level_Table: A project utilizing Adafruit KB2040 Kee Boar Driver in a practical application
This circuit features an ESP32 S3 N32R8V microcontroller interfaced with multiple IBT-2 H-Bridge Motor Drivers to control several Linear Actuators, and it receives input from KY-018 LDR Photo Resistors and Pushbuttons. The ESP32 is powered by a 5V supply from an Adafruit MPM3610 5V Buck Converter, while the Linear Actuators and Motor Drivers are powered by a 12V 7Ah battery. Additionally, the ESP32 communicates with an Adafruit BNO085 9-DOF Orientation IMU Fusion Breakout for orientation sensing.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO Bluetooth-Controlled Robotic Car with L298N Motor Driver
Image of EDA assignment: A project utilizing Adafruit KB2040 Kee Boar Driver in a practical application
This circuit is a Bluetooth-controlled motor driver system using an Arduino UNO. The Arduino interfaces with an HC-05 Bluetooth module for wireless communication and controls an L298N motor driver to operate multiple hobby gear motors. A toggle switch and battery case provide power management for the system.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO and L298N Motor Driver Bluetooth-Controlled Robotic Arm
Image of ROBOTIC ARM: A project utilizing Adafruit KB2040 Kee Boar Driver in a practical application
This circuit is a Bluetooth-controlled motor driver system using an Arduino UNO. It includes an L298N motor driver to control two DC motors, an HC-05 Bluetooth module for wireless communication, and multiple MG996R servos powered by an XL4015 DC-DC buck converter. The system is powered by a 7.4V battery and controlled via the Arduino, which interfaces with the motor driver and servos.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Adafruit KB2040 Kee Boar Driver

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Operation Drone for 'Noobs' who can't read!: A project utilizing Adafruit KB2040 Kee Boar Driver in a practical application
Arduino Nano-Controlled Robotic Platform with Bluetooth and Motion Sensing
This is a Bluetooth-controlled motor driver circuit with motion sensing capabilities. It uses an Arduino Nano to drive four DC motors via MOSFETs, receives commands from an HC-05 Bluetooth module, and senses motion with an MPU6050 accelerometer/gyroscope. The circuit includes back EMF protection diodes, gate resistors for the MOSFETs, and is powered by LiPo batteries with a toggle switch for power management.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Auto_Level_Table: A project utilizing Adafruit KB2040 Kee Boar Driver in a practical application
ESP32-Controlled Multi-Axis Actuator System with Orientation Sensing and Light Detection
This circuit features an ESP32 S3 N32R8V microcontroller interfaced with multiple IBT-2 H-Bridge Motor Drivers to control several Linear Actuators, and it receives input from KY-018 LDR Photo Resistors and Pushbuttons. The ESP32 is powered by a 5V supply from an Adafruit MPM3610 5V Buck Converter, while the Linear Actuators and Motor Drivers are powered by a 12V 7Ah battery. Additionally, the ESP32 communicates with an Adafruit BNO085 9-DOF Orientation IMU Fusion Breakout for orientation sensing.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of EDA assignment: A project utilizing Adafruit KB2040 Kee Boar Driver in a practical application
Arduino UNO Bluetooth-Controlled Robotic Car with L298N Motor Driver
This circuit is a Bluetooth-controlled motor driver system using an Arduino UNO. The Arduino interfaces with an HC-05 Bluetooth module for wireless communication and controls an L298N motor driver to operate multiple hobby gear motors. A toggle switch and battery case provide power management for the system.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of ROBOTIC ARM: A project utilizing Adafruit KB2040 Kee Boar Driver in a practical application
Arduino UNO and L298N Motor Driver Bluetooth-Controlled Robotic Arm
This circuit is a Bluetooth-controlled motor driver system using an Arduino UNO. It includes an L298N motor driver to control two DC motors, an HC-05 Bluetooth module for wireless communication, and multiple MG996R servos powered by an XL4015 DC-DC buck converter. The system is powered by a 7.4V battery and controlled via the Arduino, which interfaces with the motor driver and servos.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Custom mechanical keyboards
  • Macro pads for productivity or gaming
  • MIDI controllers and other musical input devices
  • DIY human interface devices (HID)
  • Prototyping and educational projects involving input/output devices

Technical Specifications

The Adafruit KB2040 Kee Boar Driver is built around the RP2040 microcontroller and includes several features tailored for keyboard and input device applications.

Key Technical Details

Specification Value
Microcontroller RP2040 (Dual ARM Cortex-M0+ @ 133MHz)
Flash Memory 8MB QSPI Flash
USB Connectivity USB-C
GPIO Pins 20 (4 with ADC support)
Input Voltage 5V (via USB-C)
Logic Level 3.3V
Current Draw ~25mA (idle, without peripherals)
Dimensions 51mm x 18mm x 4mm
Weight 4g

Pin Configuration and Descriptions

The KB2040 features 20 GPIO pins, which are accessible via solder pads. These pins can be used for digital I/O, analog input, and other functions. Below is the pinout description:

Pin Number Pin Name Functionality
1 GND Ground
2 3V3 3.3V Power Output
3 A0 Analog Input / GPIO
4 A1 Analog Input / GPIO
5 A2 Analog Input / GPIO
6 A3 Analog Input / GPIO
7 D0 Digital I/O / UART TX
8 D1 Digital I/O / UART RX
9 D2 Digital I/O
10 D3 Digital I/O
11 D4 Digital I/O
12 D5 Digital I/O
13 D6 Digital I/O
14 D7 Digital I/O
15 D8 Digital I/O
16 D9 Digital I/O
17 D10 Digital I/O
18 D11 Digital I/O
19 D12 Digital I/O
20 D13 Digital I/O / Built-in LED

Usage Instructions

How to Use the KB2040 in a Circuit

  1. Powering the Board: Connect the KB2040 to a USB-C power source. The board operates at 5V input and regulates it to 3.3V for internal use.
  2. Connecting Peripherals: Use the GPIO pins to connect switches, LEDs, or other input/output devices. Ensure that all connected devices operate at 3.3V logic levels to avoid damage.
  3. Programming the Board: The KB2040 supports CircuitPython, MicroPython, and Arduino IDE. To upload code:
    • Hold the BOOTSEL button while connecting the board to your computer via USB-C.
    • The board will appear as a USB mass storage device.
    • Drag and drop the firmware file (e.g., CircuitPython UF2) onto the drive.

Important Considerations and Best Practices

  • Voltage Levels: Ensure all connected peripherals operate at 3.3V logic levels. Use level shifters if interfacing with 5V devices.
  • Debouncing: For keyboard switches, implement software or hardware debouncing to avoid multiple signals from a single press.
  • Pin Usage: Avoid exceeding the current limits of GPIO pins (maximum 12mA per pin).
  • ESD Protection: Handle the board with care to prevent electrostatic discharge damage.

Example Code for Arduino UNO

Below is an example of how to use the KB2040 to read a button press and toggle the built-in LED:

// Define pin numbers
const int buttonPin = 2;  // Button connected to GPIO D2
const int ledPin = 13;    // Built-in LED connected to GPIO D13

void setup() {
  pinMode(buttonPin, INPUT_PULLUP); // Set button pin as input with pull-up
  pinMode(ledPin, OUTPUT);          // Set LED pin as output
}

void loop() {
  // Read the button state
  int buttonState = digitalRead(buttonPin);

  // If button is pressed, toggle the LED
  if (buttonState == LOW) { // Button pressed (active low)
    digitalWrite(ledPin, HIGH); // Turn on LED
  } else {
    digitalWrite(ledPin, LOW);  // Turn off LED
  }
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. Board Not Recognized by Computer:

    • Ensure the USB-C cable is data-capable (not charge-only).
    • Hold the BOOTSEL button while connecting the board to force it into bootloader mode.
  2. GPIO Pins Not Responding:

    • Verify that the pins are correctly configured in your code.
    • Check for shorts or incorrect wiring.
  3. CircuitPython Code Not Running:

    • Ensure the code.py file is present on the board's storage.
    • Check for syntax errors in the code.
  4. Overheating or Power Issues:

    • Avoid drawing excessive current from the GPIO pins.
    • Ensure peripherals are within the board's voltage and current limits.

FAQs

Q: Can I use the KB2040 with 5V peripherals?
A: The KB2040 operates at 3.3V logic levels. Use level shifters to interface with 5V devices.

Q: What programming languages are supported?
A: The KB2040 supports CircuitPython, MicroPython, and Arduino IDE.

Q: How do I reset the board?
A: Press the RESET button on the board. To enter bootloader mode, hold the BOOTSEL button while resetting.

Q: Can I use the KB2040 for non-keyboard projects?
A: Yes, the KB2040 is a general-purpose microcontroller and can be used for various applications beyond keyboards.