Cross-platform GUI for SKYRC MC3000 battery charger
Project description
SKYRC MC3000 Battery Charger GUI
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
Real-time monitoring with voltage graphs during charging
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
- Protocol Documentation - MC3000 USB HID protocol details
- Protocol Notes - Additional protocol observations
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b73d25f93d5b7df574b26d62471057a2d17aa9bba17cac330f0ec701eac38865
|
|
| MD5 |
dbc99cf5dc17c06dcad0299f3f60fbbf
|
|
| BLAKE2b-256 |
563dff29d6d29eb8a0ae93cb3f26d0cbcd8b0b2bfec9c9962e01401ab02cc79d
|
File details
Details for the file skyrc_mc3000_gui-1.6.0-py3-none-any.whl.
File metadata
- Download URL: skyrc_mc3000_gui-1.6.0-py3-none-any.whl
- Upload date:
- Size: 36.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2963a7d615c0c1f6a671235fb66ad70cc73e7241b474d3f4fc78fd204a88007f
|
|
| MD5 |
51486779d69388067833168d146c69a0
|
|
| BLAKE2b-256 |
a4691f049b5376ad71857499d3e3ea4423d1610d697214944fb4f893db9e9433
|