Skip to main content

A Python-based interface for the Uniden BC125AT

Project description

BC125Py

A Python-based interface for the Uniden BC125AT radio scanner.

This project aims to be a Linux replacement for the Windows-only Uniden software for the BC125AT. Presently, BC125Py only has a command line interface, but couples well with Libreoffice Calc/MS Excel. Rest assured, the CLI is not hard to use at all! View the changelog here.

Installation

sudo pip install bc125py

It is recommended to install bc125py as root.

Quick Start

Most commands must be ran as root.

Plug the BC125AT into your computer, and power the device on.

Import scanner channels

sudo bc125py import --csv channels.csv

Then, edit the CSV file in a spreadsheet editor!

Note: Depending on your CSV editor, the channels may be offset by 1 or 2
Note: All 500 channels are together. Bank 1 starts at 1 or 2, bank 2 starts at 51 or 52, etc...
Note: omitting the --csv flag will import all channels
and settings, and use the json file format.

Export channels to scanner

sudo bc125py export --csv channels.csv

Note: omitting the --csv flag will export all channels and settings, and use the json file format.

Validate your files before exporting (sudo-less)

bc125py validate scanner.json or bc125py validate --csv scanner.csv

Launch scanner shell

sudo bc125py shell

The shell allows you to send commands directly to the device. The shell subcommand accepts a script filename as an optional parameter. Specifying - as the input script will tell the shell to read from stdin.

The shell remembers its history by default. This can be cleared by deleting ~/.bc125py_history (but usually for the root user), or by running the shell subcommand with the -c or --clear-history flags.

Factory reset the scanner

sudo bc125py wipe

This will erase all channels and reset all settings.

Rescue the scanner from Program Mode

sudo bc125py unlock

More Usage

The following are top level flags, to be use after the bc125py but before the subcommand.

Flag Usage
-v Enable debug messages
-l, --log LOG Additionally print all debug messages to LOG_FILE
-p, --port PORT Force BC125Py to use port (device file) PORT
--legacy-detect Use the legacy automatic port detection method. Try this if BC125Py does not initially detect your scanner. This may produce duplicate results

import/export and --csv

By default, import and export will process all of the scanner's channels and settings, and work with json files. The --csv flag tells these command to process channels only, and work with csv files.

Shell Scripts

The shell subcommand accepts an optional parameter for an input file, to be processed as a script. Run help once inside the shell to learn more. The recommended extension for these scripts is .125at; see the docs directory for examples.

Human-Friendly CTCSS/DCS Tones

As of version 0.10.0, bc125py supports human-friendly CTCSS/DCS tones. Your old save files will still work. To view a list of possible tone values, run bc125py --help-tones

TLP

TLP, a power management tool on some laptops, may interfere with the operation of BC125Py. To use BC125Py on a TLP-enabled laptop, follow this guide to disable it. This is easily reversible afterwards. If you are aware of a better way to work around TLP, please fork and submit a PR!

stdin/stdout

The import, export, and shell subcommands may accept a single dash ( - ) as a filename to use stdin/stdout. In this mode, the import subcommand will write to stdout. export and shell will read from stdin.

Contributing

  • The module bc125py, excluding app, should only contain library (non-executable) code.
  • sdo.py shall be for all scanner-data abstraction classes.
  • The app module shall be for all executable code.
  • app/cli.py shall be the CLI portion of the program.
  • app/core.py shall be all common functions for the executable portion of the program, both CLI and GUI.
  • app/log.py shall be the logger. Use the logger wherever possible!

The 'main' branch shall be the most up-to-date version of the project. Once the main branch reaches stability, the version number will be incremented, a release will be generated, and a 'release-x.x.x' branch will be created to preserve the repository at its state.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bc125py-1.0.0.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

bc125py-1.0.0-py3-none-any.whl (25.4 kB view details)

Uploaded Python 3

File details

Details for the file bc125py-1.0.0.tar.gz.

File metadata

  • Download URL: bc125py-1.0.0.tar.gz
  • Upload date:
  • Size: 27.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for bc125py-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e313b6727f32a658bf4f6cf564ad06a92d138edacd644765ef7434c3c28b0085
MD5 e432122f3eff895f9d066a6a3a52f18e
BLAKE2b-256 15f3b00b1d67ccc37435441371e3ba77e58a7a7353674cb7b9e2890e1f89e3d0

See more details on using hashes here.

File details

Details for the file bc125py-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: bc125py-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 25.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for bc125py-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d5651251d3839e8a9ae6d5e3522d9f3bee7d4c59ce1ed30a5abce89b6b07728e
MD5 85f6d88814f7d2b536a2f8a0fcb120ab
BLAKE2b-256 6c554ff63c1c49baa163bdb396bc573509630c1d9207ec61f55e85c958615aa6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page