Skip to the content
PCBKitNew board
2 layers79 × 94.7 mmConnector X, the printed circuit board in 3D

The Connector-X all-in-one IO breakout board

Size
79 × 94.7 mm
Copper layers
2
Thickness
1.6 mm
Parts
41
Nets
70
Pads
287
Tracks, vias
317, 15
Pours
1
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
24 Nov 2023
Updated
7 May 2024

Overview

Connector X is an open-source printed circuit board by having11, from the having11/Connector-X repository on GitHub, published under the CC0-1.0 licence. It is a 2-layer board of 79 × 94.7 mm with 41 parts on 70 nets, routed with 317 tracks and 15 vias.

It is built around the WS2812B, IRLML5203TRPBF and MBRD1060. Its parts include 11 connectors, 9 diodes, 4 capacitors, 4 resistors and 3 switches. It belongs with the RP2040 boards of this library.

Main components

3

README

README.md

Connector-X

A drop-in, highly-configurable IO board compatible with the NI/FRC RoboRIO

The concept

Have you ever wanted to leverage the power and extensibility of the Arduino ecosystem on other hardware but realized it's not supported? This was the case for FRC team 5690 SubZero Robotics in the 2023 season when we were attempting to add sensors and LEDs to our robot. Born from this struggle was a very simple Arduino Nano-based board that supported a single LED strip, limited LED patterns, and a duty-cycle output for lidar. As one might imagine, this was quite limited, so the 2023 off-season was spent designing and then redesigning a brand new system called the Connector-X (Connect Anything).

The new system is meant to be far faster and more flexible, as its Raspberry Pi Pico processor allows it to act as both a peripheral for a RoboRIO and a central device for connecting sensors.

Hardware features

Starting along the top of the Connector-X is a pair of buttons that allow for reconfiguring the device and resetting it if needed. The DIP switch to the right was used to set the I2C address, but recent changes to the firmware have made it unnecessary. Lastly, the 3.3V regulator and Schottky diode help regulate incoming power and prevent damage if the inputs are accidentally reversed.

The DC barrel jack is meant for connecting 5V, center-positive power from a buck converter or other source that can supply a sufficient amount of current (> 5A preferred). Two LED ports sit below it, and each one has a starting, test WS2812B LED to help debug LED strip problems. The center has headers for 1 x SPI, 2 x I2C, and 3 x GPIO. Status indicators below the Pico display Power, Pico functionality, and I2C activity.

Attaching to your RIO

At the bottom of the board is a male 2 x 17 header and a female 2 x 17 header, both of which conform to and pass-through the RIO's MXP connector standard. The Connector-X itself is only electrically connected to the I2C SDA, I2C SCL, and GND pins, meaning that a power issue on the board will not affect the RIO.

What are ports and zones?

As mentioned before, the two ports each connect to a single LED strip, but that leads to the question of how different patterns can be easily shown on the same strip. So rather than connecting a strip per-port, the Connector-X allows for the strip to be subdivided into virtual zones that range from a single pixel all the way to the entire strip's length. To specify one, simply declare the offset (inclusive) and the size of the zone while ensuring it stays within the total number of LEDs present in the strip. The controlling device then sends commands to select the desired port and zone by index when setting colors/patterns.

It can show images

Within the Configuration, either a strip or matrix configuration can be set. In the case of a matrix, the port is automatically split into two zones with the first being the single test LED and the second as the matrix itself. Currently, there are seven patterns that make use of the matrix, and they generally work by accessing images as follows:

  1. A folder is created within the data directory
  2. 16-bit RGB bitmaps are placed into the folder. Names should be numeric, start at 0, and have the exact same number of images as the number of states specified in the Pattern configuration
  3. Selecting the pattern from a controlling device causes the Connector-X to cycle through them with the delay specified in the config or the command

Command structure

Now that Commands have been mentioned several times, you're probably wondering what it actually is. A Command is simply a small amount of data that the controlling device sends to the Connector-X containing the CommandType and an arbitrary amount of additional data depending on what the CommandType equals.

CommandTypeDescriptionAdditional data
OnTurns on an LED portN/A
OffTurns off an LED portN/A
PatternSets the current Pattern for a ZonePattern type, is one-shot, delay
ChangeColorSets the current Color for a ZoneR, G, B
ReadPatternDoneChecks if the set Pattern is done runningN/A
SetLedPortSets the active LED PortPort number
DigitalSetupSets the mode (Read or Write) for a Digital IO PortPort number, mode
DigitalWriteSets a Digital IO Port High or LowPort number, value
DigitalReadReads a Digital IO Port's statePort number
SetConfig (unused)Sets a new Config for the Connector-XN/A
RadioSend (unused)Sends data to other teams via the onboard Packet Radio when enabledN/A
RadioGetLatestReceived (unused)Gets the latest Packet Radio data when enabledN/A
GetColorGets the active Color for a ZoneN/A
GetPortGets the selected PortN/A
SetPatternZoneSets the current Zone for the current PortZone index, is reversed
SetNewZones (unused)Configures new Zones for the current PortZone count, zone array
SyncStatesSets the selected Zones' Patterns to the same State (animation frame)Zone count, zone index array

Test sequences

It is possible to execute a series of commands upon startup without intervention from the controlling device. To do so, simply specify a list of TestCommands in TestCommands.h that include the command type and any other required commandData within the union.

Expansion

Feel free to add Commands and Patterns to expand the functionality of your Connector-X. Some ideas might include adding an I2C sensor and passing it through, controlling an LED, or displaying images on a screen via SPI.

V3 coming soon...

Parts

41
QtyValueFootprintReferences
4MountingHoleMountingHole:MountingHole_3.2mm_M3_Pad_ViaH1, H2, H3, H4
3220Resistor_SMD:R_0603_1608MetricR1, R2, R4
3Conn_01x03_SocketConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_HorizontalJ2, J3, J4
3TestPointTestPoint:TestPoint_Pad_D2.5mmTP1, TP2, TP3
2100nFCapacitor_SMD:C_0603_1608MetricC3, C4
210uFCapacitor_SMD:C_0603_1608MetricC1, C2
2Conn_01x03_SocketConnector_JST:JST_VH_B3PS-VH_1x03_P3.96mm_HorizontalJ5, J6
2D_SchottkyDiode_SMD:D_SMAD7, D8
2WS2812BLED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mmD5, D6
1470Resistor_SMD:R_0603_1608MetricR3
1ALVLED_SMD:LED_1206_3216MetricD3
1Barrel_Jack_SwitchConnector_BarrelJack:BarrelJack_HorizontalJ1
1CONFIGLED_SMD:LED_0805_2012MetricD9
1CONFIGButton_Switch_SMD:SW_SPST_PTS645SW2
1I2CLED_SMD:LED_1206_3216MetricD4
1I2C 0Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ9
1I2C 1Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ10
1IRLML5203TRPBFPackage_TO_SOT_SMD:SOT-23Q1
1MBRD1060Package_TO_SOT_SMD:TO-252-2D1
1NCP1117-3.3_SOT223Package_TO_SOT_SMD:SOT-223-3_TabPin2U1
1PWRLED_SMD:LED_1206_3216MetricD2
1RIO sideConnector_PinSocket_2.54mm:PinSocket_2x17_P2.54mm_VerticalJ7
1RSTButton_Switch_SMD:SW_SPST_PTS645SW1
1RaspberryPi_PicoModule_RaspberryPi_Pico:RaspberryPi_Pico_CommonU2
1SPI 0Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ11
1SW_DIP_x03Button_Switch_SMD:SW_DIP_SPSTx03_Slide_6.7x9.18mm_W6.73mm_P2.54mm_LowProfile_JPinSW3
1Top sideConnector_PinHeader_2.54mm:PinHeader_2x17_P2.54mm_VerticalJ8

Questions

How big is the Connector X PCB?

It measures 79 × 94.7 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Connector X use?

41 parts, built around the WS2812B, IRLML5203TRPBF and MBRD1060. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Connector X KiCad files?

From the having11/Connector-X repository on GitHub, at the commit this page was made from: the board is hardware/ConnectorX/ConnectorX.kicad_pcb and its schematic hardware/ConnectorX/ConnectorX.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Connector X design in my own project?

Its repository publishes it under the CC0-1.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers120 × 120 mmMagLev, the printed circuit board in 3D

    MagLev

    KDueck/MagLev

    A design for a reverse engineered magnetic levitation PCB.

    211 parts
  • 4 layers131 × 78.5 mmRpiPico Agriboard, the printed circuit board in 3D

    RpiPico Agriboard

    R-Mutura/ANGAZA_ELIMU_PCB

    ANGAZA_ELIMU_PCB

    221 parts2
  • 4 layers55 × 72.1 mmMain unit, the printed circuit board in 3D

    Main unit

    HyFiVeUser/HyFiVe

    For this use case we developed a very flexible autonomous measuring system, which can be deployed on fishing gear to collect data in an affordable and scalable way.

    132 partsCC-BY-SA-4.0
  • 4 layers203.5 × 90 mmBDCMotorController, the printed circuit board in 3D

    BDCMotorController

    nunosousa/TelescopeMirrorTester

    This is an application intended to provide useful tools to perform Foucault or Wire testing on reflective telescope mirrors

    323 partsMIT
  • 4 layers99 × 53.3 mmPSLab, the printed circuit board in 3D

    PSLab

    fossasia/pslab-hardware

    PSLab Hardware Design and Schematics https://pslab.io

    199 parts1.7kApache-2.0
  • 2 layers26 × 30 mmMicrocontroller, the printed circuit board in 3D

    Microcontroller

    FrameworkComputer/ExpansionCards

    Reference designs and documentation to create Expansion Cards for the Framework Laptop

    34 parts1.1kCC-BY-4.0
  • 4 layers82.6 × 82.5 mmJumperless2, the printed circuit board in 3D

    Jumperless2

    Architeuthis-Flux/Jumperless

    A jumperless breadboard

    208 parts914
  • 2 layers95.3 × 161.9 mmDfh badge, the printed circuit board in 3D

    Dfh badge

    tanaes/whopping_Voron_mods

    135 parts787GPL-3.0