Skip to content
Thierry Kühni edited this page Jan 5, 2022 · 5 revisions

This wiki contains in-depth information about the Hive hardware, its functions and how to build one yourself.

Hive

The Hive hardware is a testrack built on the basis of a Raspberry Pi 4B. The purpose of the entire Hive project is to enable automated testing of the probe-rs software directly on a multitude of probe & target combinations. The goal of this project is to enable every probe-rs developer to have the possibility to build one for personal use to check the code on the desired probes and targets.

Hardware Overview

The Hive testrack consists of the following key parts:

  • 1x Raspberry Pi 4B
  • 1x Probe Stack Shield
  • 1-8x Target Stack Shield
  • 1-... Daughterboards

Where the Raspberry Pi, Probe Stack Shield and Target Stack Shields are stacked on top of each other. Each Target Stack Shield can hold one Daughterboard each. The Raspberry Pi is responsible for running the tests and is the interface of communication with the outside world and the other shields. The Probe Stack Shields contains the necessary connectors to attach up to 4 Probes to the testrack, while the Target Stack Shields contain all the necessary switches to attach each probe to each target on its connected Daughterboard. The Daughterboards in turn contain up to four MCU Targets which can either run at 3.3V or 5V.

The rough dimension of an entire assembly with connected Daughterboards and 8 Target Stack Shields is as follows: 8cm x 17cm x 8.5cm (height x width x depth) Hive

In-Depth Function

The four probe channels contain the required signals for both JTAG and SWD operation. The channels are routed through the stacking connectors on each Stack Shield. Additionally for further testing possibilities there are four GPIO channels which are connected to the Raspberry Pi. Each channel contains four GPIO and one UART bus. Just like the probe channels the GPIO channels are routed through the stacking connectors. Channel overview

Probe Stack Shield

The probe stack shield is very simple and only contains four ARM 10Pin debug connectors to attach the probes to as well as a 3.3V source to provide the reference voltage for the probes. The signals of the connectors/channels are directly connected to the stacking connector of the shield where they are connected to each attached Target Stack Shield.

Daughterboard

The Daughterboard does not contain any functionality except for the four MCU targets. Those are connected to the four provided channels which hold the probe and GPIO connections. Additionally the Daughterboard receives 5V and a 3.3V supply from the Target Stack Shield it is connected to.

Target Stack Shield

The Target Stack Shield contains all the bus switches to connect the provided probe and GPIO channels with its connected Daughterboard. On this shield each probe channel is connected to a bus switch with its associated GPIO channel. The four switches can connect the four channels to a combined internal bus line which in turn is connected to the bus switches that connect to the Daughterboard PCIE connector and the four target channels. With this layout only one target and probe combination can be tested at any given time on a single Target Stack Shield.

The Bus switches are controlled by a 16-Bit IO Expander. The expander is in turn controlled by the Raspberry Pi via an I2C bus. As each of the IO Expanders are connected to the same bus the Target Stack Shields need to be configured for the correct address by using the provided solder-bridges on the shield. Target Stack Shield functional diagram