Beta Blog #1: Finding a Board and Dealing with Delays
Like most startups that are developing on hardware, we decided to start on a maker board. We chose the Pi 3 board on our first attempt as we thought it would cover most of our basic needs.
Unfortunately, it didn’t take long for us to realize that we needed to find a more powerful board or build a custom solution for ourselves.
This realization came about early in development, as we quickly saw that we needed functions and features that weren’t available on the Pi 3. Chiefly among these were a 1GB Ethernet port, the ability to expand to gigabit Wi-Fi and additional ethernet ports.
All-in-all, it took us about five months to find a proper prototype board. This then led to the next challenge: porting over our software.
Built on Linux, our software initially had a few issues integrating with the hardware. We felt we got the right board that we needed, but we also had to come up with solutions in order to overcome some of the strange quirks that were evident on the board.
First, we had to get our updater software to work. This required that we write a custom Uboot, which involved a lot of digging and toying with the boards Uboot.
After that, we had to modify how the custom switch worked. The custom switch had certain innate security flaws. For example, it would still route traffic while the board booted. We had to prevent it from doing this as this is a security product after all. Since there was barely any documentation available on the internet, it was quite a struggle. We ended up reverse engineering the entire process and got it to work through a systematic trial and error process.
As a small team, we had to optimize all of our resources. Fortunately, we were able to add another developer to our team, a fresh grad, who was ready for the challenge ahead.
No software or hardware project ever launched without a delay, and we certainly weren’t an exception. We ran into a number of roadblocks, including critical bugs that were causing widespread buffer bloat problems and blocking ICMP connections. We also weren’t pleased by the quality of our first prototype beta shell, so we moved its production from the Philippines to China.
In the end, all of the headaches proved worth it in the end. After months of delays, we were finally able to unleash our internal beta in the office!
Tune in next week to learn about what our internal tests revealed, or sign up for our newsletter to get updates on our latest content.