Skip to the content
PCBKitNew board
2 layers30.5 × 55.9 mmArduino Nano Breakout, the printed circuit board in 3D

Arduino Nano Breakout

buchbergerd/LibreRover

A small open-source, open-hardware, cheap and expandable robot.

Size
30.5 × 55.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
12
Nets
64
Pads
140
Tracks, vias
103, 0
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
17 Feb 2026
Updated
5 May 2026

Overview

Arduino Nano Breakout is an open-source printed circuit board by buchbergerd, from the buchbergerd/LibreRover repository on GitHub, published under the MIT licence. It is a 2-layer board of 30.5 × 55.9 mm with 12 parts on 64 nets, routed with 103 tracks and 0 vias.

It belongs with the robots and motor control and interfaces and adapters boards and the AVR (ATmega, ATtiny) boards of this library.

README

README.md

LibreRover

LibreRover

LibreRover is a open-source, open-hardware educational robot designed for Arduino and robotics workshops.

Hardware

The hardware parts mostly can be 3D printed. It is designed to fit affordable breakout boards. It is modular and expandable: If you want an encoder, use it. If not, no problem. More sensors? Just print the parts and stick it to the robot. By using breakout boards for all sensors, the wiring is very flexible, at the cost of lots of wires thorugh the air. For a more permanent setup, consider hot glue and good cable management.

Software

The Arduino framework is used. Feel free to choose an Arduino Nano (simple), an ESP32 (has WiFi) or another microcontroller. Several classes for an easy start are provided and can be used as needed:

  • Motor: This makes a simple motor more accessible by taking care of the direction pins and PWM speed control. It is intended to be used with an L298N motor driver.
  • EncoderMotor: A motor and an encoder together form an EncoderMotor. This class handles both, so the user can easily set the speed and make a wheel move a certain amount.

If you use the Arduino IDE, make sure to add the files in software/lib/LibreRover to your project. As an Alternative, consider using PlatformIO.

Bill of Materials

ComponentQuantityEstimated CostNotes
Arduino Nano13.40 €Or compatible clone
DC Motors with Encoders22.80 €TT motor; recommended to buy a set with wheels
Motor Driver (HW-201 or L298N)12.50 €Dual H-bridge driver
9V Battery13.50 €Power supply
Jumper WiresSeveral3.80 €For connections
Light gate LM393 (for simple encoder)23.20 €optional
HW-201 IR reflection sensor21.30 €optional
VL53L0X ToF distance sensor34.00 €optional
Others-1.00 €9 V Battery cable, swith for turning on/off

Estimated Total Cost: ~17 to 27 € (depending on your setup; excluding 3D printer)

Hardware assembly

The mechanical parts are in hardware/mechanical. The full assembly is shown in hardware/mechanical/Rover.f3z.

  1. Print the parts that you need:
    • Body
    • Mounting parts for your set of sensors
  2. If you print 3D print the wheels (not recommended): Use rubber foam or similar so that they have some grip on the ground.
  3. Assemble the motors
    • Screws work best.
    • As an alternative, use the clams Clamp_Motor_Nose and Clamp_Motor_Body together with Pin_Motor.
  4. Assemble the glider by sticking it to the body frame. It will be the third contact point with the ground.
  5. Assemble the sensors. The sensor mounts are fixed to the body frame with Simple_pin and friction. The distance sensors can be fixed to their mounts either by another pin (Pin_VL53L0X) or a clamp (Clamp_VL53L0X).
  6. The 9V battery can be hold in place by 9V_Block_Mounting on the bottom side of the frame.
  7. Wire the electronics.

Software setup

Motor

When using the provided class for a simple motor, make sure to setup the correct pins and values.

The Motor needs:

  • The pins connected to IN1 and IN 2 from the motor driver board (so set the direction).
  • The pin connected to EN from the motor driver board. Make sure that PWM is supported on this pin.
  • The minimum PWM value at which the motor starts moving. This is used to scale the speed.
  • The maximum PWM value. This limits the effective voltage for the motor. Use it, when the motor is made for 6 V instead of the 9 V of the battery: 255 / (battery voltage) * (max. motor voltage).

The EncoderMotor takes

  • The Motor to control
  • The SimpleEncoder attatched to it
  • The circumference of the wheel
  • The amount of encoder pulses per revolution
  • The maximum speed in mm/s.
cpp
// Motor(forward_pin, backward_pin, pwm_pin, min_pwm, max_pwm)
Motor motor_left(9, 10, 11, 50, 255 / 9. * 6.5);

// EncoderMotor(motor, encoder, mm_per_revolution, pulses_per_revolution, max_speed)
EncoderMotor enc_motor_left(motor_left, encoder_left, 251, 40, 350);

Software Usage

Basic Movement Example

cpp
#include <EncoderMotor.h>

// Initialize motors and encoders

void loop() {
    // Drive forward 250mm at 150mm/s
    motor_left.drive_distance(250, 150);
    motor_right.drive_distance(250, 150);
    
    // Wait for completion
    while(!motor_left.is_stopped() || !motor_right.is_stopped()) {
        // Update speed control and stop motor if target distance is reached
		motor_left.tick();
        motor_right.tick();
    }
}

Credits

For creating the CAD files, I used these models:

Parts

12
QtyValueFootprintReferences
23DRConnector_PinSocket_2.54mm:PinSocket_1x15_P2.54mm_VerticalJ8, J9
2Conn_01x15_SocketConnector_PinSocket_2.54mm:PinSocket_1x15_P2.54mm_VerticalJ1, J2
2M4MountingHole:MountingHole_3.2mm_M3_DIN965_PadH1, H1
1Arduino_Nano_SocketPCM_arduino-library:Arduino_Nano_SocketA1
1Conn_01x04_PinConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ7
1GNDConnector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_VerticalJ4
1SCLConnector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_VerticalJ6
1SDAConnector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_VerticalJ5
1VCCConnector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_VerticalJ3

Questions

How big is the Arduino Nano Breakout PCB?

It measures 30.5 × 55.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Arduino Nano Breakout use?

12 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Arduino Nano Breakout KiCad files?

From the buchbergerd/LibreRover repository on GitHub, at the commit this page was made from: the board is hardware/pcb/Arduino_Nano_Breakout/Arduino_Nano_Breakout.kicad_pcb and its schematic hardware/pcb/Arduino_Nano_Breakout/Arduino_Nano_Breakout.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Arduino Nano Breakout design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layersNrf bga, the printed circuit board in 3D

    Nrf bga

    github-linguist/linguist

    Language Savant. If your repository's language is being reported incorrectly, send us a pull request!

    12 parts14kMIT
  • 2 layers66.9 × 74.5 mmDeskHop, the printed circuit board in 3D

    DeskHop

    hrvach/deskhop

    Fast Desktop Switching Device

    12 parts7.9kGPL-3.0
  • 2 layers40 × 15 mmSensors, the printed circuit board in 3D

    Sensors

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    12 parts3kApache-2.0
  • 2 layers42.7 × 56.5 mmTle6240 driver, the printed circuit board in 3D

    Tle6240 driver

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    12 parts1.2k
  • 2 layers49 × 25 mm5v boost regulator, the printed circuit board in 3D

    5v boost regulator

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    12 parts915
  • 2 layers28.3 × 10.3 mmTap Photosensor PCB, the printed circuit board in 3D

    Tap Photosensor PCB

    VoronDesign/Voron-Tap

    Tap is a nozzle-based z-probe for the V2 and Trident printer designs. The entire toolhead moves to trigger an optical switch. Tap offers many advantages:

    12 parts716GPL-3.0
  • 2 layers25.4 × 70.4 mmTpmsniffer, the printed circuit board in 3D

    Tpmsniffer

    stacksmashing/pico-tpmsniffer

    A simple, very experimental TPM sniffer for LPC bus

    12 parts696