Home made cellphone project.

 

Just getting it running was enough.

Early version of the home screen. This was the first version that could actually make a call. Sadly, it could only make one call.













First phone panel. Like I said before, you could make calls but not hang up or make a second call. Odd that..


The problem turned out to be that making the call would pull so much power that the FONA would brown out and crash. This would leave the connection alive, but there was no more communication from the UI to the hardware. Nobody was around to listen.





The beginnings of the contact list. There were only three on there because I hadn’t written the code to scroll it yet. That was a long time in coming. Actually, scrolling still needs work as of this writing.


The selection and editing of contacts are all on one panel instead of a panel with a list for searching and a panel for editing as it should be. Why? Because I can only write code so fast. This was the shortest path to get the minimum functionality up and running. It ended up being a very bumpy path!




Not the best image. This is actually the second version with the larger phone case to fit the larger battery. But you can see texting works. Still has the old hodgepodge of stolen icons.












Also version two. This is the status screen. What its showing is the block of data that the phoneManager  polls the FeatherFONA for. Sadly, it takes around 977 ms for a return trip, from asking for the info to receiving it. That has caused a bit of hassle with the UI getting “late” information.









Back to version one here. My trusty calculator, now wrapped up into a panel object. Phones all need calculators don’t they?













And the question game you’ve seen before. Also, like the calculator, wrapped into a panel object.
















Breakout! Another game. I wrote this quite awhile ago for a little handheld I had. Like the calculator, it now lives on in panel form.















I got version one running with most of the basic functionality I wanted. I could add contacts, edit them, delete them. I could use the contact  database to make one call, not hang up. It also worked for doing text messages. Everything was a bit shaky. Not ready to hand off to anyone yet. Things like typing a string past the editing window would type out of the window leaving cursors across the screen. Nonsense like that. Also, I knew a bunch of it was complete bailing wire inside. I wasn’t happy about that. The libraries were fine, it was just the code accessing them that built the UI that ended up as hash. I mean, it was thrown together as fast as possible.


Then, when I figured out that the battery was not doing its job, I had to redesign the case to fit a larger one. This solved the single call with the FONA crashing issue. This allowed me to move forward with getting the control code more stable and error tolerant.


Now, code that communicates with hardware can be pretty tough. Why? Because a lot can go wrong. Hardware has its own vast array of issues mainly because it interfaces with the “real world”. So this interface code needs to be able to deal with all sorts of bizarre things without breaking. It takes time. I spent weeks sitting in a lawn chair, inside the back of that old truck, at the local marina, debugging hardware interface code. The marina was the only place I could get cell signal and not freak out the neighbors by parking in front of their homes for days.


In the end, I got version two working well enough that I could hand it to friends and let them play around with it. I was getting somewhat confident that it would run ok, but it still had issues that I couldn’t really address. The main issue was that the screen drawing was terribly slow. Most panels took a second or more to draw themselves. The home panel, with its background image, took about 5 seconds to draw. It looked terrible watching all these things struggling to draw. I was getting very jealous of my iPhone with its instant drawing and smooth scrolling.


I tapped into the backlight of the display so that I could turn off the screen when redrawing. This helped a lot, but it was only really hiding the issue. People would click the close box on a panel, the screen would go black and sit. They would invariably look up and say, “Sorry I think I broke it.” ..And then the home screen would pop up.


At about this time I set the phone aside for around a year and worked on other projects. The truck, always in need of something.


I also I got involved in developing my plantBot watering system. The plantBot system is another complete story in itself.


But within few months, the plantBot project forced me to setup for making my own icons..