1. What did you personally accomplish this week on the project?
This week I focused on establishing the foundation of our software framework for FlashRescue. I set up the FTDI FT2232H development environment and successfully interfaced with it using the PyFTDI library. I wrote and tested Python scripts to enumerate connected devices and toggle GPIO pins, which confirmed that we can reliably communicate with the FTDI and use it for precise control of the hardware.
I also drafted the structure of the recovery workflow, mapping out modules for raw sector capture, error correction, and file reconstruction. To better understand feasibility, I ran timing tests using a logic analyzer on GPIO toggling to measure responsiveness. The results showed that we can achieve sub-10 ms switching, which aligns with our project requirement for controlled USB power cycling. In addition, I researched open-source forensic imaging tools to identify potential approaches we could adapt for error correction and file carving.
2. Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?
I am on schedule. According to our Gantt chart, Weeks 3–4 are dedicated to schematic capture and initial software framework development, and my work on FTDI setup, GPIO control, and recovery module planning is aligned with that timeline. The main risk I see on the software side is the complexity of reverse engineering file systems, which could extend development time. To mitigate this, I’m taking an incremental approach by starting with raw sector capture and simple recovery methods before layering in more advanced error correction and reconstruction.
3. What deliverables do you hope to complete in the next week?
Looking ahead to next week, I plan to:
-
Expand the FTDI test scripts into a modular Python framework capable of both GPIO control and streaming raw USB data.
-
Implement the first draft of a sector-level data logger to store raw captures for offline analysis.
-
Write a stub for the error correction module so we have placeholders ready for integration.
-
Begin designing a simple command-line interface (CLI) that will allow interaction with recovery functions.
