We Shipped! (...technically)
The first evaluation units are on their way to the early testers. These are closer to beta hardware than the final version, but it's a good milestone regardless. Looking forward to as much constructive feedback as we can get, and hopefully some cool projects.
The Ongoing Keypad Saga
Extracting the keypads from our current (soon to be previous) vendor was a bit of an adventure, and I'm pretty unhappy it took so long... we really need to be iterating, but that's near impossible if the vendor drags their feet over a month getting the samples made. Luckily the samples we have now work reasonably well and we did learn a good deal about what needs to change in the next revision. The main takeaways are the area around the button needs to be more flexible for easy actuation, and the membrane that supports the dome contacts seems to require surprisingly precise alignment to make button actuation reliable. We will look into this more later and if alignment is as important as it seems to be, figure out what can change on the design to make alignment accuracy less important.
The backlights also work now:
It's kind of a cool process how keypads like these are made. They start out as white translucent compression molded silicone, then the black layer is sprayed on, and the lettering is etched by laser. Under the keypad there are a few LEDs on the PCB, that provide the backlight.
Aamir has been hard at work rooting out bugs and he has a pretty impressive collection of dead ones at this point:
- backlight brightness improved with correct resistor value
- audio codec running on appropriate clock now, audio is sounding quite good
- software shutdown circuit debugged (software shutdown allows the phone to close the SD card connection before shutting down, so as to avoid SD card corruption)
- ongoing power testing to maximize battery life and overall power system reliability
- found a surface mount mic and a spring mount speaker to replace the previous ones that had wire leads
- testing with a 2W loudspeaker (the phone likely won't ship with a loudspeaker, but the hardware currently supports adding one and we want to make sure it would work well)
- switched to a GPIO expander with PWM functionality. This lets us control the LCD backlight brightness, keypad brightness, and vibration motor without running out of processor pins.
- testing adding an extra mic on the back of the phone so people can do things like echo and noise cancellation.
- updated code to handle the new audio clock source (MCLK of I2S is now synchronized with ESP32 directly instead of an independent crystal, fixing audio quality issues)
- added a simple MP3 player app and MP3 ringtone
- store multiple SIP accounts (use one at a time)
- back up of critical config files to non-volatile storage (WiFi networks, SIP accounts)
- added querying of the in-memory save-file (this is how large message threads could be handled later)
- fixed multiple minor UI/UX bugs, like improved input of special symbols
- a sample graphic app: ported Fairy-Max chess engine
I think we are actually still on track to start shipping the Pro versions in August. However, we have ate up most of our schedule margin and we haven't started the injection mold yet because there are a few mechanical design considerations that need to be resolved before we should jump into making tooling. So while it's likely that the Pro versions can still start shipping in August if we continue to track our current schedule (since they are made by CNC the lead time isn't so long), because we haven't started the tooling the regular ones won't.
A major unresolved issue right now is bonding of the clear face to the frame. We really don't want those coming off later, and it's going to take some longer term testing to prove any particular adhesive is going to work well from both durability and asthetic standpoints. I'm actually considering making the plastic version of the phone as a unibody design (join the frame and front face), and do it entirely in clear material. Then we can paint the outer frame and completely sidestep the bonding issue, at least on the regular model. Before we start the tooling we also need to have keypads that feel super-sexy-silky, and right now it's more like the fumbling around that happens at a highschool dance: sometimes amazing and sometimes just awkward. As I mentioned before, miles better than the stuff on most hobby-type hardware, but we don't want to be operating at that level. We also need to make sure the antenna and mounting arrangement are exactly what they need to be, nail down the tolerances on the PCBA assembly and mating features with the phone frame, and a few other details. So we're going to make sure that's all good as we can get it before starting tooling, not after.
We're also gearing up to start the certification process, so there's still some room for SNAFUs there as well. But we've been through that before so it won't be completely blind.
Open Issues and Current Tasks
- simplified API for handling audio
- headphone jack detection
- audio issue during calls (other sounds and music playing sound great, but we're still sorting out audio in calls after the recent clock change)
- diagnostics app (to streamline testing and troubleshooting of newly assembled WiPhones. Should also be useful for users later)
- start a tester/programmer for the electronics
- start certifications