Embedded Systems

The blog

The Final Demo

We almost did it. After pulling an all-nighter and being in lab for 24 hours, we were able to piece together our container (it was mostly waterproof the first time we checked), fit the board onto the container, and run the code. Unfortunately, by the time we finished making the final product, it was midnight and we hadn't started testing the container with liquid. We ran into many problems along the way and sadly, even though we spent 12 hours trying to fix them, we weren't able to get a fully working container.

Even though we ran into these problems, we were still able to get one column to give very precise readings (within our error margin of ~2.1 mL). We plan on using this column for our demo. 


One column works really well; even though the other columns are not able to detect any level of liquid, the fact that directly giving conducting nodes on the board ~5V and having the LCD display the right information shows that our idea, circuitry, hardware, and software are correct. It was just somewhere along the implementation process that something may have gone astray. To reiterate, the idea works perfectly. With more time, Phillip and I definitely can make this container work really well. 

Lucky for us, we were able to get a video of the one column working (and it works pretty well). Check it out in the next post! 

The Problems

  • Increasing the level of liquid decreases the resistance of the board (every row that we add, we add 7 resistors in parallel, and each resistor has a resistance of 512k Ohms), so all the voltage drops across the resistance of the water and the voltage read from the 169 inputs is not high enough for the multiplexers to detect 
    • How did we try to fix this problem? We tried increasing the conductivity of the liquid by adding vinegar and salt to the water. This definitely decreased the resistance of the water but wasn't enough to get all the columns working. The resistance of the board also decreased at a much higher rate (from ~73K to 450 Ohms), so adding the vinegar and salt wasn't enough. We also tried using a 9V battery to power the columns; we hoped inputting a higher voltage would increase the voltage value being read by the multiplexers. This attempt was also unsuccessful as it could not compete with the exponential decline of the resistance of the board. 
  • Fitting the board onto the container: We struggled with lining up the female headers on the board with the male headers on the back of the container. We added long male-to-female headers to the female headers on the board, which made it harder to line up all the pins and gently fit the board onto the container. In the process, we definitely destroyed a few pins along the way and may have damaged the internal architecture of the board. However, when we bypassed the liquid and sent voltage directly to the nodes exposed on the board, the LCD displayed the correct information (mainly, the total volume in the container). Because this part worked really well, we thought that the problem may not have stemmed from the board itself and decided not to replace the board on the container. Replacing the board would have also taken a few hours of our time, for we would have had to solder wires for power, clip some female headers, and go through the process of placing it on the back of the container once again.