← Back to Home

FPGA Tractor Simulator with Unity — John Deere

FPGAVHDLAssemblyUnityC#Serial CommunicationRTLAccelerometer

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.