
Ice4pi
lightside-instruments/gpib4pi
The gpib4pi project is open hardware design of a Raspbery Pi extension board with GPIB interface using only GPIOs.

simple gpib2usb adapter
Gpib adapter is an open-source printed circuit board by asanza, from the asanza/gpib2usb repository on GitHub. It is a 2-layer board of 56.6 × 57.7 mm with 29 parts on 66 nets, routed with 406 tracks and 35 vias.
It is built around the SN75160BN, SN75161BN and PRTR5V0U2X. Its parts include 10 capacitors, 7 resistors, 4 diodes, 3 ICs and 3 connectors. It belongs with the interfaces and adapters and sensors and measurement boards and the PIC boards of this library.

We live in wonderful times... Now is possible for us to get pretty good but old and used measurement equipment on e-bay, just for a few bucks. Equipment that otherwise would be out of the hobbist leage, like 6.5 digit multimeters, oscilloscopes, signal generators... just to name a few.
These old equipment often come with a GPIB interface, which allows to control them from a computer with the corresponding GPIB connection. Regretably, computers do not come with GPIB interfaces, and the adapters available are not cheap.
Here comes this little device to rescue. It is a gpib-to-usb adapter which after connected to the computer via the almighty usb port, it presents itself as a serial port and allows to send GPIB commands to connected GPIB devices.
For now is yet a work in progress.
The device presents itself as a serial port. The commands are the same as the similar device sold by Prologix LLC, but compatibility is not guaranteed.
| Command | Description |
|---|---|
| ++addr 0-31 | Tell controller which device to address |
| ++addr | Query currently configured device address |
| ++clr | This command sends the Selected Device Clear (SDC) message to the currently specified GPIB address. Please consult the programming manual for details on how a particular instrument responds to this message. |
| ++eoi 0/1 | Enable (1) or disable (0) EOI with last byte. Default is 0. This command enables or disables the assertion of the EOI signal with the last character of any command sent over GPIB port. Some instruments require EOI signal to be asserted in order to properly detect the end of a command. |
| ++eoi | Query current EOI setting |
| ++eos 0/1/2/3 | EOS terminator — 0:CR+LF, 1:CR, 2:LF, 3:None. Default is 0. This command specifies GPIB termination characters. When data from host is received over USB, all non-escaped LF, CR and ESC characters are removed and GPIB terminators, as specified by this command, are appended before sending the data to instruments. This command does not affect data from instruments received over GPIB port. |
| ++eos | Query current EOS setting |
| ++ifc | Issue interface clear. This command asserts GPIB IFC signal for 150 microseconds making the gpib2usb controller the Controller-In-Charge on the GPIB bus. |
| ++loc | Return device to local mode |
| ++read [eoi/char] | This command can be used to read data from an instrument until: EOI is detected or timeout expires, or A specified character is read or timeout expires, or Timeout expires. Timeout is set using the read_tmo_ms command and applies to inter-character delay, i.e., the delay since the last character was read. Timeout is not be confused with the total time for which data is read. |
| ++read_tmo_ms [1-3000] | This command specifies the timeout value, in milliseconds, to be used in the read command and spoll command. Timeout may be set to any value between 1 and 3000 milliseconds. |
| ++spoll | Read status byte by serial polling the device |
| ++srq | Query status of SRQ line. 0: Not asserted, 1:Asserted |
| ++trg | Issue device trigger |
| ++ver | Query GPIB-USB controller version |
| ++help | Print help about commands |
To send binary data to instruments following characters must be escaped by preceding them with an ESC character: CR (ASCII 13), LF (ASCII 10), ESC (ASCII 27), ‘+’ (ASCII 43)
In order to detect new devices, modem manager issues two AT commands to each new ACM device detected. This blocks the serial port and causes it to be unavailable the first seconds. This is somewhat annoying. Fortunately it is possible to disable this behaviour. You need to create a new file:
/etc/udev/rules.d/77-mm-usb-device-blacklist.rulesand put following content in it:
with content:
# gpib2usb converter
ATTRS{idVendor}=="1209", ATTRS{idProduct}=="0001", ENV{ID_MM_DEVICE_IGNORE}="1"| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 100n | Capacitors_SMD:C_0805 | C4, C5, C7, C8 |
| 3 | 470 | Resistors_SMD:R_0805 | R4, R5, R6 |
| 3 | PWR | LEDs:LED-5MM | D1, D2, D3 |
| 2 | 10n | Capacitors_SMD:C_0805 | C6, C9 |
| 2 | 18p | Capacitors_SMD:C_0805 | C2, C3 |
| 2 | 22 | Resistors_SMD:R_0805 | R2, R3 |
| 1 | 1u | Capacitors_SMD:C_0805 | C1 |
| 1 | 8MHz | Crystals:Crystal_SMD_5032_4Pads | X1 |
| 1 | C | Capacitors_SMD:C_1206 | C10 |
| 1 | F_Small | Resistors_SMD:R_1210 | F1 |
| 1 | GPIB | gpib_conn_male:gpib_conn_male | P5 |
| 1 | PIC18(L)F4550-I/PT | Housings_QFP:TQFP-44_10x10mm_Pitch0.8mm | U3 |
| 1 | PRTR5V0U2X | esd_protection:PRTR5V0U2X | D4 |
| 1 | R | Resistors_SMD:R_0805 | R1 |
| 1 | R | Resistors_SMD:R_1206 | R7 |
| 1 | SN75160 | Housings_SOIC:SOIC-20_7.5x12.8mm_Pitch1.27mm | U1 |
| 1 | SN75161 | Housings_SOIC:SOIC-20_7.5x12.8mm_Pitch1.27mm | U2 |
| 1 | TC2030-MCP | tagconnect:TC2030-NL_SMALL | P1 |
| 1 | USB | Connect:USB_B | P2 |
It measures 56.6 × 57.7 mm and has 2 copper layers, 1.6 mm thick.
29 parts, built around the SN75160BN, SN75161BN and PRTR5V0U2X. 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.
From the asanza/gpib2usb repository on GitHub, at the commit this page was made from: the board is pcb/gpib_adapter.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask asanza before reusing the design.

lightside-instruments/gpib4pi
The gpib4pi project is open hardware design of a Raspbery Pi extension board with GPIB interface using only GPIOs.

VE7PMC/AVR488
USB to IEEE-488 interface based on the ATmega168/328 microcontroller





joseluu/MCP-AR-488-ESP32
The idea is to have AI help me build electronics. AI needs eyes, the eyes are the oscilloscope which is used through an MCP interface.

OpenhimerLab/CareLite-GPIB
CareLite is an open-source, tiny, small USB-GPIB adaptor based on STM32 with temperature sensors.