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)

Screenshots

Charging Mode Real-time monitoring with voltage graphs during charging

Refresh Mode Discharge curves during refresh/analyze mode

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

Known Limitations

  • Starting after "Finished": When a slot completes charging, you may need to press a button on the charger to clear the finished state before starting a new operation via USB.
  • See Protocol Notes for more details.

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.1.tar.gz (235.6 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.1-py3-none-any.whl (35.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: skyrc_mc3000_gui-1.5.1.tar.gz
  • Upload date:
  • Size: 235.6 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.1.tar.gz
Algorithm Hash digest
SHA256 f14c80625a1f4ad7396e19ed5d58a35dcdd6a69278121a712e33be4ff974270f
MD5 8b33f3aca03c4c76ebf74e76b8adb2b7
BLAKE2b-256 31e66b7f4219f258ed603c8d2996c40bca3afef35c8b4e800bb9929b6e804ad5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for skyrc_mc3000_gui-1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 be8996477e8b5cc6b64c3f0d198a4554453a99b3c84fbcadb33bbdd7860c98df
MD5 2bb01c9b03e030c2c59e57700673bdfe
BLAKE2b-256 8da44a00c111eb26095cdfe5851f6f7f7605819718a2e21b88ab19a75b9b9176

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