How pcmhammer/pcmhammer works
PCM Hammer is a GM powertrain-control-module toolset for identifying modules, reading and writing calibration/firmware images, and logging vehicle data. The principal workflow selects an interface, connects to a PCM, performs an operation, and saves or reports the result. The graph emphasizes the shared library and its Windows, CLI, and experimental Uno clients. README capabilities supplement the sampled source; unsampled UI and protocol wiring is shown only where supported by the repository structure or documented product workflow.
Main entry points: Program.cs CLI · Device.cs Device transport · ReadManager.cs Read manager · Vehicle.cs Vehicle API
Components 22
User clients
- Windows app
Apps/UI/WindowsForms/PcmHammer/MainForm.cs - Logger app
Apps/UI/WindowsForms/PcmLogger/MainForm.cs - CLI
Apps/UI/PcmHammerCLI/Program.cs - Uno app
Apps/UI/UnoUI/PcmHacking.UnoUI/Presentation
PCM operations
- Vehicle API
Apps/PcmLibrary/Vehicle.cs - Read manager
Apps/PcmLibrary/ReadManager.cs - Write manager
Apps/PcmLibrary/WriteManager.cs - PCM detection
Apps/PcmLibrary/Vehicle.Detection.cs - Data logging
Apps/PcmLibrary/Logging/Logger.cs - Kernel transfer
Apps/PcmLibrary/KernelWriter.cs
Communication
- Device selection
Apps/PcmLibraryWindowsApi/Devices/DeviceFactory.cs - Device transport
Apps/PcmLibrary/Devices/Device.cs - Message exchange
Apps/PcmLibrary/Misc/Query.cs - CAN commands
Apps/PcmLibrary/CanCommands.cs - J2534 adapter
Apps/J2534DotNet/J2534DotNet/J2534.cs
Data and logging
- PCM packages
Apps/PcmLibrary/Package/PcmPackage.cs - Package store
Apps/PcmLibrary/Package/PackageStore.cs - Package formats
Apps/PcmLibrary/Package/PhzFormat.cs - Log output
Apps/PcmLibrary/Logging/LogFileWriter.cs
Other components
- Operator
- GM PCM
- OBD interface
Connections 26
- Operator → Windows app: uses
- Operator → Logger app: uses
- Operator → CLI: runs
- Operator → Uno app: uses
- CLI → Device selection: selects device
- CLI → Read manager: starts read
- CLI → Write manager: starts write
- Device selection → Device transport: creates
- Device transport → OBD interface: communicates
- Vehicle API → Device transport: uses transport
- Message exchange → Device transport: sends and receives
- GM PCM → Device transport: exchanges messages
- Read manager → CAN commands: requests data
- Read manager → PCM packages: builds image
- Read manager → Package store: saves package
- Package store → Package formats: encodes package
- Write manager → PCM packages: loads image
- Write manager → Kernel transfer: runs transfer
- Kernel transfer → CAN commands: issues commands
- Data logging → CAN commands: collects data
- Data logging → Log output: writes log
- Vehicle API → PCM detection: identifies PCM
- PCM detection → GM PCM: queries identity
- Windows app → Vehicle API: operates
- Logger app → Data logging: configures logging
- CLI → Vehicle API: operates