Show HN: A USB-C LTE modem that gives my computer a phone line

Hacker News Top Products

Summary

An open-source USB-C LTE modem board that gives a computer its own phone line — LTE data, SMS, and voice calls with call audio over USB — designed by Koppar from a one-page spec and fully documented with KiCad files, gerbers, and assembly instructions.

No content available
Original Article
View Cached Full Text

Cached at: 10/31/26, 09:23 PM

Koppar-AI/koppar-lte-modem

Source: https://github.com/Koppar-AI/koppar-lte-modem

Koppar LTE modem: a phone line over USB-C

A 4-layer board that gives a computer its own phone line: LTE data, SMS and voice calls, with the call audio on USB. Plug in a nano-SIM and one USB-C cable, and the computer can answer a call through your headset, hand it to a script or an AI agent, or send a text.

The board, 85 x 65 mm, 4 layers

The board was designed by Koppar from a one-page spec (spec.txt), then reviewed part by part against the datasheets.

What it does

One USB-C cable, and the computer sees three ordinary devices through the on-board USB hub:

DeviceFromFor
Network adapterQuectel EC25-EUX (U8)LTE data, with 3G and 2G fallback (European bands)
Serial portsEC25-EUXAT commands: caller ID (+CLIP), texts (AT+CMGS), answer (ATA)
USB sound cardRP2040 (U5)Call audio: the module’s 1.8 V PCM interface, level-shifted, as a USB microphone and speaker

There is no battery, screen or speaker. Three LEDs show NET (green), RING (amber) and CALL (blue). Power is 5 V from USB-C, a 3.8 V / 3 A buck for the module’s 2 A transmit bursts, and 3.3 V for the hub, the RP2040 and its flash.

TopBack
TopBack

The schematic is also in PDF.

What is here

PathWhat it is
spec.txtThe spec the board was designed from.
board/KiCad 10 project: schematic, board, rules, the module footprint, symbol and 3D model.
board/fab/Gerbers and drill files (gerbers.zip), IPC-2581, schematic PDF.
board/fab/jlc/JLCPCB assembly BOM and placement files, with the part choices checked by hand.
REVIEW.mdThe design review: what passed, what changed and why, ordering notes, what is still open.
firmware/The RP2040 sound-card firmware (after bring-up).

Build one

Board. Upload board/fab/gerbers.zip to JLCPCB: 4 layers, 1.6 mm, stackup JLC04161H-3313 (the antenna feeds are 49 Ω on it). Every via is 0.45 / 0.2 mm and none sits in a pad, so pick Min via hole size 0.2mm/(0.3/0.35mm) and Via covering: Plugged: no via-in-pad, no extra options.

Assembly. Use board/fab/jlc/BOM-JLCPCB.csv and CPL-JLCPCB.csv. Glance at the placement preview before confirming, especially the LEDs and the SIM socket (the card slot is at the board edge). REVIEW.md lists the parts the files correct.

Parts you source yourself. These are not on JLCPCB’s assembly line, or are not on the board at all:

PartWhat to getWhere
U8, the LTE moduleQuectel EC25-EUX, ordering code EC25EUXGR-128-SGNS (EC25EUXGA-128-SGNS is end-of-life; same LGA-144 footprint). It must be the EUX: the North American data-only variants have no voice.Techship, DigiKey, Octopart (stock changes, check the suffix). Deselect U8 at assembly and solder it with hot air or a stencil, or consign it.
2 antennasLTE, 698 to 2690 MHz, U.FL (I-PEX MHF I), 50 Ω: one on MAIN (J3), one on DIV (J4)e.g. Taoglas FXUB63 or Taoglas FXUB62.07.0150C
SIMA nano-SIM with a voice planYour carrier
Cable and portUSB-C on both ends, from a port that offers 3 A at 5 VThe 5.1 kΩ CC resistors make the board a sink; they negotiate nothing, so a USB-A port or a 1.5 A source will brown out in a 2G burst

Open it in KiCad

Open board/koppar-lte-modem.kicad_pro in KiCad 10. The module’s footprint, symbol and 3D model are in the project (board/footprints, board/custom_syms, board/models), wired in by the project’s library tables.

KiCad’s library has no 3D model for two of the footprints, so the 3D viewer shows them without a body:

PartFootprint3D model
J1, USB-C receptacleConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12LCSC C165948 (EasyEDA model)
J2, nano-SIM socketConnector_JAE:JAE_SIM_Card_SF72S006LCSC C2977286 (EasyEDA model)

easyeda2kicad converts either one to a .wrl you can attach to the footprint. The renders above use them.

Bring-up and recovery

There is no BOOTSEL button. A blank RP2040 boots into its USB bootloader anyway, and the back has three labelled pad groups for the rest:

Pads on the back

  • BOOT + GND: short them while plugging in and the RP2040 comes up as a USB drive for a new .uf2, even after a firmware that crashes before USB starts.
  • SWD (CLK, DIO, GND): a Pico Debug Probe or any CMSIS-DAP probe.
  • USB_BOOT + 1V8: short them while plugging in and the EC25 starts in emergency download mode, for a modem update that went wrong.

The modem does not switch itself on: the RP2040 drives its PWRKEY (GPIO22) and RESET_N (GPIO23). Until the firmware runs, the computer sees only the hub and the RP2040.

The design review

The first version (rev A) had an antenna feed at 35 Ω that hopped layers, a buck 60 mm from its inductor, and a SIM socket facing the wrong way. All three are fixed here, along with the parts list and the assembly rotations. REVIEW.md has every finding with its numbers.

Rev A and rev B (this repo)

Status

BoardRev B: 0 DRC errors, 0 unconnected, KiCad 10. Being ordered.
NextOnce the boards are built: bring-up, AT commands, the sound-card firmware, the first call and text.

VoLTE is optional on the EC25-EUX. Where 2G and 3G are switched off, calls need a module firmware with VoLTE and a carrier that allows it; ask the seller.

Design your own

This board started as a page of text. Koppar takes a spec like spec.txt to a schematic, a routed board, a BOM at live prices and Gerbers. It also takes a KiCad board you already have, or works from your own agent over MCP.

Licence

CERN Open Hardware Licence Version 2, Permissive (LICENSE).

Similar Articles

3G at last

Lobsters Hottest

A networking enthusiast documents the process of hacking an old AT&T 3G femtocell to broadcast UMTS using JTAG, soldering, and open-source Osmocom tools.

My server is a phone now

Hacker News Top

The author replaces a Hetzner VPS with a CMF Phone 1 running Termux as a home server, detailing the pitfalls of installing postmarketOS and ultimately using Android with Termux, runit, Tailscale, and Caddy to host web apps like Surf and a finance tracker.

Using ThinkPad T480 as a mobile phone

Lobsters Hottest

A blog post describes how to transform a ThinkPad T480 into a fully featured mobile phone using Libreboot, a Quectel EG25-G modem, and custom firmware, enabling calls, SMS, and mobile data.