Table of Contents
Overview
This page describes all of the features and functions of the Pi-Plates BRIDGEplate. This plate sits at the bottom of the stack and communicates to a PC through a USB 2.0 connection. Up to 2.5W of power can be supplied through the USB microB connection which is adequate for simple setups. If however, your application requires more power (two or more RELAYplates for example), a USB C power-only connector is provided for up to 15W. The BRIDGEplate looks like a serial device to the PC so it can be used with Windows, Linux, and Mac computers. You can talk to the BRIDGEplate interactively with a terminal program an Python. Or you can program it with Python and C. This document describes the HW and how to interact and control Pi-Plates with the BRIDGEplate.
Board Layout
As seen below, the BRIDGEplate is a very basic board:

Key features include:
- USB microB input for data and up to 500mA of 5V power
- A USB C power-only connector for up to 3A of 5V power.
- A jumper to choose source of power
- A boot enable header for field updates
- The 2x20 header for attachment of Pi-Plates
- Power management ICs for regulating and switching power
- The RP2350 microprocessor, crystal and QSPI flash memory
- A heartbeat led that blinks at 0.5 Hz
Assembling and Connecting
Note that the BRIDGEplate images shown below were from an earlier revision.
The BRIDGEplate ships with four, 17mm M3 threaded standoffs and four 10mm M3 spacers:
Mount the hardware as shown below:

If you also purchased a CASEplate or a DINplate, discard all of the fasteners included with those products except for the eight, 10mm M3 screws. Use 4 of the screws to attach the bottom cover as shown for the DINplate below:
Slide your first Pi-Plate onto the BRIDGEplate and secure with the included 15mm standoffs:

Repeat this step for any additional Pi-Plates that are on the stack then secure the top cover with the remaining 10mm screws:
Once it is assembled, connect the BRIDGEplate to your PC with the USB microB included in the package. If you have more than one RELAYplate on your stack, we strongly recommend connecting a power supply with a USB-C connector to the matching socket on the BRIDGEplate and moving the power select jumper to the left position:

Theory of Operation
Block Diagram
A functional block diagram of the BRIDGEplate looks like:
Description
Power
The RP2350 receives power from the USB microB cable since it it "always on" When the jumper is on the right side of the header, the power routed to the 2x20 header will also get it's power from this port. If you anticipate having a large stack of Pi-Plates or more than one RELAYplate, we recommend connecting an additional power supply to the USB-C connector and moving the power select jumper to the left. Note that if you do this, plug the USB-C power in before the microB cable. Otherwise, the RP2350 will not detect the attached Pi-Plates.
RP2350
When plugged in to your PC, the RP2350 makes the BRIDGEplate look like a virtual COM port. When power is first applied, it does the following:
- Initializes all IO lines
- Switches power to the stack
- Waits for attached Pi-Plates to initialize
- Determines which Pi-Plates have been attached and records their addresses (this takes a few of seconds)
- Starts the heartbeat LED and timer
- Begins monitoring USB input for commands
When a serial data string is received on the USB input, the RP2350 code passes it to the parser:
- Parses the incoming data to determine
- Which Pi-Plate is being selected
- The requested command
- The address of the Pi-Plate
- Optional parameters specific to that command - in most cases a channel number
- Checks for errors for each step above
- If the incoming command is entered correctly, the RP2350 sends the command to the addressed Pi-Plate via the SPI bus and waits for a reply.
- Once executed, the parser responds to the PC with the requested data for a "get" function or an "OK" for a "set" function
The RP2350 firmware contains all of the commands required to interface with the following Pi-Plates:
If you click on the above links, a window will open with the HW user's guide for that specific Pi-Plate.
2x20 Header
The 2x20 header connects to all of the signals required to communicate to Pi-Plates using an enhanced version of the SPI bus.
Programming
Syntax
The basic command syntax for the BRIDGEplate is the same as our Python modules for the Raspberry Pi:
TYPE.COMMAND(addr, arg1, arg2…)
TYPE is the board type and can be one of the following:
- ADC for the ADCplate
- BRIDGE for the BRIDGEplate
- CURRENT for the CURRENTplate
- DAQC for the DAQCplate
- DAQC2 for the DAQC2plate
- DIGI for the DIGIplate
- RELAY for the RELAYplate
- RELAY2 for the RELAY2plate
- THERMO for the THERMOplate
COMMAND is the board specific command that you wish to execute. addr is the Pi-Plate address which has been selected via the three jumpers on the board - this will have a value of 0 through 7. When shipped, all Pi-Plates are set to address zero.
arg1, arg2… are additional command arguments. These are typically used to specify a channel on the specific board.
For example, if you want to read an analog input with the DAQC2plate, you would send the following command to the serial port connected to the BRIDGEplate:
DAQC2.getADC(0,8)
In this case, TYPE is DAQC2, COMMAND is getADC, addr=0, and arg1 specifies the channel to measure which is = 8.
The BRIDGEplate would then parse the string, send the command to the DAQC2plate, and return with the voltage measured on channel 8.
Note that every command returns with a response.
- All “get” commands will return with either numeric or string values
- All “set” commands will return with the string “OK”
To see a list of commands available for each attached board type, simply send TYPE.help(addr) to the BRIDGEplate and you will be rewarded with a large block of text with each command explained. For example if there is a RELAY2plate with address 7 attached to the BRIDGEplate, sending the command RELAY2.help(7) via putty returns:

Syntax and command descriptions for each of the supported Pi-Plates are available in the links below:
| Pi-Plate Type | Python and Interactive Command Reference | HW User's Guide |
|---|---|---|
| ADCplate | ADCplate_Users_Guide.md | ADCplate |
| BRIDGEplate | BRIDGEplate_Users_Guide.md | You are here! |
| CURRENTplate | CURRENTplate_Users_Guide.md | CURRENTplate |
| DAQC2plate | DAQC2plate_Users_Guide.md | DAQC2plate |
| DAQCplate | DAQCplate_Users_Guide.md | DAQCplate |
| DIGIplate | DIGIplate_Users_Guide.md | DIGIplate |
| RELAYplate2 | RELAYplate2_Users_Guide.md | RELAYplate2 |
| RELAYplate | RELAYplate_Users_Guide.md | RELAYplate |
| THERMOplate | THERMOplate_Users_Guide.md | THERMOplate |
Serial - Windows, Linux, and Mac
The BRIDGEplate looks like a serial device to your PC when connected. On Windows, it will appear as a COM port in the Device Manager. On Linux it should appear when you type dmesg | grep tty from the command line. And on a Mac, it will show up when you type ls /dev/tty.* from the command line. The following steps show how to install a serial terminal that will let you interact with the BRIDGEplate.
Windows
Follow these steps for Windows
- Unplug the BRIDGEplate from your PC
- Open the Device Manager, scroll down to Ports (COM & LPT) and click on the ">" symbol

- Plug the BRIDGEplate into a USB port on your PC
- Repeat step 2 to identify the COM port assigned to the BRIDGEplate

For us, it was COM7 - yours will likely be different - Download and install the program putty from HERE.
- After installation, open putty and create the following setup:

For the serial line, use the value that popped up when you were viewing the Device Manager earlier. - Next click on Connection -> Serial in the left pane and set flow control to None:

- Click on Terminal in the left pane and change the settings as shown in the image below:

- When you’re done, click on Session to return to the main screen and save your settings as BRIDGEplate:

- Click on Open to start your session and you will be greeted with a blank terminal window. To verify connectivity, type BRIDGE.getID() and press <ENTER>. You should get the response Pi-Plates BRIDGEplate. If not, review the images above and confirm that your settings match.
Linux
We found that putty was preinstalled on Linux Mint and so that saved us a step. But due to security restrictions in Linux, you will have to change permissions for the serial port before you are allowed to access it. To do this, execute this command from a command line: sudo usermod -a -G dialout your_username. Be sure and substitute your username in the your_username field. After this, you may have to restart your system for the changes to take effect.
- Unplug your BRIDGEplate from your PC
- Open a terminal and enter sudo dmesg | grep tty
- Plug in your BRIDGEplate and wait for the heartbeat LED to start blinking
- Return to the terminal window from step 2 and enter sudo dmesg | grep tty again. Your BRIDGEplate connection should be visible. For us, it was /dev/ttyACM0.
- Inside your terminal windows type and enter putty. You should see the putty app pop up (it looks almost identical to the windows app). Once it opens, use the following setup:

For the Serial line, enter the port you found in step 4. - Next click on Connection -> Serial in the left pane and set flow control to None:

- Click on Terminal in the left pane and change the settings as shown in step 8 for the Windows instructions above.
- Finally click on Session, save your settings as BRIDGEplate, and click Open. You will be rewarded with a blank terminal window.
Mac
We didn't have much luck getting putty installed on a Mac so we downloaded SerialTools from the App Store instead.
- Open a terminal window and type in ls /dev/tty.* after you plug in the BRIDGEplate:

In our case, the BRIDGEplate is connected to /dev/tty.usbmodem146401 (modem? how old is this code?) - Download and open SerialTools. Select the Serial Port found above and make the settings match what is shown below:

- Click Connect to interact with the BRIDGEplate:

Interactive Session
You finally have serial terminal open and connected to your BRIDGEplate. At this point, you can manually send commands and receive data. You can see an example of this above for the Mac. And here is an example from a putty session in Linux:

A complete User's Guide with all of the commands can be found HERE. This was written for Python but the commands are the same.
Python
With Python, you can interact with the BRIDGEplate inside of a shell. Or, you can write scripts to automate the control and collection of data from that attached Pi-Plates. If you have used our products int the past, what follows will be very familiar.
Installation
Before you write your first program, make sure you have Python installed on your PC.
Windows
Windows does not have Python preinstalled so you will have to go here: https://www.python.org/downloads/ to get the files. After you have downloaded the installation program go to where you downloaded it and open the program. When you first launch the program, you will be asked about a number of optional features - we just chose the defaults.
Linux
While Python is preinstalled in most Linux distros, we discovered that we had to install pip. Enter these commands in a terminal window:
sudo apt update
sudo apt install python3-pip
Note the argument --break-system-packages - make sure you use two dashes in front of that line. Also note that we are breaking some Python rules with this argument but without it, we would have to run all of our code in a virtual environment which is beyond the scope of this User Guide.
Mac
For the Macintosh, you will have to download and install Python3 as well as pip3. First go to the Python website and follow the instructions for downloading and installation. Then, from a command line, install pip3:
python3 -m ensurepip --upgrade
We also found it necessary to install the pyserial package with:
pip3 install pyserial
Download Python Module
For the Raspberry Pi, we use separate Python modules for each Pi-Plate. If you were programming for the DAQC2plate or ADCplate for example, you would include lines like this at the top of your script:
import piplates.DAQC2plate as DAQC2
import piplates.ADCplate as ADC
This is not necessary for the BRIDGEplate since it can decode all of the commands for each supported Pi-Plate. Functionally, it simply parses the strings you pass from the serial port, exchanges data with the referenced Pi-Plate and returns the appropriate response. But, passing string data back and forth with a serial port can quickly become tedious since numbers and variables have to be converted to text and vice versa. To address this, we wrote the BRIDGEplate.py module which takes care of all the tedium required to communicate with the Pi-Plates. BRIDGEplate.py provides the following functions:
- Automatically locates the COM or Serial port that the BRIDGEplate is connected to
- Opens that serial port
- Provides a set of functions that recreate the command syntax used in our original Python modules
- Provides a command processor that:
- Automatically converts passed variables to strings before transmitting to the BRIDGEplate
- Automatically converts returned numeric strings to numeric values before returning to the calling function
- Works with Windows, Linux, and Mac environments
Here's where things get a bit complicated:
You can download the BRIDGEplate.py module directly from github , unzip it, and place it in your working directory. When done this way, you would load the module with: from BRIDGEplate import *. Note that if you take this approach, a copy of BRIDGEplate.py will have to be in each directory that you code in. The second approach is to download it with pip. From the command line, enter pip install Pi-Plates. However, you may get an error message that mentions "PEP 668" and "externally managed environment." If this happens you have two choices:
- You can do all of your coding inside of a virtual environment (VENV). Once you're inside the VENV, you can install the the Python module with pip install Pi-Plates without receiving any error messages.
- Or, you can do what we do and install the Python modules with pip install --break-system-packages Pi-Plates . This approach makes it a lot less tedious since you won't be forced to enter a VENV every time you want to write a Python program that uses the BRIDGEplate.
- Either way, if you use pip to install the BRIDGEplate module, you would load it into your program with this line at the beginning of your script: from piplates.BRIDGEplate import *
Programming
Recall that the commands for every supported Pi-Plate type are included in BRIDGEplate.py, so there is no need to load board specific modules. Simply include this at the top of your script if you installed the module with pip:
from piplates.BRIDGEplate import *
Or put this at the top of your script if you downloaded BRIDGEplate.py from github:
from BRIDGEplate import *
You may see a mix of these two approaches in the examples that follow.
Recall from the syntax section above that the types are:
- ADC for the ADCplate
- BRIDGE for the BRIDGEplate
- CURRENT for the CURRENTplate
- DAQC for the DAQCplate
- DAQC2 for the DAQC2plate
- DIGI for the DIGIplate
- RELAY for the RELAYplate
- RELAY2 for the RELAY2plate
- THERMO for the THERMOplate
Since Python is an interpretive language, we can create code by writing scripts in a text editor, saving them as myProgram.py and then simply running them from the command line: python myProgram.py. Another approach, especially if you are just starting out, is to use an Integrated Development Environment (IDE) like Idle (usually installed along with Python), Visual Studio Code, or Thonny. We will use Thonny for our coding since it’s simple, is available for Windows, Mac, and Linux, and provides a clean interface. Go ahead and install it from their website: https://thonny.org/
In the image below, you can see where we wrote a script in the editor section at the top of the screen that addresses an ADCplate. After saving the program as ADCAVDtest.py, we ran the code, and generated output which is visible in the lower part of the screen called the shell:

We commented the code so you can get an idea of what's happening. Note that the BRIDGEplate module includes a convenience function called POLL() - notice how it identified which Pi-Plates are available and what their addresses are.
|
1 2 3 4 5 6 7 8 9 10 |
from piplates.BRIDGEplate import * #import the BRIDGEplate module import time POLL() #Show the Pi-Plates on this stack print() #add a space resp1=ADC.initADC(0) #Initialize the ADCplate time.sleep(0.5) #allow time for the ADCplate to reset resp1=ADC.setMODE(0,"ADV") #place ADCplate in ADVANCED mode print(ADC.getID(0),"\n") #print out the ID string of the ADCplate for i in range(10): #read differential channel 1 of the ADCplate 10 times print(ADC.readSINGLE(0, "D1", 6)) #address 0, channel D1, sample rate 6 |
In this second, more extensive example, we pull 1024 ADC samples from a DAQC2plate in oscilloscope mode and plot the data. You will likely need to download the required matplot code from the command line with:
pip install matplot
Before running this code, we placed the output of a function generator across channel 1 and ground of the analog input connector on the DAQC2plate attached to our BRIDGEplate. We then set the generator to output a 2Khz sine wave at 12Vpp.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
from piplates.BRIDGEplate import * import matplotlib.pyplot as plt #The following two functions convert between the 12-bit binary values of the ADC and +/-12VDC def volts2INT(volts): #convert -12 to +12 volts to 0-4095 return int(volts/12*2048+2048) def INT2volts(INT): #convert 0-4095 to -12 to +12 volts return (INT-2048)*12.0/2048 DAQC2.getINTflags(0) #clear interrupt flags DAQC2.startOSC(0) #enable oscope DAQC2.setOSCchannel(0,1,0) #use channel 1 # The valid sample rate values in samples/second are: # 0: 100 # 1: 200 # 2: 500 # 3: 1000 # 4: 2000 # 5: 5000 # 6: 10,000 # 7: 20,000 # 8: 50,000 # 9: 100,000 # 10: 200,000 # 11: 500,000 # 12: 1,000,000 - only valid when a single channel is enabled N=1000 #displayed sample count sampRate=1000000 #we will sample at 1M samples/second x=N*[0] #initialize x data list y=N*[0] #initialize y data list plt.axis([0, N/sampRate, -10, 10]) #set the scale plt.xlabel('Time') # name the x axis plt.ylabel('Volts') # name the y axis plt.title('Oscilloscope Trace') # give a title to graph # Set up trigger: # Use channel 1 # Normal trigger mode (don't collect data until trigger conditions are met) # Trigger on rising edge of waveform # Trigger at 0.0 volts DAQC2.setOSCtrigger(0,1,'normal','rising',volts2INT(0.0)) DAQC2.setOSCsweep(0,12) # setup sample rate for 1M samples per second DAQC2.intEnable(0) # enable interrupts DAQC2.runOSC(0) # start oscope function ## Wait for sweep to complete by monitoring the interrupt flag dataReady=0 #DAQC2.trigOSCnow(0) #uncomment this line if you're capturing DC data or want to auto trigger while(dataReady==0): if(DAQC2.getSRQ()): dataReady=1 DAQC2.getINTflags(0) #clear interrupt flags trace=DAQC2.getOSCtraces(0) #grab the data from the DAQC2plate DAQC2.stopOSC(0) #turn off oscilloscope mode # Convert the first 1000 A2D values from 12-bit integer data to voltage and plot for i in range(N): x[i]=i/sampRate y[i]=INT2volts(trace[i]) plt.plot(x, y) # plotting the points plt.show() |
Running the above code in Windows and Linux produced the following plot on our screen:

For further reference, a complete (AI assisted) Python command reference for the BRIDGEplate is available HERE.
C
Syntax
The BRIDGEplate also supports programming using the C language. All Pi-Plates can be interfaced with through a single library file called BRIDGEplate.c. In terms of syntax, the function calls in C use an underscore instead of a dot. For example, the python function to read an ADC value with a DAQC2plate looks like:
DAQC2.getADC(0,8)
In C, the function call looks like:
DAQC2_getADC(0,8)
Like its Python counterpart, BRIDGEplate.c provides the following functions:
- Automatically locates the COM or Serial port that the BRIDGEplate is connected to
- Opens that serial port
- Provides a set of functions that recreate the command syntax used in our original Python modules
- Provides a command processor that:
- Automatically converts passed variables to strings before transmitting to the BRIDGEplate
- Automatically converts returned numeric strings to numeric values before returning to the calling function
- Works in both the Windows and Linux environment (not yet tested on Mac)
For more information, a complete (AI assisted AGAIN) c command reference for the BRIDGEplate is available HERE.
Programming Environment
There are a number of different ways to develop c code with a PC. You can use a full IDE like Visual Studio Code on Windows, Linux, and macOS. Apple even has their own, dedicated IDE called Xcode IDE. Or, you can simply write the program using a text editor and then compile it from the command line. For example, if I used a text editor to create a c program called myprogram.c, then I can compile it with gcc from the command line with:
gcc -o myprogram myprogram.c BRIDGEplate.c
While gcc is preinstalled on Linux, we suggest you download UCRT64 from https://www.msys2.org/ for a Windows-based gcc compiler. For macOS, you can install GCC using the Homebrew package manager or use clang.
For the sake of keeping things simple, we will use the above approach for the examples that follow.
Examples
The readme.md file on github includes a number of examples and we will be using gcc on Linux to compile a few of them. But first, download the BRIDGEplate.c library along with a function reference from HERE and place it in the folder where you will be writing your code. Next open a text editor and paste this code into it:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
//simple.c - simple program using BRIDGEplate library #include <stdio.h> #include <stdlib.h> #include "BRIDGEplate.h" #ifdef _WIN32 #include <windows.h> #define SLEEP_MS(ms) Sleep(ms) #else #include <unistd.h> #define SLEEP_MS(ms) usleep((ms)*1000) #endif int main(void) { printf("BRIDGEplate Example Program\n"); printf("============================\n\n"); // Initialize connection if (BRIDGEplate_init() != 0) { fprintf(stderr, "Failed to initialize BRIDGEplate\n"); return 1; } printf("BRIDGE Information:\n"); printf(" ID: %s\n", BRIDGE_getID()); printf(" HW Rev: %.1f\n", BRIDGE_getHWrev()); printf(" FW Rev: %.1f\n", BRIDGE_getFWrev()); printf("\n"); BRIDGEplate_close(); return 0; } |
Save the file as simple.c in the same folder as BRIDGEplate.c. Then compile the with:
gcc -o simple simple.c BRIDGEplate.c
You might see a couple of compiler warnings but these can be ignored
From the command prompt, type ./simple and hit <ENTER>:
jerry@jerry-minty:~/BRIDGEplate/c$ ./simple
You should see the following output:
BRIDGEplate Example Program
============================
BRIDGE Information:
ID: Pi-Plates BRIDGEplate
HW Rev: 1.0
FW Rev: 1.0
Our second example, ADCexample.c, reads all the values from the ADCplate ten times and displays the values:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
#include "BRIDGEplate.h" #include <stdio.h> #include <unistd.h> // For usleep int main(void) { if (BRIDGEplate_init() != 0) { fprintf(stderr, "Failed to initialize\n"); return 1; } // Check if ADC plate is present at address 0 if (ADC_getADDR(0) == 0) { printf("ADC plate found at address 0\n"); printf("ADC ID: %s\n", ADC_getID(0)); // Read all channels 10 times printf("\nReading ADC channels:\n"); for (int i = 0; i < 10; i++) { double values[16]; int count = ADC_getADCall(0, values); printf("Sample %d: ", i + 1); for (int ch = 0; ch < 12; ch++) { printf("CH%d=%.3fV ", ch, values[ch]); } for (int ch = 12; ch < 16; ch++) { printf("CH%d=%.3fmA ", ch, values[ch]); } printf("\n"); usleep(5000); // 5ms delay } } else { printf("No ADC plate found at address 0\n"); } BRIDGEplate_close(); return 0; |
Copy, paste, save as ADCexample.c and then compile with:
gcc -o ADCexample ADCexample.c BRIDGEplate.c
Running our program (jerry@jerry-minty:~/BRIDGEplate/c$ ./ADCexample) produces the following output:
ADC plate found at address 0
ADC ID: Pi-Plate ADCplate
Reading ADC channels:
Sample 1: CH0=4.431V CH1=2.382V CH2=2.406V CH3=2.402V CH4=2.419V CH5=2.375V CH6=2.393V CH7=2.375V CH8=1.481V CH9=-0.000V CH10=0.028V CH11=0.041V CH12=0.000mA CH13=0.000mA CH14=0.000mA CH15=0.000mA
Sample 2: CH0=-4.066V CH1=2.351V CH2=2.271V CH3=2.276V CH4=2.194V CH5=2.371V CH6=2.222V CH7=2.372V CH8=-6.482V CH9=-0.000V CH10=-0.184V CH11=-0.195V CH12=0.000mA CH13=0.000mA CH14=0.000mA CH15=0.000mA
Sample 3: CH0=3.781V CH1=2.381V CH2=2.398V CH3=2.392V CH4=2.396V CH5=2.375V CH6=2.365V CH7=2.375V CH8=2.107V CH9=-0.000V CH10=0.049V CH11=0.059V CH12=0.000mA CH13=0.000mA CH14=0.000mA CH15=0.000mA
Sample 4: CH0=-3.312V CH1=2.353V CH2=2.281V CH3=2.288V CH4=2.219V CH5=2.371V CH6=2.252V CH7=2.372V CH8=-6.994V CH9=-0.000V CH10=-0.202V CH11=-0.209V CH12=0.000mA CH13=0.000mA CH14=0.000mA CH15=0.000mA
Sample 5: CH0=2.933V CH1=2.379V CH2=2.386V CH3=2.379V CH4=2.368V CH5=2.375V CH6=2.333V CH7=2.374V CH8=2.501V CH9=-0.000V CH10=0.063V CH11=0.069V CH12=0.000mA CH13=0.000mA CH14=0.000mA CH15=0.000mA
Sample 6: CH0=-2.383V CH1=2.355V CH2=2.294V CH3=2.302V CH4=2.249V CH5=2.372V CH6=2.285V CH7=2.372V CH8=-7.264V CH9=-0.000V CH10=-0.212V CH11=-0.216V CH12=0.000mA CH13=0.000mA CH14=0.000mA CH15=0.000mA
Sample 7: CH0=1.809V CH1=2.368V CH2=2.356V CH3=2.365V CH4=2.372V CH5=2.374V CH6=2.402V CH7=2.374V CH8=2.643V CH9=-0.000V CH10=0.071V CH11=0.073V CH12=0.000mA CH13=0.000mA CH14=0.000mA CH15=0.000mA
Sample 8: CH0=-2.264V CH1=2.363V CH2=2.310V CH3=2.301V CH4=2.216V CH5=2.372V CH6=2.188V CH7=2.372V CH8=-7.276V CH9=-0.000V CH10=-0.216V CH11=-0.216V CH12=0.000mA CH13=0.000mA CH14=0.000mA CH15=0.000mA
Sample 9: CH0=2.822V CH1=2.371V CH2=2.372V CH3=2.380V CH4=2.399V CH5=2.374V CH6=2.423V CH7=2.375V CH8=2.525V CH9=-0.000V CH10=0.071V CH11=0.068V CH12=0.000mA CH13=0.000mA CH14=0.000mA CH15=0.000mA
Sample 10: CH0=-3.211V CH1=2.360V CH2=2.295V CH3=2.287V CH4=2.191V CH5=2.372V CH6=2.170V CH7=2.371V CH8=-7.029V CH9=-0.000V CH10=-0.212V CH11=-0.208V CH12=0.000mA CH13=0.000mA CH14=0.000mA CH15=0.000mA
More examples and a complete function reference and instructions are contained in the zip file downloaded from github earlier.
Labview
We developed a simple Virtual Instrument (VI) called Pi-Plate VI, that facilitates the collection of data from Pi-Plates via the BRIDGEplate. What follows assumes that you are familiar with Labview since the installation, setup, and concepts are beyond the scope of this User Guide. Note - we have only tested this on a Windows PC.
The Front Panel of our VI looks like:
And the block diagram looks like:

The icon for out VI has these connections:

You MUST supply a com port and a command string. A real simple example is shown below when we just filled in the COM Port input and put the command DAQC2.getADC(0,8) in the Command input. After clicking on the run button (that right arrow), the DAQC2plate responded a string and double of 5.376 volts.
For our second demo, we put BRIDGEplate VI inside of a loop and performed 100 reads of an ADCplate. A Waveform Chart control is connected to the numeric output. To the left of the loop structure is a 2nd VI that simply places the ADCplate in Advanced mode (ADC).
Placing a sinewave on input 0 of the ADC and clicking on the RUN button again produces this output on the Front Panel of the demo:
This VI along with the demo above can be downloaded from HERE.
PIPLATElogger
We developed a version of our PIPLATElogger that runs on both Windows and the Mac (it runs on Linux but it looks terrible for now). To distinguish this version from the one that targets the Raspberry Pi, we have renamed it PIPLATElogger-PC. It can be downloaded along with the user manual and some assets from HERE. Click on the button that says <> Code ▼. Then click on "Download ZIP." Unzip the downloaded archive and place the files into your desired destination folder. After that, launch the program with
python PIPLATElogger-PC.py
The program will automatically locate and connect to the BRIDGEplate and then open up with a screen that has tabs for each attached Pi-Plate. It is possible that the first time you launch the program, it will download a utility module call PMW - this will only happen once.
At this point you should see a screen that looks like:

For complete documentation on PIPLATElogger-PC, read the manual that was included in the download. However, be cognizant that it was written for the Raspberry Pi so there may be some examples that do not apply.








