{"id":21442219,"url":"https://github.com/thotypous/mikroe-uhb","last_synced_at":"2025-07-14T17:32:54.150Z","repository":{"id":10632788,"uuid":"12857107","full_name":"thotypous/mikroe-uhb","owner":"thotypous","description":"USB HID Bootloader programming tool for devices manufactured by MikroElektronika","archived":false,"fork":false,"pushed_at":"2022-11-25T19:47:22.000Z","size":276,"stargazers_count":16,"open_issues_count":3,"forks_count":8,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-08-10T19:24:25.057Z","etag":null,"topics":["bootloader","development-kit","embedded","flash-memory","microcontroller"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thotypous.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-09-16T02:52:55.000Z","updated_at":"2022-11-25T19:47:27.000Z","dependencies_parsed_at":"2023-01-13T16:03:43.779Z","dependency_job_id":null,"html_url":"https://github.com/thotypous/mikroe-uhb","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thotypous%2Fmikroe-uhb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thotypous%2Fmikroe-uhb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thotypous%2Fmikroe-uhb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thotypous%2Fmikroe-uhb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thotypous","download_url":"https://codeload.github.com/thotypous/mikroe-uhb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225990479,"owners_count":17556153,"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","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":["bootloader","development-kit","embedded","flash-memory","microcontroller"],"created_at":"2024-11-23T01:53:07.774Z","updated_at":"2024-11-23T01:53:08.359Z","avatar_url":"https://github.com/thotypous.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"mikroe-uhb\n==========\n\nOpen-source cross-platform USB HID Bootloader programming tool for devices manufactured by MikroElektronika.\n\n\nSupported devices\n-----------------\n\n### ARM devices\n\nThis project was tested with a **Mikromedia for STM32** development kit. However, from what I understand of the bootloader source code and by reverse engineering the mikroBootloader application supplied by the manufacturer, I believe it should work for any ARM-based development kit currently available from MikroElektronika.\n\nIf you plan to test this application using any development kit different from the STM32 ones, please be prepared to use JTAG if something goes wrong (although the bootloader itself has a protection code which should bar most mistakes).\n\n### PIC18 devices\n\nThis project was tested with a **PIC18F4550** device. Many thanks to Kerekes Szilard for providing USB captures and further information.\n\n### dsPIC and PIC24 devices\n\nThis project was tested with a **Mikromedia for dsPIC33EP** development kit. Many thanks to Toni Petrovič for providing USB captures and further information.\n\nPIC24 devices were still not tested, but should also be supported by the same backend, as the architectures are much similar and reverse engineering revealed almost identical handling of them by mikroBootloader.\n\n### PIC32 devices\n\nThis project was tested with a **MultiMedia Board for PIC32MX7** development kit. Many thanks to John Comeau for implementing the support and providing us with patches and testing data. It is also reported to work with **Mikroelektronika Mini-32**.\n\n\nHow to install\n--------------\n\n### On Linux\n\nFirst, you need to check if you have `python-setuptools` installed.\nThen, just run:\n\n```\nmake \u0026\u0026 sudo make install\n```\n\nThis application is compatible both with Python 2.7 and with Python 3. The `pyudev` module is required, but will be installed automatically if it is not already present.\n\n### On Windows\n\nWe provide standalone binary releases [here](https://github.com/thotypous/mikroe-uhb/releases). Just download the executable and use it. Take a look at the [wiki](https://github.com/thotypous/mikroe-uhb/wiki/Creating-a-standalone-executable-for-Windows) if you want to build your own executable.\n\n### On other operating systems\n\nOther operating systems were not tested yet, but the tool should work on any OS supported by cython-hidapi, like OSX and FreeBSD. Try to run `python setup.py install`. If other steps are needed, please contact us so that the documentation can be updated.\n\n\nHow to use\n----------\n\n### Printing information about the device\n\nIf you just want to see information about a development kit, without programming anything, run:\n\n```\nmikroe-uhb\n```\n\nYou need to unplug/plug or reset the kit after issuing the command above, because this application is solely able to talk with the bootloader firmware, which runs only when the device is starting up.\n\n\n### Programming the device\n\nTo program a hex file to the device, call:\n\n```\nmikroe-uhb -v file.hex\n```\n\nThen plug the device to the USB port, or press its reset button if it is already plugged to USB.\n\nThe `-v` option is meant to print debugging information during the programming process. It can be ommited if you prefer the programming process to be silent.\n\n\nHow to contribute\n-----------------\n\n### Support for other devices\n\nI do not own development kits from MikroElektronika other than the Mikromedia for STM32, so I cannot test this project with other devices. However, support for them is certainly welcome.\n\nCode should be self-documenting. There are also some useful tools for dealing with USB captures made with Wireshark under the `devtools` directory. Please read the comments.\n\nIf you cannot contribute with code, providing USB capture dumps is very useful. They can be obtained the following way:\n\n* Install this application in your computer, or at least copy the `conf/mikroe-uhb.conf` file to `/etc/modprobe.d`. It is meant to prevent your system from detecting the USB HID Bootloader as a usbtouchscreen and messing things up.\n* Install mikroBootloader in a Windows VM inside VirtualBox or other virtualization software with decent USB emulation support.\n* Load the `usbmon` module (`modprobe usbmon`) and use Wireshark to start a USB capture. Then, fire mikroBootloader and program your device.\n* Please provide me with the capture file saved by Wireshark and with the hex file you used to program your device.\n\nYou can also take USB captures directly on Wireshark for Windows if you install the [usbpcap driver](http://desowin.org/usbpcap) and follow the instructions in its website. Please do not forget to use a Wireshark version able to support the driver.\n\n### Testing with another development kits\n\nContributions have helped us to implement support for almost every device currently manufactured by MikroElektronika, but more testing is needed. Please report if you test the tool with another development kit besides the ones enumerated in this document.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthotypous%2Fmikroe-uhb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthotypous%2Fmikroe-uhb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthotypous%2Fmikroe-uhb/lists"}