Hi Backers! We've been hard at work producing both hardware and software so that we can bring you your USB-port-sized FPGAs. There's been a lot of progress, as well as a few setbacks, and now everything is in place to begin the final phase of production. Read on to find out more!
As we've mentioned before, many production cycles go in three phases: EVT is the "alpha" phase, where everything is in flux, debug ports are more plentiful, and changes are easier to make. DVT hopefully looks close to the final product, and is the feature-complete "beta" phase. PVT is production, where everything should be ready for mass-manufacture.
Backers of the EVT board should have received their EVT units by now. This board has been instrumental in finishing up the USB stack that is critical to the entire Fomu product. We now have a bootloader that can communicate over USB, though it's still not quite finished. As of right now, we just need to get the "reboot" primitive working, and Foboot doesn't yet write to the correct SPI flash address. These issues will need to be worked out before we ship, but that's it as far as minimum viable product.
However, we've taken a break from working on Foboot, since we received DVT boards from the factory a few weeks ago.
The DVT boards are tiny. They're exactly the same dimensions as the ARM version of Tomu, but they're much more densely packed. We needed to make sure the boards were produced correctly, so we needed to test every part of them. In the end, we discovered three issues.
The first issue was very easy to spot. When we plugged them in, the boards got very warm (50 degrees C). This is about the temperature the boards will get when you short 3.3 V to Ground, as the 3.3 V regulator limits the current to 200 mA. The cause of the issue ended up being due to a misleadingly-labeled datasheet causing the crystal oscillator to be put on backwards. Fortunately, this is easy to fix for future boards.
The next issue took a much longer time to identify and solve. I was able to program the FPGA, and I could communicate with the touchpads, but the LED wouldn't turn on. Eventually I realized that I made a rather large mistake on the PCB, because I swapped power and ground:
The fix was easy enough, but validating the fix was much harder. One option would be to run through an entire production cycle, but that would be expensive in terms of both time and money.
Fortunately, Bunnie thought he could rework one or two boards to add in the patch, despite their minuscule size. He documented and filmed the process in a tweet. It took a few tries, but in the end we got a Fomu board with a working RGB LED!
The third issue prevented USB from working. The test jig has a bunch of pins that hit test points. To simplify the jig, we bring out all four USB contacts to pads on the top. Unfortunately, as you can tell from the photo below, the factory positioned one of the test pins incorrectly, meaning it won't ever hit the USB pad. This fix requires a modification to the test jig. Even so, we were able to modify a single Fomu to make contact with the faulty pin, proving that USB works.
Producing Fomus takes time. The circuit board itself is complicated, and it has lots of tiny pieces to it. We will start the first mass-production run soon, which will begin with the PCBs and will end with full Fomu units.
We have many DVT units now that are non-functional due to the various errors mentioned above. That doesn't mean they're entirely useless, though! We will use these DVT units to develop the test jig software, to design the plastic enclosure, and to validate any irreversible changes we may want to make, such as protecting the SPI Flash from inadvertent erasures.
We'll keep you, our wonderful backers, up to date as production progresses. Thanks again for supporting us!
Sean "xobs" Cross