{"id":22389067,"url":"https://github.com/shadow578/marlin-flash-dump","last_synced_at":"2025-07-31T07:32:15.631Z","repository":{"id":185345666,"uuid":"673328404","full_name":"shadow578/marlin-flash-dump","owner":"shadow578","description":null,"archived":false,"fork":false,"pushed_at":"2023-08-05T15:29:48.000Z","size":100,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-08-05T16:37:53.072Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/shadow578.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}},"created_at":"2023-08-01T11:36:56.000Z","updated_at":"2023-08-01T13:07:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"87c7d162-a049-4870-8a61-788307637f6b","html_url":"https://github.com/shadow578/marlin-flash-dump","commit_stats":null,"previous_names":["shadow578/marlin-flash-dump"],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadow578%2Fmarlin-flash-dump","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadow578%2Fmarlin-flash-dump/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadow578%2Fmarlin-flash-dump/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadow578%2Fmarlin-flash-dump/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shadow578","download_url":"https://codeload.github.com/shadow578/marlin-flash-dump/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228224742,"owners_count":17887844,"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":[],"created_at":"2024-12-05T03:08:57.726Z","updated_at":"2024-12-05T03:08:59.946Z","avatar_url":"https://github.com/shadow578.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# marlin-flash-dump\n\nsmall (and kinda bad) utility to dump parts of flash memory from a marlin printer, specifically ones based on the HC32F460 SoC.\nHijacks the `M300` gcode to do the dumping, and comes with nearly no error handling, so good look i guess ;).\n\n\n## Usage\n\n1. copy the provided [M300.cpp](https://github.com/shadow578/marlin-flash-dump/blob/main/M300.cpp) file to your Marlin source folder, compile Marlin and flash it onto your printer.\n    - to test everything works, dump a small section of memory using `M300 S0 E15` (dumps the first 16 bytes of flash)\n2. connect the printer to your computer using serial (most printers have a usb port that provides serial access)\n3. make sure that [node.js](https://nodejs.org) and npm are installed on your system\n4. clone (or download) this repository and run `npm install`\n5. run `npm start` to start the utility\n6. the utility will now allow you to select the serial port the printer is connected to and the baud rate.\n    - unless you changed the marlin config, the baud rate should be 115200\n7. now, the utility will ask you for a few things:\n    - label: the name used for the file created after reading\n    - start address: address at which reading the flash starts, in hexadecimal \n    - end address: address at which reading the flash ends, in hexadecimal\n8. after providing the end address, dumping will begin. This may take a few minutes.\n9. after dumping is done, you'll see a \"done\" message and two files are created in `./data/`:\n    - `./data/\u003clabel\u003e.txt`: raw response received from the printer\n    - `./data/\u003clabel\u003e.bin`: binary containing the contents of flash in the dumped range\n10. repeat steps 5-9 at least one more time with the same start and end address, and verify both binaries are equal\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshadow578%2Fmarlin-flash-dump","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshadow578%2Fmarlin-flash-dump","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshadow578%2Fmarlin-flash-dump/lists"}