# RETracker

> Python reverse-engineering framework for the Polyend Tracker music device that patches the vendor's stock firmware, replacing an unused USB RAWHID handler with its own command handler. With the patched firmware flashed, a host CLI reads, hex-dumps and disassembles device memory in ARM or Thumb mode, writes memory, runs code at an address, assembles and executes position-independent "Polyp" modules such as a pad text scroller and screen fades, and copies files to the SD card over USB. Its fwtool.py also unpacks and repacks the Intel HEX .ptf firmware images for loading into a disassembler.

- Type: Tool
- Targets: Firmware
- Category: Firmware tools
- Relationship: Foundation tool
- Sources reviewed: 2026-10-20
- Added to the catalog: 2026-11-02
- Original resource: <https://github.com/patois/RETracker>
- Primary source: <https://github.com/patois/RETracker/blob/f6698f602fe41fededfd9f19fbe1b74bf68a85f0/README.md>
- Catalog page: <https://awesomerea.org/resources/retracker/>
- Record JSON: <https://awesomerea.org/resources/retracker/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/retracker/index.md)

## Requirements & limits

- Only Polyend Tracker firmware 1.5.0 is supported; the README says a private 1.6.0 port was not released because Polyend removed the code the patches relied on. The reviewed main commit of 2024-06-19 only announces a discussion thread, the last code change dates from 2022, and there are no releases or tags.
- Patching needs the user's own copy of the stock PolyendTracker_1.5.0.ptf image, which the repository does not include, and the patched image is flashed through the device's normal firmware-update menu. The README warns that the update screen behaves differently with patched images, recommends backing up the SD card first and points to the Tracker's emergency update procedure for recovery.
- Needs Python 3 with capstone, keystone-engine, pyusb, intelhex and simple-hexdump; the host finds the device over USB by vendor and product ID. The README's reverse-engineering notes treat the hardware as a Teensy 3.6-class MK66FX microcontroller, give the firmware load address and a RAM address used for Polyps, and say IDA Pro, and probably Ghidra or Binary Ninja, can load the Intel HEX image directly.
- There are no tests or CI. Behaviour is documented through README examples and a linked demo video.
- No license file was found and GitHub detects none, so reuse terms are unstated. Polyend's firmware keeps its own rights, and the README disclaimer places any device damage at the user's risk.

## Primary sources

1. <https://github.com/patois/RETracker/blob/f6698f602fe41fededfd9f19fbe1b74bf68a85f0/README.md>
2. <https://github.com/patois/RETracker/blob/f6698f602fe41fededfd9f19fbe1b74bf68a85f0/DEPENDENCIES.md>
3. <https://github.com/patois/RETracker/blob/f6698f602fe41fededfd9f19fbe1b74bf68a85f0/fwtool.py>
4. <https://github.com/patois/RETracker/blob/f6698f602fe41fededfd9f19fbe1b74bf68a85f0/retracker.py>
5. <https://github.com/patois/RETracker/blob/f6698f602fe41fededfd9f19fbe1b74bf68a85f0/tracker/firmware.py>
6. <https://github.com/patois/RETracker/blob/f6698f602fe41fededfd9f19fbe1b74bf68a85f0/tracker/tracker.py>
7. <https://github.com/patois/RETracker/tree/f6698f602fe41fededfd9f19fbe1b74bf68a85f0/polyp>

## More in Firmware and hardware

- [Titan M tools (Quarkslab)](https://awesomerea.org/resources/quarkslab-titanm-tools/index.md) · Tool
- [uefi_retool](https://awesomerea.org/resources/uefi-retool/index.md) · Tool
- [Shannon Modem Loader for IDA Pro](https://awesomerea.org/resources/shannon-modem-loader/index.md) · Tool
- [IMSProg](https://awesomerea.org/resources/imsprog/index.md) · Tool
- [rbasefind](https://awesomerea.org/resources/rbasefind/index.md) · Tool
- [Aptio V UEFI Editor](https://awesomerea.org/resources/aptio-v-uefi-editor/index.md) · Tool

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
