The Making of a ‘School Bus Security System’: PART I

~by Albert Zakhia

Back in 2018, our company ( had the privilege to be invited to perform a POC (Proof Of Concept) for a School Bus Security System. For the POC, we were supposed to receive two school buses.

Initial requirements were as follows:

  1. At all times, seat belt use should be observed. One of the buses has 60 seats, thus if a seatbelt is unbuckled, three things should happen: (1) the driver should be informed, (2) the incident should be recorded in a server, and (3) an event should be generated.
  2. Before allowing a student to get off the bus, make sure there is a safe space between it and any nearby objects, especially other vehicles.
  3. If the ‘STOP Sign’ rod was engaged, every vehicle that bypasses the bus should be photographed and its license plate sent to a target server.
  4. Live video monitoring for the bus.
  5. The bus location and state, together with all seat belts state should also be monitored live and recorded in a central server.

The client was open to recommendations in addition to the stated specifications.

The inviting party and the buses are located in another country. Before traveling to the client’s nation, we will need to construct the entire system and test its use in our local offices.

Ideas’ identification and screening

The next step was to identify ideas that can fit positively the requested model. In order to develop our ideas, we started from a basic assumption, an assumption we agreed to be an integral part of the system.

“The interior of our safe bus system should feature two lights of two different colors:

  1. a green light indicating that getting off the bus is safe for students
  2. A red light that indicates it is unsafe for students to exit the bus, should remain seated and buckled”

Based on the above assumption, all we needed now is to figure out what is ‘safe’ and what is ‘dangerous’. As ‘safe’ mainly means not ‘dangerous’, we could just search for what is dangerous and program our lights to light accordingly.

At that point, we gathered a list of points that we considered dangerous. Our list was as follows:

Seat occupancy

Signaling an unbuckled seat belt is worthless. If there is no student in the seat, the seat belt would b unbuckled, and this is not wrong. For this, we decided to install a seat sensor. If the seat sensor is signaled, this means the seat is occupied. Once we know if the seat is occupied or not, we can decide about the state of the seat belt.

This gives us: if the seat belt is signaling, it means the student has buckled his seat belt.

Between the seat sensor and the seat belt, we have 4 different states, for each state we have a status: normal, alert, or alarm. For example, with an occupied seat, not buckling a seat when the vehicle is still will cause an alert displayed on the driver’s dashboard, whereas the moment the vehicle moves, it becomes an alarm.

The below video shows the testing of a seat sensor and a seat belt sensor and the display at the driver’s dashboard.

Stop Sign engagement rod

Before opening the door to pick up or drop off a student, and after the bus is FULL STOPPED, the driver should engage the “STOP SIGN” rod. The STOP SIGN has the same legal power as a street semaphore red light. Bypassing a school bus with the STOP SIGN armed will be considered an infraction. How would the authorities know about such an infraction? Let’s continue…


Before opening the door to pick up or drop off a student, it is essential for the driver to make sure that the bus speed is ZERO. Opening the door while the vehicle is moving is an infraction.

The passenger door(s) have two states: open or closed. If they are closed, we have no problem. If any is open, we have one of two scenarios:

Either the bus is fully stopped, and this generates an alert. We need it to be an alert because we need to visually and audibly alert the driver and remind him to keep an eye on the door, and to close the door once the student has been picked up or dropped. If the door is open while the bus is moving, then this will be considered an alarm, sending an acute audible sound for the driver and logging the event as an infraction.

Note that FULL STOP in our context means: We have speed ZERO coming from the GPS, AND the driver is either stepping on the brakes or has engaged the handbrake.


In order to enforce the Speed ZERO rule, we will install sensors on the brake pedal as well as the handbrake. The driver should, before opening the passenger door, make sure that the speed is zero and maintain constant pressure on the brake or engage the handbrake. This should be performed for the entirety of the operation. While the door is open or the stop sign is engaged, releasing the handbrake or decreasing the pressure from the brakes will result in an alert. If the vehicle moves, an alarm will be logged.

Distance sensors

There are five distance sensors installed on all sides of the bus, two of which are to the left (road) side of the bus covering the street.

Distance sensors will have many advantages:

  1. Scanning the bus surroundings, it informs the driver when to safely open the passenger door. Even if the driver opens the door, the warning light will remain red as long as the bus’s surrounding area is not safe (empty).
  2. When driving, it forces the driver to keep a minimum distance between the bus and any vehicle in front.
  3. It can also, by visual notification, inform a driver behind the bus to keep his distance.
  4. If a vehicle bypasses the bus while the STOP SIGN rod is engaged, the sensors will trigger the installed cameras to capture pictures of the offending vehicle, a License Plate Recognition (LPR) code to convert the info to text, and finally send the vehicle registration number to the responsible authority.
Safe area monitoring using distance sensors

In the below video, we can see the distance sensors in action: a video showing how the internal light turns from green to red and back to green when a vehicle bypasses the bus. All sensors being equal and in safe mode, this video was testing the rear left sensor.

Video cameras

Eight 4G live video cameras are installed in the bus. Five cameras are outside filming cameras, while 3 are internal cameras.

The camera usages are as follows:

  1. Front camera (c1): this camera will record the front of the bus, showing the driver’s attitude toward the road conditions.
  2. Right side camera (c2): This camera is mainly to record the students being picked up and dropped out of the bus.
  3. Back camera (c3): this camera will record events as they are happening behind the bus, and check the distances between the bus and the vehicle behind it. As kids are invisible behind the bus, this same camera will help the driver make sure no obstacle is behind him.
  4. Two left-side cameras (c4 and c5): These are the main cameras, as they show the left side of the bus. C4 is on the back of the bus facing forward, while C5 is on the front of the bus facing backward. When the STOP SIGN is engaged and a vehicle bypasses the bus, these are the cameras that will take a snapshot of the offensive vehicle and record its registration number.
  5. Driver’s facing camera (c6): this camera is focused on the driver.
  6. Front-to-back facing camera (c7): This camera is recording the inside of the bus (students) from the front-facing backward.
  7. Back to the front-facing camera (c8): This camera is recording the inside of the bus (students) from the back facing forward.

With all these cameras installed, a complete situation of the bus is registered and stored internally for 2 weeks. These cameras are also visible to the driver through his dashboard, although, apart from the reverse, there is not much need for the driver to use them. Still, they are an available possibility.

In addition, though 4G and more advanced technologies, authorities can access the cameras live at any time.

4 CAMS View

For a detailed recorded trip of the result, kindly follow this link:

Live video recording of the school bus trip

Driver’s dashboard

As we will be needing a way to make sure our assumptions are correct, we decided on building a driver’s dashboard. The dashboard should allow the driver (and our Development/QA team) to view the complete state of the bus.

The dashboard should be able to:

  1. Display all seats and their states
  2. Display if passenger doors are open/closed
  3. Display the state of the ‘STOP SIGN’ rod (engaged/retracted)
  4. Display the area occupancy around the bus
  5. Display alert icons together with an alert beep when alerts happen
  6. Display alarm icons together with an alarm beep when an alarm happens
  7. Display reverse on reverse
  8. Display cameras’ footage on demand

We do not have a live video on the driver’s dashboard, but we do have dashboard footage while testing the correct installation and working of the seat sensors, seat belts, and passenger door.

Testing sensors on the driver’s dashboard. This proves the correctness of both 

Display panels

A display panel can be installed on the back of the bus alerting any driver behind the bus of its actual state and calling him to slow down. The display panel will display live, the number of students on board the bus, and the approximate distance to the next stop. Such visual representation will affect positively the driver behind the bus and will help him avoid bad decisions.

This led panel keeps drivers informed of the current bus state and provides a feeling of responsibility

Back to Red and Green

Now that I have listed most of the sensors to be used for a secure school bus system, how does the complete system run?

This is a two streets venue:

  1. There is a first need for management to list the rules.
  2. Then comes our system to enforce them

The advantage of such a system is that the system is constantly monitoring the driver and alerting him of breaches.

Agreeing on the above, we need to start electronically enforcing the rules that should turn these lights on or off accordingly.

The main rule: if at least one of the safety conditions is not met, then it is not safe to step down the bus (the light is red). If all safety conditions are met, the light turns to green. Hence we need to decide when it is safe to step down the bus:

  1. The bus is FULL STOP
  2. AND: Either brake or hand brake is constantly applied.
  3. AND: STOP SIGN Armed
  4. AND: No vehicle around the bus (up to 1.5m)
  5. AND: Door open. (Door should be opened before the student can unbuckle his seat belt and get off the bus)

To achieve the above conditions, the driver should respect the following order of action:

  1. Bring the vehicle to FULL Stop.
  2. Keep braking or engage hand brakes for the complete boarding/stepping down period.
  3. Arm the STOP SIGN rod
  4. Wait for the surrounding area to be safe (by using his mirrors, camera views, and distance sensor information on his tablet)
  5. Open Bus door
  6. Wait for the green light
  7. No vehicle around the bus (up to 3.0 meters)
  8. Students stepping down can unbuckle their seat belts and move toward the door or assistant to help drop off the kids
  9. Assistant to walk students to a safe area or hand them to parents. On-street crossing, the assistant needs to cross the street with them.
  10. Assistant back to board bus
  11. Door to be closed
  12. The RED Light is back on
  13. Disengage the STOP SIGN rod
  14. Release brakes and move…

Let there be light!

When the bus was picking up or dropping off students, they asked us for light! We gave them the sun.

The below video shows the front bus lighting system.

The below video shows the back bus lighting system. You can also notice when the distance sensors picked us up.


In the next chapter, I will guide you step by step on how I designed this system from start to completion and the logic I followed for success.

SOFTRASYS SBSS marketing video


The below blooper shows how 50 degrees in the shade can force you to change your code from visual clues to vocal information. As we were manually checking the state of each seat and seat belt, it was becoming tiresome. So we connected the seats to a serial input on my laptop, I modified my homemade simulator to run as a server, changed textual messages into voice, and there I was, relaxed. I have no longer to respond to any sensor test. My application will speak it out loud for me. You can also hear the synthesized voice actual testing in one of the videos above.

I want to thank my friend Ryan Azzam (, who is actually our Sales Manager and proved to be the best technical person I ever had to work with. His skills and eagerness were impressive!