Electronic Product Design Progress Report: Week 3


On Friday, February 15, I attended the training for laser cutting and 3D printing offered by the Leslie eLab (again!). After the training, I spoke with the trainer about making a case using two materials on top of one another. He did not have an answer and was going to ask around to see if a solution exists. In the mean-time I decided to design the product using two materials in separate printings. Ninja-flex for the buttons and PLA for the rest of the case.

Case Design

The case was designed in Fusion 360 for 3D printing. Borrowing an existing iPhone case from Thingiverse, I created the rest of the portaMid’s case around the existing STL file.

It was necessary to make precise measurements of each part that the case will enclose. However, I was able to use an STL render of the PCB from KiCAD to aid in making sure everything fits together. While the case itself will be printed in standard PLA plastic, the buttons will be printed in a flexible material such as Ninjaflex. The buttons contain a one-millimeter groove in the material so that the plastic will be more flexible. I got this idea from other rubber button designs that I have seen throughout my experience repairing electronics.

Bottom of case as shown in Cura 3D printing software.

Bottom of case as shown in Cura 3D printing software.

Unfortunately, the case is nearly impossible to print in its current form. Despite the part fitting with the advertised 215 x 215 x 200mm build volume for the Ultimaker 3, it cannot print as the part does not conform to the “shadows” on the print bed in Cura. In order to 3D print this design, I must seek a larger printer or change my design to be assembled from multiple parts. Therefore, I am thinking about creating a hybrid of a 3D printed part for the phone case and buttons, and laser cut the rest.

Code Update

Having received the MCP23017 data extender chips, I changed the source code to utilize two of the chips. Unfortunately, my implementation is not efficient and creates serious delay between key presses. Also, the octave keys aren’t functional. I will continue to massage the code until it works properly.

Printed Circuit Board Update

On Monday, my custom PCB will arrive! However, I already discovered two mistakes when updating the code: the RGB LED pins I purchased are in a slightly different order than the part I ordered; and I forgot to include resistors for the LED. This can be solved by bending two of the pins to route them to the proper holes and bodging in the resistors. Next week, I will update the PCB design to correct for this problem.


All code and project files have been pushed to GitHub.