Overview
Compology’s main business is adding ML-powered cameras to commercial waste bins, which reduces the number of trips required to service them and thereby improves the carbon footprint of moving waste. When I arrived they were looking to expand their volume estimation technology to trucking / shipping via a partnership with one of the largest trucking technology providers in the US, a company called SkyBitz. The idea was that our device would be a peripheral to their existing cell-enabled device. I led the effort to bring that product — later named SkyCamera — from concept to 10k+ units coming off the manufacturing line every month. Above those NPI activities, I championed and led an effort to overhaul Compology’s manufacturing test infrastructure — including hardware, software, and data management — cutting downed-line time by more than 50% and doubling manufacturing capacity.
What I Did
Product Bring Up
The target timeline of SkyCamera development was less than a year, so the hardware strategy was essentially reuse-as-much-as-possible. My first role was to help SkyBitz define the product feature requirements. From those product requirements, some things needed to change from:
- No cell or GPS — unlike the waste product the SkyCamera was not a standalone device, it was a peripheral that relied on SkyBitz’s product, so the cell modem and GPS circuitry were removed
- Camera — SkyCamera would be mounted near the truck door and look back down the length of the bed. To ensure we could see the features we needed at 50 ft, I chose a higher resolution OV10635 sensor. I wrote the firmware drivers and then did all the validation testing for the new sensor
- Illumination — illuminating a long, enclosed, 50-ft truck bed is a whole different problem than illuminating a commercial waste bin. An optics contractor was managed to design custom optics to shape the illumination field
- Wireless communication — performed initial tests to choose which wireless technology we would use to connect to SkyBitz’s device. BLE proved to meet the needs, so I worked with technical counterparts on SkyBitz’s team to define the protocol to support features e.g. secure OTA firmware updates, requests for images, installation UI features, etc. I brought up an NRF52840 and wrote all the firmware to implement these features.
Once the hardware design phase was complete, my job shifted to implementing all the firmware features needed for launch including manufacturing test.
Manufacturing
I also brought up the manufacturing line — defining tests, designing them, building them, and bringing them up. I pushed to have a “pre-flight” manufacturing line built locally, so that we could validate before setting up in China — a first for Compology, which led to much less headache when we went to bring up our remote line in China.
On initial bring up I also started to notice a few issues with the existing infrastructure:
- Hand copied station code — each station had it’s own hand-crafted script. It was copy and pasted from another station and then modified. Sometimes a chance for improvement would be found on one station, which would then have to be manually propagated to all other stations. This led to in the best case fracturing of what data was collected and how it was stored and in the worst case bugs in the code that brought down the line
- No MES (manufacturing execution system) — this meant devices could go through the line with little to no control
- Unjustified limits — I’ve seen this in many small hardware teams, but they test for testing’s sake and don’t have justifications for why they’re testing something or what the limits mean
- No data control — each station packaged all of the test data at the end of the day, zipped it, and posted it to AWS. Accessing or making decisions on that data was near impossible
- Stations (and the line) downed because of silly station hardware issues — we’d go to sleep with the line running, wake up to find out the line was down for half the night, and upon debugging figure out that a necessary USB device wasn’t plugged into the station and the operators didn’t understand the problem.
I got buy in from the VP of Product and CTO to overhaul this situation. I convinved them to let me pull resources from the software team and together we unified the code base, created a base structure from which all station code was built, added features to do hardware checks before running tests and making it clear to the operators when it was a station failure vs a device failure, we added a makeshift MES with a small server that collected data from all the stations and posted it to the Compology backend in mostly real-time. These efforts took about a month and a half, but at the end of it we had doubled the manufacturing capacity by reducing inefficiencies and cutting downed-line time by more than 50%.