Sure! Here is the revised version with image links:
Lessons from designing a 3D printed e-reader case
When designing a case for an electronic device, it is important to consider both its functionality and durability. Here are some lessons I learned while designing a case for an e-reader using a 3D printer.
The original design used 3D printed PLA, and I was learning about the capabilities of additive manufacturing while designing. I discovered that flat surfaces needed to be on the print bed when creating enclosures/cases. I also learned that even with ironing, the texture of an open surface always looks worse than that on the print bed. This led me to design the case as two parts: a top and a bottom, which enclosed the electronics. The front/top of the case would be very thin, and the base/back would be thick and house everything.
To protect the screen, a TPU cover was printed to attach the cover and the case magnets were embedded in both. The cover had a bulky side lobe to put the magnets in line with the side of the device.
However, there was one large flaw in this design. The screen was one of the elements helping to contain the electrical components. Additionally, the screen was unsupported in places, specifically over the battery. This meant that if pressure was applied here, it could potentially flex the screen and break it. Sadly, the cover eventually allowed a large force in the wrong area, and this broke the display.
The other flaw in the design was the assembly method. The case was welded shut using a soldering iron, which made removing the front remarkably destructive.
The most important lessons from this experience were:
- The screen needs a back panel to reduce local bending from point loads
- The bulky side lobe of the original cover was an issue as they allowed the cover to get pulled off if they caught on something (handbags can have lots of things in them)
- TPU is not a rigid enough material for the cover
Lessons from the new design
The new design has been in use for approximately one year, and there have only been two issues. The first issue was that the old charging circuit broke in the first few months after the rebuild. The contacts for soldering to the PCB were already worn away a bit, which made it difficult to replace the broken part through the glued wood back. To address this, I cut a rectangle out of the back cover, which allowed me to de-solder the connections to the board and drop in a replacement. If I were to make a new design, I would make an unscrewable enclosure.
The second issue arose when my partner used the device more, and more bugs and quirks were found. One issue was the startup time, which was approximately 70 seconds. After investing some time with CProfile, I was able to claw back 40 seconds, which were lost through blocking behavior of bluepy. The functionality was changed so that the e-reader doesn’t automatically connect to the watch, but only on a specific button press.
If I were to rewrite the software, I would shift from threads to asyncio. This would allow greater control of the orchestration of the subprocesses.