1 - Tanmatsu

Tanmatsu™ is the dream terminal device for hackers, makers, and tech enthousiasts. Based around the powerful ESP32-P4 microcontroller, this device provides an accessible way to make, hack, and tinker on the go.

Tanmatsu™ lets you program on the go and communicate over long distances using LoRa whilst also providing advanced connectivity and extendability options for hardware hacking and development.

tanmatsu

Features

Tanmatsu™ is based around the upcoming ESP32-P4 SoC by Espressif: their most powerful RISC-V microcontroller yet. With its 400MHz dual-core processor and 32MB of built-in PSRAM it makes the ideal platform for powerful processing on the go whilst still maintaining the ease of use one expects form a microcontroller platform.

In addition to the powerhouse ESP32-P4 application processor we have included an ESP32-C6 WiFi, Bluetooth Low Energy, and IEEE802.15.4 wireless radio module. This module enables wireless internet access, as well as access to local mesh networking like Thread and ZigBee in a hacker friendly way.

A LoRa radio module provides access to LoRa networks such as long distance mesh network services and (G)FSK modulated classic 433 or 868MHz communication, depending on the LoRa module installed.

The device has 16MB of built-in flash storage for firmware and applications, expandable using a micro SD card. The micro SD card socket supports SD cards at 3.3v and 1.8v voltage levels (SDIO 3) for extra fast transfer speeds.

A big MIPI DSI display and the QWERTY keyboard make for great ease of use both in the workshop and on the go.

In addition to all the built-in functionality the device allows for expansion modules using its two expansion ports. The back facing expansion port allows for expanding functionality using personality modules, while the side facing expansion port allows for easily connecting a wide variety of PMOD and SAO compatible accessories.

A QWIIC style expansion connector allows connecting the device to a wide range of sensors available from manufacturers such as Sparkfun and Adafruit, it supports both the I2C and the new I3C communication bus standards.

A 3D printed case is included with every Tanmatsu™, this sturdy case will allow the device to be used everywhere whilst keeping the electronics safe and protected.

Software

The launcher firmware allows starting user made applications and in addition it provides access to a marketplace for applications where developers can publish their creations. Apps can be downloaded and installed directly on the device.

Hardware features - summary

  • ESP32-P4 dual-core 400MHz RISC-V microcontroller with 32MB of built-in PSRAM
  • ESP32-C6 radio module for WiFi, BLE and IEEE 802.15.4 mesh networking connectivity
  • Ai-Thinker Ra-01S or Ra-01SH module for long range communication using LoRa modulation and generic (G)FSK modulation for short range classic wireless radio applications at 433MHz or 868MHz respectively
  • 16MB of built-in flash storage for firmware and applications
  • Fast and big 800x480 MIPI DSI display
  • QWERTY keyboard
  • Lithium polymer battery
  • Audio output via headphone jack and speaker
  • I2C and I3C connectivity via Qwiic compatible JST SH style connector
  • SD card socket supporting SD cards at 3.3v and 1.8v voltage levels (SDIO 3)
  • Side facing expansion port with both SAO and PMOD capabilities
  • Back facing expansion port for expanding functionality using personality modules

Software features - summary

  • Launcher menu for easy access to multiple applications and firmwares
  • Access to user generated content and applications repository via the hub app

Open source

The hardware design will be made fully open source and available under a permissive license (CERN-OHL-P). The design can be edited using the open source PCB CAD application KiCAD, allowing everyone to edit the design without any roadblocks.

The board support package and launcher firmware will also be made open source under a permissive license (MIT), enabling modifications and improvements by the community and granting users and developers complete freedom and control.

Personality modules

Whilst the base Tanmatsu™ device already provides lots of functionality we plan on creating and making available multiple personality modules for extending the functioality in ways useful to you.
More information about the planned personality modules will be made available soon.

1.1 - Tanmatsu: hardware

Annotated photo of back of PCB

WiFi, BLE and IEEE802.15.4 radio module

This ESP32-C6 based module provides the board with access to Wifi, BLE and IEEE802.15.4 (mesh network) connectivity while also controlling the LoRa radio module.

Camera connector

The camera connector is used to connect a CSI camera mdoule. It is pinout-compatible with the camera connector on the Raspberry Pi Zero and 5. Note that software support is limited to a subset of Raspberry Pi compatile camera module sensor chips such as OV5647.

QWIIC & Stemma QT compatible I2C & I3C connector

This connector can be used to connect external I2C or I3C based accessories. Both Adafruit and Sparkfun make a variety of modules and cables which could be connected to this port.

USB-C device port

This port is used to charge the battery, to program and debug the ESpP32-P4 and ESp32-C6 microcontrollers and to install apps and browse files from your computer.

USB-A host port

This port can be used to connect an USB device to the Tanmatsu.

SD card slot

Accepts micro SD memory cards including modern high speed SDIO 3.0 cards.

Battery connector

Allows for connecting a single cell Lithium Polymer or Lithium Ion battery cell. Using a protected cell is mandatory. Unprotected cells could potentially be drained below their lowest allowable voltage, which causes damage to the battery. Current control, over voltage protection and propper constant voltage/current charge control are is built-in into the Tanmatsu mainboard.

Sensor connector

Can be used to connect an I2C connected sensor PCB.

1.1.1 - Tanmatsu: specifications

This section lists the technical specifications of the Tanmatsu hardware.

Note: information on this page is actively being worked on and might contain accidental errors and inaccuracies.

Physical dimensions

Size of the device including the 3D printed case:

  • Width: 12 cm (4.72 in)
  • Length: 13.5 cm (5.31 in)
  • Height: 1.8 cm (0.71 in)

Weight: 215 g (0.47 pounds) including case and battery

Case

See case.

Peripherals

Display

  • Model: SWI LH397K-IC01
  • Size: 3.97 in diagonally, 51.84 x 86.40 mm
  • Resolution: 480x800
  • Colors: 65536 colors (16-bit / RGB565)
  • Controller: ST7701S
  • Interface: MIPI DSI (2 lanes)
  • Brightness: 330cd/m2

Note: display supports 16M colors (24-bit / RGB888) but current software can not make use of this mode.

Nicolai Electronics developed an ESP-IDF component for configuring the MIPI DSI peripheral in the ESP32-P4 for use with this display.
The component also allows for easy switching between the display on the Tanmatsu and the display included with the official ESP32-P4 development kit.

The display will be available as a spare part from our webshop once Tanmatsu is shipped.

Keyboard

  • Full 69-key alphanumeric keyboard with colored 6 function keys
  • Metal dome sheet for tactile feeling
  • LED backlight (white)

The keyboard has been developed by our awesome friends at Solder Party.

The keyboard and corresponding metal dome sheet will be available as a spare part in our webshop once Tanmatsu is shipped.

Battery

Single cell protected Lithium Polymer battery with PH-2.0 style connector.
The connector and pinout are compatible with the battery connector on Adafruit boards.

  • Capacity: tbd (at least 2000 mAh)
  • Connector: PH-2.0
  • Chemnistry: Lithium polymer
  • Single cell 3.7 volt

The battery will be available as a spare part in our webshop once Tanmatsu is shipped.

Connectors and interfaces

On the outside of the case:

  • USB-C device port connected to an USB hub. Allows access to:
    • The ESP32-P4 USB interface (PHY 1, defaults to USB-serial/JTAG debug interface but can be remapped to custom USB functions by software)
    • ESP32-C6 USB-serial/JTAG debug interface
    • Personality module expansion port (provides access to an optionally connected USB device on a personality module)
  • USB-A host port (480 Mbit superspeed USB 2.0), provides 1A of current with automatic current limiting
  • Qwiic and Stemma-QT compatible 4-pin SH connector for connecting I2C and I3C accessories
  • 3.5 mm headphone jack
  • CATT (Connect All The Things) connector: combined PMOD and SAO compatible 2.54 mm pinsocket optionally also usable as JTAG interface for debugging the ESP32-P4 application processor
  • Three push buttons (Power, up and down). Holding down the down button when applying power puts the ESP32-P4 into USB download mode for easy firmware recovery
  • Micro SD card slot compatible with SDIO 2 and SDIO 3 cards at 3.3v and 1.8v voltage levels
  • (optional) SMA antenna connector for LoRa antenna

On the inside of the case:

  • PH-2.0 2-pin battery connector
  • PicoBlade 2-pin speaker connector for 8 Ohm speaker
  • Raspberry Pi camera compatible 22-pin MIPI CSI camera interface
  • IPEX-1 antenna connector for LoRa antenna
  • Personality module connector: 36-pin 2.54 mm pinsocket with:
    • Access to power rails (5V, Vbatt, Vsys and 3.3v)
    • USB hub downstream port connected to the USB-C port via an USB hub
    • Internal I2C bus (can be used for sensors and for an identification EEPROM)
    • 14 GPIO pins
    • ESP32-P4 USB interface (PHY 2) or 2 extra GPIO pins
    • UART interface or 2 extra GPIO pins
    • I2S interface or 4 extra GPIO pins (shared with audio codec, when used as GPIO audio functionality is unavailable)
    • I3C bus (shared with 4-pin SH connector) or 2 extra GPIO pins

Chips and modules

WiFi, BLE and IEEE 802.15.4 radio

Module: Espressif Systems ESP32-C6-WROOM-1-N8

  • CPU: 32-bit RISC-V single core microprocessor, up to 160 MHz
  • RAM: 512 KB
  • WiFi: WiFi 6 on 2.4GHz
  • BLE: 5.3
  • Mesh networking: IEEE 802.15.4-2015 protocol, supports Thread 1.3 and Zigbee 3.0
  • Flash: 8 MB

More information can be found in the Datasheet.

Application processor

Chip: Espressif Systems ESP32-P4NRW32

  • CPU: 32-bit RISC-V dual core microprocessor, up to 400 MHz
  • RAM: 32 MB
  • Flash: 16 MB

The datasheet for this chip is not yet publicly available

Management coprocessor

Chip: WCH CH32V203C8T6

  • CPU: 32-bit RISC-V single core microprocessor, up to 144 MHz
  • RAM: 20KB
  • Flash: 64 KB

More information can be found in the Datasheet.

The management coprocessor is responsible for reading the keyboard matrix and power management. It presents itself as an I2C peripheral on the internal I2C bus of the Tanmatsu and provides the following services:

  • Keyboard events
  • PWM control for the display backlight
  • PWM control for the keyboard backlight
  • Real Time Clock (RTC) backed by watch crystal
  • Alarm wakeup
  • PMIC control
  • Power switching for USB-A port
  • Power and boot-mode control for the ESP32-C6 radio module
  • Power switching for audio amplifier
  • Headphone detection
  • Addressable LED control for the 6 built-in addressable LEDs

The firmware for this chip will be made available under terms of the MIT license after the Tanmatsu becomes available in April 2025. Modifying the firmware is possible but is not recommended.

The firmware of the coprocessor can be updated from the ESP32-P4 application processor, for this Nicolai Electronics developed an ESP-IDF component capable of reprogramming CH32V20x and CH32V30x microcontrollers from the ESP32-P4 application processor.

LoRa radio

The PCB footprint supports a range of radio modules from Ai-Thinker. Software support will initially be provided for the RA-01SH 868 MHz band SX1262 based and the RA-01S 433 MHz band SX1268 based modules.

All Tanmatsu boards will be delivered with a module which has the IPEX-1 antenna connector installed. Optionally an SMA antenna connector can be installed to allow connecting standard external LoRa antennas. Tanmatsu will be provided with either an internal IPEX-1 antenna or a basic SMA antenna depending on the option chosen.

Audio

Everest Semiconductor ES8156 audio codec:

  • Hardware volume control via I2C interface
  • Stereo audio DAC

FM8002A mono speaker amplifier:

  • Can be switched on and off using the coprocessor
  • Connected to built-in 8 Ohm speaker

Power management

PMIC

Texas Instruments BQ25895RTW PMIC for battery charging and monitoring as well as DC/DC boost converter for 5 volt rail (to power USB-A port, addressable LEDs and 5 volt pin on the personality module expansion header).

Provides soft power on/off functionality when the device is battery powered and allows seamless transition between battery and USB-C power source.

3.3v rail DC/DC converter

Texas Instruments TPS63020DSJR DC/DC buck and boost converter providing a stable 3.3v rail even when the battery voltage drops below 3.3 volt.

Backlight drivers

Two AP3032KTR backlight driver chips, one for the display and one for the keyboard backlight LEDs.
Brightness controlled using PWM via the CH32V203 coprocessor.

Standby power rail

A small LDO provides 2.5v to the Vbatt rail of the CH32V203 coprocessor even when the device is off. This uses almost no power (theoretically the battery would last over 10 years on a single charge if the device is never turned on, ignoring LiPo battery self-discharge) and allows the Real Time Clock in the CH32V203 coprocessor to keep track of time even when the device is off. A special latch circuit circuit allows the CH32V203 to power on the Tanmatsu using its alarm pulse output by emulating a press of the power button.

Addressable LEDs

Six SK6805-EC20 addressable LEDs controlled by the coprocessor.

Sensors

  • Bosch BMI270 IMU combined accelerometer and gyroscope
  • Header for optional SCD40 or SCD41 CO2, temperature and humidity sensor (not populated, modules are available on AliExpress) or other I2C controlled sensor

Questions?

If you have questions please contact us by joining one of our community chatgroups (Telegram and Discord) or by emailing us.

1.1.2 - Tanmatsu: 3D printed case

Information about the 3D printed case for Tanmatsu.

Note: information on this page is actively being worked on and might contain accidental errors and inaccuracies.

Filament

The 3D printed case and spacer are printed using Extrudr PLA NX2 on Prusa Mini and Prusa XL printers.

Design files

Once Tanmatsu is available the spacer and case designs will be published as STEP and STL files.

The 3D printed case and spacer will both be available as a spare part from our webshop once Tanmatsu is shipped.

Photos

These photos show some of the prototype 3D printed cases, final design will differ slightly because we are still actively working on improving the design for easier manufacturing and better dust protection.







Special thanks

We want to thank our friends over at YTec 3D for developing the Tanmatsu case and designs. Check out their amazing projects.

Questions?

If you have questions please contact us by joining one of our community chatgroups (Telegram and Discord) or by emailing us.

2 - I2C VFD (NE-HCS12SS59T-R1)

Front of board

What is it?

A Samsung HCS-12SS59T 12 character vacuum fluorescent display connected to a custom driver board which takes away all the difficulties of using such a display. The driver board does everything for you, from step-up voltage generation to having a microcontroller that translates between the display and an easy to use I2C interface.

Why did you make it?

I like weird and wonderful displays and this display deserves a spot in cool DIY projects. Unfortunately it is not exactly plug-and-play for use in Arduino, MicroPython or Raspberry pi projects.

What makes it special?

Everything is handled on-board, from generating the required voltages to handling the display control signals. All you have to do is hook up this module via I2C using the QWIIC / Stemma QT connectors on this board. There is two of them allowing for easy daisy chaining with more displays or other QWIIC/Stemma QT boards.

Sources

The hardware design files can be found in the hardware repository and the firmware can be found in the firmware repository.

How to use the device

The device can be connected to a microcontroller via the standardized QWIIC interface.

pinout

The device is compatible with a supply voltage of 3.3 volt. The I2C interface requires a working voltage of 3.3 volt as well.

I2C interface

The default I2C address is 0x10. The address can be changed by bridging the address jumpers on the board. This allows for modifying the I2C address in the range 0x10 up to 0x2F. Jumper 0 increases the address by 1, jumper 1 increases the address by 2, jumper 3 increases the address by 4 and jumper 4 increases the address by 8.

Register map

RegisterNameBit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
0System controlReserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)LED stateTest modeDisplay enable
1Display offsetOffset bit 7Offset bit 6Offset bit 5Offset bit 4Offset bit 3Offset bit 2Offset bit 1Offset bit 0
2Scroll lengthLength bit 7Length bit 6Length bit 5Length bit 4Length bit 3Length bit 2Length bit 1Length bit 0
3Scroll modeReserved (0)Reserved (0)Reserved (0)Loop enableMode bit 3Mode bit 2Mode bit 1Mode bit 0
4Scroll speed LOSpeed bit 7Speed bit 6Speed bit 5Speed bit 4Speed bit 3Speed bit 2Speed bit 1Speed bit 0
5Scroll speed HISpeed bit 15Speed bit 14Speed bit 13Speed bit 12Speed bit 11Speed bit 10Speed bit 9Speed bit 8
6Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)
7Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)
8Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)
9Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)Reserved (0)
10 - 255Data (ASCII)Reserved (0)ASCII bit 6ASCII bit 5ASCII bit 4ASCII bit 3ASCII bit 2ASCII bit 1ASCII bit 0

Scrolling modes

0 = Scrolling disable
1 = Scroll left (increment display offset)
2 = Scroll right (decrement display offset)

Usage

Basic usage

At power on the display is automatically enabled. Writing ASCII text to registers 10 through 255 will make the text appear on the display.

To move the position in the buffer which is shown on the display you can write an offset to register 1 (display offset).

System control

To turn off the display write 0 to bit 0 of register 0, to turn on the display write a 1 to bit 0 of register 0. The LED can be controlled using bit 2 of register 0.

Scrolling

The automatic scrolling feature automatically updates the value of register 2 (display offset) to make the text shown on the display scroll without interaction by the bus master.

To enable automatic scrolling first write the maximum value the offset register should reach by setting the value of register 2 (scroll length). To stop scrolling once the last character of a string of text is shown on the rightmost position of the display set the value of this register to the length of the string minus 12 (the amount of characters the VFD can display).

Then write the speed at which you wish the characters to scroll into registers 4 and 5. This value is a 16-bit number representing the amount of milliseconds to wait before moving to the next character.

If scrolling was used before then resetting the current display offset to 0 makes sure the display starts scrolling from the beginning of the text.

To start scrolling write 1 to register 3. This will cause the text to scroll to the left automatically. Scrolling will stop once the scroll length value is reached. To automatically reset to the start of the string the loop function can be enabled by writing 17 (16, loop enable + 1, scroll left) to register 3.

For better readability adding 12 spaces to the front of the string to be scrolled is adviced, this makes the scrolling text start by scrolling in from the right into a blank screen.

Example Arduino sketch

The following Arduino sketch shows basic usage and how to use the built-in automatic scrolling features of the product.

// This example sketch may be freely used and considered in the public domain
// in countries where releasing code into the public domain is not possible
// this code may be used under the terms specified in the CC0 license
// https://creativecommons.org/public-domain/cc0/

#include <Wire.h>

#define VFD_REG_CTRL         0
#define VFD_REG_OFFSET       1
#define VFD_REG_SCROLL_LEN   2
#define VFD_REG_SCROLL_MODE  3
#define VFD_REG_SCROLL_SPEED 4
#define VFD_REG_DATA         10

#define VFD_SCROLL_DISABLE   0
#define VFD_SCROLL_LEFT      1
#define VFD_SCROLL_RIGHT     2

const int16_t I2C_ADDR = 0x10;

// Functions for reading and writing

void vfd_read_regs(uint8_t reg, uint8_t* val, uint8_t len) {
  Wire.beginTransmission(I2C_ADDR);
  Wire.write(reg);
  Wire.endTransmission(false);
  Wire.requestFrom((uint8_t) I2C_ADDR, (uint8_t) len);
  for (uint8_t index = 0; index < len; index++) {
    val[index] = Wire.read();
  }
  Wire.endTransmission();
}

void vfd_read_reg(uint8_t reg, uint8_t* val) {
  vfd_read_regs(reg, val, 1);
}

void vfd_write_regs(uint8_t reg, uint8_t* val, uint8_t len) {
  Serial.print("I2C write to register " + String(reg) + ": ");
  Wire.beginTransmission(I2C_ADDR);
  Wire.write(reg);
  for (uint8_t index = 0; index < len; index++) {
    Serial.print(String(val[index], HEX) + ", ");
    Wire.write(val[index]);
  }
  Serial.println();
  Wire.endTransmission();
}

void vfd_write_reg(uint8_t reg, uint8_t val) {
  vfd_write_regs(reg, &val, 1);
}

// Functions for using the control register

void vfd_control_led(bool state) {
  uint8_t val = 0;
  vfd_read_reg(VFD_REG_CTRL, &val);
  Serial.println("LED, READ  " + String(val, HEX));
  val &= ~(1 << 2); // Turn off the LED
  if (state) {
    val |= (1 << 2); // Turn on the LED
  }
  Serial.println("LED, WRITE " + String(val, HEX));
  vfd_write_reg(VFD_REG_CTRL, val);
}

void vfd_control_test(bool state) {
  uint8_t val = 0;
  vfd_read_reg(VFD_REG_CTRL, &val);
  val &= ~(1 << 1); // Turn off the test mode
  if (state) {
    val |= (1 << 1); // Turn on the test mode
  }
  vfd_write_reg(VFD_REG_CTRL, val);
}

void vfd_control_enable(bool state) {
  uint8_t val = 0;
  vfd_read_reg(VFD_REG_CTRL, &val);
  val &= ~(1 << 0); // Turn off the VFD
  if (state) {
    val |= (1 << 0); // Turn on the VFD
  }
  vfd_write_reg(VFD_REG_CTRL, val);
}

void vfd_control(bool enable, bool test, bool led) {
  uint8_t val = 0;
  if (enable) {
    val |= (1 << 0);
  }
  if (test) {
    val |= (1 << 1);
  }
  if (led) {
    val |= (1 << 2);
  }
  vfd_write_reg(VFD_REG_CTRL, val);
}

// Functions for using the scroll features

void vfd_set_offset(uint8_t offset) {
  vfd_write_reg(VFD_REG_OFFSET, offset);
}

void vfd_set_scroll_length(uint8_t len) {
  vfd_write_reg(VFD_REG_SCROLL_LEN, len);
}

void vfd_set_scroll_mode(uint8_t scroll_mode, bool scroll_loop) {
  uint8_t val = scroll_mode & 0x0F;
  if (scroll_loop) {
    val |= (1 << 4);
  }
  vfd_write_reg(VFD_REG_SCROLL_MODE, val);
}

void vfd_set_scroll_speed(uint16_t scroll_speed) {
  uint8_t values[2];
  values[0] = (scroll_speed) & 0xFF;
  values[1] = (scroll_speed >> 8) & 0xFF;
  vfd_write_regs(VFD_REG_SCROLL_SPEED, values, sizeof(uint16_t));
}

// Functions for using the text buffer

void vfd_write_text(String text) {
  // This function writes an ASCII string into
  // register 10 to 255

  const size_t max_len = 245; // can store text in registers 10 to 255
  size_t len = text.length();

  if (len > max_len) {
    // Silently limit the length of the string
    len = max_len;
  }

  Wire.beginTransmission(I2C_ADDR);
  Wire.write(VFD_REG_DATA);
  for (size_t index = 0; index < len; index++) {
    Wire.write(text[index]);
  }
  Wire.endTransmission();
}

// Functions for Arduino program

void setup() {
  Serial.begin(115200);

  Serial.println("Initialize I2C bus");
  Wire.begin(); // Initialize the I2C bus

  // Configure the display and show a message
  Serial.println("Configure the display and show a message");
  vfd_set_scroll_mode(VFD_SCROLL_DISABLE, false); // Disable scrolling
  vfd_set_offset(0); // Move to beginning of text buffer
  vfd_write_text("Hello world ");
  vfd_control(true, false, true); // Turn on VFD and LED
  delay(1000); // Wait a bit

  Serial.println("Demonstrate scrolling");
  String text = "            The quick brown fox jumps over the lazy dog 0123456789 !@$%^&*()-_=+";
  vfd_write_text(text);
  vfd_set_scroll_length(text.length() - 12); // Scroll until the last character of the string is on the most right character of the display
  vfd_set_scroll_speed(100); // Scroll one character every 100ms
  vfd_set_scroll_mode(VFD_SCROLL_LEFT, false); // Scroll left then stop
  vfd_control_led(false);
  delay(10000);

  vfd_set_scroll_mode(VFD_SCROLL_RIGHT, false); // Scroll right then stop
  vfd_control_led(true); // Turn on LED
  delay(10000);

  vfd_set_scroll_mode(VFD_SCROLL_LEFT, true); // Scroll left then loop
  vfd_control_led(false); // Turn off LED
  delay(20000);

  vfd_set_scroll_mode(VFD_SCROLL_DISABLE, false); // Disable scrolling
  vfd_write_text("            "); // Clear screen
  vfd_set_offset(0); // Move to beginning of text buffer
  vfd_control_led(true); // Turn on LED

  Serial.println("Starting counter loop");
}

uint32_t counter = 0;
void loop() {
  // Count as fast as we can
  vfd_write_text(String(counter));
  counter++;
}

What does it look like?

Front of board

3 - OpenBMC

OpenBMC is an open source Linux distribution for Baseboard Management Controllers. Nicolai Electronics works on enabling more boards to run this open source firmware instead of manufacturer provided proprietary solutions. More information can be found on the board specific pages.

3.1 - ASRock Rack

ASRock Rack is a hardware manufacturer which has produced multiple mainboards and devices which should be capable of running OpenBMC. More information on the boards Nicolai Electronics is working can be found on the board specific pages.

3.1.1 - ASRock Rack X570D4U

Project status: in progress

The ASRock Rack X570D4U series of mainboards consists of three mainboards with an AMD X570 chipset and AM4 socket. ASRock Rack sells the board in three versions: a cost reduced version without a 10Gbit NIC (X570D4U), a version with an Intel 10Gbit NIC (X570D4U-2L2T) and a version with a Broadcom 10Gbit NIC (X570D4U-2L2T/BCM). These boards contain an Aspeed AST2500 BMC chip. A Baseboard Management Controller (BMC) is a small computer built into the motherboard that allows for out-of-band management. It allows for remote power control, KVM (remote keyboard, video and mouse) control, virtual media insertion and much more.

PropertyValuePart
ProcessorARM1176JZS (ARMv6) @ 800MHzAST2500 SoC
RAM512MB DDR4K4A4G165WE
Storage64MB SPI flashMX25L51245G

These parts make for quite a powerful system, unfortunately the operating system shipped by ASRock Rack is proprietary and dos not allow for easy modification. To allow for a more secure, transparent and customizable experience we are working on adding support for this mainboard to the mainline Linux kernel and the OpenBMC Linux distribution for BMCs.

Official documentation is provided in ASRock Racks manual for these mainboards. Not a all headers and connectors are described in this manual. The pinout of the undocumented connectors and headers can be found on the pinout page.
The BMC has a programming header, a debug serial port, I2C busses and GPIOs.

Project status

Enabling the use of the mainline Linux kernel and OpenBMC on this hardware is an ongoing effort. An initial port of OpenBMC missing most board specific features can be found here.

3.1.1.1 - ASRock Rack X570D4U mainboard: pinout

This page describes the undocumented headers and connectors on the ASRock X570D4U mainboard. The official manual for this mainboard describes most other connectors and headers.

board

BMC debug header

This header labeled BMC_DEBUG1 provides access to the debug serial port of the AST2500 SoC (UART 5). The UART works with 3.3v level signals and provides a 3.3v output and can be found on the bottom left of the mainboard.

Using this port you can access the U-Boot command prompt, the Linux bootlog and a shell.

BMC_DEBUG1

BMC programming header

This header labeled BMC_PH1 provides access to the MX25L51245G 64MB flash chip containing the BMC firmware. Using an exernal SPI flash programmer this port allows for unbricking and easy reflashing of the BMC firmware during development.

This interface uses 3.3v level signals. Connecting the BMC RESET# pin to GND disables the AST2500, allowing an exernal programmer to reprogram the flash chip without interference from the SoC.

BMC_PH1

Manufacturing mode header

This header labeled MFG1 is connected to GPIO H4 of the AST2500 SoC. With the official firmware installed shorting this jumper makes the BMC boot into a special debug mode, dropping to a root shell on the BMC_DEBUG1 port. When running OpenBMC this GPIO is available for custom applications.

Chassis identification

These three headers labeled CHASSIS_ID1, CHASSIS_ID2 and CHASSIS_ID3 are connected to GPIO G1, G2 and G3 of the AST2500 SoC for ID1, ID2 and ID3 respectively. On production boards these headers appear to not have been installed, but they are functional. When running OpenBMC these GPIOs are available for custom applications.

3.1.1.2 - ASRock Rack X570D4U mainboard: I2C busses

This page describes the I2C busses and connected on-board devices on the ASRock X570D4U mainboard.

I2C bus 0

This bus is connected to the AUX_PANEL1 connector. SMBus alert for this bus is connected to GPIO 52 (G4) named input-aux-smb-alert-n.

DeviceAddressAvailable when host is offDescription
AUX panel SMBus header (AUX_PANEL1)YesStandard 2.54mm header, pinout is in manual

I2C bus 1

This bus is used for controlling on-board devices that are used when the host is on.

DeviceAddressAvailable when host is offDescription
PCA9557 IO expander0x1CNoControls the FAN fault LEDs
Unknown device0x1DNoUnknown
Nuvoton NCT6796D-R SuperIO0x2DNoHost temperature monitoring interface (SuperIO)
Nuvoton W83773G0x4CYesTemperature monitoring interface for 10G NIC (Not installed on base model X570D4U boards)

PCA9557 IO expander

PinDirectionFunction
0OutputFault LED for FAN 4
1OutputFault LED for FAN 5
2OutputFault LED for FAN 1
3OutputUnknown / not connected
4OutputFault LED for FAN 2
5OutputFault LED for FAN 3
6OutputFault LED for FAN 6
7OutputUnknown / not connected

Nuvoton NCT6796D-R SuperIO

This chip can read the CPU and chipset temperatures. It should be possible to use the newly added nct6775-i2c driver to use this device.

Using the NCT6775-I2C driver

The OpenBMC port for the X570D4U already includes the nct6775-i2c driver in it’s kernel, but as the SuperIO device only appears on the bus when the host system is powered on the driver needs to be loaded in and unloaded based on power state changes. This has not been implemented yet.

The driver can be manually loaded in using the following command:

echo "nct6775 0x2d" > /sys/bus/i2c/devices/i2c-1/new_device

If the driver was loaded correctly then you should now be able to find a folder called hwmon in the device folder /sys/bus/i2c/devices/i2c-1/1-002d. This folder will contain a symlink to the hwmon interface for the SuperIO chip. If the folder is missing then your kernel does not include the nct6775-i2c driver.

Directly accessing and reading the temperature registers

Alternatively the temperatures can be read using this shell script, for which no kernel driver is required:

#!/bin/bash
i2cset -y 1 0x2d 0x4e 0x04
while :
do
    TSI0INT=$((16#$(i2cget -y 1 0x2d 0x09 | cut -f2 -dx)))
    TSI0FRC=$(($((16#$(i2cget -y 1 0x2d 0x0a | cut -f2 -dx)))>>5))
    TSI1INT=$((16#$(i2cget -y 1 0x2d 0x0b | cut -f2 -dx)))
    TSI1FRC=$(($((16#$(i2cget -y 1 0x2d 0x0c | cut -f2 -dx)))>>5))
    echo "TSI0_TEMP: $TSI0INT.$TSI0FRC °C / TSI1_TEMP: $TSI1INT.$TSI1FRC °C"
    sleep 0.5
done

Nuvoton W83773G

This device is available on the versions of the X570D4U which include a 10Gbit network adapter. It monitors the temperature of the 10Gbit NIC.

cat /sys/class/hwmon/hwmon0/temp2_input

I2C bus 2

This bus is used for connecting to exernal power supplies with SMBus monitoring support using the PSU_SMB1 connector. SMBus alert for this bus is connected to GPIO 54 (G6) named input-psu-smb-alert-n.

DeviceAddressAvailable when host is offDescription
PSU SMBus header (PSU_SMB1)YesMOLEX 70543-0003 connector, pinout is in manual

I2C bus 3

This bus has an unknown purpose.

DeviceAddressAvailable when host is offDescription
Unknown device0x13YesUnknown
Unknown device0x14NoUnknown
Unknown device0x15NoUnknown

I2C bus 4

This bus is used to connect to expansion cards inserted into the PCI-Express slots of the mainboard.

DeviceAddressAvailable when host is offDescription
NXP PCA9545A I2C bus switch0x70YesBus multiplexer for switching between PCIe slots

NXP PCA9545A I2C bus switch

BusPort
0PCI express 16x slot
1PCI express 8x slot
2Unknown
3PCI express 1x slot

I2C bus 5

This bus is connected to the BMC_SMB_1 connector. The BMC_PRESENT_1_N signal on the BMC_SMB_1 connector is connected to GPIO 132 (Q4) named input-bmc-smb-present-n.

DeviceAddressAvailable when host is offDescription
BMC SMbus header (BMC_SMB_1)YesUnknown connector, pinout is in manual (might be MOLEX 353620550)

I2C bus 7

This bus is used for connecting to the FRU EEPROM and the RAM DIMMs.

DeviceAddressAvailable when host is offDescription
RAM DIMM A1 temperature sensor0x1ANo
RAM DIMM A2 temperature sensor????NoNot tested yet
RAM DIMM B1 temperature sensor0x1BNo
RAM DIMM B2 temperature sensor????NoNot tested yet
Unknown device0x30NoUnknown
Unknown device0x35NoUnknown
Unknown device0x36NoUnknown
RAM DIMM A1 SPD EEPROM0x52No
RAM DIMM A2 SPD EEPROM????NoNot tested yet
RAM DIMM B1 SPD EEPROM0x53No
RAM DIMM B2 SPD EEPROM????NoNot tested yet
FRU EEPROM0x57Yes

I2C bus 8

This bus is connected to the IPMB_1 connector.

DeviceAddressAvailable when host is offDescription
IPMI SMbus header (IPMB_1)YesMOLEX 22035045 connector, pinout is in manual

3.1.1.3 - ASRock Rack X570D4U mainboard: GPIO

This page describes the GPIOs of the ASPEED AST2500 BMC on the ASRock X570D4U mainboard.

#IDPower domainPeripheralTypeNameDescription
0A0PV33DGPIOInputinput-locatorled-nState of the locator LED (active low)
1A1PV33D
2A2PV33D
3A3PV33D
4A4I2CI2C bus 8 clock (IPMB SMBus)
5A5I2CI2C bus 8 data (IPMB SMBus)
6A6
7A7
8B0LPVDDGPIOInputinput-bios-post-cmplt-nBIOS has completed POST stage (active low)
9B1LPVDD(Changes on host boot)
10B2LPVDD(Changes on host boot)
11B3LPVDD
12B4LPVDD(Changes on host boot)
13B5LPVDD
14B6LPVDD
15B7LPVDD(Changes on host boot)
16C0(I2C bus 9 clock)
17C1(I2C bus 9 data)
18C2(I2C bus 10 clock)
19C3(I2C bus 10 data)
20C4(I2C bus 11 clock)
21C5(I2C bus 11 data)
22C6GPIOOutput open draincontrol-locatorbutton-nPull low to emulate identification button press
23C7
24D0GPIOInputbutton-power-nState of the power button (active low)
25D1GPIOOutput open draincontrol-power-nPull low to emulate power button press
26D2GPIOInputbutton-reset-nState of the reset button (active low)
27D3GPIOOutput open draincontrol-reset-nPull low to emulate reset button press
28D4
29D5
30D6
31D7
32E0(UART3 CTS)
33E1(UART3 DCD)
34E2(UART3 DSR)
35E3(UART3 RING)
36E4(UART3 DTR)
37E5(UART3 RTS)
38E6(UART3 TX)
39E7(UART3 RX)
40F0(UART4 CTS, LPC HOST BIT 0)
41F1(UART4 DCD, LPC HOST BIT 1)
42F2(UART4 DSR, LPC HOST BIT 2)
43F3(UART4 RING, LPC HOST BIT 3)
44F4(UART4 DTR, LPC HOST CLOCK IO)
45F5(UART4 RTS, LPC HOST FRAME#)
46F6(UART4 TX, LPC HOST SERIRQ#, maybe BMC_PCH_SCI_LPC)
47F7(UART4 RX, LPC HOST RESET IO, maybe BMC_NCSI_MUX_STL)
48G0GPIOOutputoutput-hwm-vbat-enablePull high to connect the RTC battery to ADC9
49G1GPIOInputinput-id0-nPulled low when jumper ID0 is closed
50G2GPIOInputinput-id1-nPulled low when jumper ID1 is closed
51G3GPIOInputinput-id2-nPulled low when jumper ID2 is closed
52G4GPIOInputinput-aux-smb-alert-nSMBus alert for I2C bus 0 (AUX_PANEL1)
53G5
54G6GPIOInputinput-psu-smb-alert-nSMBus alert for I2C bus 2 (PSU_SMB1)
55G7
56H0
57H1
58H2
59H3
60H4GPIOInputinput-mfg-mode-nPulled low when jumper MFG1 is closed
61H5
62H6GPIOOutputled-heartbeat-nControls the green heartbeat LED on the board (active low)
63H7GPIOInputinput-case-open-nHigh while case open button is pressed, low when released
64I0(SYSCS#)
65I1(SYSCK)
66I2(SYSMOSI)
67I3(SYSMISO)
68I4(SPI1CS0# / VBCS#)
69I5(SPI1CK / VBCK)
70I6(SPI1MOSI / VBMOSI)
71I7(SPI1MISO / VBMISO)
72J0GPIOOutputoutput-bmc-ready-nSignals to the host that the BMC is ready (active low)
73J1(guess based on other asrock boards: BMC_PCH_BIOS_CS_N)
74J2
75J3
76J4VGAVGA horizontal sync
77J5VGAVGA vertical sync
78J6VGAVGA DDC clock
79J7VGAVGA DDC data
80K0I2CI2C bus 4 clock (PCI Express SMBus)
81K1I2CI2C bus 4 data (PCI Express SMBus)
82K2I2CI2C bus 5 clock (BMC SMBus)
83K3I2CI2C bus 5 data (BMC SMBus)
84K4(I2C bus 6 clock)
85K5(I2C bus 6 data)
86K6I2CI2C bus 7 clock (FRU and SPD EEPROM SMBus)
87K7I2CI2C bus 7 data (FRU and SPD EEPROM SMBus)
88L0(UART1 CTS)
89L1(UART1 DCD)
90L2(UART1 DSR)
91L3(UART1 RING)
92L4(UART1 DTR)
93L5(UART1 RTS)
94L6(UART1 TX)
95L7(UART1 RX)
96M0(UART2 CTS)
97M1(UART2 DCD)
98M2(UART2 DSR)
99M3(UART2 RING)
100M4(UART2 DTR)
101M5(UART2 RTS)
102M6(UART2 TX)
103M7(UART2 RX)
104N0PWMFAN1 PWM output
105N1PWMFAN2 PWM output
106N2PWMFAN3 PWM output
107N3PWMFAN4 PWM output
108N4PWMFAN6 PWM output
109N5PWMFAN5 PWM output
110N6
111N7
112O0TachometerFAN1 tachometer input
113O1TachometerFAN2 tachometer input
114O2TachometerFAN3 tachometer input
115O3TachometerFAN4 tachometer input 1
116O4TachometerFAN5 tachometer input 1
117O5TachometerFAN6 tachometer input 1
118O6
119O7
120P0
121P1
122P2
123P3TachometerFAN4 tachometer input 2
124P4TachometerFAN5 tachometer input 2
125P5TachometerFAN6 tachometer input 2
126P6
127P7
128Q0I2CI2C bus 2 clock (PSU_SMB1)
129Q1I2CI2C bus 2 data (PSU_SMB1)
130Q2I2CI2C bus 3 clock
131Q3I2CI2C bus 3 data
132Q4GPIOInputinput-bmc-smb-present-nBMC present input (BMC_SMB_1)
133Q5
134Q6PV33D
135Q7PV33DGPIOInputinput-pcie-wake-nPulled low when a PCI Express card asserts WAKE#
136R0
137R1
138R2(SPI2CS0#)
139R3(SPI2CK)
140R4(SPI2MOSI)
141R5(SPI2MISO)
142R6RGMIIMDC1
143R7RGMIIMDIO1
144S0PV33DGPIOInputinput-bmc-pchhot-nNeeds verification
145S1PV33D
146S2PV33D
147S3PV33D
148S4PV33D
149S5PV33D
150S6PV33D
151S7PV33D
152T0RGMIIDedicated LAN port: TXCK
153T1RGMIIDedicated LAN port: TXCL
154T2RGMIIDedicated LAN port: TXD0
155T3RGMIIDedicated LAN port: TXD1
156T4RGMIIDedicated LAN port: TXD2
157T5RGMIIDedicated LAN port: TXD3
158T6RMIINC-SI: RCLKO
159T7RMIINC-SI: TXEN
160U0RMIINC-SI: TXD0
161U1RMIINC-SI: TXD1
162U2
163U3
164U4RGMIIDedicated LAN port: RXCK
165U5RGMIIDedicated LAN port: RXCTL
166U6RGMIIDedicated LAN port: RXD0
167U7RGMIIDedicated LAN port: RXD1
168V0RGMIIDedicated LAN port: RXD2
169V1RGMIIDedicated LAN port: RXD3
170V2RMIINC-SI: CLKI
171V3
172V4RMIINC-SI: RXD0
173V5RMIINC-SI: RXD1
174V6RMIINC-SI: CRSDV
175V7RMIINC-SI: RXER
176W0ADCAnalog input representing 3VSB
177W1ADCAnalog input representing 5VSB
178W2ADCAnalog input representing VCPU
179W3ADCAnalog input representing VSOC
180W4ADCAnalog input representing VCCM
181W5ADCAnalog input representing APU VDDP
182W6ADCAnalog input representing PM VDD CLDO
183W7ADCAnalog input representing PM VDDCR S5
184X0ADCAnalog input representing PM VDDCR
185X1ADCAnalog input representing RTC battery voltage
186X2ADCAnalog input representing 3V
187X3ADCAnalog input representing 5V
188X4ADCAnalog input representing 12V
189X5(ADC)
190X6(ADC)
191X7(ADC)
192Y0PV33D
193Y1PV33D
194Y2PV33D
195Y3PV33D
196Y4I2CI2C bus 0 clock (AUX_PANEL1)
197Y5I2CI2C bus 0 data (AUX_PANEL1)
198Y6I2CI2C bus 1 clock (SuperIO and thermal sensor)
199Y7I2CI2C bus 1 data (SuperIO and thermal sensor)
200Z0PV33D
201Z1PV33D
202Z2PV33DGPIOOutputled-fault-n
203Z3PV33DGPIOOutputoutput-bmc-throttle-nNeeds verification
204Z4PV33D
205Z5PV33D
206Z6PV33D
207Z7PV33D
208AA0PV33DGPIOInputinput-cpu1-thermtrip-latch-n
209AA1PV33D
210AA2PV33DGPIOInputinput-cpu1-prochot-n
211AA3PV33D
212AA4PV33D
213AA5PV33D
214AA6PV33D
215AA7PV33D
216AB0PV33D
217AA1PV33D
218AA2PV33D
219AA3PV33D
220
221
222
223
224AC0LPCLAD0
225AC1LPCLAD1
226AC2LPCLAD2
227AC3LPCLAD3
228AC4LPCClock
229AC5LPCLFRAME
230AC6LPCIRQ
231AC7LPCReset

3.1.1.4 - Programming SPI flash with an FT2232 breakout board

Connection diagram

Pin on MainboardFunction SPIFunction QSPIPin on FTDI
CS#Chip selectChip selectADBUS 3
VCC3.3v output3.3v outputNot connected
SO/SIO1Data outputData bit 1ADBUS 2
SIO3UnusedData bit 3Not connected
WP#/SIO2Write protectData bit 2Not connected
SCLKClockClockADBUS 0
BMC RESET#ResetResetGround
SI/SIO0Data inputData bit 0ADBUS 1
GNDGroundGroundGround

3.1.1.5 - ASRock Rack X570D4U mainboard: temperature sensors

This page describes the temperature sensors on the X570D4U.

Nuvoton NCT6796D-R SuperIO

This device can be accessed via I2C bus 1 at address 0x2D.

InputValidDescription
SYSTINYesClose to SuperIO chip, could be MB temperature
CPUTINNo
AUXTIN0No
AUXTIN1YesClose to SuperIO chip, could be MB temperature
AUXTIN2YesBottom left corner of the board, Card side temperature
AUXTIN3No
AUXTIN4No
TSI0_TEMPYesCPU temperature
TSI1_TEMPYesChipset temperature

Nuvoton W83773G

This device can be accessed via I2C bus 1 at address 0x4C.

InputValidDescription
temp1_inputYesInside of the W83773G, located close to the 10Gbit NIC
temp2_inputYesCconnected to a temperature diode in or close to the 10Gbit NIC
temp3_inputNo

3.1.1.6 - ASRock Rack X570D4U mainboard: fans

This page describes the fan connectors on the X570D4U.

Fan connectors

ConnectorPWMTacho 1Tacho 2
111-
222-
333-
44412
56513
65614

Fan 1-3 connector pinout

PinFunctionAsrock label
1GroundGND
2PowerFAN_VOLTAGE
3Tacho 1FAN_SPEED
4PWMFAN_SPEED_CONTROL

Fan 4-6 connector pinout

PinFunctionAsrock label
1GroundGND
2PowerFAN_VOLTAGE
3Tacho 1FAN_SPEED
4PWMFAN_SPEED_CONTROL
5Tacho 2SENSOR
6-NC

3.1.2 - ASRock Rack PAUL

Project status: in progress

The ASRock Rack PAUL is a PCI-express add-in card for servers and workstations containing an Aspeed AST2500 BMC chip. A Baseboard Management Controller (BMC) is a small computer that allows for out-of-band management. It allows for remote power control, KVM (remote keyboard, video and mouse) control, virtual media insertion and much more.

PropertyValuePart
ProcessorARM1176JZS (ARMv6) @ 800MHzAST2500 SoC
RAM512MB DDR4K4A4G165WE-BCRC
Storage3x 32MB SPI flashMX25L25645G

These parts make for quite a powerful system, unfortunately the operating system shipped by ASRock Rack is proprietary and dos not allow for easy modification. To allow for a more secure, transparent and customizable experience we are working on adding support for this mainboard to the mainline Linux kernel and the OpenBMC Linux distribution for BMCs.

Official documentation is provided in ASRock Racks manual.

3.1.2.1 - ASRock Rack PAUL: GPIO

This page describes the GPIOs of the ASPEED AST2500 BMC on the ASRock Rack Paul card.

#IDPower domainPeripheralTypeNameDescriptionVerified
0A0PV33D
1A1PV33D
2A2PV33DGPIOInputinput-nmiNMI input on pinheaderYes
3A3PV33D
4A4I2CI2C bus 8 clock (IPMB_1)Yes
5A5I2CI2C bus 8 data (IPMB_1)Yes
6A6
7A7
8B0LPVDD
9B1LPVDD
10B2LPVDD
11B3LPVDD
12B4LPVDD
13B5LPVDD
14B6LPVDD
15B7LPVDD
16C0SD cardSD card 1: CLKYes
17C1SD cardSD card 1: CMDYes
18C2SD cardSD card 1: DAT0Yes
19C3SD cardSD card 1: DAT1Yes
20C4SD cardSD card 1: DAT2Yes
21C5SD cardSD card 1: DAT3Yes
22C6SD cardSD card 1: CD#Yes
23C7
24D0GPIOInputbutton-power-nAUX_PANEL1 pin 1Yes
25D1GPIOOutput open draincontrol-power-nAUX_PANEL1 pin 3Yes
26D2GPIOInputbutton-reset-nAUX_PANEL1 pin 5Yes
27D3GPIOOutput open draincontrol-reset-nAUX_PANEL1 pin 7Yes
28D4GPIOaux-panel-1-9AUX_PANEL1 pin 9Yes
29D5GPIOaux-panel-1-11AUX_PANEL1 pin 11Yes
30D6GPIOaux-panel-1-15AUX_PANEL1 pin 15Yes
31D7GPIOaux-panel-1-17AUX_PANEL1 pin 17Yes
32E0(UART3 CTS)
33E1(UART3 DCD)
34E2(UART3 DSR)
35E3(UART3 RING)
36E4(UART3 DTR)
37E5(UART3 RTS)
38E6(UART3 TX)
39E7(UART3 RX)
40F0(UART4 CTS, LPC HOST BIT 0)
41F1(UART4 DCD, LPC HOST BIT 1)
42F2(UART4 DSR, LPC HOST BIT 2)
43F3(UART4 RING, LPC HOST BIT 3)
44F4(UART4 DTR, LPC HOST CLOCK IO)
45F5(UART4 RTS, LPC HOST FRAME#)
46F6(UART4 TX, LPC HOST SERIRQ#, maybe BMC_PCH_SCI_LPC)
47F7GPIOOutputoutput-bios-flash-selectSwitches SPI1 between the BIOS flash chip and BIOS_PH1Yes
48G0GPIOOutput
49G1
50G2
51G3
52G4GPIOInputinput-aux-smb-alert-nSMBus alert for I2C bus 5 (AUX_PANEL2)Yes
53G5
54G6GPIOInputinput-psu-smb-alert-nSMBus alert for I2C bus 3 (PSU_SMB1)Yes
55G7
56H0
57H1
58H2
59H3
60H4GPIOInputinput-mfg-mode-nPulled low when jumper MFG1 is closedYes
61H5
62H6GPIOOutputled-heartbeat-nControls the green heartbeat LED on the board (active low)Yes
63H7
64I0(SYSCS#)
65I1(SYSCK)
66I2(SYSMOSI)
67I3(SYSMISO)
68I4SPICSSPI1CS0# / VBCS#Yes
69I5SPISCKSPI1CK / VBCKYes
70I6SPIMOSISPI1MOSI / VBMOSIYes
71I7SPIMISOSPI1MISO / VBMISOYes
72J0
73J1
74J2
75J3
76J4VGAVGA horizontal sync
77J5VGAVGA vertical sync
78J6VGAVGA DDC clock
79J7VGAVGA DDC data
80K0I2CI2C bus 4 clock (temperature sensor)Yes
81K1I2CI2C bus 4 data (temperature sensor)Yes
82K2I2CI2C bus 5 clock (AUX_PANEL2)Yes
83K3I2CI2C bus 5 data (AUX_PANEL2)Yes
84K4(I2C bus 6 clock)
85K5(I2C bus 6 data)
86K6I2CI2C bus 7 clock (FRU and SPD EEPROM SMBus)
87K7I2CI2C bus 7 data (FRU and SPD EEPROM SMBus)
88L0(UART1 CTS)
89L1(UART1 DCD)
90L2(UART1 DSR)
91L3(UART1 RING)
92L4(UART1 DTR)
93L5(UART1 RTS)
94L6(UART1 TX)
95L7(UART1 RX)
96M0(UART2 CTS)
97M1(UART2 DCD)
98M2(UART2 DSR)
99M3(UART2 RING)
100M4(UART2 DTR)
101M5(UART2 RTS)
102M6(UART2 TX)
103M7(UART2 RX)
104N0PWM
105N1PWMFAN1 PWM output (pwm2)Yes
106N2PWMFAN2 PWM output (pwm3)Yes
107N3PWM
108N4PWM
109N5PWM
110N6
111N7
112O0Tachometer
113O1TachometerFAN1 tachometer input (in2)Yes
114O2TachometerFAN2 tachometer input (in3)Yes
115O3Tachometer
116O4Tachometer
117O5Tachometer
118O6
119O7
120P0
121P1
122P2
123P3Tachometer
124P4Tachometer
125P5Tachometer
126P6
127P7
128Q0I2CI2C bus 2 clock (BMC_SMB_2)Yes
129Q1I2CI2C bus 2 data (BMC_SMB_2)Yes
130Q2I2CI2C bus 3 clock (PSU_SMB1)Yes
131Q3I2CI2C bus 3 data (PSU_SMB1)Yes
132Q4GPIOInputinput-bmc-smb-present-1-nBMC present input (BMC_SMB_1)Yes
133Q5GPIOInputinput-bmc-smb-present-2-nBMC present input (BMC_SMB_2)Yes
134Q6PV33D
135Q7PV33DGPIOOutputoutput-pcie-wake-nPCI Express WAKE#Yes
136R0
137R1
138R2(SPI2CS0#)
139R3(SPI2CK)
140R4(SPI2MOSI)
141R5(SPI2MISO)
142R6RGMIIMDC1
143R7RGMIIMDIO1
144S0PV33D
145S1PV33D
146S2PV33D
147S3PV33D
148S4PV33D
149S5PV33D
150S6PV33D
151S7PV33D
152T0RGMIIDedicated LAN port: TXCKYes
153T1RGMIIDedicated LAN port: TXCLYes
154T2RGMIIDedicated LAN port: TXD0Yes
155T3RGMIIDedicated LAN port: TXD1Yes
156T4RGMIIDedicated LAN port: TXD2Yes
157T5RGMIIDedicated LAN port: TXD3Yes
158T6RMIINC-SI: RCLKO
159T7RMIINC-SI: TXENYes
160U0RMIINC-SI: TXD0Yes
161U1RMIINC-SI: TXD1Yes
162U2
163U3
164U4RGMIIDedicated LAN port: RXCKYes
165U5RGMIIDedicated LAN port: RXCTLYes
166U6RGMIIDedicated LAN port: RXD0Yes
167U7RGMIIDedicated LAN port: RXD1Yes
168V0RGMIIDedicated LAN port: RXD2Yes
169V1RGMIIDedicated LAN port: RXD3Yes
170V2RMIINC-SI: CLKI
171V3
172V4RMIINC-SI: RXD0Yes
173V5RMIINC-SI: RXD1Yes
174V6RMIINC-SI: CRSDVYes
175V7RMIINC-SI: RXER
176W0ADCAnalog input representing 3VSB
177W1ADCAnalog input representing 5VSB
178W2ADCAnalog input representing VCPU
179W3ADCAnalog input representing VSOC
180W4ADCAnalog input representing VCCM
181W5ADCAnalog input representing APU VDDP
182W6ADCAnalog input representing PM VDD CLDO
183W7ADCAnalog input representing PM VDDCR S5
184X0ADCAnalog input representing PM VDDCR
185X1ADCAnalog input representing RTC battery voltage
186X2ADCAnalog input representing 3V
187X3ADCAnalog input representing 5V
188X4ADCAnalog input representing 12V
189X5(ADC)
190X6(ADC)
191X7(ADC)
192Y0PV33DGPIOaux-panel-2-11AUX_PANEL2 pin 11Yes
193Y1PV33DGPIOaux-panel-2-15AUX_PANEL2 pin 15Yes
194Y2PV33DGPIOaux-panel-2-17AUX_PANEL2 pin 17Yes
195Y3PV33DGPIOOutputled-fault-nRed LED indicating system error & AUX_PANEL2 pin 19Yes
196Y4I2CI2C bus 0 clock (PCI express)Yes
197Y5I2CI2C bus 0 data (PCI express)Yes
198Y6I2CI2C bus 1 clock (BMC_SMB_1)Yes
199Y7I2CI2C bus 1 data (BMC_SMB_1)Yes
200Z0PV33DGPIOaux-panel-2-3AUX_PANEL2 pin 3Yes
201Z1PV33DGPIOaux-panel-2-5AUX_PANEL2 pin 5Yes
202Z2PV33DGPIOaux-panel-2-7AUX_PANEL2 pin 7Yes
203Z3PV33DGPIOaux-panel-2-9AUX_PANEL2 pin 9Yes
204Z4PV33D
205Z5PV33D
206Z6PV33D
207Z7PV33D
208AA0PV33DGPIOOutputled-fan1-faultRed LED indicating fault in FAN 1Yes
209AA1PV33DGPIOOutputled-fan2-faultRed LED indicating fault in FAN 2Yes
210AA2PV33D
211AA3PV33D
212AA4PV33D
213AA5PV33D
214AA6PV33D
215AA7PV33D
216AB0PV33D
217AA1PV33D
218AA2PV33D
219AA3PV33D
220—-
221—-
222—-
223—-
224AC0LPCLAD0Yes
225AC1LPCLAD1Yes
226AC2LPCLAD2Yes
227AC3LPCLAD3Yes
228AC4LPCClockYes
229AC5LPCLFRAMEYes
230AC6LPCIRQ
231AC7LPCResetYes