Autonomous Vehicles
John Deere innovates on behalf of humanity.
It doesn’t matter if you’ve never driven a tractor, mowed a lawn, or operated a dozer. With our role in helping produce food, fiber, fuel, and infrastructure, we work for every single person on the planet.
"We don’t create tech for tech’s sake. There’s purpose behind everything we do, so that our customers have the tools they need to tackle some of the world’s greatest challenges."
John May
Chairman and CEO | John Deere
Along our journey of creating exceptional tools for our customers, we have become pioneers in the autonomous vehicle industry:
- 460 P-Tier Autonomous Articulated Dump Truck: John Deere's first autonomous piece of construction equipment
- Autonomous 8R Tractor: Designed to autonomously perform various agricultural tasks while maintaining precision and productivity
- StarFire™: Track your equipment's location down to the inch
- AutoTrac™: Achieve automated, hands-free guidance for your field operations, increasing efficiency and reducing operator fatigue
- See & Spray™ Ultimate: Detect weeds from plants in real time using computer vision-enabled sprayers
- John Deere Operations Center™: Setup, manager, and monitor critical jobs on your farm from anywhere in the world
- Machine Sync: Connected machines working simultaneously for maximum productivity in the field
Now, let's see what you can build.
Build your own autonomous vehicle
For your HackIllinois 2025 John Deere prompt, you are tasked with building your own autonomous vehicle, a vehicle that solves any problem that you define.
It is up to each team to determine what problem your vehicle solves. Does it drive down the road? Deliver food? Solve a maze? Plant a corn field? It could be something useful, something fun, or anything you can imagine. The only stipulation is that your vehicle:
- Solves the problem autonomously, that is, makes decisions on its own
- Completes the kit-specific requirements
Each team is supplied with a kit. Teams are welcome to add to the kit, remove from the kit, and rearrange the pieces of the kit as needed. Teams are not required to use all items in the kit. Certain kits require that specific sensors and mechanisms are utilized.
Like many problems at John Deere, this prompt requires more than just a software solution, it requires a solution at the intersection of mechanical systems, electrical systems, sensors, data, automation, programming, and of course, creativity.
Good luck!
To be considered for awards, do the following:
- Submit a Devpost writeup, containing the following:
- Problem description
- Solution explanation
- Link to Codebase
- Link to video of the vehicle working
- Give a 5-minute live demo to judges on Sunday, March 2nd
Submissions will be assessed by the following criteria:
- Problem Complexity: how complex is your problem?
- Solution Creativity: how creative is your solution?
- Functionality: how successfully does your vehicle solve your defined problem autonomously?
You are encouraged to use any open source and AI tools you wish. Be sure to give proper recognition where required.
We have parterned with the Jackson Innovation Studio on campus to give you access to any tools you might need. The studio provides access to 3D printers, multimeters, screwdrivers, tape, etc.
John Deere engineers who work on autonomous systems professionally will be present to mentor participating teams. The space will be available to participants at the following times:
- Friday, February 28: 9:30pm - midnight
- Saturday, March 1: 11:00am - 7:00pm
The Jackson Innovation Studio is located in the basement of the Sidney Lu Mechanical Engineering Building at 1206 W Green St, Urbana, IL 61801, Room 0100
- 1st Place
- Most Creative Solution
- Honorable Mention
- 1st Place: Additional Raspberry Pi 4B and vehicle kit for all team members
Click on the link for each kit (other git branches) to read more about it, the kit-specific prompt requirements, and setup instructions.
| Name | Assembled Kit | Solution Requirements | Kit Quantity |
|---|---|---|---|
| The Boombox | ![]() |
- camera, speaker | 10 |
| The Claw | ![]() |
- camera, the claw | 6 |
| The Rover | ![]() |
- camera, camera servos, ultrasonic, ultrasonic LEDs | 7 |
| The Scout | ![]() |
- camera, ultrasonic sensor, all servo motors | 1 |
| The Trike | ![]() |
- camera, all servo motors | 7 |
| Detail | The Boombox | The Claw | The Rover | The Scout | The Trike | Item Description |
|---|---|---|---|---|---|---|
| Motors (quantity) | 2 | 2 | 4 | 2 | 2 | Quantity of electric motors used to power the drivetrain |
| Drivetrain classification | front-steering | tank tracks | omnidirectional | tank tracks | front-steering | Type of drivetrain mechanism used |
| Camera | ||||||
| Servo Motors (quantity) | 3 | 2 | 2 | 3 | 3 | Control a gear's orientation with electrical signals |
| Ultrasonic Sensors (quantity) | 1 | 1 | *1 | Detect a object's distance with sonar | ||
| Audio | speaker / microphone | buzzer | buzzer | buzzer | Presence of audio components such as speakers, buzzers, or microphones | |
| Line Following Sensors (quantity) | 3 | 4 | 4 | Quantity of infrared line-following / cliff detection sensors | ||
| LEDs (quantity) | 4 | 2 | 4 | 1 | Quantity of controllable LEDs |
A tiny computer in the palm of your hand. raspberrypi.com
Follow along for the recommended setup instructions
- power on your raspberry pi
- connect raspberry pi to your computer via ethernet cable
- ssh into raspberry pi on your computer
- If you want graphical access (to see a screen) follow along below
- get raspberry pi onto the same internet network as your computer
- find IP address of raspberry pi
- establish a VNC connection to raspberry pi
- set up wireless access to your device
There are few ways to access your raspberry pi:
- Keyboard, Mouse, Monitor
- SSH (from another computer)
- VNC (from another computer)
You can use a raspberry pi like any other computer. Connect a keyboard and mouse via usb (or bluetooth) and connect a monitor to the Mini HDMI port.
SSH (Command Line Access)
You can establish an ssh connection for access to the raspberry pi terminal.
1a. With direct ethernet connection
ssh <username>@<hostname>.localssh pi@hackil25pi1.local
1b. While on same network
ssh <username>@<ip_address>ssh pi@10.0.0.35
2. Enter your password
You can establish a VNC connection for graphical access to the raspberry pi.
1. Download a VNC Viewer
Something like RealVNC Viewer
2. Connect to Network
Ensure your raspberry pi and computer are connected to the same internet network. See connecting to wifi below.
3. Establish Connection
Enter your raspberry pi's ip address and establish a connection
4. Enter your password
note: you may need to enable VNC access on your raspberry pi
5. Control the Raspberry Pi
Use the window on your computer to access your Raspberry Pi's OS.
Secure Copy, scp, allows you to transfer files between two locations, using the SSH protocol. Check out copy_repo_to_pi.sh for an example.
When on the same network as your Raspberry Pi, connect via the private IP address.
To find, run hostname -I.
When not on the same network as your Raspberry Pi, connect via the public IP address.
To find, run curl ifconfig.me
Python comes pre-installed with Raspberry Pi OS as the default system environment. The exact version (e.g., 3.11 or later) depends on your OS release and includes some commonly used libraries. However, you may want to create your own virtual environment using venv for more control over package versions and dependencies.
It is recommended to stay within the system Python environment if possible.
The pre-installed system Python environment can be extended with packages available in the Raspberry Pi OS package repositories. Use this command:
sudo apt-get install python3-{package}For example, sudo apt-get install python3-opencv installs the opencv library in the pre-installed system Python environment.
A virtual environment isolates your Python projects from the system Python, allowing independent package versions and avoiding conflicts. Here’s how to set one up:
- Create a virtual environment:
python -m venv {venv_name} - Activate it:
source {venv_name}/bin/activate - Install packages within the environment:
pip install {package} - Deactivate when done:
deactivate
For example, pip install opencv installs the opencv library only in the active virtual environment.
To connect your Raspberry Pi to a wireless network without an Ethernet cable, follow these steps to configure your Wi-Fi credentials.
Open the Wi-Fi configuration file with a text editor:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf2. Add your network
Add the following lines to the file, substituing your network's SSID and password
network={
ssid="your_SSID"
psk="your_password"
}
3. Restart the networking service
sudo systemctl restart wpa_supplicant1. Go to https://go.illinois.edu/illinoisnetguest and log in, click on "Register a New Device"
2. On your pi type in ifconfig and under wlan0 copy the number next to ether, that is the mac address for the device registration
3. On the raspberry pi type in sudo nmtui -> activate a new connection -> connect to IllinoisNet_Guest
Now the Pi is connected to the internet.
4. on the pi enter the command ifconfig again and under wlan0 find the number next to inet
5. ssh pi@<inet> from any device connected to IllinoisNet
Just like that you've done it. Multiple people can ssh in at once.
I hope you enjoy your HackIllinois experience! I really enjoyed designing this prompt for you all. Best of luck!
James Kabbes
Staff Software Engineer | Technical Coach - John Deere










