Use Cases: PCB Design & Assembly , Node Cluster Setup , Device Control , Automation Deployment
Button Card Assembly Guide
Table of contents
Introduction
See the How to Use Assembly Guides for detailed instructions.
In conjunction with the LCC Fusion Node Card and a Node Bus Hub, the Button Card provides input control for up to 16 separate buttons. Typically when used for input in an LCC Node arrangement, this card can be attached to input buttons to have the an LCC Node produce LCC Events of on/off. These events are subsequently consumed by a LCC Node to accurately control the functioning states of the other output devices.
flowchart LR;
can["CAN Network"];
subgraph layout ["Train Layout"];
direction LR;
b["Button Device (16x)"] --> |"Button Press<br/>(on/off)"| bb[I/O Breakout Board];
bb --> |"Digital Input <br/> (high/low)"| c["Button Card (16x)"];
c -->|"GPIO Output <br/> (high/low)"| n[Node Card];
n -->|"LCC Event<br/>(on/off)"| can;
end;
classDef lSalmonStyle fill:#FFA07A,stroke:#333,stroke-width:2px,font-size:24px;
class c lSalmonStyle;
classDef lightGrayStyle fill:#d3d3d3,stroke:#333,stroke-width:2px,font-size:24px;
class layout lightGrayStyle;
- input_cards - not defined
- jumper_caps - not defined
- lcc_event_id - not defined
- lcc_fusion_io_cards - not defined
- lcc_fusion_node_bus - not defined
- lcc_fusion_node_card - not defined
For other terms, please refer to the full Terminology Guide.
Assembly and Component Placement
This section combines both the component specifications and the assembly instructions to ensure a smooth assembly process. Below is a comprehensive list of components, their placement on the PCB, and orientation details to assist you during assembly.
High-Level Steps for Assembly:
- PCB for the card can be ordered from any PCB fabricator using these Gerber Files.
- Clean PCB with alcohol to remove residue. See Cleaning_PCB for details.
- See also: Soldering Tips
- PCB Components - listing of components used for PCB assembly
- PCB Parts - listing of parts used for PCB assembly
Below is a list of the PCB components used for this card (see diagram before reference):
Component Identifier | Count | Type | Value | Package | Purpose | Orientation |
---|---|---|---|---|---|---|
Capacitors | Â | Â | Â | Â | Â | Â |
C1 - C16 | 16 | Capacitor-Ceramic | 22nF, 50 V | 1206 X7R | Low-Pass Filter to filter out noise and prevent unwanted transient signals | None |
C17 | 1 | Capacitor-Ceramic | 0.1uF, 50 V | 1206 X7R | Decoupling capacitor for IC protection. | None |
Diodes | Â | Â | Â | Â | Â | Â |
D1 | 1 | ESD Diode | PESD1CAN | SOT-23 SMD | I2C data bus electrostatic discharge (ESD) protection. | Fits only one way |
 |  |  |  |  |  |  |
F1 | 1 | Fuse-PTC Polymer | PPTC, 0.2A | 1206 SMD | Protects from sustained overcurrent conditions | None |
Filters & Noise Suppression | Â | Â | Â | Â | Â | Â |
FB1, FB2 | 2 | Ferrite Bead | BLM31PG121SN1L | 1206 SMD | I2C network bus data line noise suppression. | None |
Connectors | Â | Â | Â | Â | Â | Â |
J1, J2 | 2 | RJ45 Socket | 8P8C | N/A | Network cable (CAT5/6) connection to I/O breakout board connected to buttons. | Fits only one way |
Resistors | Â | Â | Â | Â | Â | Â |
R1 - R16 | 16 | Resistor | 1kΩ | 1206 SMD | Current limiting for LED1 - LED16 | None |
R17-R32 | 16 | Resistor | 4.7kΩ | 1206 SMD | Low-Pass Filter to filter out noise and prevent unwanted transient signals | None |
R38 - R41 | 4 | Resistor | 10kΩ | 1206 SMD | Used by switch SW1 to pullup the MCP23017 for I2C address. | None |
Selectors & Indicators | Â | Â | Â | Â | Â | Â |
JP1, JP2 | 2 | Male Header | 3P, 0.1” spacing | N/A | Used for LINE 8 and LINE 16 selection of either GND or INPUT . Set to GND when button require this card to provide the circuit’s GND connection. |
None |
JP3, JP4 | 2 | Male Header | 3P, 0.1” spacing | N/A | Used for COMM BUS selection (I2C hardware bus) for either A or B . Must match the configuration within the LCC Node (CDI). |
None |
SW1 | 1 | DIP / Slide Switch | 3P, 2.54mm | N/A | Used for COMM ADDR selection (I2C address offset, 0-7). Up to 8 cards can be installed per I2C bus. Must match the LCC Node configuration (CDI). | Position ON towards PCB top edge |
SH1 - SH4 | 4 | Jumper Caps | 2.54mm | N/A | Used with I2C Bus and LINE 8/16 selections. Recommend tall caps for ease of use. | None |
LED1-LED16 | 16 | LED | Red | 1206 SMD | Indicates button has been pressed | Â |
ICs | Â | Â | Â | Â | Â | Â |
U1, U2, U3 | 3 | IC (Schmitt Trigger) | SN74HCT14 | DIP-14 PTH | Contains 6 triggers to transform noisy or slow-changing input signals into clean, fast digital outputs. | Position IC’s dimple (pin 1) towards PCB left edge |
U4 | 1 | IC (GPIO expander) | MCP23017 | SSOP28 | I/O expander using I2C serial interface to control 16 GPIO pins. | Position IC’s dimple (pin 1) towards PCB left edge |
Tools Required
Safety Precautions
- See Safety Precautions.
Testing and Verification
Configure the card:
- Select the I2C bus (COMM BUS) by positioning (2) Jumper Caps on either BUS A or BUS B male header pins (JP1, JP2)
- Select the I2C address (COMM ADDR) switch (SW1) by slide each of the 3 switches to either the ON or OFF position. Setting a switch to ON increments the address by 1, 2, or 4 for an address range of 0 to 7. Up to 8 devices can then be configured for BUS A and 8 for BUS B.
Visual Inspection
-
Initial Check: Examine the board for any obvious issues like missing components, solder bridges, or components that are misaligned or not fully seated.
-
Solder Joint Inspection: Use a magnifying glass or a microscope to inspect solder joints. Look for cold solder joints, insufficient or excessive solder, or any shorts between pads.
-
Component Orientation: the IC’s are correctly oriented according to the PCB silkscreen or schematic.
Connectivity Testing
Power-Up Tests
- Assembly a tested Power Module to the LCC Fusion Node Card.
- Apply Power to the Power Module and verify the following:
- Check for Hot Components: Feel for components that are overheating, which could indicate a problem like a short circuit or incorrect component.
Functional Testing
I2C Verification
Line Verification
After validating the LCC Fusion Node Card can connect with the I/O Card, test each of the I/O lines as follows:
- Connect an network cable (CAT5/6) to RJ45 connector. Use the other end of the cable with a breakout board, or exposed wires to connect to devices for testing.
- Configure each line of the card for output using an LCC CDI Configuration Tool
Troubleshooting
- See I2C Trouble Shooting.
Appendences
Specifications
Specifications for the card include:
Characteristic | Value |
---|---|
Max Buttons | 16 |
Maximum Number of Cards per LCC Fusion Node Cluster | 161 |
- The LCC Fusion Node Cluster can support up to 16 cards, distributed across two I2C hardware buses, with a maximum of 8 cards per bus.
- Note: total includes all cards using the I2C address range of
0x20
(MCP23017 IC).
- Note: total includes all cards using the I2C address range of
- GND, 5V, 12 V (optional), SLA0/SDA0, and SDA1/SCL1 (optional)
How It Works
The Button Card provides up to 16 independent button inputs via a single MCP23017 I²C port expander. Each input line is wired through a clean-up buffer and uses internal pull-ups to detect individual button presses.
- I2C & MCP23017 Initialization
- On power-up, the Node Firmware configures the MCP23017 over I2C. Address pins determine the expander’s I²C address.
- All 16 GPIO pins (GP0–GP15) are set as inputs with internal 3.3 V pull-ups enabled.
- Button Inputs (Lines 1–16)
- Each of the 16 MCP23017 inputs connects to a corresponding pushbutton on the RJ45/ribbon header via a Schmitt-trigger buffer (e.g., 74HC14) for clean signal edges and contact bounce suppression.
- When a button is pressed, its line is pulled LOW to GND; the MCP23017 reads a LOW and triggers a corresponding LCC Event for that button ON.
- When the button is released, the line returns HIGH via the pull-up, and firmware generates an LCC Event for button OFF.
- LED Indicators (Optional)
- For visual feedback, each button line can drive an LED: wire the LED anode to 3.3 V, the cathode through a 1 kΩ resistor to the Schmitt‑trigger output (pre-expander).
- When the button closes, the buffer output pulls LOW, lighting the LED until the button is released.
- Debounce & Filtering
- Purpose: The filter prevents false triggering from mechanical bounce (rapid on/off flicker when a button is pressed or released) and filters out high-frequency noise.
- How it works: When a button is pressed or released, the contact may momentarily vibrate or bounce, producing a noisy signal. The RC network—composed of a 10 kΩ series resistor and a 10 nF capacitor to ground—slows down these fast voltage changes. This forms a low-pass filter with a time constant (τ) of 0.1 ms, which smooths out spurious transitions.
- The SN74HCT14 Schmitt-trigger buffer further sharpens the resulting signal by introducing hysteresis, ensuring only clean HIGH or LOW levels are passed to the MCP23017.
LCC Node Operation:
- The firmware configures the MCP23017 port expander with internal pull-up resistors (set to 3.3 V). When an input device (such as a switch) pulls an input line to LOW (GND), the corresponding GPIO line of the port expander is pulled to LOW.
- When the LCC Node firmware detects a GPIO state change to LOW, it generates an LCC Event to indicate the ON state. When the input device resets (e.g., the button is released), the GPIO line returns to HIGH, and the firmware generates an LCC Event for the OFF state.
Protection
The Button Card provides detection of button presses. The following is an overview of each protection component integrated into the Button Card and its role:
Protected Component | Protection Component | Function | Specifications | Location |
---|---|---|---|---|
Entire Card | PPTC Polyfuse | Protects from sustained overcurrent conditions by increasing resistance when the current exceeds 1.5A and 3A. Resets once the fault condition is cleared. | Hold Current: 500 mA | In series with the incoming Power line |
MCP23017 IC | Decoupling Capacitors | Filters out high-frequency noise and transient voltage spikes from the power supply, ensuring stable voltage to MCP23017 IC. | Values: 0.1 µF ceramic | Across Vcc and GND near IC. |
I2C Lines | Ferrite Bead BLM31PG121SN1L | Provides high-frequency noise suppression on the I2C lines. | Impedance: 120 ohms at 100 MHz | In series with the SDA and SCL lines of the I2C bus |
I2C Lines | ESD Protection Diode PESD1CAN | Protects the I2C lines from electrostatic discharge and voltage spikes. | Reverse Stand-off Voltage (Vr): 24 VClamping Voltage (Vc): 40 V | Across the SDA and SCL lines to GND |
Button Lines | RC Filter + Schmitt Buffer | Reduces EMI, contact bounce, and long-wire interference | Value: 22nF, 4.7kΩ | Inline series resistor, with cap between input line and GND |
References
-
I2C GPIO Mapping (Button Card)
RJ45 Line MCP23017 Pin GPIO Line Direction Pull-up Logic Levels Purpose Notes L1 GPA0 GP0 Input Enabled LOW = Pressed Button state reading Detects LOW when button pressed L2 GPA1 GP1 Input Enabled LOW = Pressed Button state reading  L3 GPA2 GP2 Input Enabled LOW = Pressed Button state reading  L4 GPA3 GP3 Input Enabled LOW = Pressed Button state reading  L5 GPA4 GP4 Input Enabled LOW = Pressed Button state reading  L6 GPA5 GP5 Input Enabled LOW = Pressed Button state reading  L7 GPA6 GP6 Input Enabled LOW = Pressed Button state reading  L8 GPA7 GP7 Input Enabled LOW = Pressed Button state reading May be used for GND detection