FPGA Tractor Simulator with Unity — John Deere
Overview
For the TE2002B Design of Systems-on-Chip course at Tecnológico de Monterrey, in collaboration with John Deere, I built a hardware–software tractor simulator connecting a Terasic DE10-Lite FPGA to a real-time Unity environment. The DE10-Lite acted as the physical control interface, while Unity provided the virtual environment and returned live simulation telemetry back to the board.
DE10-Lite Hardware & FPGA Control Logic
Switches and push buttons, later joined by the board’s onboard accelerometer, generated tractor-control command bytes in VHDL. The logic tracked both activation and deactivation of each input so Unity would know not just when a command started but when it ended, then sent the resulting byte over an FTDI serial link.
Unity Tractor Control & Simulation Logic
On the Unity side, C# code parsed incoming command bytes and mapped them to Rigidbody/WheelCollider-based tractor motion. The tractor moved through a three-level agricultural simulation — collecting corn while avoiding rocks, with progression thresholds at 50, 100, and 150 objects, a 60-second time limit, and a three-life damage system — coordinated by an eight-state finite-state machine (Menu, Level 1–3, Pause, Victory, Defeat, Rock).
Bidirectional Telemetry
Communication ran both ways: Unity tracked the corn count, converted it to a byte, and sent it back over serial; the FPGA decoded the value into hundreds/tens/units and displayed it live across three seven-segment displays — a real-time physical readout of the simulation’s state.
Accelerometer & Processor Integration
The final version added accelerometer-based steering and processor-level Assembly routines that evaluated physical and accelerometer inputs through custom ports and address-selection logic to generate control commands, extending the design from pure VHDL control into processor/FPGA co-design.
Result
The completed prototype closed the loop between programmable hardware and simulation: physical switches, buttons, and accelerometer input controlled the virtual tractor in real time, and Unity’s simulation state returned to the FPGA for live physical display on the seven-segment counters.
Technologies
Terasic DE10-Lite (Intel/Altera MAX 10), VHDL, RTL design, Assembly, Quartus Prime Lite, FTDI serial communication, C#, Unity, Rigidbody/WheelCollider physics.