Supersmart Autonomous Car (nxp Cup 2020)

About the project

Badass robot car developed by reasonably advanced monkeys

Project info

Difficulty: Difficult

Platforms: NXP

Estimated time: 7 months+

License: GNU General Public License, version 3 or later (GPL3+)

Items used in this project

Hardware components

FRDM-KL25Z FRDM-KL25Z DEV Board handling steering, RPM-Sensing, vehicle speed, ESC x 1
FRDM-K66F FRDM-K66F DEV Board handling line recognition, trajectory planning, IO, different driving modes x 1
DFRobot ROB0165 DFRobot ROB0165 Brushless Car Kit x 1
Alamak Car Kit Alamak Car Kit Parts of last years kit were reused x 1
Custom PCB Custom PCB Custom PCB connecting the board together, LEDs for debugging and state, connectors for sensors etc. x 1
Ultrasonic Sensor HC-SR04 Ultrasonic Sensor HC-SR04 Ultrasonic Sensors for Obstacle Avoidance and Emergency Braking x 3
Rotary Encoder KY-040 Rotary Encoder KY-040 for selecting driving modes and making adjustments while running x 1
Bush Button Bush Button Selecting Modes/Start x 1
Monochrome 0.96" OLED Graphic Display Monochrome 0.96" OLED Graphic Display Display for Mode-Selection and Telemetry x 1
Rotary Potentiometer Module Rotary Potentiometer Module Adjust the maximum Vehicle Speed x 1
On-Off Power Button / Pushbutton Toggle Switch On-Off Power Button / Pushbutton Toggle Switch Main Power Switch (big), turn on/off Motors (small) x 2
2835 SMD LED Strip 2835 SMD LED Strip With 3D-Printed Bracket for Track Illumination x 1
4-Channel IR Sensor Module 4-Channel IR Sensor Module Groundeffect Sensors for detecting Finish-Line and if Vehicle has left the Track x 1
RC BEC RC BEC Convert battery voltage to 5V for supply, sensors and servo x 2
MT3608 DC-DC Boost Converter MT3608 DC-DC Boost Converter Convert 7V Battery Power to 9V Power for LEDs x 1
CCD Line scan Camera CCD Line scan Camera for primary navigation x 1
Brush-less RPM Sensor Brush-less RPM Sensor For precisely measuring Motor-RPM x 2
RC Servo RC Servo For steering x 1
Connectors / Cables Connectors / Cables In all possible colors and variations x 1
2-Cell LiPo Battery 2-Cell LiPo Battery For Power x 1

View all

Software apps and online services

MBED-Studio MBED-Studio For Programming
Processing Processing Camera View / Debug

Hand tools and fabrication machines

3D-Printer 3D-Printer x 1
Drill Drill x 1
Soldering Station Soldering Station x 1


Scope of the project

Building an Autonomous Vehicle in order to participate in the 2020 NXP Cup.

The Challenge

During the Cup the Car has to complete several challenges including "Figure 8" - a test of precision and reliability, "Speed Limit" - recognizing zones and adjusting its velocity accordingly, "Obstacle Avoidance", "Emergency Brake" and the Timed Race in which the Car has to, by itself, navigate through an unknown course. In order to accomplish all these tasks the car is equipped with a variety of sensors which are being monitored and processed by two NXP development boards. 

Team "RASCar"

We are two students from the University of Lübeck currently enrolled in the third semester of our bachelors program in Robotics and Autonomous Systems (RAS).

Development Process

As we have participated in last years NXP Cup, we already had a reasonably solid Codebase for the project. Due to the more relaxed rules this year and experiences from last year there is still the potential for a number of improvements to be made however.

1. Hardware/Software Architecture


The Hard- and Software are decoupled into Sensor/IO-Layer (K66F) and Driving/ESC-Layer (KL25Z). This allows for faster processing of real time data and better separation between functionality.

This means that the K66F MCU gathers and processes the Sensor and Input Data according to the user selected mode, reports telemetry regarding the vehicles surroundings back to the user and sends only the necessary information  to the KL25Z board. The KL25Z is therefore free to constantly update and adjust motor RPM and set the Servo position according to the data provided by the K66F board while also monitoring slip, oversteer, understeer and other driving parameters based on measured RPM, the curvature of the road (servo angle) and the use of its gyroscope. It thus functions as the Electronic stability control (ESC) system of the vehicle.

2. Custom PCB

A custom PCB was designed to provide stable connections to all the Sensors, IO-Components and between the two board. It furthermore provides the voltage divider for the Ultrasonic Sensors and four RGB-LEDs of which the front most two can be controlled by the K66F board in order to indicate a left and right line and the ones in the back by the KL25Z board to indicate braking and loss of traction.

3. IO and Settings

The spoiler houses the IO which can be used to make on-the-fly adjustments to the vehicle mode (Race, Em. Brake, Obstacle, Speed Zone, Eight), the camera exposure and the max speed of the vehicle. The OLED screen furthermore displays relevant information dependent on the currently selected driving mode for debug purposes. 

4. 3D-Printed Parts

The Car was built using a number of custom designed 3D-printed parts including:

Ultrasonic Sensor Mount


Cable Crate




Battery Holders

The finished design

(LED Light-bar currently missing due to incident involving a chair)

But does it drive?


Photo of rascar2020


Hey, I'm Tim and I love robots :)


Leave your feedback...