Skip to main content

Cross-platform GUI for SKYRC MC3000 battery charger

Project description

SKYRC MC3000 Battery Charger GUI

PyPI version License: MIT

Cross-platform Python GUI for monitoring and controlling the SKYRC MC3000 battery charger.

Features

  • Real-time monitoring of all 4 charging slots
  • Voltage, current, capacity, temperature, resistance, power, energy display
  • Slot configuration with battery type selection
  • Profile management (save/load charging profiles)
  • Charging graphs with history
  • Backup and restore slot configurations
  • Color-coded status indicators
  • Cross-platform (Windows, macOS, Linux)

Installation

From PyPI

pip install skyrc-mc3000-gui

From Source

git clone https://github.com/nuclearcat/SkyRCMC3000-GUI.git
cd SkyRCMC3000-GUI
pip install .

Linux Dependencies

On Linux, you also need libhidapi:

# Debian/Ubuntu
sudo apt install libhidapi-hidraw0

# Fedora
sudo dnf install hidapi

# Arch
sudo pacman -S hidapi

Usage

Run the GUI

mc3000-gui

Or run directly from source:

python main.py

Command-line Tools

# Backup/restore tool
mc3000-backup --help

Linux USB Access

To access the MC3000 without root, create /etc/udev/rules.d/99-mc3000.rules:

SUBSYSTEM=="usb", ATTR{idVendor}=="0000", ATTR{idProduct}=="0001", MODE="0666"
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0000", ATTRS{idProduct}=="0001", MODE="0666"

Then reload:

sudo udevadm control --reload-rules
sudo udevadm trigger

Documentation

Example Code

Reading Slot Data

from mc3000_usb import MC3000USB
from mc3000_protocol import parse_slot_data

# Connect to charger
usb = MC3000USB()
usb.connect()

# Get real-time data for slot 0
data = usb.get_slot_data(0)
if data:
    print(f"Voltage: {data.voltage_v:.3f} V")
    print(f"Current: {data.current_ma} mA")
    print(f"Capacity: {data.capacity_mah} mAh")
    print(f"Temperature: {data.temperature_c:.1f} C")

usb.disconnect()

Reading Slot Configuration

from mc3000_usb import MC3000USB

usb = MC3000USB()
usb.connect()

# Get settings for slot 0
settings = usb.get_slot_settings(0)
if settings:
    print(f"Battery Type: {settings.battery_type}")
    print(f"Capacity: {settings.capacity_mah} mAh")
    print(f"Charge Current: {settings.charge_current_ma} mA")

usb.disconnect()

Using Profiles

from mc3000_profiles import ProfileManager

pm = ProfileManager()

# List available profiles
for name in pm.list_profiles():
    print(f"Profile: {name}")

# Get a profile
profile = pm.get_profile("NiMH AA 2000mAh")

Development

Install Development Dependencies

pip install -e ".[dev]"

Run Tests

pytest

License

MIT License - see LICENSE for details.

Links

Acknowledgments

Protocol implementation based on GNU DataExplorer by Winfried Bruegmann.

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

skyrc_mc3000_gui-1.5.0.tar.gz (33.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skyrc_mc3000_gui-1.5.0-py3-none-any.whl (35.0 kB view details)

Uploaded Python 3

File details

Details for the file skyrc_mc3000_gui-1.5.0.tar.gz.

File metadata

  • Download URL: skyrc_mc3000_gui-1.5.0.tar.gz
  • Upload date:
  • Size: 33.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for skyrc_mc3000_gui-1.5.0.tar.gz
Algorithm Hash digest
SHA256 062d1a46a9bb9dbc28973d4f2c91453e25dc2f0018a75f7ae1812110daa25faa
MD5 8e63bb73c06e601ac65e20a4c7de122e
BLAKE2b-256 ba60555798bf6a94e09c4d77f30413f52596981f9acab7214f1a8d9eb8d0723d

See more details on using hashes here.

File details

Details for the file skyrc_mc3000_gui-1.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for skyrc_mc3000_gui-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 383f9e2f47770d5369a56322ddbae20e5118b5b5e5140d65a368529069bb6145
MD5 b2c1c2c88e487f7295947fb5ebf880ce
BLAKE2b-256 017f51e33e20d933506f465cfbbe1c9637f2b139b23ab1dc99cc699fe510adea

See more details on using hashes here.

Supported by

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