-
Notifications
You must be signed in to change notification settings - Fork 64
BDM
This is mostly useful to people who are working PCM Hammer itself - adding support for new PCMs, improving the kernels, etc. But it might be use for non-developers who do a LOT of flashing and want a way to recover PCMs that have been bricked by bad writes - corrupted data, incorrect OS for the hardware, incomplete / interrupted flash, etc.
BDM gives us second way to read or (more importantly) write the flash chip. The drawback is that you have to take the PCM out of the car, remove the back from the PCM, and attach several wires.
This is a bit tricky. It's not for everyone.
What is it? https://en.wikipedia.org/wiki/Background_debug_mode_interface
What hardware do you need? https://www.usbjtag.com/zenshop/index.php?main_page=product_info&cPath=1&products_id=11
See this thread: https://pcmhacking.net/forums/viewtopic.php?f=42&t=6215&start=50
If you're only going to do this rarely, it might make sense to solder directly to the PCM. If you're going to be doing this regularly, you might want a jig so that you can skip the soldering. But note that pogo pins have their own reliability issues (the pins might stick, they might slip in the jig and not make good contact, etc) so there are drawbacks to both approaches.
See this page for wiring details: http://www.usbjtag.com/jtagnt/ecu411/index.php
This jig can be 3D-printed: https://www.thingiverse.com/thing:3565197
The jig requires pogo pins. I used these: https://www.amazon.com/gp/product/B07HC5VKVT/
Those are no longer available, but pogo pins in general are not hard to find, and the size isn't critical. However if you use pins with a different diameter, you might need to adjust the hole sizes in the jig. In fact, the same size pins might not fit properly due to variations in printers and filament.
Read this first: https://www.usbjtag.com/jtagnt/usbjtagnt.pdf
- Solder to the board, or attach the fixture with the UsbJtag to the board.
- Plug the UsbJtag device into your computer.
- Apply 12v power to the board.
- Register/activate the UsbJtag device. Sorry for the lack of detail here, I did it months ago.
- Click the settings button (gear and wrench icon) and pick Category:ECU, Protocol:BDM, Target:ECU411 (P01) or ECU4111M (P59)
- Click the ID button in the UsbJtag app. You should see something like "Found Address= 00000000 29F800BB". If you see no response, or if you see "Report these values http://www.usbjtag.com/phpbb3 0000h,0000h" then you've soldered to the wrong places or not all of your pogo pins are touching the circuit board.
To write: click the file-open button (looks like a folder containing a sheet of paper) and then click the Write button (has a "W" on it). After writing, verify the result by clicking the Verify button (has a question-mark and a "V"). Note that it is normal for the "program speed" indicator in the status bar start around 12 and steadily drop during the write. Don't be alarmed.
To read: click the Read button (has an "R" on it) and then click the Save button (looks like a 3.5" floppy disc).
For Users
- Overview
- Where do I start?
- How Tuning Works
- Supported PCMs And Vehicles
- Supported Interfaces
- Download
- Operating Systems
- .bin and XDF Repositories
- Logger XML Files
- FAQ
- Glossary
- Acknowledgements
- Similar Projects
For Developers
PCM Hardware & Firmware
Misc