Skip to main content

Digital I/O Configuration

I/O Line Overview

The BB-400 provides 8 digital I/O lines (DIO 0-7) that can be individually configured as inputs or outputs. These lines are managed by the Arduino-compatible ATMEGA32U4 co-processor, providing real-time signal processing independent of the main CPU.

NPN/PNP Configuration

The I/O lines are grouped into two banks of four (DIO 0-3 and DIO 4-7), each with independent jumper selection for NPN or PNP sensor compatibility.

  • NPN Mode (Pull-up): For active-low sensors that sink current to ground
  • PNP Mode (Pull-down): For active-high sensors that source current

The jumpers are located inside the enclosure on the main PCB, adjacent to the terminal block connectors.

Input Configuration

Basic Digital Inputs

When configured as inputs, the lines accept voltage levels from 0V to 30V:

  • Logic Level 0 (Low): 0V to +1V
  • Logic Level 1 (High): +2V to +30V

Counter Inputs

Each input can be configured to count transitions at rates up to 200 Hz. Counter values persist across power-off periods.

  • 16-bit mode: Counts from 0 to 65,535
  • 32-bit mode: Counts from 0 to 4,294,967,296

Latched Inputs

Latched inputs are triggered by programmable positive or negative edges and remain true until explicitly acknowledged by software. This ensures transient events are not missed during polling intervals.

Debounce Settings

Software-configurable debounce timing (0 to 4000 ms) filters mechanical switch bounce and electrical noise.

Output Configuration

When configured as outputs, the lines provide open-drain outputs with protected MOSFET drivers:

  • Maximum current per output: 0.85 A
  • Maximum combined load: 4 A total
  • Maximum load voltage: 30V
  • Intelligent short-circuit protection: up to 36V

Default output state is low (off). The open-drain configuration requires an external pull-up or load connected to a positive voltage supply.