

Hp il
HP-IL to serial/usb translator/bridge
- Size
- 18.3 × 43.7 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 26
- Nets
- 46
- Pads
- 102
- Tracks, vias
- 175, 15
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 8 Nov 2023
- Updated
- 29 Jun 2025
Overview
Hp il is an open-source printed circuit board by gIzFer, from the gIzFer/hpil repository on GitHub, published under the AGPL-3.0 licence. It is a 2-layer board of 18.3 × 43.7 mm with 26 parts on 46 nets, routed with 175 tracks and 15 vias.
It is built around the PT61017PEL. Its parts include 9 resistors, 6 transistors, 4 diodes, 3 capacitors and 2 connectors. It belongs with the interfaces and adapters boards and the AVR (ATmega, ATtiny) boards of this library.
Main components
1README
readme.mdHP-IL bridge/translator to USB/Serial
What does it do
So what does this do? The device simply takes what it receives from the HP-IL side and sends it over serial. Same in the other direction. sends 2 bytes, the command and the data terminated with a '\n' (ascii 10) character
Why
I had a 3468A and wanted to control it from my computer and make the electronics circuit simple an easy and of parts everyone could have at hand. Difficulty was relayed onto the firmware, but even so was kept simple without implementing the state machines of the protocol.
Materials needed
- Atmega328p
- 2 NPN and 4 PNP transistors. 2 PNP handle the input and the other 2 and 2 are for a push pull arrangement to send data. I sprinkled on them some diodes to speed them up.
- Ethernet transformer. Fastest pulses are around 1µs and an ethernet transformer seems to be able to handle that quite well. You can find them in every device having a rj45 port, old computers, routers, switches, etc.
Added made up codes
1XX
They are for extra messages you can send to the device, like asking it to just send the message it just received
1XX List of codes
- 101: send back the last message received
- 102: get calibration data of the HP3468 dmm
- 103: get firmware version
- 104: set calibration value of the HP3468 dmm. Has 5 parameters: first one is the range setting to set. Since there are 12 ranges and two values per range the even values are offsets and odd values are gains. i.e.:
104 6 0 0 0 0set the offset of the fourth range to 0.i.e.:104 1 0 0 0 0set the gain of the first range to 0. - 105: print processed calibration values of the HP3468 dmm
- 106: print a quick read of the HP3468 dmm
2XX
They are for extra messages you can receive from the device like errors
2XX List of codes
- 201: received message buffer overflowed, answers with 201 and the last byte it received
- 202: in command 104, trying to set a cal value the value was more than 23; there are only 12 ranges with 2 values per range (offset and gain), 0 to 23.
todo:
- read pins instead of delays (NOPs) when talking to be able to read answer at the same time im writing
- add images to readme
- add "console mode" so no need for the python client, to be able to directly send the commands to it
- send and write calibration data
Parts
26| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 220 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R13, R14, R15, R16 |
| 4 | SS14 (5819) | Diode_SMD:D_SMA_Handsoldering | D1, D2, D3, D4 |
| 3 | 47 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R1, R4, R5 |
| 2 | 1AM (2N3904) | custom:SOT-23_Handsoldering_(3904_1AM)(3906_2A) | Q7, Q9 |
| 2 | 1k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R2, R3 |
| 2 | 2A (2N3906) | custom:SOT-23_Handsoldering_(3904_1AM)(3906_2A) | Q8, Q10 |
| 2 | 2L (2N5401) | custom:SOT-23_Handsoldering_(5401_2L) | Q1, Q2 |
| 2 | Conn_01x03_Socket | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J1, J2 |
| 1 | 10n | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C3 |
| 1 | 10uF | Capacitor_THT:CP_Radial_D4.0mm_P2.00mm | C2 |
| 1 | 470p | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C1 |
| 1 | Arduino_Nano_v3.x | Module:Arduino_Nano | A1 |
| 1 | PT61017PEL | Transformer_SMD:Transformer_Ethernet_Bourns_PT61017PEL | TR1 |
More from gIzFer/hpil
1- 2 layers49.9 × 78.1 mm

Similar boards
- 4 layers116.8 × 121.8 mm

Se30
rhalkyard/SEthernet
Modern, low-cost 10/100 Ethernet for the Macintosh SE and SE/30
50 parts167GPL-3.0 - 2 layers44.5 × 44.5 mm

- 2 layers191.5 × 100 mm

HyperNet-2-MainBoard
TheStaticTurtle/HyperNet
HyperNet is an 8-in, 8-out open-source audio stagebox based on Ultranet
232 parts6MIT - 4 layers83 × 106 mm

- 2 layers95 × 85 mm

NUC980
TreeNewbeer/Coonix
Coonix is a funny project about building a application platform in Allwinner-v3s processor.
172 parts4 - 6 layers120 × 48 mm

Sethernet30 Combo
ZigZagJoe/SEthernet-Combo
derivative PCB of rhalkyard/SEthernet for use in soldering directly to other PDS cards.
53 parts4 - 2 layers60.3 × 52.7 mm

- 2 layers60 × 46 mm

Questions
How big is the Hp il PCB?
It measures 18.3 × 43.7 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Hp il use?
26 parts, built around the PT61017PEL. 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.
Where can I download the Hp il KiCad files?
From the gIzFer/hpil repository on GitHub, at the commit this page was made from: the board is schematics/SMD/hp-il.kicad_pcb and its schematic schematics/SMD/H_bridge.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Hp il design in my own project?
Its repository publishes it under the AGPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).