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.

Firmware Updates (Linux)

The official SKYRC firmware update tool (MC3000_Firmware_Update__V1.25.exe) is a Windows application. However, Linux users have reported success running it under Wine with .NET Framework 4.5.2 installed:

winetricks dotnet452
wine MC3000_Firmware_Update__V1.25.exe

Warning: Firmware updates carry inherent risk. Proceed at your own discretion. Results may vary depending on your Wine configuration and system setup.

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.6.0.tar.gz (236.8 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.6.0-py3-none-any.whl (36.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: skyrc_mc3000_gui-1.6.0.tar.gz
  • Upload date:
  • Size: 236.8 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.6.0.tar.gz
Algorithm Hash digest
SHA256 b73d25f93d5b7df574b26d62471057a2d17aa9bba17cac330f0ec701eac38865
MD5 dbc99cf5dc17c06dcad0299f3f60fbbf
BLAKE2b-256 563dff29d6d29eb8a0ae93cb3f26d0cbcd8b0b2bfec9c9962e01401ab02cc79d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for skyrc_mc3000_gui-1.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2963a7d615c0c1f6a671235fb66ad70cc73e7241b474d3f4fc78fd204a88007f
MD5 51486779d69388067833168d146c69a0
BLAKE2b-256 a4691f049b5376ad71857499d3e3ea4423d1610d697214944fb4f893db9e9433

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