Background

Implementing a successful beginner-level computer technology program presents a variety of unique challenges for both instructors and learners. CHRP4 is the fourth major version of a design that has been continuously revised and refined over more than 10 years of classroom instruction to address many of these challenges, including:

1 - Supporting all learners

It’s no surprise to any instructor that all learners are not the same. CHRP4 is designed to engage and challenge multiple levels of learners within the same classroom by being able to be assembled in a number of different configurations. This flexibility allows individual students to choose a project of most interest to them while all students use the same, common circuit board making CHRP4-based projects simpler for the instructor to support.

2 - Making learning real/relevant

CHRP 4 is designed to be both an introductory training board as well as a student’s final project. It uses through-hole components for easy assembly, in order to support students learning about electronic components and basic circuits, and incorporates real-world challenges in its programming learning activities.

Most importantly, CHRP4 was developed specifically to fulfill the goal of having each student build their own, individual take-home project that they have ownership of, rather than building typical take-apart projects, constructed on breadboards using components that have to stay behind in the classroom at the end of the course. I’ve found that ownership of their own project promotes student buy-in and, coupled with competitive final projects (such as the fastest time for a line-following robot to complete a course, or building the best Sumo robot) provides even more incentive for students to quickly learn and apply their skills as they strive to out-perform their classmates.

3 - Minimizing project costs

The CHRP4 circuit board was designed to be built in stages and in multiple configurations. This capability allows CHRP4 to either be fully completed as a single-semester project, or to be constructed over two semesters, spreading the component costs over two individual courses or years instead of one. Either way, students build CHRP4 using only the components necessary for their particular project build.

To build CHRP4 over multiple courses or years, an introductory or first year course would build CHRP4 as a (non-robotic) introductory microcontroller trainer to focus on developing students’ programming skills. Without adding the motor driver and the other components necessary to build a robot, students can make CHRP4 into a variety of other projects including: a simple music player, a reaction timer game, a Simon-style memory game, a remote control transmitter, a room alarm, a servo driver, a NeoPixel driver, and more. In a second semester, year, or advanced course, students can add the motor driver, regulator, terminal block, sensors, and motors to their existing circuit, enabling them to make line-following, obstacle sensing, remote-controlled, or Sumo robots using their same circuit board from their first course.

In addition to spreading costs over multiple courses/years, another benefit of this approach is the ease with which instructors can integrate new or beginner students into the second year/advanced course, because both courses use different forms of the same circuit board – and both share the same components and curriculum.

Another factor minimizing classroom costs is the reduced overhead required to support CHRP4 in comparison with other microcontroller circuits. Classrooms don’t need to invest in as many breadboards, jumper wires, microcontroller circuit modules, peripheral circuits, and all of the individual electronic components that will inevitably suffer breadboard damage, since all the circuitry necessary for learning using CHRP4 is a part of each student’s circuit board.

4 - Enabling deeper learning

Students learn to program CHRP4 using the C language, which by design immerses them deeper into exploring the connections between the software and the microcontroller and its peripherals than using a high-level language would. This approach focuses students on firmly solidifying their understanding of fundamental programming concepts before moving onto more advanced programming later.

One of the ways CHRP4 helps students to build foundational skills is by providing full visibility into the structure and operation of all special function code – nothing is ‘magical’ or hidden – which promotes a better understanding of how the system as a whole works. The learning activities even lead students though the process of building and debugging their own functions, further enabling higher level students to either extend the supplied functions, or to develop their own functions for external add-in circuits or even their own hardware designs as necessary.

Finally, another big benefit of using a much less popular (and different) circuit from those most commonly used in education is that students will essentially be forced to work through the coding challenges on their own. There are very few good (or bad) examples that students can copy and paste code from, in comparison to the more popular boards, so it quickly becomes apparent to the instructor when a student is struggling with coding or having difficulty understanding a new concept, and requires assistance.

CHRP4 Hardware

The CHRP4 hardware is designed to be an inexpensive, versatile circuit that doubles as an introductory microcontroller training board as a well as a student’s final project. CHRP4 can fulfill both roles using only the components installed on its circuit board, without wiring external circuits or modules on breadboards.

Beginning computer technology learners first assemble CHRP4 while learning about electronic components, basic interface circuits, and soldering. After their circuit board is assembled, learners use it to develop their fundamental programming and interfacing skills. When learners are ready to progress further, they can choose to make CHRP4 into one of a number of different projects, including line-following and Sumo robots.

The CHRP4 hardware is designed to be built in stages, in three major configurations: first, as an educational starter circuit; next, as a line-following robot or simple circuit project; and, finally, as a Sumo robot or more advanced circuit project.

Completing the educational starter circuit uses a minimal set of components and enables students to quickly transition to the introductory programming activities, while CHRP4 retains its flexibility to be customized into a final project of the student’s choice later. The education starter configuration is also functionally similar to the UBMP4 board and can share its resources and curriculum, making it easy for instructors to support both circuits in the same program.

After completing the introductory programming activities, students can add the voltage regulator, motor driver, terminal block, DC motors, and the central floor LED and phototransistors to make their circuit into a line following robot. Students ready for an even bigger challenge can populate the dual floor sensors instead (and break off the line following module if it’s in the way), add an ultrasonic SONAR module and gear motors, and make their circuit into a more advanced obstacle sensing, remote-controlled, or Sumo robot.

Robotic projects are lots of fun for students to build, but they are more involved and costly than other beginner projects. The simple robot platform designed for line-following robots can be built inexpensively using mostly hardware store parts instead of more expensive gear motors or servo motors. CHRP4 can also be assembled without the optional robotics-focused parts, and at a lower cost, while still being made into a variety of other circuit projects, including a simple music player, a reaction timer game, a Simon-style memory game, a room alarm or people monitor, a servo driver, a NeoPixel controller, and more!

While CHRP4 may not have the high-end features of the latest microcontroller boards, it is designed as a versatile board to do the basics well – helping beginner computer technology students learn the fundamentals of microcontroller programming and interfacing quickly and easily, while building a fun, inexpensive, and complete project of their own.

Hardware Features

Software and Programming

CHRP4 includes a 6-pin ICSP programming header which can be used for programming the on-board PIC16F1459 microcontroller directly, but its primary purpose is intended to make it easy for instructors to pre-program the USB µC bootloader (https://hackaday.io/project/63204-usb-c-usb-pic-bootloader) into the microcontroller after students assemble their circuit board.

Using a bootloader allows a school or maker lab to support all students with a minimal investment of just one hardware programmer and, more importantly, enables students to quickly and easily reprogram their CHRP4, either in class or at home, using a relatively inexpensive USB 2.0 Type-C cable.

Programs for CHRP4 are created using either Microchip’s MPLAB X desktop IDE (under Windows, macOS, or Linux), or by using the MPLAB Xpress Cloud-Based IDE through a web browser. In both cases, students learn to program CHRP4 using the C language (or optionally assembly code), and programs are compiled into a .hex format file containing the microcontroller’s machine code.

The CHRP4 simulates a USB mass storage device when using a PIC16F1459 microcontroller pre-programmed with the bootloader. After connecting CHRP4 to their computer, students simply drag and drop the .hex file onto the drive representing the CHRP4 microcontroller to reprogram it. Since no drivers or special programming software are required, CHRP4 can even be programmed from managed Chromebooks in schools with 1:1 Chromebook programs.

CHRP4 Courseware and Learning Activities

A set of five comprehensive introductory learning activities has been completed for the CHRP4 circuit board, and these match the previously-created learning activities for the related UBMP4 non-robotic microcontroller education circuit. Having matching activities for two similar and related circuits allows learners to have more flexibility in choosing how to apply their new skills to more types of projects while simplifying the curriculum support required from an instructors and minimizing the component inventory for project circuits.  

The introductory lesson activities are designed to lead students through guided exploration of important programming concepts. Successive lesson activities scaffold onto the concepts introduced in the prior activities, and open-ended programming challenges provide discovery opportunities while helping students solidify their knowledge and understanding of the hardware and coding. The introductory learning activities include: 

Intro 1 - Input and output (including ‘if’ and simple logic)

Intro 2 - Variables and constants (including a simple game)

Intro 3 - Loops (including PWM)

Intro 4 - Functions

Intro 5 - Analogue input (including serial output)

The goal of the first few learning activities is to target hardware I/O, which helps learners quickly build their knowledge of the circuit hardware and basic programming concepts through the creation of fun programs including making light patterns and beeping noises (Intro 1), creating a simple game (Intro 2), and implementing PWM for variable brightness LED output (Intro 3). By initially focusing on hardware coding, learners are provided with immediate, purposeful coding tasks which help to channel their curiosity and explore the software statements and structures that will help them to find appropriate solutions to the challenges.

The learning activities incorporate guided questions and related code examples to step learners through the exploration of related concepts. All of these are found in the program source files, in the form of comments below the code, making it easy for students to copy and paste the example code into their programs and answer questions directly in the source file. This simplifies file management for learners, keeping their final code, notes, and solutions in one file, as well as streamlines the process of assessment for students and instructors when used in a school setting.

After completing the first four introductory activities students will have been exposed to all of the programming structures and concepts necessary for creating both simple line-following and Sumo robots. The fifth activity introduces advanced concepts including analog-to-digital conversion and serial output for debugging. A follow-on advanced activity will lead the students through the creation and debugging of an ultrasonic SONAR function for use in obstacle avoidance or Sumo robot target acquisition. Starter code examples for both line-following and Sumo robots are provided, which give students an organized program structure in which to build their program without overwhelming new learners by using a blank-slate approach.

Open Hardware, Software, and Learning Materials

CHRP4 has been designed to be open hardware and to use open source software. I have had great success integrating earlier versions of CHRP4 hardware as well as UBMP4 (and its prior versions) into high school computer technology classes, and I want everyone, especially other teachers and students, to have the benefit of my work on it. All of the CHRP4 hardware, software, and learning materials are open, and the following permissions and conditions apply: