Inspiration

Aditya and I came up with CircuitCourt after dealing with bugs in our own physics and circuit projects that only appeared after a specific sequence of events. The circuit could look completely fine during normal testing, but still fail because of something that happened earlier.

What it does

CircuitCourt searches for the event histories that cause safety firmware to miss a real hazard. Once it finds a failure, it removes unnecessary events to create a smaller, easier-to-understand test. It can then replay that exact test on both the faulty and repaired firmware to confirm that the fix actually works.

How we built it

We created a simulated safety circuit and wrote the controller and testing system in C++. We then used Python to run experiments, organize the results, validate the evidence, and generate reports from the tests.

Challenges we ran into

The hardest part was finding failures that depended on several events happening in the right order. We also spent a lot of time making sure the system was accurately identifying real failures instead of blaming the firmware for situations where it did not have enough sensor information to react.

Accomplishments that we’re proud of

CircuitCourt found a five-event failure and automatically reduced it to four events. We then ran the same four-event history on the repaired controller, and it passed. After a lot of rebuilding and testing, that was the point where the project finally started to feel real.

What we learned

We learned that many firmware bugs cannot be found by testing one input at a time. The order of maintenance changes, sensor readings, resets, and timing can completely change how a circuit behaves.

What’s next for CircuitCourt

We want to expand CircuitCourt so it can test more controllers, circuit designs, safety rules, and sensor failures. Our goal is to turn it into an accessible tool that students, researchers, and engineers can use to find difficult firmware bugs before they cause problems in a real system.

Built With

Share this project:

Updates