Skip to content

Hardware for continuous integration testing of serial interfaces and microcontrollers

License

Notifications You must be signed in to change notification settings

electricui/electricui-arena

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Electric UI CI Arena

Hardware for continuous integration testing of serial interfaces and microcontrollers. Background and more detailed discussion outlined in this blog post.

PCB Render with annotations

The board (KiCAD files in /hardware) exposes control to a CI build worker to power up any of the USB-UART adaptors in either loopback mode, or connected to any one of the hardware targets for a total test matrix of 72 combinations.

Intended to run tests for hot-plug detection (by controlling the mux or USB power control), disconnection handling (by re-routing serial to the void) and to validate a wide range of microcontroller architectures and their corresponding toolchains.

USB to UART Validation

Up to 8 USB ports are provided behind a USB mux from the host.

Individual power switching is available per-port, with optional routing of the USB-UART adaptor's serial lines to either loop-back, or to one of the target microcontrollers.

The following adaptors are used as test adaptors:

In the future, we hope to add Bluetooth/WiFi adaptors for wireless tests against compatible targets.

Microcontroller Validation

8 power-switched targets are supported with connections to hardware serial. The Adafruit Feather specification is used, as a majority of planned targets are available in Feather format.

The following boards are used as test devices:

Test hardware will be flashed with a mix of native 'bare metal' images, and at least one target will act as validation of the Arduino framework.

When populating the test Feather boards with headers, use 'stacking' headers to allow for future sensor/display additions to targets.

Supervisory Control

An additional Feather is provided to act as the supervisor. This connects to the CI server using a ethernet featherwing.

The supervisor (through I2C expanders) controls power switches to each of the serial adaptors and test devices, and has 2 IO lines to each microcontroller to allow for input/output checks.

An analog line is shared across all modules, with the intent of using the supervisor's DAC output, allowing additional tests.

Firmware is in /firmware

Manufacture

  • I used JLPCB's 4-layer JLC7628 controlled impedance process.
  • No stencil was ordered, as 2 units with low SMD part count is easy enough to paste by hand.
  • All components were available from Digikey.
  • Microcontroller targets were bought from Sparkfun and Adafruit (via Digikey)
  • Assembled per board costs just under $100AUD.
  • Loaded price (with listed microcontrollers, USB-serial adaptors, supervisor w ethernet) approx $500AUD.

See /hardware/output/arena-BOM.html for PCB BOM.