Tool
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.
- Targets
- Firmware
- Category
- Firmware tools
- Relationship
- Foundation tool
- Sources reviewed
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, and nothing was flashed or run here.
- No license file was found and GitHub detects none, so reuse terms are unstated; public source availability is not a reuse grant. Polyend's firmware keeps its own rights, and the README disclaimer places any device damage at the user's risk. The reviewed sources establish no REA connection.
About this entry
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.md GitHub · patois/RETracker · Revision f6698f6
- DEPENDENCIES.md GitHub · patois/RETracker · Revision f6698f6
- fwtool.py GitHub · patois/RETracker · Revision f6698f6
- retracker.py GitHub · patois/RETracker · Revision f6698f6
- tracker/firmware.py GitHub · patois/RETracker · Revision f6698f6
- tracker/tracker.py GitHub · patois/RETracker · Revision f6698f6
- polyp GitHub · patois/RETracker · Revision f6698f6
More in Firmware and hardware
- ThinkPad IMX471: recovering camera tuning for Linux · Case study
- MXQ PRO RK3229: an Android firmware investigation and Linux repurposing · Case study
- iCSee LocalMod: a stock-firmware camera control extension · Case study
- flipper-telink: replacement firmware for Tuya Zigbee remotes · Case study
- Supermodel: initial Real3D Pro-1000 image-generator emulation · Case study
- OpenDMCUFirm: a reimplemented Wii U DMCU display firmware · Case study