Observations and issues with first prototype hardware design

A project log for openSip+Puff

Low-cost, open-source "sip-and-puff" interface to enable new methods of expression for people with and without limited mobility.

Jason WebbJason Webb 08/17/2016 at 00:213 Comments

Once my initial prototype board was assembled I was faced with everyone's favorite task - bug fixing! There were some problems that became evident right away, and others that took an embarassingly long amount of time to identify and fix.

  1. Surface-mount USB mini-B connectors are HARD to solder!
    The first problem I found was that in reality, SMD USB connectors are extremely hard to hand solder without a hot-air rework station! I gave it a good shot, but I quickly realized that it was going to be way more difficult than it should be to manuever my soldering iron in the constrained space aroudn the connector's pins.

    Solution: for the prototypes and DIY-able version of this device, I should definitely stick with through-hole connectors so that more people can assemble and maintain their boards.
  2. Instrumentation amp didn't get connected to GND
    Once I was able to burn the Arduino Leonardo bootloader onto the ATMega32u4 and upload a basic sketch for testing I found that I wasn't getting any readings from the pressure sensor.. This was a bit frustrating to troubleshoot because it made me question just about every step of the process up to this point. Was the board design flawed? Are there defects in the board from fabbing? Is the bootloader or microcontroller somehow corrupted? Do I suck at programming more than I thought I did?

    Eventually I found that this was indeed a hardware problem and traced the cause down to the instrumentation amplifier. Either out of haste or inexperience, I neglected to connect the amplifier's reference pin to the ground plane, effectively preventing it from receiving power.

    Solution: I soldered a jumper wire from the reference pin to a known ground connection, and readings started coming in right away! I also updated the Eagle board design straight away to prevent future boards from having the same problem.
  3. MPX12GP sensor connection is unreliable
    When I initially specced out the MPX12GP it looked like it would be easy to interface with. It has long 0.1" pins which seems like they'd mate well with 0.1" female headers, allowing the sensor to be easily replaceable by users. In practice, though, this didn't work out so well for a few reasons:

    Firstly, the pins are actually a bit on the slim side, making them a little loose in the female header sockets. Not ideal for real-world usage.

    Secondly, because of how thin the pins are they break very easily at the slightest amount of torque or bending.

    Thirdly, the sensor is thick enough that the pins are elevated a bit too much when the part is mounted flat onto a board. This means that the typical right-angle female headers that I had in mind do not line up with these pins, making the fit even more sketchy than when they are aligned.. I considered using extra-long right-angle female headers, but they are hard to find (and therefore not cost-effective) and would not solve the other two problems with the sensor.

    Solution: given the strange mounting that would be required, and the build quality of the pins, I think the best thing to do is to find another sensor. I believe I have actually found one, just need to test it out!


Tyler Berezowsky wrote 08/19/2016 at 01:56 point

Don't worry too much about missing that ground pin. It's super rare boards workout on the first spin! 
Are you still going to be using an analog pressure sensor?

  Are you sure? yes | no

Jason Webb wrote 08/19/2016 at 02:22 point


Yes, in fact the analog pressure sensor is in the most important part of this project for me! I'm particularly interested in it's potential for creative expression, which traditional switch-based interfaces lack. 

Given that an analog signal can easily be transformed into a digital one using firmware thresholds, I think sticking with an analog sensor would be ideal. In fact, I envision analog and digital "modes" that the user can configure to allow them to use the device in whichever way they need.

  Are you sure? yes | no

Tyler Berezowsky wrote 08/19/2016 at 03:46 point

Good stuff. I was afraid for a second you were changing directions. 

  Are you sure? yes | no