Project state: Gamma batch assembly and UI rework

A project log for ZeroPhone - a Raspberry Pi smartphone

Pi Zero-based open-source mobile phone (that you can assemble for 50$ in parts)

ArsenijsArsenijs 10/15/2017 at 00:490 Comments

After the last newsletter, I was on a small 10-day event, which is kind of a vacation for me, since I didn't have access to my tools and everything, and couldn't send out ZeroPhones. Right after that, I went on a hackathon, and from 2nd of October I'm back on track. It's time to send out 3 more ZeroPhones - to Hackaday, for Hackaday Prize Best Product round. 

Here are the 3 phones that I just assembled, in about 7 hours' time - not from zero, of course, all SMD components and some THT components were already soldered on, I had to solder on the USB ports, the Pi Zero, the displays and then make some finishing touches. However, in the following days, I had to do testing and a lot of debugging - so I just wrote down my thoughts on testing ZeroPhones =)

---------- more ----------

 While assembling all this, I got even more fixes/additions/ideas for the next revision (ZeroPhone Delta), hoping to make it as complete as possible - and I'm going to build at least 10-15 of those, too!

New 18650 holder board, fixes most of the bugs and problems I had with the current board. Just hoping it doesn't introduce new ones.

On the event, I still could code, so I fixed a couple of bugs - and worked on finishing the "prettier UI" feature branch. ZeroPhone UI looks pretty basic as it is now, since UI elements used to have text-only representation - so I'm refactoring it, and now UI elements are in control of how they look like. What does it allow to do?

Custom fonts and bigger letters

Bringing back menus we've had on older phones 

For example, this is something you could meet on a Sony-Ericsson dumbphone (not sure I could call those dumb, though), current menu entry is in the center of the screen and previous&next menu entries on top&bottom. It has no animation so far, so the transition doesn't yet remind of Sony-Ericsson, but it's a great example of what can be done with UI view abstractions I'm putting in place. At some point in the future, I'll make a Nokia 3310 menu, just for fun - you know, the one where each menu entry takes the full screen, but has an animated icon. It's likely going to be highly experimental and won't be mainlined, but it's going to be worth a try for the nostalgy points =)

Furthermore, you can change which views are attached to which UI elements. I've made a simple JSON-based configuration way, so that it's easy to to define, which view is used for this specific UI element or just UI element type, as well as which view is the default. It allows adding new JSON files instead of modifying existing ones, which makes the whole thing a little bit more git-friendly (allowing to update through git using the "Update pyLCI" button in the main menu, without stumbling upon possible merge conflicts). For examples and a better explanation, see a new Wiki page about UI configuration 

The new UI is not yet included by default, it's in a separate branch, which will be merge as soon as it's "good enough" - which'll require also adapting the emulator, testing the UI extensively (at the very least, manually) and making sure that the new UI is comfortable to use.

Now, priorities are: accessible BoM (in the form of sourcing guidelines) and assembly instructions. Instructions are already under construction, will be working on those tomorrow =)