D U T Control Harness - D U T C Hess
About the project
With the pandemic forcing us to work in new ways, it is now more important than ever to work smart. Using the RT1020 EVK we can create a DUT Control Harness which can be used to control the power supply of a DUT in a lab, and connect via serial and Ethernet to enable remote access from home.
Items used in this project
In the course of developing embedded software for telecoms equipment manufacturers, we are required to interact with a diverse array of prototype routers, switches, and other network hardware. This equipment currently resides in a lab at our Belfast site which, under normal circumstances, we could easily access. With the shift to working from home because of the pandemic, our ability to control, configure, and test this hardware has been greatly diminished.
With the advent of this hackathon we have been spurred to design a harness for the Devices Under Test (DUT) to allow use of the lab without having to leave home. For basic interaction with a typical DUT it requires power (-48V DC/12V DC/110 AC~230 V AC), serial (RS232) (Cisco-style RJ45/DE-9), and a debug Ethernet connection. DUTs also have several other ports/interfaces (Ethernet, DSL, etc.), I2C/SPI for peripherals and Reset Configuration Word (RCW) programming, and LEDs for indication; some boards also have WiFi and clock connections.
For more complex interaction with the DUT, it is useful to look at power consumption and quality, temperature monitoring and cooling, and LED outputs.
The system is based on Zephyr OS. We have extended the Zephyr codebase with SD card support for the MIMXRT1020 EVK and we have an out-of-tree driver for the PCT2075 temperature sensor which we plan to add to Zephyr in the future.
As we only had access to one development board, we used QEMU on x86 to allow for multiple developers to work on the project without needing the hardware.
With DUTCHess you can connect and control the DUT using the web GUI, or the CLI accessible over telnet and directly over USB serial.
DUT power can be toggled using any of the management interfaces
Temperature monitoring can be viewed on the CLI.
Terminal server is accessible via telnet only. Various telnet ports are provided for different baud rates (extensible in software).
Port 21500 - 115200 8N1
Port 25700 - 57600 8N1
TFTP server - Extensible software architecture for adding new storage devices. Currently supported:
TFTP to SD card - This is used for DUTs to boot from the network.
TFTP to I2C EEPROM - Enables flashing of the on-board EEPROM on the DUT with firmware images.
Configuration is accessible via any of the management interfaces; the following are supported:
Future additions to support more complex scenarios could include:
- SPI breakout
- Store serial configuration in a file on SD card
- GPIO breakout
- Ethernet traffic testing (low rate traffic)
- Active cooling (fan control)
- Power monitoring (current draw, power quality to DUT)
- NTP server
- WiFi (for DUTs with WiFi)
- USB serial host
- DUT LED sensing
- IEEE 1588 grandmaster
- OAM testing (IEEE 802.1ag)
For more information please see the README on GitHub.