{"id":22432646,"url":"https://github.com/1999azzar/avrdude-flasher","last_synced_at":"2025-10-14T04:01:50.139Z","repository":{"id":264375389,"uuid":"893191357","full_name":"1999AZZAR/avrdude-flasher","owner":"1999AZZAR","description":" PyQt6-based desktop application designed to simplify programming, managing, and troubleshooting AVR microcontrollers. It provides a user-friendly interface for chip selection, flashing firmware, reading/writing EEPROM, manipulating fuse bits, and performing verification and debugging tasks.","archived":false,"fork":false,"pushed_at":"2024-11-29T10:09:40.000Z","size":195,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-07T06:44:14.188Z","etag":null,"topics":["avrdude-gui","microcontrollers"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/1999AZZAR.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-23T19:15:51.000Z","updated_at":"2024-11-29T10:09:44.000Z","dependencies_parsed_at":"2025-02-01T12:44:04.162Z","dependency_job_id":"58549da6-7534-4ba5-a62a-959604f84ffd","html_url":"https://github.com/1999AZZAR/avrdude-flasher","commit_stats":null,"previous_names":["1999azzar/avrdude-flasher"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/1999AZZAR/avrdude-flasher","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1999AZZAR%2Favrdude-flasher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1999AZZAR%2Favrdude-flasher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1999AZZAR%2Favrdude-flasher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1999AZZAR%2Favrdude-flasher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/1999AZZAR","download_url":"https://codeload.github.com/1999AZZAR/avrdude-flasher/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1999AZZAR%2Favrdude-flasher/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274556117,"owners_count":25307506,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-10T02:00:12.551Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["avrdude-gui","microcontrollers"],"created_at":"2024-12-05T22:12:25.748Z","updated_at":"2025-10-14T04:01:49.936Z","avatar_url":"https://github.com/1999AZZAR.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# README for Advanced AVR Flasher GUI\n\n## Overview\nThe **Advanced AVR Flasher GUI** is a PyQt6-based desktop application designed to simplify programming, managing, and troubleshooting AVR microcontrollers. It provides a user-friendly interface for chip selection, flashing firmware, reading/writing EEPROM, manipulating fuse bits, and performing verification and debugging tasks. The application leverages the `avrdude` command-line tool for low-level interactions with AVR devices.\n\n## Features\n1. **Chip Database**: Comprehensive support for a wide range of AVR microcontrollers (ATmega, ATtiny, ATxmega, AVR32, AT90).\n2. **Flash Operations**:\n   - Select and write firmware in `.hex` format.\n   - Read and verify flash memory.\n3. **EEPROM Operations**:\n   - Read, write, and verify EEPROM data.\n4. **Fuse Management**:\n   - View and modify fuse settings.\n   - Restore default fuse values for the selected chip.\n5. **Advanced Options**:\n   - Configure bit clock period and retry count for programming.\n   - Enable/disable options like erase before writing, fuse verification, etc.\n6. **Console Output**:\n   - Real-time display of `avrdude` command outputs and progress.\n7. **Settings Persistence**:\n   - Save and restore user preferences for chip family, advanced settings, and other options.\n\n## Requirements\n### Software\n- Python 3.8+\n- Required Python Libraries:\n  - `PyQt6`\n  - `json`\n  - `subprocess`\n- `avrdude` (Installed and configured in the system PATH)\n\n### Hardware\n- Supported AVR microcontroller with an appropriate programmer (e.g., USBasp, STK500).\n\n## Installation\n1. Clone or download the repository containing this file.\n2. Ensure Python 3.8+ is installed on your system.\n3. Install required Python packages:\n   ```bash\n   pip install PyQt6\n   ```\n4. Ensure `avrdude` is installed:\n   - For Linux:\n     ```bash\n     sudo apt install avrdude\n     ```\n   - For Windows:\n     Download and install the latest version of `avrdude` and add it to your PATH.\n5. Run the application:\n   ```bash\n   python advance.py\n   ```\n\n## Usage Instructions\n1. **Launching the Application**:\n   - Run `python advance.py` from the command line.\n   - The main window will appear, displaying multiple tabs for chip selection, flash operations, EEPROM, fuse management, and advanced settings.\n\n2. **Chip Selection**:\n   - Select the chip family from the drop-down menu.\n   - Choose the specific chip model.\n\n3. **Flash Operations**:\n   - Use the **\"Select Hex File\"** button to load your firmware.\n   - Write to flash memory using the **\"Write Flash\"** button.\n   - Read or verify existing flash memory using **\"Read Flash\"** or **\"Verify Flash\"**.\n\n4. **EEPROM Operations**:\n   - Use the **\"Select EEPROM File\"** button to choose an EEPROM file.\n   - Write data to EEPROM with **\"Write EEPROM\"**.\n   - Read or verify EEPROM data using the corresponding buttons.\n\n5. **Fuse Management**:\n   - View default or existing fuse settings.\n   - Modify values and write them using the **\"Write Fuses\"** button.\n   - Restore default fuse values with **\"Reset to Defaults\"**.\n\n6. **Console Output**:\n   - Monitor progress and error messages in real-time via the console window at the bottom of the application.\n   - Use the **\"Clear Console\"** button to reset the output.\n\n7. **Advanced Options**:\n   - Configure bit clock period and retry count.\n   - Enable or disable options like erase-before-write and fuse verification.\n\n## Developer Notes\n- The `CHIP_DATABASE` provides detailed specifications for various AVR chips, including memory sizes, default fuse values, and descriptions. This can be expanded as needed.\n- `AvrdudeWorker` is implemented using PyQt's `QThread` to execute commands asynchronously, ensuring the GUI remains responsive.\n- Settings are managed using `QSettings`, allowing user preferences to persist between sessions.\n\n## Troubleshooting\n- **Missing Dependencies**:\n  - Ensure all required Python packages are installed.\n  - Verify `avrdude` is correctly installed and accessible from the command line.\n- **Permission Errors**:\n  - On Linux, ensure your user has permissions to access the programmer hardware (e.g., USBasp).\n- **Chip Not Detected**:\n  - Verify connections, programmer setup, and chip selection.\n  - Check the chip's documentation for correct fuse and clock configurations.\n\n## Acknowledgments\nThis project simplifies AVR microcontroller programming and management, making it accessible for hobbyists and professionals. It relies on the powerful `avrdude` tool for core functionality.\n\n## Future Enhancements\n- Integration with additional programmers and interfaces.\n- Support for advanced debugging protocols.\n- Improved error handling and diagnostics.\n\nEnjoy programming your AVR microcontrollers with ease! 🚀\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1999azzar%2Favrdude-flasher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F1999azzar%2Favrdude-flasher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1999azzar%2Favrdude-flasher/lists"}