The ICEd ESPresso Is a Cool, Refreshing Approach to Working with Two of Our Favorite Chips!
There have been a number of hardware revelations in the past few years — from machine learning on cheap, dime-a-dozen microcontrollers, enabling vision systems galore — to ultra-low power energy harvesting, allowing your devices to run battery free (in some cases)!
While these two topics are really still emerging — you can do edge ML in your Arduino IDE, but it's certainly not in every makers library list just yet — there are two other hardware sub-topics that have really taken hold in the passing couple of years.
The first, echoing the industrial IoT wave (indeed, piggybacking off it, in our volumes...) is that everything shall have Wi-Fi, enabling the seamless communication of data form our myriad connected devices up to TheCloud, where it can act to trigger other devices in our Rube Goldberg machine of interconnected gadgets.
The second trend we've really seen take off, is that of hobbyist and maker accessible FPGA tooling, such as the incredibly popular iCEBreaker boards, Orange Crabs (🍊🦀!), and numerous more.
Yes, the once unobtanium technology of freely programmable gate array devices is now not only available to, but accessible to the average maker. We can emulate processors, or craft custom peripherals on the fly, as needed — without breaking the bank!
So if we take a look at these two systems in conjunction, the idea of a FPGA system that can reconfigure on a whim, while also having connectivity to stream data in and out as needed, sounds pretty damn refreshing.
Although we've seen some Wi-Fi and FPGA fusions before, like the Radiona ULX3S, sometimes you want a more pint-sized board that you can order, to go...
Matt Mets (@cibomahto) — of BlinkinLabs has sought to fuse these two technologies together in a portable prototyping package so small that it can fit near enough into any project you can think of!
With a footprint near enough on par with that of an Arduino Nano 33 IoT / BLE, this diminutive, cleverly named board packs a dynamic duo! Which iconic ICs are laid out? Well, where as we could take a litany of suggestions based off the cell shaded board render above, we'll save you from speculating any more — read on, and check out the HLD layout below.
We can see the two main parts in the design clearly marked out in the diagram above: A Lattice Semiconductor iCE40 UP5K FPGA, paired with an Espressif Systems ESP32-S2F4 Wi-Fi SoC.
If you want Wi-Fi, there's pretty much one player in the game that practically any maker will turn to — and that's Espressif Systems.
With a product range that nearly all of us will have picked at least one part from, the people that originally bought us the cheap and cheerful ESP8266 are also the same team that have more recently delivered the ESP32 — everyone's favorite Wi-Fi Wunderchip!
While you can jump out and buy an "ESP32 dev board," if you're serious about slinging packets over the airwaves, you might delve down and dive into the different ESP32 flavors available.
Here, on the ICEd ESPresso, we see the ESP32-S2F(4) — with a pretty beefy feature set, laid out below!
- Xtensa 32-bit LX7 dual-core processor that operates at up to 240 MHz
- 2.4 GHz Wi-Fi & Bluetooth 5 (LE)
- 512 KB of SRAM and 384 KB of ROM in package, and SPI, Dual SPI, Quad SPI, Octal SPI, QPI, and OPI interfaces that allow connection to flash and external RAM
- Support for vector instructions in the MCU, providing acceleration for neural network computing and signal processing workloads
- Peripherals include 44 programmable GPIOs, SPI, I2S, I2C, PWM, RMT, ADC, DAC and UART, SD/MMC host and TWAITM
- Reliable security features ensured by RSA-based secure boot, AES-XTS-based flash encryption
With a Molex 3D-printed MID helical PCB-mount antenna, similarly seen on the ObsidianBoa, et al, we're confident that this Wi-Fi chipset will have no woes when it comes to reach and range!
With the Wi-Fi aptly taken care of by the ESP32, we look to the other IC package on this PCB, and find probably one of the most well-known FPGA devices on the (maker) market — the Lattice Semi ICE40 UP5K.
The same part used on the iCEBreaker and UPDuino boards, the ICE40 has a whole heap of documentation, examples and existing projects from the community — perfect for drawing inspiration and reference from — something you may well find you appreciate if you've yet to cut your teeth in writing HDL!
With 5,280 LUTs, 1024 kbit SPRAM, on-die oscillators at 10kHz and 40MHz, I2C and SPI cores, and more, this feature-packed FPGA capable of some fierce antics — not least a full implementation of a RISC-V CPU!
So, with two powerful parts in such close proximity, the pressing question is how to allow them to perform at peak throughput, whipping data back and forth as fast as needed.
Well, some of you who play with the ESP parts, and others who work with extenrnal memories will certainly have heard of qSPI (Quad SPI).
Similar to SPI, this interface is a synchronous interface, with data shifted in conjunction with a clock signal.
The main difference is that instead of the COPI / CIPO lines we normally see used to shift data in and out of a device, we now see 4, separate data lines in place, and where as data flow was dependant the maximum number of bits you could toggle in one direction down either of the CIPO / COPI lines, QSPI enables all 4 lines to shift data bi-directionally, by sequencing reads and writes in time.
With this physical interface in place between the two parts, and DMA driving transfers without the need for CPU intervention, Mets suggests a inter-chip transfer rate of approx. 5 MB / second — that's blazing fast for a hobbyist board, though times are catching up!
Well, Mets suggests that with the ESP32 more than capable of running high-level languages such as CircuitPython, and of course, anything else you can throw at it (ESP-IDF or Arduino environments, etc), the sky should pretty much be the limit. That, or your imagination, whichever comes latter.
If you've got some burning ideas for this feature packed board, bump on over to the wish list sign up page (Google Doc link here), and let Mets know that the world pines for an ICEd ESPresso!