Ray Ozzie7:46
I had done hardware probably from 10 years old through college. I was a double E major at the University of Illinois, but I switched to software early on. I hadn't soldered a thing until the first months after we started. The initial things we tried to build were based on simple SparkFun, Adafruit, Seeed Studio modules, like the SIMCom 800s. At the very beginning, there was no cellular service in the area, so we recorded data on SD cards. The first wireless devices tried LoRa. I built a LoRa concentrator based on what was at the time resin.io, now Balena, managing Raspberry Pis. Then we built these things called Solarcast boxes, which were solar-powered with dual particle counters for air quality, dual Geiger counters, and LoRa backhaul. We were fortunate to get these devices into the exclusion zone once a year, when people who were sent away were allowed to visit their homes. Initially, we backhauled by LoRa, but as cellular service came up, we looked forward to that because building your own LoRa network can be challenging. I went for Adafruit FONA modules, which worked really well on 3G. The challenge was that every time we tried to build a prototype, we could never meet the current budget goals based on the solar panels. We had beautiful Voltaic solar panels generating a lot of energy and nice battery packs, but cellular, whether 2G or 3G, was probably a two-amp pulse. GSM is unforgiving. You didn't know what network you'd hop onto. So I stepped back and said, how hard can this be? I started with a Nordic nRF51 chip, thinking if someone's doing Bluetooth, they must have a decent firmware stack to let the firmware sleep. I started dealing with PSM on the modules, realizing it was a pain and I couldn't achieve the current budget in the datasheet. So I just stuck a low-side N-channel MOSFET in there to shut the power off to the whole modem. Then we had to write firmware to measure the voltage in the pack, modify the measurement frequency and upload frequency based on available power. Eventually, we ended up with a really great device that operated standalone and was very reliable over time. But it was a real learning experience because I didn't understand the complexity of doing well what I was familiar with: state machines, controlling sensors, controlling cellular, realizing this was going to be a multi-module world. Just because we could deploy a module in one region didn't mean it worked in another. The AT commands were different for each one. The carriers required PTCRB certification, which brought different challenges. The cellular plans required dealing with local carriers and temporary roaming, whereas we wanted permanent roaming. Many different challenges. The Notecard really emerged from that project: the concept of making a completely different developer experience, both hardware and software, where a hardware developer could not worry about cellular data plans. They could get a cellular card from a distributor like DigiKey, Mouser, Avnet, treat cloud connectivity as part of their BOM, and just assume that as soon as they plugged it in, it would work, auto self-provision, and be good for 10 years, working anywhere there's coverage in 137 countries.