Hardware Design

The high-orbit view of the ESRB is this simple diagram :

The idea is to combine a microcontroller, an FPGA and a Linux single-board computer so that each can talk to the other two. A logic analyzer interface is added to the mix and allows for spying on those connections and on some of the I/O signals.

The result is a system that offers the advantages of all its separate components :

  • The Linux computer, typically a Raspberry Pi, offers the ease of use of a desktop computer with a familiar, comfortable user interface. It can still be used headless in an embedded application.
  • The microcontroller is easy to program and can implement all sorts of standard interfaces (SPI, I²C, etc…) and real-time processes. It boots instantly and uses very little power.
  • The FPGA can implement any hardware that doesn’t exist in the other two. Or it can be used as a second microcontroller module. Or both.

Due to some clever interconnect routing, it is not necessary for all three main components to be present. The ESRB can work with just any one or two components installed. Thus, no equipment is tied to a project where it isn’t needed.

The logic analyzer interface is here for two main reasons :

  • Facilitating the debugging of the interfaces between the main components.
  • Observing FPGA I/O signals, which can’t be debugged through technologies like JTAG.

This section details the design of the board and is the one reference you need in order to program on the ESRB. Happy reading !