USLCOM(4)

πŸ’– USLCOM πŸ’–

okay bestie, gather round, because today we're talking about the Silicon Laboratories CP2101/CP2102/CP2103/CP2104/CP2105 based USB serial adapter driver and honestly? it's giving unsung hero. it's the uslcom kernel driver, it lives in the Kernel Interfaces Manual (section 4, for the uninitiated), and it just quietly makes your little USB-to-serial dongle work. no cap. πŸ¦‹


✨ SYNOPSIS ✨

so like, there's two ways to get this baby into your life. option one, you hardcode it into the kernel. drop these lines into your kernel configuration file:

device usb
device ucom
device uslcom

option two (the lowkey easier one), you load it as a module at boot time. put this line in loader.conf(5):

uslcom_load="YES"

slay. either way you're covered. πŸ’…


🌸 DESCRIPTION 🌸

okay so real talk: the uslcom driver supports Silicon Laboratories CP2101/CP2102/CP2103/CP2104/CP2105 based USB serial adapters. that's the whole vibe. it sees the chip, it does the serial thing, everyone's happy.

now here's a fun little detail bestie, because the baud rates are messy. the datasheets for the CP2101/CP2102/CP2103 say the maximum supported baud rate is 921,600. and yeah, that's what the paper says. BUT β€” empirical testing has shown that 1,228,800 and 1,843,200 also work, at least on some hardware. so the driver just... lets you set those rates too. iconic behaviour honestly. the datasheet said no, the hardware said watch me. πŸ”₯

just a heads up bestie: "at least on some hardware" is doing a lot of heavy lifting in that sentence. it's not a guarantee, it's a vibe. proceed accordingly. πŸ™ˆ

πŸŽ€ HARDWARE πŸŽ€

these devices should work with the uslcom driver (should! we're manifesting 🫢):

  • AC-Services CAN, CIS-IBUS, IBUS and OBD interfaces
  • Aerocomm Radio
  • AKTACOM ACE-1001 cable
  • AMBER Wireless AMB2560
  • Arkham DS-101 Adapter
  • Argussoft ISP
  • Arygon Technologies Mifare RFID Reader
  • AVIT Research USB-TTL interface
  • B&G H3000 Data Cable
  • Balluff RFID reader
  • Baltech card reader
  • BEI USB VCP Sensor
  • Burnside Telecom Desktop Mobile
  • chip45.com Crumb128 module
  • Clipsal 5000CT2, 5500PACA, 5500PCU, 560884, 5800PC, C5000CT2 and L51xx C-Bus Home Automation products
  • Commander 2 EDGE(GSM) Modem
  • Cygnal Fasttrax GPS and Debug adapter
  • DataApex MultiCOM USB to RS232 converter
  • Degree Controls USB adapter
  • DekTec DTA Plus VHF/UHF Booster
  • Dell DW700 GPS Receiver
  • Digianswer ZigBee/802.15.4 MAC
  • Dynastream ANT Development kits
  • Elan USBcount50, USBscope50, USBpulse100 and USBwave12
  • ELV USB-I2C interface
  • EMS C1007 HF RFID controller
  • Festo CPX-USB and CMSP interfaces
  • Gemalto Prox-PU/CU contactless card reader
  • Helicomm IP-Link 1220-DVM
  • IMS USB-RS422 adapter
  • Infinity GPS-MIC-1 Radio Monophone
  • INSYS Modem
  • IRZ SG-10 and MC35pu GSM/GPRS Modems
  • Jablotron PC-60B
  • Kamstrup M-Bus Master MultiPort 250D and Optical Eye/3 wire utility meter interfaces
  • Kyocera GPS
  • Link Instruments MS-019 and MS-028 Oscilloscope/Logic Analyzer/Pattern Generators
  • Lipowsky Baby-JTAG, Baby-LIN and HARP-1
  • MEI CashFlow SC and Series 2000 cash acceptors
  • MJS USB-TOSLINK Adapter
  • MobiData GPRS USB Modems
  • MSD DashHawk
  • Multiplex RC adapter
  • Optris MSpro LT Thermometer
  • Owen AC4 USB-RS485 converter
  • Pirelli DP-L10 SIP phone
  • PLX CA-42 Phone cable
  • Pololu USB to Serial
  • Procyon AVS Mind Machine
  • Renesas RX-Stick for RX610
  • Siemens MC60 Cable
  • Silicon Laboratories generic CP2101/CP2102/CP2103/CP2104/CP2105 chips
  • Software Bisque Paramount ME
  • SPORTident BSM7-D USB
  • Suunto Sports Instrument
  • Syntech CipherLab USB Barcode Scanner
  • T-Com TC 300 SIP phone
  • Tams Master Easy Control
  • Telegesis ETRX2USB
  • Timewave HamLinkUSB
  • Tracient RFID Reader
  • Track Systems Traqmate
  • Vaisala USB Instrument cable
  • VStabi Controller
  • WAGO 750-923 USB Service Cable
  • WaveSense Jazz Blood Glucose Meter
  • WIENER Plein & Baus CML Data Logger, RCM Remote, and PL512 and MPOD PSUs
  • WMR RIGblaster Plug&Play and RIGtalk RT1
  • Zephyr Bioharness

not me listing all sixty-something of these. but that's the list and every single one of them ate. πŸ‘‘


πŸ¦‹ FILES πŸ¦‹

okay so the device nodes, here's the tea β˜• β€” there's a callin set and a callout set and they come in trios:

  • /dev/ttyU* β€” for callin ports
  • /dev/ttyU*.init β€” the corresponding callin initial-state device
  • /dev/ttyU*.lock β€” the corresponding callin lock-state device
  • /dev/cuaU* β€” for callout ports
  • /dev/cuaU*.init β€” the corresponding callout initial-state device
  • /dev/cuaU*.lock β€” the corresponding callout lock-state device

the .init and .lock ones are the corresponding initial-state and lock-state devices, bestie. that's their whole job. πŸ’œ


🌈 SEE ALSO 🌈

go read these next, fr fr:


πŸ’€ HISTORY πŸ’€

the uslcom device driver first appeared in OpenBSD 4.0. and the first FreeBSD release to include it was FreeBSD 7.1. so yeah, it's been around. it's a legacy icon. it's been serving looks since before some of us could read. ✨


🫢 AUTHORS 🫢

the uslcom driver was written by Jonathan Gray <jsg@openbsd.org>. thank you king, your code is carrying entire hobbies and industrial setups as we speak. πŸ’–


and that's the whole page bestie! this little number comes to you from the Debian packaging, dated December 9, 2019, and the manual section is USLCOM(4). go forth and serial. slay πŸ’…πŸŽ€πŸŒΈ

πŸ“¦ where this page comes from