Welcome, TechnoBlades 🛠️
Preparing for the FIRST Tech Challenge
This page is TechnoBlades' hub while we design, code, and build our robot. Chat with the team on Discord, keep the engineering notebook, CAD files, and team folders in Drive, and jump straight to the official FTC programming docs when you're stuck.
Jump into Team Chat
Ask questions, plan meetings, celebrate wins — on Discord.
Open Team Shared Folders
Engineering notebook, CAD, strategy — all in Drive.
Meet the team
See who's on TechnoBlades this season.
Setup Your Code
Get Android Studio, Git, and GitHub ready on your laptop.
New to Java?
A quick crash course built for FTC — start here.
FTC programming help
Blocks, OnBot Java & Android Studio guides.
This Year's Challenge
🐝 BIOBUZZ in one minute
Robots play bees! Two alliances collect yellow POLLEN and their own-color NECTAR, LAUNCH them into their HIVE in the middle of the field until it tips over, then race in the final minute to fill the four FLOWERS on the walls. Every Hive tip scores 20 points, dumps its pieces back onto the field, and lets your Human Player add another Nectar.
Meet the game pieces
Pollen
Yellow ball, about 2.8 in. Either alliance can use it. 40 per match: 4 in each Flower, 4 in each Garden, and 4 pre-loaded on every robot.
Nectar
Bigger ball, about 3.6 in, in alliance colors. Only touch your own color (G408). Each alliance starts with 3 in its upward Cell and 5 with its Human Player.
Robot limits
Start inside an 18 in cube. After the start you may grow to 18 × 24 in and 29 in tall (R102, R105). Hold no more than 4 pieces at a time (G407).
Interactive field map
Tap the field
Select any part of the field to see what it does and how it scores: the Hive in the middle, a Flower on the walls, a Garden, a Loading Zone, or an Alliance Area.
Use Show starting setup to see where every Pollen, Nectar and robot begins a match.
Drawing based on the official field figures (Competition Manual, Sections 9 and 10.3), simplified and not to exact scale.
How the Hive tips (try it!)
- Upward Cell Audience side
- Pieces in upward Cell 3 / 7
- Hive tips 0
- Points from tips 0
- Nectar unlocked for Human Player 0 / 5
- POLLINATOR 1 RP (4 tips) —
- POLLINATOR 2 RP (7 tips) —
Demo only: here the Hive tips once its upward Cell holds 7 pieces (the 3 starting Nectar + 4 launches). On the real field the tipping point depends on weight — measure it on a practice field. Notice the target switches sides after every tip, and the full Cell dumps its pieces onto the field. Don't catch them as they fall (G409)!
How a match flows
Scoring
| Achievement | AUTO | TELEOP |
|---|---|---|
| LEAVE — robot no longer touching the wall | 3 | – |
| PARK — robot at least partly in your Loading Zone | 5 | 5 |
| HIVE TIP | 20 | 20 |
| Pollen / Nectar left in your upward Cell at the end | – | 2 each |
| Bottom Nectar Bonus — your Nectar is the lowest in a Flower | – | 5 |
| Pollen / Nectar in a Flower you own (your Nectar is on top) | – | 2 each |
| Pollen / Nectar in your Garden | – | 1 each |
| Ranking Points (RP) | RP |
|---|---|
| WIN the match · TIE | 3 · 1 |
| SWARM — LEAVE + PARK points reach 16 | 1 |
| POLLINATOR 1 — 4 or more Hive tips | 1 |
| POLLINATOR 2 — 7 or more Hive tips | 1 |
| Penalties: Minor Foul gives the opponent 5 points, Major Foul gives them 20 | – |
RP thresholds shown are for regular events. Regional Championship and World Championship thresholds will be announced in Team Updates.
Score calculator
AUTO (first 30 seconds)
TELEOP (driver control)
Winning the match adds 3 RP (a tie adds 1). Most SWARM points possible: 2 robots × (3 + 5 + 5) = 26.
Robot design ideas
Flywheel Launcher
A front roller pulls pieces in, a short ramp holds up to 4, and a spinning flywheel with a curved hood launches them up into your Cell (the Hive pivot is about 44 in high).
- Fast, repeatable tips from a practiced spot
- A proven style from past launching games
- Must launch both 2.8 in Pollen and 3.6 in Nectar
- The target switches sides after every tip
Turret Launcher
The same launcher idea on a rotating turret. A camera reads the AprilTags under the Cells, so the turret can aim while the robot drives. A color sensor helps reject the other alliance's Nectar.
- Aiming without lining up the whole robot
- Re-aiming quickly when the Hive tips and the target moves
- More parts, more code, more to break
- Wires must pass through the turret without snagging
Flower Finisher
A two-stage lift raises a gripper above a Flower's 21.5 in top to drop Nectar in. A low intake can pull Pollen out of a Flower's bottom opening — handy in AUTO.
- Winning Flower ownership and the bottom-Nectar bonus
- Pairing with a launcher partner
- Must stay inside 18 × 24 in and 29 in tall when extended
- Nectar only goes in Flowers in the last 60 seconds
Before you build: checklist from the rules
- Starts inside an 18 × 18 × 18 in cube (pre-loaded Pollen may stick out) — R102.
- Never grows beyond 18 × 24 in and 29 in tall, and the limit must be mechanical, not software — R105.
- Can't hold more than 4 pieces — add guards so a 5th can't get stuck on top — G407.
- Handles both 2.8 in Pollen and 3.6 in Nectar, which aren't perfectly round.
- Has a guarded top so pieces falling out of a tipped Hive don't land on it — G409.
- Rejects the other alliance's Nectar — G408.
These sketches are ideas to start your brainstorm, not official designs. For real, buildable robots with photos and CAD, see the official StarterBots below.
Drivetrain and intake starter design with build instructions.
Starter drivetrain and intake built from goBILDA parts.
Starter drivetrain and intake built from REV parts.
Starter drivetrain and intake built from Studica parts.
Tips and tricks to win
Reliability beats fancy
- A robot that works every match beats a flashy one that breaks. It's the lesson teams repeat every season.
- Get a simple robot driving early, then improve one mechanism at a time.
- Threadlocker on screws, zip-tied and strain-relieved wires, and a pre-match checklist.
- Bring spare parts and at least 3 charged batteries.
AUTO is free points
- LEAVE (3) + PARK in your Loading Zone (5) = 8 points per robot with very simple code. Do this first.
- One Hive tip in AUTO is worth 20. Your 4 pre-loaded Pollen are your first launch.
- Write 2–3 AUTO versions for different starting spots so you can fit any partner.
- Aim with the AprilTags under each Cell (IDs 30–45). A camera tilted up can see them.
Drive practice wins matches
- The best teams in past seasons put in many hours of driving practice before events.
- Practice full matches with a real 2:30 timer, including the 1:00 Flower unlock and the 0:20 park.
- Split the jobs: one driver drives, the other runs the intake and launcher.
- Time your cycles (pick up, launch, return) and keep making them faster.
Launcher lessons from past games
- ULTIMATE GOAL (2020–21) and DECODE (2025–26) were launching games too. Teams that scored most had consistent launchers, not just fast ones.
- Control flywheel speed with encoders (velocity control) instead of raw power, so shots stay the same as the battery drains.
- Launch from the same practiced spots every time.
- Test with both ball sizes and with the target on both sides.
Play the BIOBUZZ math
- Tips are king: 20 points each, plus Ranking Points at 4 and 7 tips.
- One Major Foul hands the other alliance 20 points: a whole tip. Play clean.
- At 1:00 left, drop a Nectar in a Flower early for the +5 bottom bonus, and save one to cap a Flower in the final seconds.
- Pieces in a Flower you own count for you, even ones the opponent put there.
- Park both robots: 10 points and progress toward the SWARM RP.
Train your Human Player
- Enter 1 Nectar per Hive tip, then all remaining Nectar at 1:00 left. Never early (Minor Foul).
- Nectar must touch the floor inside your Loading Zone first. By hand, no tools.
- Watch the field timer, not the sound effects. The timer is the official cue.
- Keep unused Nectar where referees can see it.
Alliance and scouting
- Talk with your partner before every match: who tips, who takes Flowers, where each AUTO drives.
- Scout other teams (tips per match, AUTO, reliability). Good scouting wins alliance selection.
- Be the partner everyone wants: reliable, clear, and full of Gracious Professionalism.
Awards count too
- Teams also advance through judged awards like the Inspire Award, not only by winning matches.
- Keep an engineering portfolio: sketches, CAD, test results, what you changed and why.
- Practice the judging interview so every member can explain the robot.
Know the rules best
- Max 4 pieces at once (G407). Never control the opponent's Nectar (G408).
- Don't catch pieces falling from a tipped Hive (G409).
- No Nectar in Flowers before 1:00 left (G410, Major Foul per Nectar). Never push or ram the Hive (G417).
- Read every Team Update. Rules can change during the season.
Team Chat
TechnoBlades on Discord
Discord is free, works on any device, and everyone can just click the invite link — no forms, no sign-ups tied to this page.
Open Discord server →Who's Online
Shows who's online and lets anyone join a voice channel straight from here — for actual text chat, use the button above.
Need a video call?
Start an instant Google Meet — no meeting to schedule ahead of time. Click the button, sign in with any Google account if asked, and a fresh meeting link appears right away. Drop that link in Discord so the team can join.
Start a Google Meet →Coach / mentor setup — done ✓
- Server created, invite link wired up, and the official Discord widget enabled — all set.
- If the widget above ever stops showing activity, check Server Settings → Widget is still toggled on.
Team Shared Folders
Common Folder
Shared Folder
TB-Coding
OnBot Java / Blocks exports, autonomous routines, and code notes.
Open folder →TB-Design
CAD files, robot design sketches, and mechanism concepts.
Open folder →TB-Hardware and Build
Build notes, parts lists, and physical robot documentation.
Open folder →TB-Logo and Merchandise
Team logo files, branding assets, and merch designs.
Open folder →TB-Marketing
Outreach materials, sponsor decks, and community content.
Open folder →File counts — one-time setup
- In Google Cloud Console, enable the Google Drive API for a project, then create an API key under Credentials.
- Restrict the key to the Drive API, and (optionally) restrict it to your site's domain under "Website restrictions" so it can't be used elsewhere.
- Make sure each folder above is shared as Anyone with the link → Viewer (they already are, based on the links given).
- Send me the API key and I'll wire it in — counts will then update automatically. (This only works on the live Netlify site, not inside the Claude preview link.)
Team Members
Keeping this up to date
- This list is linked to the "TB Team Members" Google Sheet — add a row with a name (and role, optional) and it shows up here automatically.
- On the version hosted on your own site (Netlify), this updates live, no republishing needed.
- On the Claude-hosted link, outside network calls are blocked for security, so it shows the last saved snapshot instead — ask for a refresh any time you want that snapshot updated.
Quick Java for FTC
Why Java?
Every FTC robot runs its code on an Android-based Robot Controller, and the FTC SDK is written in Java. If your team codes in OnBot Java or Android Studio, you're writing real Java. Blocks (the drag-and-drop option) uses the exact same ideas, just as puzzle pieces instead of typed text — so everything below applies either way.
This page covers the handful of Java concepts that show up in almost every FTC program, then walks through a real, complete example. For a fuller Java course, see Learn Java Basics in the menu.
Variables — boxes that hold values
A variable has a type (what kind of value it holds) and a name you choose. FTC code uses these four constantly:
A decimal number. Motor and servo power always uses double, from -1.0 to 1.0.
A whole number, no decimal point. Good for counting things like loop passes.
Only ever true or false. Perfect for "is this button pressed right now?"
Text, always in double quotes. Used for hardware config names and telemetry labels.
Making decisions and repeating
if / else runs code only when something is true — like keeping motor power from ever going over 1.0:
if (power > 1.0) {
power = 1.0;
} else if (power < -1.0) {
power = -1.0;
}while repeats code as long as something stays true — this is how a whole OpMode keeps running:
while (opModeIsActive()) {
// this code repeats, over and over, until the match ends
}Methods — mini programs inside your program
A method is a named block of code you can run whenever you need it. FTC code calls methods constantly — setPower(0.5) and waitForStart() are both methods someone else wrote for you. You can write your own too:
void stopAllMotors() {
leftDrive.setPower(0);
rightDrive.setPower(0);
}Call it later just by writing stopAllMotors(); — no need to retype those two lines every time.
Anatomy of an FTC OpMode
An OpMode is one robot program — a driving mode, an autonomous routine, a test. Almost every one you'll write follows this same shape:
Tags right above the class that make it show up on the Driver Station's program list.
Says "this class is a robot program" and gives you all its built-in tools.
Connects a variable in your code to a motor/servo named on the Driver Hub's config.
Pauses your code until the "Play" button is pressed on the Driver Station.
true while the match is running — the loop condition for the whole program.
Sends live text/numbers to the Driver Station screen — your best debugging tool.
Put it together: a simple driving program
This is a complete, working TeleOp — it reads the gamepad and drives two motors. Every FTC program you write will look a lot like this one.
Important: the names in quotes below ("left_motor", "right_motor") must exactly match the hardware configuration on the Driver Hub — rename them in your code (or rename the config) so the two agree.
package org.firstinspires.ftc.teamcode;
import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode;
import com.qualcomm.robotcore.eventloop.opmode.TeleOp;
import com.qualcomm.robotcore.hardware.DcMotor;
@TeleOp(name = "TechnoBlades: Basic Drive")
public class BasicDrive extends LinearOpMode {
private DcMotor leftDrive;
private DcMotor rightDrive;
@Override
public void runOpMode() {
// These names must match the active hardware configuration exactly
leftDrive = hardwareMap.get(DcMotor.class, "left_motor");
rightDrive = hardwareMap.get(DcMotor.class, "right_motor");
// One side of the robot is mounted backwards, so reverse it
rightDrive.setDirection(DcMotor.Direction.REVERSE);
telemetry.addData("Status", "Initialized");
telemetry.update();
waitForStart(); // wait for the "Play" button
while (opModeIsActive()) {
double drive = -gamepad1.left_stick_y; // forward / back
double turn = gamepad1.right_stick_x; // left / right
leftDrive.setPower(drive + turn);
rightDrive.setPower(drive - turn);
telemetry.addData("Left Power", leftDrive.getPower());
telemetry.addData("Right Power", rightDrive.getPower());
telemetry.update();
}
}
}Try changing left_stick_y to right_stick_y, or swapping drive + turn for drive - turn, and see what changes on the robot. Breaking things on purpose is one of the fastest ways to learn.
Glossary
One robot program — a mode the driver can select and run.
The most common OpMode style: code runs top to bottom, in order you write it.
The link between your code and the physical parts wired to the robot.
Java classes representing a drive motor and a servo (a motor that holds a position).
The two driver controllers — read stick positions and button presses from these.
Text and numbers your code sends live to the Driver Station screen.
Marks a class as driver-controlled or a self-running routine.
Tells a motor how hard to spin, from -1.0 (full reverse) to 1.0 (full forward).
Go deeper
- Want general Java practice (outside of robots)? Try Learn Java Basics in the menu.
- Ready to write real code for your robot? See the Blocks, OnBot Java, and Android Studio tutorials under FTC Resources.
- Stuck on an error message? Paste it into Team Chat — someone on the team (or a mentor) has probably seen it before.
Setup Your Code
Team Robot Code Repo
Everyone on TechnoBlades writes code against the same GitHub repository, so the whole team can share work instead of overwriting each other. Clone it (don't download a zip) — cloning is what lets you pull updates and push your own changes.
Open the team repo on GitHub →1. Install Android Studio
- Download Android Studio for Windows or Mac — it's free.
- Run the installer and accept the defaults. On first launch it downloads Android SDK components it needs — let it finish, this can take 10-15 minutes and needs a good internet connection.
- You don't need an Android phone or emulator for FTC — the Driver Hub takes that role on the real robot instead.
2. Install Git
- Download Git and install it with the default options.
- Open a terminal (Windows: "Git Bash", from the Start menu) and check it worked: git --version
- Tell Git who you are — this is what stamps your name on every commit you make, so teammates can see whose change is whose:
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
3. Create a GitHub account
- Go to github.com/join and sign up. If you're under 13, do this together with a parent or mentor — GitHub requires it.
- Turn on two-factor authentication under Settings → Password and authentication — it protects your account and GitHub requires it for some actions.
- Ask a mentor to add your GitHub username as a collaborator on the team repo, so you're allowed to push code.
4. Clone the team repo into Android Studio
- Open Android Studio → on the Welcome screen click Get from VCS (or File → New → Project from Version Control if a project is already open).
- Set Version control to Git and paste: https://github.com/rajeshnit2k2/FtcRobotController.git
- Choose a folder on your computer and click Clone. Sign in with your GitHub account if it asks.
- Wait for Gradle to sync (watch the progress bar at the bottom) — the first sync needs internet and can take several minutes. Don't close Android Studio while it's syncing.
- Your OpModes live under TeamCode → java → org.firstinspires.ftc.teamcode — that's the only folder you should normally need to edit.
5. Every time you sit down to code: pull first
- Before writing anything, click Git → Update Project in Android Studio (Ctrl+T on Windows, Cmd+T on Mac) to pull the latest code.
- Do this every single time, even if you were the last person to push — a teammate may have pushed since then.
- If it warns about a merge conflict, stop and get a mentor — conflicts are easy to resolve wrong if you guess.
6. Committing and sharing your changes
- Make your changes, then run Build → Make Project to check everything still compiles before committing.
- Click Git → Commit (Ctrl+K), select the files you changed, and write a short message describing what you did — e.g. "Add autonomous parking OpMode", not "update" or "asdf".
- Click Commit and Push (or Commit, then Git → Push / Ctrl+Shift+K) to send it to GitHub so the rest of the team can pull it.
- Push often, in small working chunks — one finished feature at a time is far easier for teammates (and mentors) to follow than one giant change at the end of the day.
Tips that save teams a lot of headaches
- Pull → code → commit → push, in that order, every session. Skipping the first pull is the #1 cause of conflicts.
- Only edit files inside TeamCode. Other modules are shared library code — changing them can break the build for the whole team.
- Planning something big or experimental? Ask a mentor about working in a separate branch so the code everyone else relies on keeps working.
- Check the team chat before editing a file someone else is already working on — two people editing the same OpMode at once is how conflicts happen.
- Commit and push before you pack up, even if a feature isn't finished — a small work-in-progress commit beats losing a laptop's worth of work.
- Never force-add files Android Studio generates automatically (build/, .gradle/, .idea/) — the repo's .gitignore already keeps these out of commits; if Git is trying to add them anyway, ask a mentor.
- Read the actual error message before asking for help — "it doesn't work" is much harder to debug than the red text Android Studio already gave you.
- Stuck on the same error for more than ~15 minutes? Ask for help. That's exactly what mentors and teammates are there for.
- Keep your laptop charged and bring your charger to every build session — nothing kills momentum like a dead battery mid-commit.
FTC Resources
Getting Started
Choosing How to Program
Compares Blocks, OnBot Java, and Android Studio.
Drag-and-drop visual programming — great for a first robot season.
Write real Java in your browser, no install required.
Full Java IDE for teams ready for more control.
Variables, loops, and methods — good practice before OnBot Java or Android Studio.
Game & Competition
About Us
Hi, we're TechnoBlades! 👋
We're a brand-new team of 6th, 7th and 8th graders from Discovery Middle School and Liberty Middle School in Canton, Michigan. This season is our very first time competing in any robotics competition, and we're designing, building and coding our robot from scratch.
What is FIRST Tech Challenge?
FIRST Tech Challenge (FTC) is a robotics competition where student teams design, build and program a robot to play a brand-new game each season. At events, teams play in alliances with other teams, and they're also judged on teamwork, outreach and their engineering process, not just their robot.
This season's game is BIOBUZZ, where robots launch Pollen and Nectar into a tipping Hive and race to fill Flowers.
How our team works
Coding
Writes the robot's Java code in Android Studio: autonomous routines, driver controls and sensors.
Design
Brainstorms ideas, sketches mechanisms and turns them into CAD models.
Building
Builds and wires the robot, then tests, fixes and improves it.
Marketing
Shares our story, designs our look and logo, and connects with sponsors and the community.
Meet the team
Our goals for our rookie season
- Learn the engineering design process: brainstorm, prototype, test and improve.
- Build a robot that works reliably in every match.
- Write our own autonomous code in Java.
- Keep an engineering portfolio of everything we try and learn.
- Compete at our first qualifying event and have fun doing it.
- Practice Gracious Professionalism: compete hard, help other teams, and treat everyone with respect.
Want to support our team? We'd love to hear from mentors, sponsors, families and other teams.
Contact Us
📬 How it works
- Your message is emailed directly to the TechnoBlades team.
- We'll reply to the email address you enter.
- Students: please ask a parent or guardian before sharing contact details online.
📍 Where we're from
Discovery Middle School & Liberty Middle School
Canton, Michigan