Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This self-guided professional development training is a new program from REV Robotics designed to aid educators as they get started with educational robotics and the DUO Control System.
These trainings are intended to pair with the Intro to Robotics V2 Curriculum and EDU Kit V2.
Within the professional development, there are currently two groups of lessons available:
While there is overlap between using the DUO system in the classroom and FTC or FGC competitions, these trainings are intended to provide simplified onboarding support to new educators.
This means there is less heavily technical or complex materials provided, such as in depth pinouts, schematics, or references to competition formats. Please see the for that information.
Additionally, these trainings include callouts for pairing with the Intro to Robotics V2 curriculum, such as relevant lessons or projects.
The sample lesson provided here is Lesson 2 from Unit 1 of the Intro to Robotics V2 curriculum. Within this lesson, the mechanical parts of the EDU Kit V2 are introduced followed by a small building activity to aid with student exploration and growing familiarity.
A selection of documents have been provided here, additional supporting material may be available within the full curriculum download.
The lesson plan provides the learning outcomes, materials list, standards, activities, and a step-by-step simplified walkthrough for the lesson.
The teacher guide provides similar information to the lesson plan, such as learning outcomes, but provides additional elaboration on running the lesson to include scripts, time breakdowns, and activity tips.
The slideshow for Lesson 2 introduces different mechanical parts for the EDU Kit V2 intended for students to view while having a kit accessible to look up close.
The goal is to grow familiarity with the part names and terms, as well as their purposes to cut down on the risk of things feeling overwhelming as the course move towards building.
In this activity, students are building a simple launcher in their groups. No programming required! For now the focus is to practice using tools and manipulating the parts in a fun way.
Once they finish, students can try launching crumpled paper balls or something like tennis/stress balls. We tried launching our small dino plushie ourselves.
Lesson 2 includes the recommendation to have students practice inventory their kits. While the kits include a bill of materials, a version with checkboxes has been included in the curriculum and is available here:
This collection of lessons focuses on using DUO Mechanical and Control Systems, as well as general robotics principles, getting hands-on with the robots
This collection of lessons focuses on the ins and outs of running a robotics or technology education classroom with open-ended projects



There are a lot of different ways to teach documenting progress for the Engineering Design Process or project work in general. The use of engineering notebooks is perhaps the most common and, while not specifically used in the Intro to Robotics V2 curriculum, can be great for students to have available for noting ideas and sketches.
For the curriculum, a step-by-step handout is provided for each project with guiding questions. A more universal version is provided here:
This handout may be given all at once or broken into parts based on where students are in a project. Each student group should have a shared copy as their final to turn in. Scrap paper for additional sketches and brainstorming are also handy to have available.
Intro to Robotics V2 is an adaptable and ready-to-teach semester long course (50+ hours) for high school (9th-12th) classrooms. It is designed to align with ISTE and ITEEA standards. For information on individual state or district standards alignment, please reach out to us at education@revrobotics.com.
The version 2.0 of the curriculum has been rebuilt from the ground up to be accessible for both new and returning educators, with clear guidance and resources to support you every step of the way.
6 units mapped to ISTE and ITEEA standards
Emphasis on programming, with step-by-step walkthroughs scaffolded to build student knowledge
Hands-on activities ranging from exploring gear trains to designing sensor-driven autonomous robots
Real-world themed learning, including a larger challenge in each unit
Educator resources, including Unit Plans, Lesson Plans, and Activity Guides
Each unit includes a full walkthrough, with scripts and expanded explanations, to help new teachers teach with confidence!
LMS compatible
Hover over the document type for additional information!
Unit Resources:
Unit Lesson Breakdown
Unit Plan
Hover over a unit title for more information!
Unit 1: Introduction to Robotics
Unit 2: Mechanical Motion: Gearing and Gear Trains
There are two types of actuators available in the EDU Kit V2, servos and DC motors. Actuators convert energy into a form of motion by applying a force. In this case, they are convert electrical energy into motion by applying torque.
Servos are a form of actuator often used for more specialized movements between positions. Servos include built-in sensors that allow them to automatically know their position without any outside programming
These servos are capable of two modes:
Angular Mode: Sets the servo to move to specified positions within a 270° range of motion
Continuous Mode: Allows for the servo to rotate a full 360°, either direction, indefinitely similar to a standard motor
DC Motors are a type of electrical motor that use direct current, or DC, to rotate and produce the mechanical force needed to move an attached mechanism. There are two DC Motors available in the kit.
The Core Hex Motor is a DC Motor that includes a built-in encoder . The Core Hex has a 90° orientation and a through-bore design
The HD Hex Motor is a DC Motor that includes a built-in encoder. The HD Hex Motor includes a pressed-fit pinion to be ready for meshing with a gearbox system.
If it's not already open, tap the Driver Station Application on the home screen of the Driver Hub to open it.
Look for the 3 dots in the upper right hand corner of the Driver Station Application to tap open the menu.
In the dropdown menu, select Settings.
Select Pair with Robot Controller
Select Wi-Fi Settings.
From the list of Wi-Fi networks, look for the Control Hub's assigned name that was decided during the last step of set up.
Enter the password to the Wi-Fi network in the password field that was decided during the last step of set up. Then press CONNECT.
Press the back arrow at the bottom of the display until you return to the main driver station screen.
After a couple of seconds, the Driver Station page will indicate the network name, a ping time, and battery voltage. The robot may appear to restart (sound effect will play) before finalizing the connection.
Your Driver Hub is now paired with your Control Hub!
The Driver Station Application allows for the connection of two gamepads. When working with the Driver Hub these gamepads can be plugged into any of the three USB 2.0 ports. Once the gamepads are plugged in, you will need to initialize them.
To initialize the gamepad that will act as User 1 (gamepad1, in code) press the options button and the Xbutton on the gamepad at the same time. To initialize User 2 ( gamepad2, in code) press the options button and the O button at the same time.
The Control Hub powers off a single 12V Slim Battery. Using an approved battery is the ONLY way the Control Hub should be powered. It cannot be powered directly from a charger or via USB.
Adding a switch cable is recommended to allow the Control Hub to be easily powered on and off without removing the battery.
These cables are used to provide power to the motors connected to the Control Hub.
Used with the motors in the EDU Kit V2 to send information from the encoders to the Control Hub.
PWM, or pulse-width modulation, is a signal type used to communicate with different devices, such as the servos found in the EDU Kit V2.
This tutorial is focused on changing the Wi-Fi settings for a classroom setting. Those participating in FTC, FGC, or another competition should check the latest game manual for rules on device names.
Version 10.2 and newer of the Driver Station App/Robot Controller App now shows a warning if the names used on the Control Hub and Driver Hub do not match the current FTC rules. This is a cosmetic warning that does not prevent normal operation.
Navigate to the Control Hub in the REV Hardware Client. If currently viewing a different device, click Hardware to return to the home screen.
Select the Program and Manage tab once in the Control Hub's menus.
This menu contains the options for programming as well, but for now click on the Manage option.
Here you'll find all the options for updating the Wi-Fi settings. For now we will focus only on the name and password. It's recommended to give each Control Hub an easily recognizable name.
This might be a group name, student names, a color, a number, or similar that fits your classroom needs for assigning robots. This is the name that will be displayed in the REV Hardware Client and as the network to connect to later using the Driver Hub.
The default password is password. Consider allowing student groups to pick their own password to secure their robot. If the password is forgotten, it can be changed here again later.
Click Apply Wi-Fi Settings once all changes have been made. The Wi-Fi Band settings can be left on the default (5 Ghz and auto Wi-Fi Channel) for most classroom environments.
The files on the Control Hub can be backed up using the REV Hardware Client. Remember all programming files and configurations are stored directly on the Control Hub so it is good to regularly back it up!
Select Backup/Restore
Select Backup Files
The saved zip file's name will appear after the backup runs. Click this to open the file location.
It's recommended to move this zip to an easy to find location, such as Documents.
Wiring Diagrams are a visual aid that show where everything is wired in an electrical system. Students can think of them like a map showing the pathways between the Control Hub and each device location.
Right now our testbed uses a very simple wiring set up that's easy to track, but imagine if every motor and servo port was in use. That's 9 devices and sets of wires going across the robot before adding sensors!
Encourage students to create a wiring diagram for their own projects and to update it as they work. A blank template is below that includes the parts for the EDU Kit V2.
Along with wiring diagrams, here are a couple additional good practices to make encourage to prevent part damage and confusion while working with the robot.
Individual wires or wire pairs (ex: a motor's encoder and power wires), can be labeled using things like printed labels, small pieces of tape, colored zip ties, etc. It's recommended to label both ends for easy identification.
Labels may include port numbers, letters, device names, or whichever system works best for your classroom. When using something like colors, letters, or another code these can be added to the wiring diagram for the robot!
While designing a robot or build, it's important to plan ahead where electronics will sit and wires will run. It's best to keep the Control Hub easily accessible and where the lights can be viewed. For wires, consider potential pinch points and moving components where they may become caught or tangled.
Damaged wires may lead to parts not working as expected, causing shorts and damage, and pose a safety risk. While the robot is disconnected from power, encourage students to regularly check wires.
This should also be a first step while troubleshooting, both to check things are wired correctly, but also securely with proper wires.
Wires with exposed metal or fraying should be replaced.
This professional development is intended to pair with the and the free curriculum. Those using a different kit, such as the FTC Starter Kit, may have additional parts.
Before diving in, let's take a look at what's in the EDU Kit V2 to review some key terms and what's what!
The next few pages are intended to be a quick visual reference for parts and names to be looked back upon for those new to the DUO System!
A touch sensor is a form of digital sensor that responds to some form of physical touch. The touch sensor found in the EDU Kit V2 uses a simple push button to switch between on or off. Within the Blocks programming language, this appears as True or False.
A color sensor is a form of I2C sensor. This type of sensor measures reflected light, allowing it to determine how much light is being seen, the distance to a surface, and what color is in front of it. The color sensor found in the EDU Kit V2 uses a HSV model to determine color.
Setting up the DUO Control System for the first time can be broken into 4 steps:
Powering Up
Updating
Managing settings
A testbed is a testing environment for hardware and software components. Testbeds are a fantastic tool to practice programming, troubleshoot parts, collect data, and continue to grow familiar with the EDU Kit V2.
Similar setups are used by professional engineers and companies as part of the development, quality control, and refinement processes! Depending on the end goal, these testbeds can be designed a variety of different ways. For example, if a company is gathering data on how much weight a part can handle, the testbed may be designed to continually move over a period of time while adding new amounts of weight.
Let's take a look at the testbed used within Unit 1 of the curriculum:
The goals of our testbed are:
Multiple configurations can be created on the Control Hub to be switched between for different projects or classes.
Creating a new configuration may be better than attempting edit an existing one, especially if it is being created to test an idea, for example, or certain devices are being added.
Some sensors, like the color sensor, once added to the configuration will cause a program to error out if they are removed physically, but not from the configuration!
Keeping track of configurations can be as easy as making a small table record with the type of part, the port it's connected to, and the assigned named. If parts are changed or renamed, this chart can be updated.
Here is an example format we commonly follow when creating guides we want others to follow:
Connect the Control Hub to the Windows computer using the orange USB cable that came with the Control Hub. The USB-C (oval) side connects to the Control Hub while the USB-A (rectangle) connects to the PC.
A different cable, or USB C-to-C cable may be used but MUST be able to do both power and data. Note: Some generic cables only do power.
Open the REV Hardware Client once connected. The Control Hub should appear on the home screen (Hardware tab).
Click on the Control Hub to open the update menu.
There are 3 options for items listed that may need updating:
Lesson Slideshows
Build and Programming Guides
Unit Key Terms Glossary (Blank and Filled-in)
Unit Activity Guide
Elaborated Unit Teacher Guide
Student Activity Handouts and Answer Sheets
Unit 4: Thinking Like a Robot: Intro to Autonomous
Unit 5: Sensor Exploration
Unit 6: Bringing it All Together




The EDU Kit V2 includes a REV USB PS4 Compatible Gamepad. For the Logitech F310 Gaming Controller and Xbox 360 Controller for Windows, press start and A at the same time to initialize User 1 and start and B at the same time to initialize User 2.




























Allow mounting of 3 different kinds of actuators
Demonstrate using actuator brackets for the different kinds of actuators
Safely secure moving parts while creating our first OpMode
Create an easy to move platform for organizing and storing student projects outside of class
This testbed can additionally be used for testing new actuators, Control Hubs, batteries, or sensors upon receiving them. This is a recommended best practice even if they may not be used yet!
Completing the Testbed build takes 20-30 minutes.
This section is intended to pair with Unit 1, Lesson 4 of the Intro to Robotics V2 curriculum.

Connecting the Driver Hub to the Control Hub
Before getting started you will need:
From the kit:
Additional items:
The Control Hub is powered with a 12V Slim Battery. The battery connects to the yellow XT30 port labeled as "Battery".
When first powering on, the light on the Control Hub will illuminate blue then change to green when fully booted.
At this point it's ready for use!
To power on the Driver Hub, hold the power button for a couple seconds until the REV logo appears on the screen. During boot up, a white light will flash and the green light beside the power button will appear.
The Driver Hub will take a few moments to reach the lock screen. The white light will no longer illuminate.
If this is the first time powering on the Driver Hub, the set up screen will appear.
When the Driver Hub is first powered up, or a factory reset is performed, an initial set up process is needed. Start by selecting next on the main screen to continue.
For now, it's recommended to skip the step connecting the Driver Hub to a local Wi-Fi network.
On the next screen, set the date and time before continuing.
Initial set up is complete! Select Finish to go to the Driver Hub's homescreen.
Locations with restricted internet access, such as a school with a firewall/web filtering, may experience trouble installing the REV Hardware Client or updating devices. Please contact your IT for assistance.
Motor Port 0
Core Hex Motor
coreHex
Motor Port 1
HD Hex Motor
ultraHex
Servo Port 0
Smart Robot Servo
servo
Digital Sensor Port 1
A handout is provided here to use with students or while continuing through this training:
Space has been provided on this tracker for sensors and parts not found in the EDU Kit V2.
Remember that device names in configuration are case sensitive!
Control Hub Operating System: This is the main software of the Control Hub. It receives rare updates, but likely will need updating upon first use.
Robot Controller App: This is the software tied to the Robot Controller Console that allows for programming the Control Hub and communication with the Driver Hub. This software updates most frequently!
Hub Firmware: This is the core firmware for the electronics of the Hub to function. It should be up to date on first use and receives very rare updates.
Once you are ready to update you can select "Update All to Latest Version". Be aware the first time updating may take some time depending on your network environment.
The Control Hub can remain connected or be unplugged while updating the Driver Hub next.
Connect the Driver Hub to the Windows computer using the orange USB cable that came with the device. This is the same kind of cable used for the Control Hub.
The USB-C (oval) end connects to the Driver Hub and USB-A (rectangle) end connects to the computer. Once connected, the Driver Hub will appear in the REV Hardware Client similar to the Control Hub.
Clicking the Driver Hub will open the Update menu.
There are two types of software available for updating on the Driver Hub:
Driver Hub Operating System: This is the core Android OS that runs on the Driver Hub. It receives occasional updates and may require updating on first boot up.
Driver Station App: This allows the Driver Hub to communicate with the Control Hub. This app and the Robot Controller App always receive updates at the same time.
Once you are ready to update you can select "Update". Be aware the first time updating may take some time depending on your network environment.


Before introducing the steps of the Engineering Design Process, consider giving students a simple hypothetical problem to work through in a group.
The problem should not be something they have to build a full solution for, but should be something that allows some brainstorming, discussion, minor research or questioning, and general creativity. Consider something local in the community or school. Maybe students have vocalized wanting a new learning space or the lighting outside the building doesn't feel safe at night.
This could also be left open for students to identify their own problem as the first step. Students are often very perceptive or have ideas they aren't sure how to address.
Asking "If you could solve any one problem about the school, what would you pick?" can be a great starting point!
Below are some examples students have come up with in my experience teaching:
Not enough picnic tables
Paper towels on the bathroom floors
Desiring a quiet space to work
Adding new clubs/after school activities
Mud in the hallways
Lack of project storage/organization
Wanting a student garden
Flooding in the parking lot
The Intro to Robotics V2 curriculum provides an example that is robotics focused.
Some problems are bigger than others, but the goal for this initial task is to allow students freedom to begin planning and solving the problem how they naturally would with their group. Everybody thinks a little differently so likely there will be a variety in approaches. Some may naturally fall into a flow similar to the Engineering Design Process while others may end up stuck thinking "what's next".
This is intended to be a short exercise of 15-20 minutes. Afterwards, allow students time to share as a full class or individually with you.
Consider asking questions like:
What problem are you trying to solve?
How did you decide on your solution?
What other solutions or ideas did you think about?
What would your first steps be to implement this solution?
Well also getting students thinking critically, this will also help you gain an idea of how students think through presented problems.
Once the class regroups, have a discussion on how students thought through the problem by taking volunteers to share or pointing out observations you made.
Continue into growing the problem situation by asking how students would communicate their idea if they were on a team of 100 people, or needed to talk to someone they don't know, and how they would track all the moving parts in a way that if someone asked to see their work they could share it.
This will segue into presenting the Engineering Design Process and its importance.
Keep in mind while moving forward: The Engineering Design Process should be thought of less as a "one size fits all" solution to solving problems and more of a way to help make sure everyone is on the same page for a project as it proceeds. (And provides documentation to reference later when ideas and plans are forgotten in excitement.)
The next section introduces how Engineering Design may appear in the classroom as a trackable assignment during project work!
The Control Hub is the brain of the robot. It runs what is know as the Robot Controller Console, which stores all programs, configurations, and log files.
Even when programming in the REV Hardware Client or a browser this is just acting as a tool to access the Control Hub's software!
The Driver Hub is how we communicate with the Control Hub when we're ready to run a program and control the robot. It functions similar to an Android phone and runs the Driver Station Application to allow communication.
The Driver Hub connects to the Control Hub's Wi-Fi network to communicate.
After setting the Driver Hub for the first time, you will have access to the Driver Station Application. There is a lot of information displayed by the Driver Hub so let's take a closer look.
Let's start by taking a look at the ports on the HD Hex Motor and Core Hex Motor:
Each motor has a power and encoder port. Encoders are a form of sensor built into the motor that can send information back to the Control Hub to be used during programming. Specifically, these motors use incremental encoders, which count the number of revolutions or "ticks".
Red provides power while black serves as the ground. These wires are keyed, meaning they are meant to only attach to the motor and Control Hub one way as dictated by the clip on the connector.
In the event a power wire is connected backwards, the motor will spin the opposite expected direction!
Similarly to the power wires, red provides power while black serves as ground. The blue and white wires transmute signal between the motor and the Control Hub. These wires can be used with various sensors, not just motor encoders. The wires are keyed with the intention of only connecting one way.
We have our motors running autonomously, but now let's add some manual control with a gamepad.
The Gamepad menu is always available in Blocks to search for the desired button or joystick control.
For our motors, we can set the power of the motor to be equal to the movement of the joystick. As the joystick moves up and down along the y-axis, it's value changes from -1 to 1 with 0 being off.
Click the gamepad block for the LeftStickY to the motor power block of the Core Hex Motor.
Before testing, it's good to note that by default the direction of the Y-axis on the gamepad is inverted, meaning if I moved the joystick up expecting the robot to move "forward" the motor will actually spin in reverse.
Touch Sensor
touchSensor







Are there any challenges you think your solution might have?
How would you communicate your idea with others (to build it or just to share)?
The town is working to help people walking at night feel safer by providing better illumination along paths. One suggested solution is to create a robot that can emit light while tagging along with someone and may be able to provide other services, such as directions, in the future.
(Lesson 8, Unit 2)



While connected to a Control Hub, the application will appear similar to below:
1
Initialize, start, and stop programs
Only available when a program has been selected.
2
Telemetry display
Displays telemetry outputs.
Displays any system warnings and error codes
3
Active configuration


When connecting the wires to both the motor and the Control Hub it should be a snug fit. Giving a small, light tug is a recommended practice to help wires are seated correctly.
On the servo end, the needed wire is already built-in. Unlike the motor wires, the power and ground are both black while white is the signal wire. On the Control Hub, signal is labeled as S.
These wires are not keyed meaning students will have to be careful which direction they are connecting them. While reversing the wire is unlikely to damage the servo, it will prevent it from working as expected.
Often times there may be a need to extend the built-in wire of the servo. To do so we can use a standard PWM cable.
The PWM wires available within the EDU Kit V2 are red for power, black for ground, and white for signal. When connecting a PWM cable to the servo's built-in cable, its easiest to focus on lining up the white signal wire to ensure the correct orientation.
Motor ports are located on the left side of the Control Hub and servo ports along the bottom.
For motors, each port pairs a power connector, the more square option, and an encoder connector, the more rectangular option.
The servo ports include a label to help with orienting the cable while connected since these are often not keyed.
When completing the configuration process, we tell the Control Hub what is connected and where.
It is NOT able to autodetect or correct once parts are wired meaning which port a motor is connected to DOES matter and should match the configuration.
For the testbed, the wiring layout is below:
Motor Port 0
Core Hex Motor
Motor Port 1
HD Hex Motor
Servo Port 0
Smart Robot Servo
After wiring your testbed, you will need to create a configuration before starting programming. Give this a try or review the Creating a Configuration section!
Recall that device names should be easily recognizable even, when creating test configs, to reduce future confusion. The names used from curriculum are below:
Core Hex Motor
coreHex
HD Hex Motor
ultraHex
Smart Robot Servo
servo



While programming, we can adjust this by adding a negative symbol from the Math menu.
It will snap between setting the motor power and the joystick calls:
Save your OpMode and test it out!
When you are ready, add similar controls for the HD Hex Motor on the RightStickY.
Because our servos are moving between positions rather than setting a power, they must be bond to a Boolean button on the gamepad, such as the D-Pad, bumpers, or symbol buttons.
What happens if we try to connect one of these gamepad buttons direction to where we set the servo position?
Blocks will not allow this connection since it would not be functional. We need to instead use a Logic block to say "If the gamepad button is pressed, do ________"
If/Else statements are one of the most common and fundamental logic statements in programming. As the name suggestion, this allows us to program a check for the robot to see if something is happening then react based on the options available.
In this instance, let's set our If/Else to be if the Triangle button on the gamepad is pressed move the servo to Position 1.
Save your OpMode and give it a test!
If If/Else block is editable to add additional checks all together! To do so click the gear to open the block's menu.
Adding additional "else ifs" extends the blue block:
Give this a try to set a variety of servo positions based on which button is pressed!
Let's take a look an example of how an If/Else Statement reads in a human friendly way.
The above can be read "If the Y button is pressed then move the servo to position 0, else if the A button is pressed move the servo to position 1."
Each pair contains the check or "if" and what should happen, the "do". Since there are multiple checks, after the first is reported as false the robot moves on to the next one, "else if".


This page pairs with Lesson 2 of the , which provides a more in depth explanation for the different mechanical parts.
The EDU Kit V2 contains over 180 parts! This page is intended to be a brief overview for some of the major part categories to reference while first exploring.
Metal extrusion makes up the core of the structural system for the EDU Kit V2. It is available in different lengths that can be cut to size.
There are many different brackets available designed to fulfill different roles in providing connections between items or extra support. Within the EDU Kit V2 there are structural, motion, and actuator brackets.
Omni Wheels have rollers mounted around the outside that passively rotate at 90 degrees to the powered direction of the wheel. This can aid with the robot turning as the rollers allow the wheel to more easily glide at an angle.
The Traction Wheels in the EDU Kit V2 are standard 90mm wheels with a thread around the outside made of TPU rubber.
Gears are a rotating mechanical part used to transmit motion using the “teeth” around the outer edge to engage with other gears or parts. All the gears in the EDU Kit V2 are spur gears with various numbers of teeth and sizes available.
Pillow Blocks are a form of bracket designed to support a bearing or hex shaft. Hex Pillow Blocks have the same shape opening as the shaft to prevent movement. Bearing Pillow Blocks allow rotation while using a bearing.
Bearings reduce friction to help an axle better rotate within a bracket or other support. A short and long length of the through bore bearing is available in the EDU Kit V2.
5mm Hex Shaft is used with wheels, gears, motors, and servos to create an axle for motion.
The term hardware is commonly used to describe the small parts used to fasten, connect, and secure structural elements together.
The difference in T-Slot Screws and Hex Cap Screws is the shape of their “head” and how they are added to extrusion. Hex Cap screws must slide in from the end of the extrusion while T-Slot screws are able to be added to areas without easy access points.
Nyloc nuts, a type of locknut, are used to secure screws and their attached components with the help of a nylon collar inside the nut.
Shaft Collars use a small set screw to slip onto an axle or shaft and, once tightened, lock into place to prevent sliding.
Before we can begin any programming we need to help our Control Hub know what is connected to it and where. Through the configuration process we can tell the Control Hub which port sensors, motors, servos, and any other connected devices can be found.
This is one of the most important steps to always complete BEFORE you can start programming!
When programming in Blocks, some blocks may be hidden UNTIL the configuration process is completed and activated on the Driver Hub.
Let's look first where the configuration menu is found on the Driver Hub. Start by selecting the 3 dots menu in the top right corner of the Driver Station App. Then select Configure Robot.
If any configurations have been created, they will be listed here. For a new configuration, select New.
In the USB Devices in configuration page select the Control Hub Portal.
USB Devices, such as cameras, may be added to the Control Hub, but are not used within the Intro to Robotics curriculum.
Within the Hub Portal select the device you want to configure. In this use case, select the Control Hub.
This will open a list of various device types that can be configured depending on the application! Within each type, there is a list of available ports, except for I2C sensors which are listed as busses in the main menu instead.
Let's configure a Core Hex Motor, a servo, and a touch sensor for this demonstration.
For this example, the devices do not need to be connected to the Control Hub to complete the configuration process.
First, select Motors.
The Motor page will allow you to configure all four motor ports on the Hub. On Port 0 open the dropdown menu and select REV Robotics Core Hex Motor.
With the motor type selected, we can now give it a name. Device names should be easily recognizable! For example, a name like leftMotor is easier to identify in code than motor1.
For now, we'll name the motor coreHex.
Note: Names are case sensitive!
Select Done to return to the device menu.
Configuring servos is similar to a motor. Give it a try before continuing with the directions below!
The touch sensor is a digital sensor. When looking at the Control Hub, you can see the digital sensor ports are labeled as a pair of numbers: 0-1, 2-3, 4-5, 6-7. Different sensors require being configured different ways based on their electronics.
For the REV Touch Sensor found in EDU Kit V2 it must always be configured to an odd number port.
First, select Digital Devices from the menu list.
The Digital Devices page will allow you to configure all eight digital ports on the Hub. On Port 1 open the dropdown menu and select REV Touch Sensor.
For this example, name the sensor touchSensor then confirm. Tap Done to return to the main device menu.
From the main device menu, select done twice. You'll return first to the Control Hub Portal then the USB menu.
From here select Save
Select a name for the configuration file. Similar to device names, this should be easily recognizable. For this example, we'll name it demoConfig. Select Ok after creating the name.
Press back to activate the saved configuration. The Control Hub will restart once you activate a new configuration.
Your first configuration is done! The currently activated configuration will appear on the home screen of the Driver Station Application.
This section pairs with Unit 1, Lesson 6 from the Intro to Robotics V2 curriculum.
Blocks is a visual programming language designed to be new programmer friendly by helping to streamline parts of the process and cut down the risk of common syntax errors. While it appears similar to other visual languages, such as Scratch or Blockly, it is designed specifically for use with the DUO Control System.
While connected to a powered Control Hub via USB, open the REV Hardware Client. Select the Control Hub to be programmed then the Program and Manage menu.
The options for Blocks and OnBot Java should appear at the top alongside the manage option.
Select Blocks. Let's take a look at the landing page below:
Create a new OpMode
Upload an OpMode
Download all saved OpModes
All currently saved OpModes and information
Enable/Disable OpModes
While on the home screen, existing OpModes can be modified or downloaded. Downloading a copy of an important OpMode is recommended to help prevent a project being lost in the event of accidental deletion, change, or equipment failure. Blocks DOES NOT autosave.
Select the checkbox beside the OpMode you would like to modify first. Then you can select what you would like to do, such as download, delete, rename, or copy.
To create a brand new OpMode, select Create New OpMode.
This will open the menu to name the OpMode and select a sample program. For now the sample should remain BasicOpMode as this will give us an easy to work with foundation to get started.
The name of our OpMode should be easily recognizable and give some indication of what it's used for. When working with a class, it may be helpful to include student or group names in the OpMode to aid with grading later.
This first OpMode we will use for a couple activities in this training section so we can name it myFirstOpMode.
Once we click OK, Blocks will fully open.
Let's take a tour of the Blocks user interface.
Save OpMode - Click this button to save an OpMode to the robot. It is important to save the OpMode any time you stop working on a code, so that progress is not lost. Blocks does not have an autosave feature!
TeleOp/Autonomous - This section of blocks allows users to change between the two types of OpMode: teleop and autonomous.
Categorized Blocks - This section of the screen is where the programming blocks are categorized and accessible. For instance, clicking Logic will open access to programming blocks like if/else statements.
The OnBot Java editor will open as well on the righthand side. Click the checkbox to close this for extra space in the programming area.
In the next section, we'll take a closer look at the different categories of Blocks available. Remember if the correct configuration is not active, some Blocks may be hidden, such as those for motors and sensors.
The telemetry block from the last section can be removed from our OpMode.
Let's start by getting our Core Hex Motor spinning on the testbed. Under the Actuators menu look for DcMotor:
When looking at the options, the names of the motors will typically appear in alphabetical order. In the pictures used for this guide coreHex shows as the default option. If you named your motors differently, there will be variation.
First, we'll add a power block to our loop:
With that we can save our program and run it to see what happens!
The max power for spinning forward is 1. The max power for spinning in reverse is -1. Going above these values will not make the motor spin any faster. However, it also will not damage the motor so students can be encouraged to explore what happens!
Take a moment to try adjusting the power of the Core Hex motor then add the HD Hex Motor to spin in a similar fashion.
The HD Hex Motor's name can be selected from the dropdown on the power block.
While in angular mode, servos are programmed a little different than motors. Rather than assigning a power, we'll be setting positions for them to move between.
Note: This menu will appear differently if there is a continuous servo listed in the current configuration file.
When looking at the options, the names of the servos will typically appear in alphabetical order. In the pictures used for this guide servo show as the default option. If you named your servos differently, there will be variation.
Let's start by adding a block to set our servo's position to 1.
With that we can save our program and run it to see what happens! After running the program once, stop and try to run it again.
If we want our servo to move each time our program runs, we need it to first reset to a different position. In this example, we can do this during initialization.
Add a position block for 0 under Put initialization blocks here.
Now save the OpMode and run the program again.
Take a moment to try different positions for your servo to move between.
In the next section we'll add a gamepad to control the movements of our actuators!
Go to
Click "Get Your Coupon Code" on the page
Fill out the Curriculum Response Form
The Engineering Design Process is one of the most fundamental concepts taught within Technology Education or Robotics classes.
While there are many versions that exist, most follow similar steps and flow with the goal of helping students think through solving a large process.
Below is the REV's Engineering Design Process from the Intro to Robotics V2 curriculum:
Before looking at each steps, let's discuss why teaching the Engineering Design Process, in some form, matters.
Robotics often involves large, open-ended projects that can be hard to visualize with all the moving components (figuratively and physically). The goal of the Engineering Design Process is to create more digestible steps for going from concept to tested solution. It also reinforces the idea of having a plan before excitement taking hold becomes "winging it" and pure "trial and error" followed by frustration.
Displays which configuration file is currently active.
If this section says <no config file> you will need to activate or create a configuration file.
4
Network information
Displays Control Hub SSID Name, signal strength, and ping time.
5
Gamepad connections
Show currently connected gamepads
6
Autonomous dropdown menu
Dropdown menu that displays all autonomous programs saved on the Control Hub.
7
Teleop dropdown menu
Dropdown menu that displays all teleop programs saved on the Control Hub.
8
System power display
Displays the amount of battery voltage powering the robot, when connected to a Control Hub.
9
Settings dropdown menu
Access settings, configure the robot, restart the robot, check to see if your system meets competition inspection requirements and more.
10
Practice Timer
A built in timer that can be used to to practice for different portions of a match.














Programming Space - This space is where blocks are added to build programs. Blocks not currently in the use may be dragged off to the side to be clicked back in later or deleted.
Greeting Message - This intro information message may appear when creating a new, empty OpMode. Clicking the ? icon will close this message.










Submit the completed form and the code will appear on the page! Note: You may need to scroll up to see it. The code will also be sent to the submitted email address.
Start at the Intro to Robotics V2 curriculum product page
Click to add the curriculum to your cart
If no other items will be added, proceed to check out.
Add the coupon code on the right hand side under summary.
After the coupon code is added and applied, you should see the discount applied making the curriculum free!
Proceed with checking out as normal. If the curriculum is the only item on this purchase, a payment method will not be required after applying the coupon
If adding the SCORM File for a LMS, be sure to click the add on before checking out!
After following the steps above, you will receive an email receipt that includes a link to go to the downloads page!
Download the curriculum by clicking the zip file. This may take several minutes to download due to the file size.
While signed in to your REV account, click account at the top of the page
This will show your order history. Locate the order containing the curriculum.
Click the download arrow to return to the downloads page
Download the curriculum files by clicking the zip file.
The curriculum can be downloaded multiple times and does not require a new purchase!
While in the downloads section, you will see several files available for download.
Editable Version
The zip file labeled as "Editable" contains standard documents and slideshows for the curriculum that can be used in programs such as Microsoft Office or Google Drive. This is the version most users will be familiar with.
The curriculum was originally created using Google Drive formatting, which may lead to slight variation in other office software.
SCORM Files
The individual unit files are SCORM files. These are intended to be uploaded to a compatible LMS, such as Moodle or Canvas (if enabled), as an all-in-one package of the unit.
SCORM files cannot be opened from the file explorer and are not able to be edited.
The SCORM files for each unit can be uploaded to a compatible LMS as an all-in-one option for accessing materials:
There are two pathways available within the files: Student Learning Path or Teacher Learning Path
On the teacher side, the Lesson Plan and slideshows are available to be viewed directly within the LMS while other documents, such as the full Teacher Guide, are available for download from within the LMS:
The teacher path also includes a resource list that includes the unit glossary and needed answer sheets:
On the student side, the slideshows will be available along with handouts for activities:
Both pathways include a Table of Contents with all the lessons in that unit:


It's recommended to before purchasing to ensure the files are repeatedly accessible and connected to the correct account. File access will be emailed as well after purchase.
Intro to Robotics V1 and Intro to Robotics V2 have different SKUs. As of March 2026, small updates to the Intro to Robotics V2 curriculum will become available automatically in the downloads area seen above.
Intro to Robotics V1 has been discontinued and will not receive additional updates.
Check your LMS's documentation for compatibility information and how-to for uploading SCORM files as activities.
In real life, engineers will follow a similar process as they communicate and plan across multiple steps and with various departments before reaching a final solution.
However it can be noted in reality, the process is going to look more like this:
And that's okay!
Click each step for information on what students will be doing during the step and tips to help them along.
The Engineering Design Process is introduced in Lesson 8 at the start of Unit 2 of the Intro to Robotics V2 curriculum.

Before going too far, students need to first consider what problem they are even trying to solve? This may be assigned to them or something they've chosen. Regardless, it should be defined in their own words as a problem statement. From there, they should think about their criteria and constraints.
Criteria is how students will measure that their solution was a success and that all goals were met. Part of this will typically be given to them in the form of a rubric.
Here all the big ideas are gathered and evaluated until a final plan is set to move forward. This is the step where goals should be set leading into initial sketches and models, as well as plans for needed materials, resources, components, etc.
Depending on the project, this is where things such as dimensions, features, and appearances may be set.
To help with collaboration, groups should also think about who's doing what. For example, who wants to build? Who wants to program? Who wants to try making sketches?
As the name suggests, this is the "building" phase of the project. This may include physically or digitally building, programming, designing, as well as making adjustments as parts of the plan may change.
It's not uncommon during this step for there to be need for some change to the initial plan. The important thing is reminding students to document those changes!
Before testing, students should check back over their requirements, whether it be with the rubric or reviewing their constraints. They should not assume all their criteria is met until after testing, even if they have completed testing of individual parts.
Success should be easily repeatable. As students evaluate their testing, encourage them to identify small things to improve on and to focus on one problem at a time.
A solution kept secret won't solve a problem. Encourage students to share with and learn from each other. This might include having students give brief presentations or watch each other complete a challenge.
Sharing during the earlier steps of the design process is equally important to allow for inspiration. However, if there is concern of students copying each other's work too closely here is a tip: Use a "patent" system.
As students have their designs signed off during the planning and creation steps their designs become "patented" by that group. What this means is other groups may take inspiration, but not one-to-one copy their ideas.
If a group is making something too similar, ask them questions on what makes it different and unique. This may range in materials used, to how its programmed, which actuators are used, etc. Encourage them to find their own twist on the idea.
UltraPlanetary Flat Mounting Bracket
15mm Plastic Motion Bracket
15mm Plastic 45 Degree Bracket
15mm Plastic 120 Degree Bracket
15mm Gearbox Motion Bracket
15mm Plastic Inside Corner Bracket
15mm Metal Bent Core Hex Motor Bracket V2
15mm Metal Bent Servo Bracket V2
UltraPlanetary Bent Mounting Bracket










































This section pairs with Unit 1, Lesson 6 from the Intro to Robotics V2 curriculum.
Let's take a look at the basic structure and key blocks of the OpMode. This what is provided when using the sample BasicOpMode:
This sample is recommended as it provides the needed basic structure for a program to run properly with the Driver Hub, but it can be modified to best fit the current needs of the project.
The marked comments also help give direction for where different blocks should be added depending on their purpose.
Put Initialization blocks here - shows us where we will be setting up some variables, resetting encoders, setting motor directions, and anything else that needs to happen when the code is first activated.
Put run blocks here - is where anything that will be used when hitting the play button on our Driver Hub should be added.
Put loop blocks here - is similar to our last comment, but is for anything that needs to be repeated the entire time our program is running and will be halted when pressing the stop button.
This contains the components of the program of the designated name. Anything sitting loose in the programming space, unless in a created function, will not be read when the program is run.
When the Robot Controller reaches the block it will stop and wait until it receives a Start command from the Driver Hub. Any code after this block will get executed only after the Start button has been pressed.
Whenever there is a call opModeIsActive, the Control Hub is checking that the OpMode is supposed to be running and has not been shut down by the Driver Hub. If something happens, for example the Driver Hub shuts off, this will change from true to false since it can no longer be checked, shutting down the current program.
In more complex programs, this call must be included in added loops alongside any other conditions, such as a count, sensor information, or time limit.
This sample Blocks program defaults to being in an iterative control structure, meaning it's intended to continue looping until Stop is pressed on the Driver Hub or a different condition is met.
Code that should continually run so long as the OpMode is active, will be placed in the loop. If a program starts and immediately stops, students may need to double check their code is set to loop.
Let's create our first OpMode to do something similar to how we get started in other programming languages. Let's have the robot read out "Hello World!" on the Driver Hub.
To do this we can make use of telemetry.
Telemetry is the process of collecting and transmitting data. In robotics, telemetry is used to output internal data, such as from the actuators and sensors, to the Driver Hub. It is a way for the robot to communicate back to the programmer what the robot thinks its doing or seeing.
From our Telemetry menu look for the call to add telemetry with a key and text.
The "key" is how we label the data being shown on the Driver Hub. In this case we'll set it to "Robot Says"
The "text" is then our output. This might be data from a sensor or just instructions serving as a reminder for running the code. We can manually enter "Hello World!" for this example.
Snap this block into the loop above the call to update the telemetry.
From here we will click Save OpMode and are ready to give it a try!
To run a program in the Driver Hub, first check it's connected to the intended Control Hub. The name will appear on the Driver Station App as seen here:
Then select the program from the dropdown menu. We will be sticking to TeleOp programs stored in the right menu.
Select the OpMode from the list.
Now we can click Initialize, which let the robot run any set up code we made.
And press Play when ready.
In this example, we can see the message on the right! Pressing Stop will halt the code at any time.
Let's briefly look at what happens if our telemetry block is not in the loop of our OpMode. Try dragging it to be below "Put initialization blocks here" and test it out after saving!
Now try moving the call to update telemetry with it in the initialization area.
In the next section, we'll get the actuators on the testbed spinning!






















Constraints are limitations that effect the solution. This might be things like dimensions, materials, or may also be assigned in part for the project (ex: only 2 motors allowed).






















Since the call to update telemetry is now before the call to waitForStart, our message will appear after initialize has been pressed, but will continue to be present after hitting play since no other command has been given.
When using telemetry, a call to update block is key to allow the information to be continually reported back, accurate, and available on the Driver Hub.

















