esp32.diy

Shrike-fi: ESP32-S3 Meets FPGA on One Affordable Board

Oct 13, 2026 · 5 min read

Intermediate 521 stars 92 forks Verilog GPL-2.0 Updated 2026-10-01
TL;DR Shrike-fi puts an ESP32-S3 and a 1120-LUT FPGA on a single breadboard-friendly board, giving makers wireless connectivity and reconfigurable hardware at a low price. It supports Verilog for the FPGA side and MicroPython, CircuitPython, or embedded C for the ESP32-S3 host.
What you need
  • ESP32-S3
  • 1120 × 5-input LUT FPGA
  • USB Type-C
  • QSPI Flash 8 MB
  • Optional QSPI PSRAM up to 8 MB
  • Optional on-board BMS
  • PMOD compatible connector
BoardShrike-fi
MCUESP32-S3
FPGA1120 × 5-input LUTs
LanguagesVerilog, MicroPython, CircuitPython, C
LicenseGPL-2.0 (software) / CERN OHL v1.2 (hardware)
ConnectivityWiFi + BLE

What You Will Build

The Shrike-fi is the wireless member of Vicharak's Shrike family — a compact development board that combines an ESP32-S3 microcontroller with a 1120 × 5-input LUT FPGA on the same PCB. The two chips are wired together through a dedicated FPGA-to-MCU IO interface, so the ESP32-S3 can talk to custom digital logic you write in Verilog while simultaneously handling WiFi, BLE, and your application code.

This makes the board useful for projects that need both the flexibility of reconfigurable hardware (custom peripherals, signal processing pipelines, protocol bridges) and the convenience of a wireless-capable microcontroller. Because the hardware design and all toolchain software are fully open-source, you can inspect, modify, and contribute back every layer of the stack.

What You Need

Hardware

Software

The full pinout, including the FPGA-to-ESP32-S3 communication pins, is published on the pinouts page.

Typical use cases

FPGA Learning Platform

Work through one-concept-per-example Verilog tutorials with real hardware, then graduate to full projects without buying a second board.

Wireless Reconfigurable IoT Node

Use the FPGA to handle custom sensor protocols or signal conditioning while the ESP32-S3 sends processed data over WiFi or BLE.

Custom Peripheral Offload

Implement timing-critical peripherals — PWM arrays, protocol bridges, state machines — in Verilog and free the ESP32-S3 for application logic.

Battery-Powered Field Device

Add the optional on-board BMS to build a self-contained wireless device that combines reconfigurable hardware with long-term deployment.

How It Works

The Shrike-fi architecture keeps the FPGA and the ESP32-S3 as peers on the same board rather than treating the microcontroller as a mere programmer.

Build and Flash Steps

The README does not include inline terminal commands, so the steps below follow the documented workflow. Consult the official documentation for the exact commands matched to your OS.

  1. Get the board — order a Shrike-fi from the Vicharak store (link in the repository README).
  2. Set up the toolchain — follow the toolchain setup guide on the documentation site. Vicharak commits to keeping every piece of Shrike software open-source.
  3. Clone the repository and browse the examples — find the repository at github.com/vicharak-in/shrike. The examples/ folder is structured as one concept per example, making it a good starting point for learning the FPGA-MCU interaction.
  4. Write or pick a Verilog design — open any example, read through the HDL, and modify it or start your own.
  5. Synthesise and upload the FPGA bitstream — use the project toolchain commands documented on the site to synthesise your Verilog and flash the FPGA over USB Type-C.
  6. Flash the ESP32-S3 — upload your MicroPython, CircuitPython, or C firmware to the ESP32-S3 using the same USB Type-C cable.
  7. Check pinouts — verify your connections against the pinouts page, paying attention to the FPGA-to-ESP32-S3 communication pins if your project uses the inter-chip interface.
  8. Test with the user LEDs — both LEDs are available as simple targets to confirm your bitstream loaded and your firmware is running before moving to more complex IO.

Example Projects and Community Builds

The Shrike repository separates teaching examples from full builds. The examples/ folder in the main repo covers individual concepts — a good place to learn. Finished projects live in the companion shrike_projects repository, where you can browse what others have made and submit your own.

Vicharak also runs occasional bounties for specific features or integrations; check bounty.md in the repository for active tasks.

The Vicharak community is active across Discord, Reddit, and their own discussion forum — all linked from the README — which is useful when you hit toolchain questions or want feedback on a design.

Ideas to Extend It and Limitations

Ideas to extend

Limitations to keep in mind

Verdict

Shrike-fi is a genuinely useful board for anyone who wants to learn FPGA design without abandoning the familiar ESP32 ecosystem — the WiFi, BLE, and MicroPython support lower the entry barrier considerably. The fully open-source hardware and software stack, combined with a growing community and project repository, make it a solid long-term platform rather than a one-off dev kit. The modest 1120-LUT fabric keeps scope realistic for learning and peripheral offload, which is exactly what the board is designed for.

Sources

github.comvicharak-in/shrike — repository & README vicharak-in.github.ioOfficial website

Facts in this article come from the project's public README and GitHub metadata at the time of writing. Images belong to their respective owners and link back to the original source.