{"id":21175582,"url":"https://github.com/m3y54m/cjmcu-ft232hq-programmer","last_synced_at":"2025-07-09T21:32:07.364Z","repository":{"id":156140008,"uuid":"543953434","full_name":"m3y54m/cjmcu-ft232hq-programmer","owner":"m3y54m","description":"FT232H-based JTAG, SWD, and AVR-ISP Programmer (Supported by OpenOCD and AVRDUDE)","archived":false,"fork":false,"pushed_at":"2024-01-08T20:49:43.000Z","size":2617,"stargazers_count":26,"open_issues_count":0,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-05T07:23:00.690Z","etag":null,"topics":["arm","avr","esp32","ft232h","ft232hq","jtag","pcb","swd","usb-serial-adapter","usb-serial-converter"],"latest_commit_sha":null,"homepage":"","language":null,"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/m3y54m.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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-10-01T08:40:45.000Z","updated_at":"2025-03-28T17:10:30.000Z","dependencies_parsed_at":"2023-12-29T18:41:27.791Z","dependency_job_id":null,"html_url":"https://github.com/m3y54m/cjmcu-ft232hq-programmer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/m3y54m/cjmcu-ft232hq-programmer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m3y54m%2Fcjmcu-ft232hq-programmer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m3y54m%2Fcjmcu-ft232hq-programmer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m3y54m%2Fcjmcu-ft232hq-programmer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m3y54m%2Fcjmcu-ft232hq-programmer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m3y54m","download_url":"https://codeload.github.com/m3y54m/cjmcu-ft232hq-programmer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m3y54m%2Fcjmcu-ft232hq-programmer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264503949,"owners_count":23618762,"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":["arm","avr","esp32","ft232h","ft232hq","jtag","pcb","swd","usb-serial-adapter","usb-serial-converter"],"created_at":"2024-11-20T16:59:58.108Z","updated_at":"2025-07-09T21:32:06.954Z","avatar_url":"https://github.com/m3y54m.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# CJMCU-232H-based JTAG, SWD, and AVR Programmer\n\nThis is a very popular module based on the FT232H chip made by CJMCU.\nYou can use this module as a high-speed programmer for your embedded projects.\nI discovered that this module can be used as a JTAG and SWD programmer for ESP32 and STM32 microcontrollers.\nIt can also be used as an ISP programmer for AVR microcontrollers.\n\nThis module might be used to program other microcontrollers, but no information about them has been published yet. \n\n![CJMCU-232H](https://user-images.githubusercontent.com/1549028/219136649-b83fe1e2-26ae-417c-9f38-46d55629f4f6.jpg)\n\nAny similar module/board based on FT233H/FT2232H which exposes `AD0`, `AD1`, `AD1`, and `AD3` pins can be used for this purpose.\n\n**Note that voltage level of all I/Os is 3.3V but they are 5V-tolerant**\n\n![](CJMCU-FT232HQ-PROGRAMMER.png)\n\n### OpenOCD (for JTAG \u0026 SWD)\n\nInstall `WinUSB` driver for FT232H using [Zadig](https://zadig.akeo.ie/):\n\n![image](https://github.com/m3y54m/cjmcu-ft232hq-programmer/assets/1549028/73914f6c-b004-4c63-a077-9f024e4dcd16)\n\nFor SWD connection use `-f interface/ftdi/ft232h-module-swd.cfg`, and for JTAG connection use `-f interface/ftdi/um232h.cfg -c \"transport select jtag\"`.\n\n**Example: Read STM32f103C8 (Blue-Pill board) flash:**\n\nFor STM32f103C8 with 64KB of flash. Target is `board/stm32f103c8_blue_pill.cfg`. Size to read is `0x10000`. Read firmware from MCU and store it in a file named `firmware.bin` on your computer.\n\n```bash\nopenocd -f interface/ftdi/ft232h-module-swd.cfg -f board/stm32f103c8_blue_pill.cfg -c init -c \"reset halt\" -c \"flash read_bank 0 firmware.bin 0 0x10000\" -c \"reset\" -c shutdown\n```\n\n**Example: Write STM32f103C8 (Blue-Pill board) flash:**\n\nFor STM32f103C8 with 64KB of flash. Target is `board/stm32f103c8_blue_pill.cfg`. Write firmware from the file `firmware.bin` to the flash memory of the MCU.\n\n```bash\nopenocd -f interface/ftdi/ft232h-module-swd.cfg -f board/stm32f103c8_blue_pill.cfg  -c init -c \"reset halt\" -c \"flash write_image erase firmware.bin 0x08000000\" -c \"reset\" -c shutdown\n```\n\nUsing with PlatformIO:\n\n```\n[env:bluepill_f103c8_128k]\nplatform = ststm32\nboard = bluepill_f103c8_128k\nframework = arduino\n; Upload options for FT232H USB-JTAG adapter in SWD Mode\nupload_protocol = custom\nupload_command = ${platformio.packages_dir}/tool-openocd/bin/openocd -s ${platformio.packages_dir}/tool-openocd/scripts -f interface/ftdi/ft232h-module-swd.cfg -f board/stm32f103c8_blue_pill.cfg -c \"init\" -c \"reset halt\" -c \"flash write_image erase {$SOURCE} 0x08000000\" -c \"reset\" -c \"shutdown\"\n; Debug options for FT232H USB-JTAG adapter in SWD Mode\ndebug_tool = custom\ndebug_server =\n  ${platformio.packages_dir}/tool-openocd/bin/openocd\n  -s\n  ${platformio.packages_dir}/tool-openocd/scripts\n  -f\n  interface/ftdi/ft232h-module-swd.cfg\n  -f\n  board/stm32f103c8_blue_pill.cfg\n```\n\n### AVRDUDE / AVRDUDESS (for AVR ISP)\n\nInstall default driver from FTDI. If you have installed `WinUSB` or `libusb` driver for FT232H, you should revert it to defalut driver:\n\n![image](https://github.com/m3y54m/cjmcu-ft232hq-programmer/assets/1549028/0f4080d4-bdf3-4020-98c3-16edddfb809f)\n\n![image](https://github.com/m3y54m/cjmcu-ft232hq-programmer/assets/1549028/0be9785a-7af3-4faa-87d8-b520b9ecaef4)\n\n![image](https://github.com/m3y54m/cjmcu-ft232hq-programmer/assets/1549028/7ecae527-7a0e-4775-9329-02bb40086053)\n\n![image](https://github.com/m3y54m/cjmcu-ft232hq-programmer/assets/1549028/b33eb188-fa22-41d0-aca3-1d3ce8fecd41)\n\n![image](https://github.com/m3y54m/cjmcu-ft232hq-programmer/assets/1549028/ef8a3db8-d489-4a2e-a0ee-c84775525ba1)\n\n![image](https://github.com/m3y54m/cjmcu-ft232hq-programmer/assets/1549028/39646de2-7604-4e26-a589-cbb9ac1bc5b6)\n\n## Resources\n\n- [Low-cost ESP32 In-circuit Debugging](https://medium.com/@manuel.bl/low-cost-esp32-in-circuit-debugging-dbbee39e508b)\n- [Configuring JTAG debugging in Linux](https://nodemcu.readthedocs.io/en/dev-esp32/debug/)\n- [Getting Started with OPENOCD Using FT2232H Adapter for SWD Debugging](https://www.allaboutcircuits.com/technical-articles/getting-started-with-openocd-using-ft2232h-adapter-for-swd-debugging/)\n- [How to use ft2232h adapter and openocd to debug the SWD interface of arm cortex M Series MCU](https://archive.ph/y9BLG)\n- [Read and write stm32 firmware binary with openOCD](https://gist.github.com/vanbwodonk/6b425a093786e7eaddf535de747118dc)\n- [AVRDUDE and FTDI *232H](http://www.jdunman.com/ww/AmateurRadio/SDR/helix_air_net_au%20%20AVRDUDE%20and%20FTDI%20232H.htm)\n- [TinyAVR-0/1 Programming](https://semjonov.de/docs/tips/avr/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm3y54m%2Fcjmcu-ft232hq-programmer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm3y54m%2Fcjmcu-ft232hq-programmer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm3y54m%2Fcjmcu-ft232hq-programmer/lists"}