FixturCtrl
The FixturCtrl is a programmable USB hub with built in cycle counter. It is commonly used to connect instruments together along with a fixture switch within our test system.
Features
6 Programmable USB2.0 Ports: Independent control of power and data connections, ideal for automated device management during tests.
Fixture Switch/Cycle Counter Input: Compatible with Ingun Inductive Switches (MA2xxx and MA3xxx series fixture bases), with cycle counting for maintenance tracking.
Dual I2C Expansion Ports: Easy integration of Qwiic I2C-based devices from Sparkfun and Adafruit, quickly enhance your testing capabilities.
Digital IO Expansion Port: Customize your fixture base with additional interfaces like buttons and LEDs to improve user interaction.
Compact and versatile, the FixturCtrl is the perfect tool for streamlined and efficient PCBA testing.
Python Module
A python module is available within the f3ts-hardware-utils
module, you can find more information here: f3ts-hardware-utils
Serial Interface
The FixturCtrl is based around a Raspberry Pi RP2040 microcontroller. The RP2040 provides a USB Serial Interface that can be used to control the FixturCtrl.
USB Serial Port Settings
- Connector: Upstream USB-C Connector
- Baud Rate: 57600
- Flow Control: None
- Parity: None
- Data Bits: 8
- Stop Bits: 1
Command Format
The FixturCtrl expects commands to be sent and ended with a newline and carriage return, \r\n
.
A successful command will typically return a response of OK\r\n
.
An error response will return a response of ERROR\r\n
.
Commands
General Commands
help
Command String: help\r\n
Returns a list of commands and their descriptions.
who
Command String: who\r\n
Returns the FixturCtrl firmware version and serial number.
Response: (Firmware Rev 3) DEVICE = FixturFab / Fixture Controller
fixture
Command String: fixture\r\n
Returns the state of the fixture switch input.
Response: Open
or Closed
cycles
Command String: cycle\r\n
Returns the current cycle count. There are 3 cycle counting registers on the FixturCtrl, these are each incremented by 1 each time the FixturCtrl is powered on. By providing multiple registers, you can implement a more complex cycle counting scheme. Such as lifetime, batch, or maintenance counters.
Response:
OK - reading cycle counters (integer)
Cycles#1: 0
Cycles#2: 0
Cycles#3: 0
zero {register}
Command String: zero {register}\r\n
Resets the selected cycle counter to 0.
Valid registers are:
1
- Cycle Counter 12
- Cycle Counter 23
- Cycle Counter 3
Responses:
OK - Cycle counter #1 has been cleared
gptype {gpio} {mode}
Command String: gptype {gpio} {mode}\r\n
Sets the GPIO mode of the selected pin.
Valid GPIOs are:
Valid modes are:
in
- Input modeout
- Output mode
Responses:
OK - GPIO #1 has been set to {mode}
gpset {pin} {state}
Command String: gpset {pin} {state}\r\n
Sets the state of the selected GPIO pin.
Valid GPIOs are: 21-25
Valid states are:
low
- Sets the GPIO pin to LOWhigh
- Sets the GPIO pin to HIGH
Responses:
OK - GPIO pin {pin} set as {state}
gpget {pin}
Command String: gpget {pin}\r\n
Returns the state of the selected GPIO pin.
Valid GPIOs are: 21-25
Responses:
OK - GPIO pin {pin} is {state}
gpall {state}
Command String: gpall {state}\r\n
Sets the state of all GPIO pins.
Valid states are:
low
- Sets all GPIO pins to LOWhigh
- Sets all GPIO pins to HIGH
Responses:
OK - All GPIO pins have been set to {state}
anget {pin}
Command String: anget {pin}\r\n
Returns the state of the selected ANALOG pin.
Valid pins are: 0-3
Response:
{ADC value}\r\n
OK\r\n
USB Port Commands
allusb {state}
Command String: allusb {state}\r\n
Enables or disables power and data on all USB ports.
Valid states are:
on
- Enables power and data on all USB ports.off
- Disables power and data on all USB ports.
Responses:
- All On Response:
OK - All USB ports have been turned on.
- All Off Response:
OK - All USB ports have been turned off.
usb {port} {state}
Command String: usb {port} {state}\r\n
Enables or disables power and data on a specific USB port.
Valid ports are:
1
- USB Port 12
- USB Port 23
- USB Port 34
- USB Port 45
- USB Port 56
- USB Port 6
Valid states are:
on
- Enables power and data on the selected USB port.off
- Disables power and data on the selected USB port.