Inspiration

Every country we have visited so far suffers from some extent of potholes due to man-made or natural reasons. So going by the two slogans where there's a road, there's a pothole and when there's a will, there's a way; we set out to find out a technologically feasible solution which could create a difference without requiring heavy architectural changes to the status quo.

What it does

DxIV or Data x Integrated Vehicles is an IoT based solution which can latch onto any car pretty much seamlessly. We wanted to create a device which can harness the power of the fleets of cars like Uber and Lyft as well as give citizens a chance to relay data to the government without additional efforts.

The device itself has 4 onboard sensors - a load cell hooked to a pressure sensor, a inertial measurement unit, an ultrasonic depth/distance sensor and a GPS chip. The first three sensors gather their respective data and based on their positive detection of a pothole the GPS sensor is then triggered to gather the location of the pothole and update it in real time over the air.

This data is received on a dashboard where the interactive UI helps the user understand the data in a more visual format. It also holds the map depicting the pothole detected locations. The three sensors work independently and negates one another's false positives.

How we built it

Firstly, we created our own custom PCB using altium designer. It was a 4 layer, 80x80 PCB which got fabricated. Then we interfaced the sensors which were off-board and began writing drivers for each.

  • The IMU (ADXL335) was used to detect jerks based on Z-axis deflection. It uses an ADC channel to communicate with our SAMW25 Xplained Pro board.
  • The Load Cell (NAU7802) was used to detect the pressure the shockers are subjected to. It uses an I2C channel to communicate with our SAMW25 Xplained Pro board.
  • The Distance Sensor (US-100) was used to detect depth based on ultrasonic transmission and receiver pair. It uses an USART channel to communicate with our SAMW25 Xplained Pro board.

After writing drivers for all of these, we then

  • Wrote CLI commands to trigger each sensor and get its reading
  • Made functions which the CLI commands called to talk with the peripherals
  • Wrote threads to call the same functions to automate the task of fetching sensor reading
  • Wired up an MQTT broker to send and receive data to and from the cloud
  • Set up a virtual machine on Azure to host our NodeRED backed server
  • Created flows for sending, receiving and displaying data
  • Mounted the device on a prototype to see the integration working seamlessly

Challenges we ran into

  1. ATMEL start made programming pin configurations look too easy but changing it in the starter code was quite challenging.
  2. Setting up the load cell to work in our use case as it didn't respond to the commands sent to it over I2C properly.
  3. A lot of rerouting issues came up during the PCB design phase due to wire thickness and other power management issues.
  4. Getting an onboard GPS sensor to work.
  5. Stack overflow errors due to memory constraints.
  6. Random hardware malfunctions stopping the connection between the board and the SD card.
  7. Infinite resets on the PCB due to browning out.

Accomplishments that we're proud of

Seamless integration of the working prototype on both the custom PCB as well as breadboard. Both are capable of updating the NodeRED dashboard and do required tasks like OTAFU.

What we learned

This was the first time we were working with altium so we learnt a lot. It was a different experience to make a board run as expected. There went a lot of hardware as well as software knowledge to get this thing working. The deprecation of NodeRED and switching back to JS and JSON was fun again.

What's next for DxIV [Data x Integrated Vehicles]

To test the real waters. Hooking up to a car, powering with a battery and see it update things in real time and combat the lags there after. We might use better sensors and even a camera for higher precision. Machine Learning models deployed over cloud can also help us determine the certainty of a pothole with a higher accuracy.

Built With

Share this project:

Updates