In this page, we will go through all the components of our final product.
Both hardware and software was used to build our EV. To build the base vehicle, we had to make design decisions for the chassis, steering mechanism, brakes, and motor / rear axle. The kill switch, gear changes, and reverse were handled electrically via a motor controller.
For our safety features, we have bumpers, a roll cage, and seat belt on the hardware side and crash detection using an accelerometer on the software side.
Our EV also has GPS functionality to help drivers travel from one place to another.
Hardware
Chassis
Initially, we planned to weld together steel to make a sturdy chassis. However, the weight of steel and the inaccessibility of welding led us to consider other options. Thus, we ended up deciding on 30×30 and 20×20 mm aluminum profile which is lightweight with the added bonus of being easily joined together with connectors and screws.
We used SOLIDWORKS to draw out prototypes of our chassis. We needed enough supports for the components while keeping it lightweight, and for the EV to be large enough to be comfortable for the driver. Planning our chassis digitally helped us make sure all our parts (seat, battery, etc.) could fit comfortably before marking out and cutting our aluminum profile pieces.
Steering Mechanism

We used a rack and pinion to control the steering of our EV. The rotating motion of the steering wheel connected to the pinion is converted into linear motion of the rack. When the rack moves left to right, the spindles and thus wheels rotate at an angle, allowing the vehicle to turn.

There are 3 different steering geometries — Ackerman, Parallel, and Reverse Ackerman (or Anti-Ackerman).
Parallel geometry may be used due to its ease of implementation, but it imposes significant drag on the tires and lacks precision when steering. This is because the front wheels are directing the car in different circular paths.
Ackerman steering is where the front wheels turn at different angles such that they rotate about the same turn center located on the line extended from the rear axle. As a result, the wheels will direct the car along the same path of motion, making it easier to control and reducing friction on the tires during turning. This geometry is best suited for low-speed travel, and has an added bonus of maintaining tire lifespan. However, this geometry is less safe when driving at high speeds as the wheels tend to slip more during turns. Ackerman steering geometry is mostly adopted by consumer automobiles.
Anti-Ackerman steering is where the outer tire steers at a greater angle than the inner tire. This gives the car much more stability when turning at higher speeds. The outer tire is able to provide a greater frictional force that opposes the slipping motion away from the center of the turning path. Since we are primarily focused on safety, we decided to go with Anti-Ackerman steering to prevent skidding. One downside to this geometry is that the tires may need to be changed more regularly.
For future developments, we can test the suitability of Ackerman geometry. We can achieve Ackerman steering by varying the wheelbase L (distance between front and back wheels) and the track width W (distance between front wheels) accordingly. To keep the front and back wheels equally spaced, we will keep the track width W fixed at 82 cm following the width between the front wheels of our prototype. According to calculations, the front and back wheels would have to be 139 cm apart. To try this geometry, we would also have to replace our 90° spindles with 120° spindles and optionally replace the rack and pinion with a pitman arm and tie rods.
Motor
With the battery and the driver, the load on the vehicle is approximately 100 kg (m=100). Accounting for both friction and air resistance, the motor must have a torque of minimally 6.75 Nm to accelerate the vehicle from rest.
From these calculations, we require a motor with torque more than 6.75 Nm and power more than 694 W.
So we decided to go with a 48V 2000W motor with a rated rpm of 4300 and a rated torque of 6.9 Nm.
Gear Ratio
The motor’s rotor is connected to the rear axle’s sprocket through a T8F chain. The motor’s rotation drives the chain, which causes the rear axle to rotate, driving the rear wheels to move the EV forward. The correct gear ratio of sprocket teeth to rotor teeth has to be calculated to ensure that our motor will be able to drive the vehicle to move at our target maximum speed of 30 km/h.
We know that our tires have a diameter of 11 inches, which helps us calculate that the rear wheels need to spin at 570 rpm for the EV to move at 30 km/h. (RPM = Speed / [π * Diameter] )
We also know that our motor is able to output 3000 rpm and its rotor has 12 teeth. We inputted different teeth numbers of sprockets available on the market into a speed calculator for go kart builders to determine the minimum number of teeth our sprocket needs to reach 30 km/h.
From this, we see that a 58T sprocket will be able to give our EV a top speed of 32 km/h (20.312 mph) which is perfect for our needs.

Brakes
Since electrical brakes via the motor controller simply cut power and do not aid in quick deceleration, a mechanical brake was still necessary for emergency stops. We installed a hydraulic caliper brake which decelerates the rear axle through friction. When the brake pedal is pressed, the foot of the brake mechanism is driven into the master cylinder. Pressure in the hydraulic tubing increases, which drives the calipers to clamp onto the brake plate. Since the brake plate is part of the rear axle, greater resistance on the brake plate’s rotation causes the rear axle and thus the car to slow down.
We used a rigid metal plate to act as a lever arm. A hole was drilled through a small piece of aluminum profile to act as a fixed pivot point for the brake lever arm.


Bumpers and Roll cage
To protect the car and its driver, we installed bumper frames to the front and back of the car. Bumpers protect the car (mainly wheels) from damage, and absorb some shock in the case of impact due to a crash. We attached the bumpers along the base of the chassis (away from the driver) so that in case they collapse or shift, there is no risk of it scratching or impaling the driver.
The roll cage is a rigid frame that encases the driver. This protects the driver in case of a rollover crash. For commercial cars, the roll cage would extend to the roof of the car to prevent it from collapsing inwards. However, since our car does not have an exterior, there is no risk of the roof collapsing inwards and thus less incentive to build a large roll cage considering the extra weight of aluminum it would require.
Added bonus of our bumpers & roll cage was the ability to attach nameplates and headlights!
Battery
We used a camping battery for our car to have a long run time. It has a capacity of 100 Ah which allows our car to run for several hours. Even after >3 hours of test driving indoors and outdoors, we did not have to charge the battery once.
It is important that the battery is rated 48V to meet the motor’s required voltage. When fully charged, our battery has a voltage of 52V.
The battery is a lithium iron phosphate battery, which is generally safer than other lithium batteries such as lithium ion due to the stable structure of lithium iron phosphate. However, precautions such as charging before it over-discharges and stopping charging before it exceeds 52V are necessary to prevent overheating and fires.
Software
Motor Controller
We are using a brushless DC (BLDC) motor. The direction of the current in the coils must be flipped at the correct times to keep the motor spinning in the correct direction without the use of brushes. The motor controller interface reads signals to control the direction and magnitude of current in the coils, therefore controlling the speed and direction of the motor.
Throttle: Connected to our accelerator pedal. When the pedal is pressed further down, the motor controller increases the current in the motor coils, making the motor spin faster.
Reverse: When the switch is closed, the motor controller tells the motor to invert the direction of current in the coils, making the motor spin the other way.
Hall sensor: Connected to the motor. This measures the position of the motor, so that the direction of current in the coils can be flipped at the correct timing to keep the motor spinning continuously.
3 speeds: Connected to the 3 speed switch. This changes the maximum amount of current that can be sent to the motor, acting as different ‘gear’ settings to vary maximum speed.
Low level brake: Connected to our emergency kill switch. When the switch is closed, all current to the motor is cut off even when the pedal is pressed.
Power lock: Connected to the ignition key switch. Key must be turned to ON to send power to motor.
Battery: The black and red wires of the controller are attached to the negative and positive terminals of our battery respectively.
Crash Detection
By measuring the acceleration of the vehicle, we can detect the occurrence of a crash to deploy airbags (simulated in our prototype as a buzzer warning).
Uses the MPU6050 accelerometer & gyroscope module and a Raspberry Pi. Acceleration above 2g (g=acceleration due to gravity) indicates a crash, while the gyroscope can detect whether the vehicle has flipped i.e. experienced a rollover crash.
Object Detection
The RADAR sensor can detect objects a certain distance away from the car. This can be used to signal audio or visual warnings to the driver that a crash is imminent and to be alert.
GPS
Uses the NEO 6M GPS Module, a Raspberry Pi, and Navit opensource navigation software. The GPS Module communicates with satellites to give the exact coordinates of the cars location. This information is used to display the current position/starting point in Navit. Users can also input any destination into the GPS interface to generate a very useful route!
Putting it Together
3D Printed Connectors
Some of our parts required unconventional connections. Luckily, these parts were not load-bearing and 3D prints could hold them in place safely. We 3D printed components to secure the rack and pinion to the chassis, as well as to secure the steering wheel while allowing free rotation.
The steering wheel support needed 3 iterations to get right. Initially, the angle was too low making the steering wheel uncomfortable to grasp. The second iteration was too thin at the top, resulting in cracking.
Dashboard
Our dashboard houses all switches and the display for easy access. We used an acrylic sheet as the base, and drilled holes to secure 3D printed housing for all the different buttons and switches.
Featured:
- Display (For GPS and object detection warning)
- Emergency Kill Button
- Ignition Key Switch
- Reverse / Drive Switch
- 3 Speed Switch
- Breadboard (To connect GPS module, accelerometer to Raspberry Pi & Display)
Aluminum Connectors
To join 30×30 profile together, we used corner brackets, spring nuts, and screws. The M6 spring nuts slide into the slot in the profile. The M6 12mm screws are used to secure the corner brackets to the spring nuts.
For 20×20 profile, M4 spring nuts and screws were used.
References
[1] https://steeringly.com/steering-system-components/
[2] Puneet Gautam, Shubham Sahai, Sachin Sunil Kelkar, Mallikarjuna Reddy D, Prajwal Agrawal. (2021). Designing Variable Ackerman Steering Geometry for Formula Student Race Car. International Journal of Analytical Experimental and Finite Element Analysis (IJAEFEA). 8(1):1-11. https://doi.org/10.26706/ijaefea.1.8.20210101
[3] https://www.bmikarts.com/Go-Kart-Gear-Ratio-Speed-Calculator
[4] https://www.validyne.com/blog/vehicle-hydraulic-brake-system-testing/