rikus.org: bc125at-perl

On GitHub: bc125at-perl

Oct 7, 2018 - bc125at-perl cdc_acm error workaround

On recent kernels, an error is occurring when you plug the device in that prevents the ttyUSB0 device from being usable:
[ 750.728732] cdc_acm 3-4:1.0: Zero length descriptor references
[ 750.728747] cdc_acm: probe of 3-4:1.0 failed with error -22
There is a workaround available for this: For more information: Once I have the solution finalized in a way that requires a minimal number of manual commands, I'll package a new tarball.

Feb 8, 2013 - bc125at-perl

Version 0.5.2

A Perl-based utility for configuring/programming the Uniden Bearcat BC125AT on Linux.

[Download it here]

[Github repo here]

Features implemented:

  1. Auto-detect device
  2. Auto-load driver
  3. Read channels from scanner
  4. Write channels to scanner
  5. Read search groups from scanner
  6. Write search groups to scanner
  7. Interactive session
  8. Usable command-line interface
  9. Incomplete but usable Gtk2 GUI

Features not implemented:

  1. Creative name


  1. A Unix or Linux system
  2. Perl
  3. A willingness to tweak the code if needed
  4. Device::SerialPort
    • Obtainable from CPAN: Device::SerialPort on CPAN.
    • May also be obtainable through distro's package manager, likely under the name perl-Device-SerialPort if RPM-based.
  5. Gtk2 (optional but recommended - needed for GUI only)
    • May already be installed on many systems. Also check CPAN or your distro's package manager, likely under the name perl-Gtk2 if RPM-based.

usage info


bc125at-perl channel read --file freqs.txt [--impatient]

   Loads the channels currently stored in the scanner into the
   specified file, which may be edited and then reloaded into the
   scanner. The --impatient option may be used if you want to stop
   trying to load as soon as you hit several frequencies in a row
   which have not been set yet (under the assumption that all
   subsequent frequencies will also be zero).

bc125at-perl channel write --file freqs.txt

   Loads the channels defined in freqs.txt and writes them to the
   scanner. WARNING: This is a destructive operation! In other
   words, doing this will cause your existing channels defined
   in the scanner to be overwritten (hopefully with meaningful
   values, but the author of this software takes no responsibility
   for harm or loss of data that may occur as a result of its use).

bc125at-perl search read --file search.txt

   Read the search groups from the scanner into the specified text

bc125at-perl search write --file search.txt

   Writes the search groups defined in the specified text file to
   the scanner.

bc125at-perl interactive

   Start an interactive session through which commands may be sent
   to the scanner. As of Feb 2013, this document is available from
   Uniden as a reference:

bc125at-perl detect

   Check to see if a compatible device is attached. If this fails,
   then you're not going to have much luck doing anything else.
   Note that this is a passive action and doesn't load the driver.
   If you want to load the driver, use the 'driver' command.

bc125at-perl driver

   Attempt to set up the driver for the device. This involves loading
   the 'usbserial' kernel module and creating a device in /dev.

Last modified: 2018-10-07 12:34:12 -0500
Unless otherwise noted or obvious, all design and content © 2010-2019 Rikus Goodell.
Any trademarks are property of their respective owners: Legal info.

Uniden® and Bearcat® are registered trademarks of Uniden America Corporation.
I am not affiliated with Uniden in any way, nor should my use of their trademarks to refer to a product of theirs (the BC125AT) in any way be construed as an endorsement on their part of this software or of anything else.