The Fun Side of FPGAs
Posted 07/31/2020 by Bob O"Donnell
Let’s be honest. Primarily because of the COVID-19 pandemic, the world has gotten pretty serious of late, and most everyone could use a bit of a fun, mental break. That’s why we’ve seen enormous growth and interest in video streaming services like Netflix and Disney+, as well as a huge spike in the purchase and usage of gaming consoles and gaming PCs.
But that sense of fun can extend to other areas as well—even ones that might not initially make your short list of fun things to do. One particularly interesting example is the world of IoT, or Internet of Things.
We’ve all been hearing for a while now how the IoT phenomena was going to lead to an enormous number of smart, connected things and, for the most part, it already has. From connected smart meters, to smart labels, to smart sensors on factory equipment, there are already an abundance of interesting new applications of the technology. Most have fairly serious or important utilitarian purposes, such as predicting equipment failures, remotely monitoring health equipment, or even tracking shipments as they move around the world.
Not all of them do, however. Smart speakers like the Amazon Echo and Google Home, which offer a number of entertaining capabilities, have become some of the most popular IoT devices out there. We’ve also seen quite a few, uh, “interesting” IoT devices, like connected toilets, smart hairbrushes and, well, you get the idea.
What’s most interesting, however, is that thanks to innovations in low-power semiconductors, as well as significantly simplified software tools, it’s also possible to think about all kinds of fun, even wacky kinds of IoT inventions that students or hobbyists can design and build. Obviously, not many of these would likely go onto commercial success, but does that always have to be final goal? After all, there are a lot of people who like to tinker and experiment with electronics and software and the IoT revolution has enabled the creation of a large range of tools that can be used for all kinds of crazy ideas.
Imagine, for example, a smart candy dispenser that can intelligently hand different amounts of candy out based on the age of the person requesting it. Larger, adult-sized hands could be given a larger portion, while smaller child-sized hands, a smaller one. It turns out senior engineering students at Washington State University’s Vancouver campus built an AI-powered device with exactly these capabilities using several different Lattice Semiconductor FPGAs and the company’s software development tools. Specifically, they used an iCE40 UltraPlus™ FPGA in conjunction with a simple camera for hand detection and a MachX03LF™ FPGA to control the motor that dispenses the candy.
Both chips are extremely tiny, low-power devices that could be easily integrated not only into this project, but plenty of others that require small, battery-powered circuit boards. The iCE40 UltraPlus family has the flexibility, capability and software support to run simple neural networks and other AI/ML (Machine Learning)-based algorithms, such as those used to recognize the hands for this project. The MachX03 family is optimized for control PLDs (Programmable Logic Devices), which were used in this project to run the dispensing mechanisms for this project.
Even more important than the hardware, however, are the software tools that allowed the students in this case, but hobbyists, tinkerers or inventors in other instances, to create both the logic inside the FPGAs, as well as the software to control them. One of the beauties of FPGAs is that they essentially provide a blank slate of malleable logic components for engineers to create the exact combination of circuits they need to perform certain functions. As exciting as that may sound, it’s pretty hard to do. In fact, the type of specialized skills necessary to program FPGAs has arguably limited their usage, despite the tremendous potential they offer.
In order to address those issues, Lattice has been working on a variety of new software tools and development platforms to make the process much easier. One of their latest is the Lattice Propel™ design environment which incorporates both Propel Builder for designing the circuits within the FPGA, as well as Propel SDK (Software Development Kit) for writing applications that run on the chip. At the moment, Propel works with the MachX03D line of FPGAs, but the company is planning to add support for other members of its product line down the road.
To make the Propel Builder application useful to even novice FPGA programmers, Lattice has pre-built the IP necessary to implement a variety of different sophisticated circuits, including a 32-bit RISC-V CPU, all via a graphical logic block-based user interface. Over time, the company will be adding even more blocks of IP design into libraries that can be easily accessed from the freely-licensed application.
Ultimately, the goal is to give people who want to come up with serious IoT, industrial or consumer applications, or just some fun, even wacky ideas, with the tools they need to bring their ideas to life. It’s sometimes easy to lose sight of when we get weighed down by the challenges of our current environment, but the advancements we now have access to in semiconductor design and software development are truly creating a world where virtually anything is possible. It’ll be fun, to see how it all turns out.
Bob O’Donnell is the president and chief analyst of TECHnalysis Research, LLC a market research firm that provides strategic consulting and market research services to the technology industry and professional financial community. You can follow him on Twitter @bobodtech.