Interview with the Creators: ICE-V Wireless FPGA
Eric Brombaugh and Michael Welling have been the perfect internet friends for over 12 years. The duo met over an IRC channel about Linux development, and stood in contact.
“I wanted to get my feet wet and try some new things…I started looking at Michael’s Discord and he had stuff on there about RISC-V,” said Brombaugh. “I tried a little board based on RISC-V (from Espressif), and so the next thing to try was to integrate it with an FPGA…we started to kick the idea around on Discord and got feedback for it to be wireless. We started brainstorming the idea of having a wireless, ESP32 part, battery, FPGA and making it super accessible with a general purpose IO.”
Brombaugh is mentioning the duo’s latest project: “The ICE-V Wireless”, currently available on GroupGets for backing. The ICE-V Wireless is an ICE40UP5K+ESP32-C3 development board, allowing Wi-Fi and Bluetooth control of the FPGA by combining an Espressif ESP32C3HN4 SoC with a Lattice iCE40 FPGA. Additionally, several ESP32C3 GPIO pins are available for additional interfaces, such as serial, ADC, or I2C.
Product Details
Brand / Manufacturer
QWERTY Embedded Design, LLC
Manufacturer Part #
ICE-V-Wireless
Product Description
ICE-V Wireless is an ICE40UP5K+ESP32-C3 development board, allowing Wi-Fi and Bluetooth control of the the FPGA by combining an Espressif ESP32C3HN4 SoC with a Lattice iCE40 FPGA. Additionally, several ESP32C3 GPIO pins are available for additional interfaces, such as serial, ADC, or I2C.
Features:
- ESP32-C3-MINI
- ICE40UP5K
- PMOD x3
- RGB
- LiPo power / charger
- USB-C
- PSRAM
Goal
100 units
Price
$75.00 USD (+shipping)
Units
250
GroupGets chatted with the team to discuss the how, why and what of making the development board in the video below. Under, you can find the abridged transcript!
What have you guys done in your experience as hardware and software developers?
Brombaugh: Ever since I left Intel in 2004, and started working for a bunch of little startups. I transitioned to another job in a local outfit in the Phoenix area. I’ve been doing a lot of work in search and rescue radios, and air traffic control stuff. That was a lot of FPGA stuff, and along the way I got interested in the open source FPGA work that folks like what Claire Wolf doing. I got involved in some [projects] that Matt Venn was doing which led to some products using the Lattice FPGA.
Welling: I've been an independent contractor under the guise of QWERTY Embedded Design for quite some time now. I started out as a sole proprietor and now it's the LLC and helps get larger contracts. I've been doing the same thing as a contractor as I did for years before that.
I primarily work on Linux board support and printed circuit board design. My experience is pretty broad to make myself available for projects. I do a lot of open hardware stuff, and I started doing that when I started QWERTY because I wanted to show off my skills in a kind of productive way instead of making random FPGA stuff.
I went into crowdfund projects. This will be my fourth project. I like collaboration with other people. That’s where we designed the ICE-V. It virtually spawned from a conversation on the Discord channel, and it grew from there. After I saw Eric’s board, I knew we had to make this thing.
Brombaugh: Yeah, we met about 12 years ago or so. There was an IRC channel devoted to people who were doing embedded Linux stuff. And I got involved over there because of the Beagle Board. There were a lot of people who were doing things on the Beagle Board that were on that one particular channel. The IRC channel has changed over the years, but Michael and I stood in touch.
Welling: Yeah, we worked on open hardware projects before it was cool. I saw that he had posted his projects and shared his designs on his web page, and it was always clean and fairly straight forward.
The Beagle Board pulled me into the open hardware community and that’s where I met Drew Fustini ages ago. He’s on the board for BeagleBoard, and I got to help design the PocketBeagle. They [BeagleBoard team] invited me to that IRC channel, and that’s how I got to meet the guys. I haven’t met Eric in person, but I did have a chance to meet the other guys!
Why was the Lattice ICE part chosen compared to others that may, or may not, be on the market?
Brombaugh: Like I said, I’ve been using the Lattice ICE40 parts for 7 years now and the main reason that I’m attracted to them is because they are well supported by the open source FPGA toolchain. That’s the full suite of synthesis that was initially put together by Claire Wolf, and now there’s the YosysHQ group.
I built a few small projects that integrated the ICE40 parts before the open source tools were available. I integrated the ICE40 FPGA with an ESP32 microcontroller, and did a few small things with software defined radio and audio synthesis. Of course these days with the huge silicon shortage that's been going around, the STM32 parts that I was so comfortable with over the years, they're almost impossible to get now, but the folks from Espressif have a nice family of parts that are still available, inexpensive and have wide capabilities.
I wanted to get my feet wet and try some new things…I started looking at Michael’s Discord and he had stuff on there about RISC-V,” said Brombaugh. “I tried a little board based on RISC-V (from Espressif), and so the next thing to try was to integrate it with an FPGA…we started to kick the idea around on DIscord and got feedback for it to be wireless. We started brainstorming the idea of having a wireless, ESP32 part, battery, FPGA and making it super accessible with a general purpose IO.
We started brainstorming about it being wireless, using an Espressif ESP-32 part, battery, and general purpose IO. It all came together, so it was probably like 3 months ago that we had the first-working hardware of the one that I designed. It was a standalone chip, with no pre-certified module that the current one has. Then I started putting my nose to the grindstone of what it takes to make the wireless interface work.
Part of the problem with working with the ICE40 boards I have worked in the past, they connect almost exclusively over USB. If you want to program the FPGA, you have to plug it into your computer and use these old, clunky serial interfaces that are kind of slow. I was looking for a way to speed it up, so when I got the WIFi based networking to load the FPGA on the ICEV, I was amazed at how fast it goes. That’s what stood out to me on the distinction that this board has to others: you don’t have to have it connected by USB. You can still talk to the FPGA from across the building. You can immediately start working to see if it’s doing what you want.
To address a question posed by the CNX Software forum: “It’s particularly unclear to me what battery-powered application could benefit from combining an FPGA and wireless module…what applications would the [ICE-V] be best for?
Brombaugh: It's wireless, so battery power operation would be a good thing because you can take it off and stick it somewhere where it wouldn’t be easy to get at. I've done some experiments; I've got a 2000 milliamp power battery that I got hooked up to the prototypes here and I've been able to run for two days between charges. You can combine it with a solar powered charger, and you might conceivably put it in a remote location and operate continuously. Why would you want to do that? It’s a really good question.
Now, I've got a couple of applications in mind. I've got a few little, pmod boards that would plug directly into this thing that would allow you to do, you know, software defined radio reception.
Imagine one of the applications like that is an ADSB receiver. It’s kind of a hobbyist thing; you can use a receiver that can pull in the signals that all commercial aircraft broadcast while they're in flight. You have to have an antenna that's located in a high location clear from other electrical equipment that would interfere with it in order to get the best quality reception. Well, what if you were to take one of these things [ ICE-V Wireless], put it right next to the antenna, put it up on the roof and have all of the traffic routed in your network directly from the board itself with no other servers. That allows you to have the greatest possible signal to noise ratio, and you have the best reception without running long wires through expensive cabling.
There's a lot of other remote sensing things that I can think of, you know, suppose you wanted to put some sort of a sensor network, you know, say around your garden. For instance, if you wanted to locate that outside in the garden, you have an FPGA collecting data and routing it into the WiFi network through the ESP32C3.
Welling: I think the application is up to the imagination on this one.
FPGAS are like an open book. You can make whatever you want of it within the limits of the number of lookup tables, or logic space. We're just using it to program the FPGA for now, but that doesn't mean that's how it's going to end up working for applications. You can do interactive displays, robotics, etc. There's a lot of things you can do. It's just a matter of figuring it out. All the applications will be niche, and we're not saying it's not going to be like a niche market because I mean, we're only making a max of 250 on the first try.
It's a very niche product, and that's kind of where GroupGets shines. They allow people to create small batch products and get them out to people, letting things grow from there. You can validate if your product is worth something, and if people “buy this thing” - you can work on refining it and bringing in new features. The applications are so immense since there’s so many places that people can contribute.
There's so many [applications] it's hard to kind of list more, you know? It’s to have fun with FPGAs.
Brombaugh: Right - we're not we're not trying to be the be all, end all of Raspberry-Pi of FPGAS here. Despite the silicon shortage, we did find an availability of the FPGAs. Then two weeks later, they were all gone and we managed to get them!
There's a lot of other FPGA based maker type products that are out there and they're flourishing because they're usable for so many things. You can't underestimate the value of just using it in an educational context.
Michael is looking into what it takes to integrate this with some of the educational type things like Icestudio and things like that. We're trying to recruit some other beta testers who can integrate this with other development environments like Zephyr. And I'm looking into what it takes to bring it into the Arduino Integrated Development Environment.
All this stuff is going to go on our Github, so everybody can go up there and grab some source code and basically start ripping and tearing at it and do whatever is best for their particular applications. We're not having any illusions about this thing being a “100% productized thing” that somebody can pick up and it's immediately useful to them. This is definitely something that takes user assembly required.
Welling: Yeah, I'm working on LiteX support and possibly CircuitPython / MicroPython for the ESP just to kind of expand the ecosystem a little bit. So yeah, it's been kind of there's a lot of work to do and not a lot of time to do it.
You both have been updating the campaign with more upcoming features. Can you detail what those are?
Brombaugh: For the original version I made, you had to be comfortable with the Espressif environment. You really couldn't use it on your own wireless network unless you were comfortable doing those operations. Our goal here is to add what's called “soft access point” to it, which would allow the user to use it out of the box, and plug it into a USB power supply and it will immediately put up its own little network with a Web page on it that allows you to go in and tell the name and password of the network, and the system can reconfigure itself and talk to it from any machine you have. So that's just sort of a nice way to make it more friendly for people who are not completely comfortable working with the developer tools that we use.
Welling: Within the first version of the board, I noticed that the “push” buttons are a little close. If you populate the header, it was hard to pull them back and so I had to move the silk and push them up. There was also a piece of routing I missed, but there will not be any BOM changes. We may have a slightly different resistor, but it shouldn’t be a problem sourcing a resistor. The ICE40 and ESP32 are locked in place, so it’s completely small, incremental changes for ergonomics when you’re using it.
We preordered a number of parts. If we didn’t get the ICE40 boards when we did, we wouldn’t have had access to them until next year. I didn’t want to risk waiting around, so once the campaign closes - if they’re only at Microchip, there’s a risk of them running out. Happily, GroupGets has taken care of funding that.
Where to learn more about, ask more questions and how to back your own ICE-V Wireless:
Link to the campaign: https://groupgets.com/campaigns/1036-ice-v-wireless
Link to get involved with the project on Discord: https://discord.com/invite/3mx4ADh
Links to contact the creators:
Eric Brombaugh: Twitter
Michael Welling: Twitter