Background

As a high school computer technology teacher I believe one of the best ways to motivate students to learn and build their understanding of electronics and programming is to give them ownership of their learning. UBMP4 was designed specifically to support this goal.

UBMP4 is a simple circuit that students build themselves, while learning about electronics parts, simple circuits, and soldering as they assemble it. UBMP4 can be assembled in a few different configurations, including a minimal components starter configuration. Once students have installed the basic components, they can start to use their own UBMP4 to learn microcontroller programming and interfacing techniques. At the end of the semester, students can add additional on-board or external components and demonstrate their learning by making their UBMP4 circuit into a final project of their choice.

Why not use [insert your favourite microcontroller board here]?

Why design a board when lots of other microcontroller boards exist? Some existing circuits are too simplistic, with limited I/O or block-based programming, while other, more versatile circuits are often too expensive for school take home projects. Most other microcontroller circuits also require students to interface parts onto them by building external circuits on a breadboard, leading to temporary or take-apart in-class projects rather than take -home projects that students can be proud of.

UBMP4 was designed to solve all of these problems since it includes a variety of built-in I/O devices on board, allowing new learners to make a variety of different projects without adding any external parts. And, UBMP4 is inexpensive enough that students can take their UBMP4 home at the end of the semester to continue learning their learning on their own. And UBMP4 is programmed using industry-standard C language and a powerful IDE.

I have designed a number of different circuits to address similar educational needs over the years, and UBMP4 is the smallest, least expensive, and most versatile circuit that I'm also the most proud of. It's easy for students to program using its built-in bootloader (I pre-program the microcontroller with the bootloader for the students, first), and it has enough I/O circuitry on-board for students to learn programming without adding additional components.

At the end of the semester, students can make a variety of projects using just the built-in I/O devices, including a reaction timer game, a room/locker alarm, a Simon-style memory game, a simpler music player, and a TV remote control. More advanced students, or students looking to develop a deeper understanding of interfacing or programming, can create their own software functions to control external devices, build animatronics or walking robots using servos and SONAR sensors, make NeoPixel lighting controllers for their rooms, create data logging devices, and much more!

UBMP4 Hardware Features

UBMP4 is the fourth version of this simple PICmicro development board. The differences from the previous version include a new USB-C port for power and programming, a transistor driver on the IR LED output for greater output power and range, and protection resistors for the I/O port headers making it almost goof-proof. UBMP4 is open hardware. Check out the GitHub page for more details and KiCad files: https://github.com/mirobotech/UBMP420

UBMP4 is Designed for Education

While anyone can use UBMP4 to learn microcontroller programming, it was designed to take into account challenges specific to education.

UBMP4 Courseware

Five introductory lessons and one starter project are freely available on the UBMP4 website, and more will be added soon: https://mirobo.tech/ubmp4

The goals of the introductory lesson activities are to give learners enough of a grasp of hardware and software knowledge to be able to control almost any simple peripheral devices, either the ones on-board, or components attached to the external I/O headers. Learners will be able to create their own software libraries for interacting with devices such as servos, ultrasonic SONAR modules, the IR demodulator, and NeoPixels.

Programming UBMP4

UBMP4 can be programmed using either Microchip's MPLAB X desktop IDE, or the MPLAB Xpress cloud-based IDE. Compiled programs are loaded into UBMP4 using either a PICkit-4 (connected to the ICSP header), or though a USB bootloader. Once the on-board PIC16F1459 is programmed with the bootloader a stand-alone PIC programmer is no longer required, making UBMP4 ideal for schools. Students are even program UBMP4 through the MPLAB Xpress cloud-based IDE on managed school Chromebooks!

UBMP4 is open

The UBMP4 circuit is open hardware and all of the learning materials, including tutorials, lesson activities, and programs posted on the mirobo.tech website, are freely available and reproducible. Educators face many challenges and reinventing a successful circuit shouldn’t be one of them. I believe strongly in education I want to share this circuit with teachers and learners in the hopes that it can help them to create a better computer technology learning experience for themselves and their students the same way it did for mine!