Business, tech, and life by a nerd. New every Tuesday: Splitting Light: The Prism of Growth and Discovery.
Share
Splitting Light: Season 1 - Episode 7
Published over 1 year ago • 3 min read • Season 1
Splitting light
Season 1 Episode 7
Bright red boards
If you are no longer interested in the newsletter, please unsubscribe
(Very) Rough electronic schematics
The bright red boards of the second generation hardware started to come in. Why red? Simple. If the board was green we could share photos, if it was red it was forbidden to share any pictures or details about it. Simple enough.
I was busy performing the last handover bits of the first generation hardware to the cloud team while Greg was doing the first power up of the main board. I was eager to work on the board but I did not have the skills (yet) to do the checks and first power up. He would test different positions on the board with a multimeter to make sure there were no short circuits or other defects.
Once he got the board power up for the first time, I jumped in and started working towards the first boot. This time, I was completely by myself. The Internet was useless to get help. The vendor CPU for the board was under NDA. The only information that I had was from our schematics, the vendors documentation and the vendor source code. Some of our tools could also be helpful to detect signal or code errors.
To make that first boot, I had to modify a version of Linux that was already very heavily modified by the vendor. I had to dive into the schematics to know how he had wired some of the chip pins, then cross reference the pins in the pin datasheet and then edit the code accordingly to add devices, functionality or change settings. Back and forth between PDFs, vendor source code and the operating system code. I was building the software, testing the expected hardware values and following the chip setup sequence.
The chip in question was a specialized chip, an ASIC, that did hardware networking. There was a simple power up sequence to get the operating system running, but then you had to power up the network part of it which required following a detailed multi step sequence. It was a dance between our code, the multi platform vendor code and the operating system code. One flag set wrongly, one value not written correctly and it just didn't work. No errors, no crashes, it just didn't work.
Software sandwich between the chip and the features
Every component was standard and documented. What made the difference was how you wired everything together and configured the components. Because of the developpement cycle of hardware, the most important thing at that time, was to validate every electrical signal on the board. Every feature that was software only and didn't require a dedicated track on the board could wait.
Any mistake in how the components were connected together had to be found. Or at least, we needed to find as many issues as we could. We would add small wires and solder some tracks and components differently to fix the issues we needed to continue to test and at the same time Greg would patch the design in the EDA tool. The bug was labeled and only closed when we got the next revision of the board a few months later and after we had checked that the patch was correct.
As we had tested as much as we could, we slowly started to write actual software features. I knew how networking worked basically, but I did not expect that my next focus would be a great dive into how networking worked.
If you have missed it, you can read the previous episode here
To pair with :
Sunburn (Timo Maas'Sunstroke Remix) - Muse, Timo Maas
Splitting light Season 3 Episode 13 Bills reconciliation If you are no longer interested in the newsletter, please unsubscribe January to March 2019 When you have a complex system there are always going to be discrepancies between them. In our case the discrepancies were in the billing systems. We had five different data sources. None agreed on the numbers. Let me introduce our five systems. Observability of the disk usage as well as the incoming and outgoing bandwidth. The client...
Splitting light Season 3 Episode 12 Warsaw If you are no longer interested in the newsletter, please unsubscribe End of January 2020 to beginning of February 2020. In January 2020, we had a new challenge. A new opponent to ring in and control. Let me introduce him. It was the Warsaw region! We had to deploy object storage in Warsaw. Back in September 2019 we had selected the hardware setup and had done a brief discovery of it. Then the whole region’s hardware had been shipped by truck. Once...
Splitting light Season 3 Episode 11 OpenIO reaching out If you are no longer interested in the newsletter, please unsubscribe End of 2019 While we were dealing with the 500k object problem in object storage, Jean-Francois Smigielski (a), OpenIO’s CTO reached out to me on their community Slack. They were looking to hire more engineers and several people that they trusted had told them I was what they needed. Most likely I had also done a good impression when we had worked together to bootstrap...