

M18-usb interface pcb
Isolated USB-C adapter for Milwaukee M18 battery diagnostics. KiCad design and v1.0 fab files. Software: m18-protocol-rs.
- Size
- 33 × 46 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 31
- Nets
- 27
- Pads
- 102
- Tracks, vias
- 187, 78
- Pours
- 92
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 15 Sep 2025
- Updated
- 21 Oct 2026
Overview
M18-usb interface pcb is an open-source printed circuit board by fred314159265, from the fred314159265/m18-usb-interface repository on GitHub, published under the Unlicense licence. It is a 2-layer board of 33 × 46 mm with 31 parts on 27 nets, routed with 187 tracks and 78 vias.
It is built around the FT234XD-R, LTV-817S and SMF26CA, with the SMF12CA among its other parts. Its parts include 10 resistors, 6 capacitors, 5 diodes, 4 ICs and 2 transistors. It belongs with the power and interfaces and adapters boards of this library.
Main components
4FT234XD-R
DFN-12(3x3)-40℃~+85℃ 125uA 2.97V~5.5V 8mA USB 2.0 USB to UART DFN-12(3x3) USB Converters ROHSFTDIUSB ConvertersLTV-817S
SMD-4P-55℃~+110℃ 1 1.2V 100mV@20mA,1mA 200mW 35V 3us 4us 50% 50mA 50mA 5kV 600% 6V DC Phototransistor SMD-4P Transistor, Photovoltaic Output Optoisolators ROHSLite-OnTransistor, Photovoltaic Output OptoisolatorsSMF26CA
SOD-123FL-55℃~+150℃ 1uA 200W@10/1000us 26V 31.9V 4.8A@10/1000us 42.1V Bidirectional IEC 61000-4-2 TVS SOD-123FL ESD and Surge Protection (TVS/ESD) ROHShongjiachengESD And Surge Protection (TVS/ESD)SMF12CA
SOD-123FLESD And Surge Protection (TVS/ESD)hongjiacheng
README
README.mdM18 USB Interface
A USB-C board that plugs into a Milwaukee M18 battery so a PC can talk to the pack's diagnostic pins.
Revision v1.0. The M18 connector is on the back of the board.
Companion software
Read a health report, cell data, and charge history with m18-protocol-rs:
cargo run --example health_report -- COM3On Linux or macOS, pass the serial device instead, for example /dev/ttyUSB0.
The protocol comes from the reverse engineering in mnh-jansson/m18-protocol. That Python tool works with this board as well.
Features
- USB-C and an FT234XD serial bridge, with RX and TX LEDs.
- Two LTV-817S optocouplers. The battery UART is on its own ground, separate from the PC.
- J2 is driven as a roughly 0–12 V signal, which is what the pack expects. J1 comes back from the pack at about 3.3–5 V.
- ESD diodes on the exposed battery pins.
- Everything except the M18 connector is chosen from the JLCPCB assembly library. Solder the connector on afterwards.
- KiCad 9 sources. The v1.0 fabrication package is in the repo and on the v1.0 release.
Battery pins
These photos are from the Tool Scientist video and the m18-protocol hardware notes. They show the pack terminals this board connects to.
| Pin | Role | Level |
|---|---|---|
| B+ | Pack positive | About 12.5–21 V |
| J1 | Output from the pack | About 3.3–5 V |
| C | Charge terminal | |
| J2 | Input to the pack | About 0–12 V |
| B− | Pack negative |
Images/wiring.png is the discrete FTDI adapter and level shifter that this PCB replaces.
One-time FTDI setup
The optocouplers invert TX and RX. Program the FT234XD once with FT_Prog, or the link will not decode.
Template: m18-usb-interface-pcb/Releases/v1.0/M18_Interface_FT_Prog_Template.xml
- Install FT_Prog.
- Choose
File → Open Template…and select the template. - Plug in the board. Choose
Devices → Scan and Parse. - Right-click the device, choose
Apply Template, and select the template. - Choose
Devices → Program.
The template writes:
- USB product name
M18 USB Interface - TX and RX inverted
- the VCP driver, so the board shows up as a normal COM port
- 8 mA drive, slow slew, and Schmitt trigger inputs
Build
Fabrication files for v1.0:
- Release v1.0, with the gerber zip, schematic PDF, and FT_Prog template attached
- Gerbers and assembly files in
m18-usb-interface-pcb/Releases/v1.0/production/ - Schematic PDF
- Interactive BOM
- Order the board from the production zip. It includes the gerbers, BOM, and pick-and-place file.
- Solder on an M18 battery connector. The footprint matches common shells such as this one.
- Program the FTDI chip with the template above.
- Plug the board into an M18 pack, and plug USB-C into the PC.
- Run
health_reportfrom m18-protocol-rs.
Safety
This is not a Milwaukee Tool product, and Milwaukee has not endorsed it. Lithium-ion packs can burn if they are shorted or wired wrong. Isolation on this board is not a guarantee if it is assembled incorrectly. Use it at your own risk.
License
Public domain under The Unlicense.
Thanks
Tool Scientist and the contributors to m18-protocol documented the pins and the protocol this board is built for.
Parts
31| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 5.1k | Resistor_SMD:R_0603_1608Metric | R9, R10, R11, R12 |
| 3 | 1k | Resistor_SMD:R_0603_1608Metric | R6, R7, R8 |
| 2 | 100nF | Capacitor_SMD:C_0603_1608Metric | C4, C6 |
| 2 | 27R | Resistor_SMD:R_0603_1608Metric | R1, R4 |
| 2 | 2N7002 | Package_TO_SOT_SMD:SOT-23 | Q1, Q2 |
| 2 | 47pF | Capacitor_SMD:C_0603_1608Metric | C1, C2 |
| 2 | LTV-817S | Package_DIP:SMDIP-4_W9.53mm | U3, U4 |
| 2 | SMF26CA | Diode_SMD:D_SOD-123F | D3, D4 |
| 1 | 10nF | Capacitor_SMD:C_0603_1608Metric | C3 |
| 1 | 120Ω@100MHz 2A 50mΩ | Inductor_SMD:L_0603_1608Metric | FB1 |
| 1 | 22kR | Resistor_SMD:R_0603_1608Metric | R3 |
| 1 | 4.7uF | Capacitor_SMD:C_0603_1608Metric | C5 |
| 1 | FT234XD | Package_DFN_QFN:WDFN-12-1EP_3x3mm_P0.45mm_EP1.7x2.5mm | U1 |
| 1 | M18 | M18_USB_Interface:M18_Battery_Interface | U2 |
| 1 | RX | LED_SMD:LED_0603_1608Metric | D1 |
| 1 | SMF12CA | Diode_SMD:D_SOD-123F | D5 |
| 1 | TX | LED_SMD:LED_0603_1608Metric | D2 |
| 1 | USB_C_Receptacle_USB2.0 | Connector_USB:USB_C_Receptacle_XKB_U262-16XN-4BVC11 | J1 |
The 29 most common of 31 parts.
Questions
How big is the M18-usb interface pcb PCB?
It measures 33 × 46 mm and has 2 copper layers, 1.6 mm thick.
What parts does the M18-usb interface pcb use?
31 parts, built around the FT234XD-R, LTV-817S, SMF26CA and SMF12CA. 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 M18-usb interface pcb KiCad files?
From the fred314159265/m18-usb-interface repository on GitHub, at the commit this page was made from: the board is m18-usb-interface-pcb/m18-usb-interface-pcb.kicad_pcb and its schematic m18-usb-interface-pcb/m18-usb-interface-pcb.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the M18-usb interface pcb design in my own project?
Its repository publishes it under the Unlicense licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers25.4 × 42.9 mm

- 4 layers121.9 × 44.4 mm

- 4 layers250.8 × 30 mm

- 4 layers68.9 × 112.1 mm

RP2350 V2
Stefan1623/VoidLink_Hardware
Four-layer RF PCB design files for a wireless communication system
151 parts - 2 layers64.1 × 40 mm

WALKIN PIR IF
ThunderSloth/walkin-pir-interface
Battery-Powered PIR Motion Interface (Isolated Dry Contact)
24 partsMIT - 2 layers70 × 110 mm

- 2 layers36.5 × 49.5 mm

V485 controller
gabrielyoung92/gabs_microSMT_PickAndPlace
Independent reorganisation of MicroSMT feeder and PNPv3 files, previews and documentation, with upstream attribution and ChatGPT assistance.
33 parts1 - 4 layers128.5 × 40 mm

Scalenode cm4-baseboard
antmicro/scalenode-cm4-baseboard
Baseboard for Raspberry Pi 4 Compute Module optimized for clustering
146 parts152Apache-2.0