This is a branch off from https://hackaday.io/project/19950-hc-sr04-i2c-octopus-octosonar Designing an updated board compatible with the Adafruit Featherwing ecosystem. The existing design is 2.5" x 1.3" whilst the basic Feather footprint is 2" x 0.9" so tere is a lot of squishing to do, especially if I want to keep the 9x4 and 1x2 0.1" headers for the sensors etc. Board should be able to operate standalone and replace the existing design for non feather applications.
I made a new test jig to replicate the function of the old one - a much tidier build this time. It is again configured as an Arduino shield so I can swap it onto the same Arduino without reprogramming. I used one of the scrap OshPark boards for the top level guide, skimming all the copper off in the mill first. The OshPark board holes are much more snug on the pogo pins - I actually have to ream them out with the drill. The PCBWay holes are loose. I don't have any gauge pins so I can't tell who is off. Both work though - header pin holes are not that critical.
I am using a PCBWay board for the main part of the jig, with a PCF8574 at 0x20 talking to the Trig pins and the Echo pins wired back to spare Feather pins from the 74HC125 pads (chips not installed). Pogo pins are on the trig, echo and non-feather control pins with the regilar parallel feather pins connected down to the protoshield with pluggable headers. The pogo pins are only soldered on the bottom and have no wires directly attached. The jig is configured upside down so all the wiring is exposed when it unplgs - this should make the whole thing easier to maintain, as kynar wire and pogo pins are a bit fragile.
I made up one board by hand - tested good first time :-)
I'll make up a production batch next weekend - I need to stock reset switches.
First production batch of boards arrived so I went to go make a new test jig - only to realize that featherwing uses 0.1"/2.5mm standoffs - I only have 2mm and 3mm.
So now waiting on adafruit (expensive but faster than Banggood) 2.5mm standoff set.
Ordering 100 boards from PCBWay, as someone bought out my entire stock of Octosonars.
Tweaked the design as follows:
upped all the 6 mil tracks to 8 mil - the OSHpark boards failed on the first pass. I'm not sure if this is related, but there was room to bump them all to 8 mil which is what I have done in the past for signal traces.
Swapped out the external second ground pin to be an INT pin to match the old board pinout, rather than have the non-feather users hunt out the feather gpio pin
Changed the references to 5V to VS. There are apparently 3.3V compatible HC-SRO4 variants now available, so VS = Voltage Sensor, so the whole thing should be able to run off 3.3 V. Documenting this clearly Will Be Fun.
Tweaked some of the illegibly small silkscreen text from 24 mil to 32
First time ever I got a bad batch of boards - one was recoverable. I'm sure they'll make it right - looks like an error in the fab. A bit of hand soldering and it fires right up - borrowing 6 sensors from the X2 bot.
The adafruit 0.1" headers have slightly smaller diameter pads than I was using on my headers - when I switch to the oshpark design rules all mine raised alarms at being to close to the edge. So I made mine match.
Switched to 0603 footprints for the 0.1uF caps as that's what I actually install anyway. That's actually an error in the old design.
Initial design done. I originally went with one sensor connector block in an extension on each end, but then realized if used as an under-wing the wires would clash with the USB, so I packed them both into an extension at the right hand end. This made the routing a lot more challenging hauling 16 data lines back from one end.
Went with 6mil for data a 10mil for power, with 0.35mm and 0.5mm vias respectively with 6 mil annular ring. Previously I've always done 8mil traces, but this lets me space lines at 25mil
The board maintains the capability of use as a standalone board for use with non-feather projects - so it can replace the existing unit in stock. It has a reset button and defaults to "GPIO-11" which is Arduino pin 2 on the Feather 328P (on order).
Extended the base featherwing object 0.5" on either end for the X2 style connector arrays. This will allow use in the middle of the stack and removes the need to use smaller footprints.
Include 0603 pullups with cuttable jumpers.
Todo: reset button, silk screen, additional 5V input on extension for 3V master projects with dead USB power?