What did you personally accomplish this week on the project?
This week I focused on final preparation for our demo and handled a critical board delivery situation. I’ve been working solo on both the hardware and software sides of the project now, which has required careful prioritization of tasks.
The major accomplishment this week was coordinating the first round of PCB delivery, which I’m scheduled to receive tomorrow morning, just in time for our demo. After the connector temperature rating issue we encountered previously, I maintained close communication with the manufacturer throughout the assembly process to ensure the high-temperature USB connectors were correctly installed and that the boards passed all their quality checks before shipment.
On the software side, I made a significant architectural decision: I completely scrapped the PyFTDI based approach and redesigned the entire software architecture from the ground up. The PyFTDI implementation had fundamental limitations in terms of low level control and timing precision that were going to cause issues as we scaled up functionality. The new architecture gives us much more direct control over the USB communication layer and better integrates with our power cycling hardware control. This was a substantial refactor, essentially rewriting the core imaging and recovery code, but it puts us in a much better position for robust, reliable data recovery operations. I’ve tested the new implementation thoroughly and it’s now working end to end with improved error handling and more predictable behavior.
Since I’m now handling both hardware and software responsibilities independently, I’ve had to be strategic about time management. I set up all the test equipment and verification procedures for tomorrow’s board bring up, organized the components and tools I’ll need for quick debugging, and prepared backup plans in case we encounter any issues during the demo. I also created a streamlined demo script that walks through the key functionality in a clear, time efficient manner.
Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?
I’m currently on schedule for the demo, though working solo has required some adjustments to my workflow. The software architecture redesign took significant time this week, but it was necessary to ensure we have a solid foundation moving forward. The PCB delivery timing worked out favorably. Receiving the boards tomorrow morning gives me a few hours to verify basic functionality before the demo, which should be sufficient given the thorough testing I’ve already done with the new software architecture.
The transition to working independently on all aspects of the project has actually streamlined some decision making processes, though it’s increased the workload considerably. I’ve maintained momentum by focusing on the most critical path items first: ensuring the boards arrive on time, having robust software that can demonstrate our core functionality even if we encounter minor hardware issues, and preparing comprehensive backup materials.
What deliverables do you hope to complete in the next week?
Next week my priorities are to receive and perform initial validation on the first PCB revision tomorrow morning, including power supply verification, USB enumeration testing, and basic read functionality with the new software architecture. I want to successfully demonstrate the data recovery system at our demo, showcasing both the hardware and software components working together.
After the demo, I plan to complete full characterization of the assembled boards, including signal integrity measurements on the USB lines and timing verification of the power cycling circuit. I’ll begin testing with a wider variety of USB drives to validate our recovery approach across different manufacturers and controller types. I need to document any hardware issues discovered during bring up and create a running list of potential rev2 improvements.
I also want to finalize the complete software documentation for the new architecture so the codebase is ready for evaluation. If time permits, I’ll start working on the final presentation materials and begin drafting sections of the final report.
I also press the vendor to get our REV 2 of the boards here on time.
