English | 简体中文
Maratools is a powerful Python desktop application designed to help Bitcoin miners manage and optimize their mining rigs. This tool simplifies the process of upgrading and updating firmware, configuring mining pools, and monitoring ASIC miners in real time. Whether you're running a small personal mining operation or managing a large-scale enterprise fleet, Maratools helps boost efficiency and streamline operations.
- Firmware Management: Easily upgrade and update firmware across multiple miners with batch support
- Pool Configuration: Flexibly configure multiple mining pools, compatible with popular pool management systems
- Bulk Operations: Manage multiple ASIC miners simultaneously to save time
- Real-time Monitoring: Monitor miner status, hashrate, temperature, fan speed, and other critical metrics
- Multi-Firmware Support: Support for stock firmware, MaraFW, Braiins, WhatsMiner, Avalon, and more
This tool is tailored for miners looking to maximize productivity with minimal manual effort.
- Operating System: Windows 10/11, Linux (Ubuntu 20.04 or later), macOS 12+
- Python Version: Python 3.8 or higher (3.9+ recommended)
- Network: Stable internet connection for downloading dependencies and communicating with miners
- Hardware: 4GB+ RAM recommended for managing large miner fleets
If Python is not installed, download and install it from the official Python website.
Verify installation:
python --version
# or
python3 --versionEnsure version >= 3.8
git clone https://github.com/marafw/maratools.git
cd maratoolsWindows:
python -m venv venvLinux/macOS:
python3 -m venv venvWindows (PowerShell):
.\venv\Scripts\Activate.ps1Windows (CMD):
venv\Scripts\activate.batLinux/macOS:
source venv/bin/activatepip install -r requirements.txtpython main.pyThe application will launch with a GUI interface.
- Enter IP address ranges or import an IP list .txt on the left panel
- Click the "Scan" button
- Wait for the scan to complete; miner information will be displayed in the table
- Wait for the scan to complete; miners can be selected one at a time or multiple miners. Click and drag to select multiple miners or Ctrl + Click
- Enter pool address, username, and password in the right panel
- Select the pool group to configure
- Select target miners
- Click "Set Selected" or "Set All"
- Click "Choose Firmware" and select a firmware file (.zip or .bmu format)
- Select upgrade mode from the dropdown (Upgrade/Install/Revert)
- Select target miners
- Click "Update Firmware"
- Wait for the upgrade to complete
- Click "Monitor" to enable real-time monitoring mode
- The application will periodically refresh miner status information
- Click "Monitor" again to stop monitoring
- Reboot Miners: Select miners and click "Reboot Selected" or "Reboot All"
- Change Password: Check "Change Password" option, enter old and new passwords, then execute
maratools/
main.py # Application entry point
core/ # Core business logic
mara_tools.py # Main application class
api_worker.py # API worker threads
ui/ # User interface modules
main_ui.py # UI controller
*.ui # Qt Designer UI files
config/ # Configuration management
themes/ # Application themes
resource/ # Resource files (icons, SVGs)
utils/ # Utility functions
features/ # Feature modules
requirements.txt # Python dependencies
The application configuration file is maratools.ini, which is automatically created on first run.
Main configuration options:
- Display Settings: Language, column visibility, temperature highlight thresholds
- Monitoring Settings: Monitor interval
- Firmware Settings: Firmware upgrade interval, compatibility options
- Logging Settings: Log level, log file path
A:
- Ensure miners and the computer running Maratools are on the same network
- Check firewall settings to allow communication on required ports (80, 8080, 4028)
- Verify the IP address range is correct
A:
- Check if the firmware file is complete and in the correct format
- Confirm the miner model matches the firmware
- Check the log file
maratools.logfor detailed error information - Some miners may require multiple attempts to upgrade successfully
A:
- Antminer series (S19, S21, etc.)
- WhatsMiner series (M20, M30, etc.)
- Avalon series
- Auradine series
- Other miners supporting standard CGMiner API
A: The application uses miners' default credentials for communication. If you've changed your miner's login password, you can configure custom credentials in "Settings".
-
Default Credentials: The default credentials (root/root, admin/admin) in the code are for demonstration and development environments only. In production:
- Change default passwords on all miners
- Use environment variables or configuration files to manage credentials
- Never commit real passwords to version control
-
Network Security:
- Run in an isolated internal network environment
- Avoid exposing miner management ports to the public internet
-
Firmware Security:
- Only use firmware files from trusted sources
- Backup important configurations before upgrading
# Clone repository
git clone https://github.com/marafw/maratools.git
cd maratools
# Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/macOS
# or
.\venv\Scripts\Activate.ps1 # Windows
# Install dependencies
pip install -r requirements.txt
# pip install -r requirements-dev.txt # Includes testing and linting toolsThis project follows PEP 8 coding standards. Recommended tools:
- Formatting: Black
- Import Sorting: isort
- Linting: flake8 or ruff
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Thanks to all the developers who have contributed to this project!
This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.
This project uses the following excellent open-source projects:
- PyQt5 - GUI framework
- Requests - HTTP library
- PyInstaller - Packaging tool
Disclaimer: This software is provided "as is" without warranty of any kind, express or implied. Users assume all risks associated with using this software.