BEAPER stands for Beginner Electronics and Programming Educational Robot, and Nano refers to the Arduino Nano ESP32 microcontroller it's designed for.
I created BEAPER Nano to be a versatile platform for teaching beginner electronics and computer technology classes. Its features also make it a great platform to help anyone focus on learning microcontroller programming without the interruptions of building and debugging breadboard circuits.
BEAPER Nano includes all of the typical beginner I/O devices on-board, plus additional circuitry that lets it become much more capable as learners progress and develop advanced programming skills. Learners can build BEAPER Nano into a variety of projects, such as an environmental monitoring system, a servo or NeoPixel controller, a basic IoT device, a simple gaming system, and a few different types of robots!
BEAPER Nano was the first circuit I designed designed to use a plug-in microcontroller module instead of using a microcontroller IC, and it also became the inspiration for BEAPER Pico – its sibling circuit for the Raspberry Pi Pico family of microcontrollers. This is BEAPER Nano v.1.01, the latest revision.
Designed for versatilityBEAPER Nano starts as a bare, through-hole PCB designed to be assembled by beginners in stages (three common beginner build configurations are described below). Assembling the circuit in stages enables learners to use its basic input and output circuits to start learning programming quickly, while providing instructors with the ability to tailor BEAPER Nano to their needs. This enables student project differentiation, savings on component costs, and even allows BEAPER Nano to form the basis of a multi-semester or multi-year course.
BEAPER Nano is designed for the Arduino Nano ESP32, a small, yet amazingly powerful and inexpensive, microcontroller module. It can be programmed using the Arduino IDE – making it instantly familiar to instructors who have previously taught using traditional Arduino UNO or Nano boards – and takes advantage of the resource-rich Arduino ecosystem that has developed to support novice programmers.
Arduino Nano ESP32 can also be programmed using MicroPython in the Arduino Lab for MicroPython editor or Thonny. MicroPython provides beginners with an easier-to-learn programming alternative that uses a simpler syntax. Plus, it has a rich and powerful feature set, nearly instant program modification, and interactive debugging.
BEAPER Nano build configurationsEducational Starter configuration
The Educational Starter configuration is designed to mimic a typical beginner breadboard circuit – just without the difficult-to-insert parts and the rat's nest of wires! This configuration is quick to build and provides learners with:
- an Arduino Nano ESP32 microcontroller module with an on-module RGB LED
- 4 user pushbuttons
- 4 user LEDs
- a piezo speaker
Using these starter components allows learners to develop a fundamental understanding of input, output, variables, loops, sound output, and simple software functions. Adding an ambient light sensor, an analog temperature sensor, and one or both potentiometers to the starter configuration enables beginners to progress to learning the basics of analog input and output processing as well.
Robot Starter configuration
BEAPER Nano includes on-board circuits that provide beginners with everything they need to make line-following robots, wall- or floor-sensing robots, and even remotely-controlled robots using Arduino Nano ESP32's on-module WiFi and Bluetooth capabilities. An external battery and two DC motors quickly attach to its screw terminal strip, and its 5V header pins support up to four servos. In addition, a four-pin header socket makes it easy to plug in a 3.3V SONAR distance sensing module, and the I2C/QWIIC connector can be used to connect an optical ToF (Time of Flight) distance sensor module.
The Robot Starter configuration includes all of the components in the Educational Starter configuration and adds:
- 5V low drop-out linear regulator and power switch circuit
- 74AHCT541 3.3V to 5V level shifter IC to drive external servos and the on-board motor driver
- SN754410NE motor driver IC (an improved L293D) and screw terminal strip
- 2 break-away optical floor and line sensor modules containing IR LEDs and phototransistors
- 3-pin jumpers to route analog floor sensor inputs to the Arduino Nano ESP32's ADC (Analog-to-Digital Converter)
- optional 4-pin header socket to mount an HC-SR04P 3.3V SONAR distance sensor module
- optional JST-SH QWIIC connector to connect a ToF distance sensor module and other I2C devices
Mount BEAPER Nano on a simple chassis to make basic floor-sensing and line-following robots, or 3D print the more sophisticated BEAPER Bot robot chassis design shown in the photo above. BEAPER Bot is designed to hold two N-20 gear motors, a 4-AA battery holder, and slide-in optical sensor and servo modules. All of BEAPER Bot's components are assembled by snapping, sliding, and clipping their parts together – no fasteners needed! The BEAPER Bot design is shared in TinkerCad (search BEAPER), making it easy for novices and education users to create their own add-on robot components.
IoT configuration
The built-in WiFi and Bluetooth capabilities of Arduino Nano ESP32 enable any BEAPER Nano configuration to become a simple IoT (Internet of Things) device or controller. Creating a beginner IoT-focused configuration is easy to do by adding the following components to the Educational Starter configuration:
- an ambient light sensor, an analog temperature sensor, and one or both potentiometers
- 4 I/O headers to connect external, 3.3V digital or analog devices
- I2C/QWIIC connector to connect external 3.3V I2C devices and sensors
- an optional full-colour 240 X 240 pixel TFT LCD display panel
Beginners can use the on-board analog devices to easily experiment with analog signal processing, while the expansion headers and QWIIC connector enable a wide range of additional sensors and capabilities to be added.
Installing the optional graphical LCD enables learners to display parameters, develop UIs (user interfaces), and even learn to program simple games!
Start with a bare PCB or a complete DIY kit
As a retired high school computer technology teacher, I understand the challenges of properly funding computer technology and STEM programs. To make BEAPER Nano more accessible for educational users, I'm making BEAPER Nano PCBs available to order directly from PCBWay. This allows instructors to order class sets of PCBs directly from the manufacturer at the lowest possible cost.
For individual users, bare BEAPER Nano PCBs as well as complete BEAPER Nano parts kits are available for sale on the mirobo.tech website as well as on my Lectronz store (best for EU purchasers).
Choose your BEAPER Nano build configuration
Users ordering bare PCBs can determine their own custom BEAPER Nano configuration, and instructors only need to purchase the parts that are required for their course. Assembly instruction and links for the full component list are provided on the website.
Users purchasing BEAPER Nano component kits can choose to start with a simpler configuration and complete their BEAPER Nano later, or assemble the full build of BEAPER Nano to explore all of its capabilities right away!
Learn programming with my beginner programming activities
I've been teaching microcontroller programming for over thirty years, and in that time I have developed a good understanding of how to introduce and sequence programming concepts in a way that encourages and reinforces learning. I'm continuously refining my learning materials, and I've completely re-written and expanded my beginner learning activities for BEAPER Nano, BEAPER Pico, and my ARPS-2 Arduino UNO shield.
These structured beginner programming activities lead users through all of the concepts needed to make BEAPER Nano into a robot, an alarm system, an environmental control system, a NeoPixel driver, and more. Two complete sets of beginner activities are shared on GitHub – one written for learners starting with Arduino C/C++, and the other for programmers learning MicroPython. Both sets of learning activities cover all of the following topics:
- Output
- Timing
- Input
- Constants and Variables
- Decision Structures
- Conditional Loops
- Counted Loops
- Functions
- Analog input
- Analog Output
- Non-blocking Timing
- State Machines
- Starter templates for various extension and challenge projects
I'm currently creating a set of intermediate learning activities to introduce data structures, teach I2C device interfacing, demonstrate the use of the LCD display, and implement hardware features such as interrupts and power management. All of these will be shared in the GitHub repository at a later point.














_4YUDWziWQ8.png?auto=compress%2Cformat&w=48&h=48&fit=fill&bg=ffffff)





_Ujn5WoVOOu.png?auto=compress%2Cformat&w=40&h=40&fit=fillmax&bg=fff&dpr=2)


Comments