2020 Home Screen – iPhone 12 Pro

Here’s the yearly share of my iPhone home screen.

The big change this year was moving Facebook and Twitter in to the Social group, creating an extra step, which has helped limit my usage. I think it’s time for a new wallpaper.

Check out previous screenshots from 2019, 2018, 2017, 2016, and 2010.

2018 Home Screen – iPhone X

Here’s the latest in what is now a yearly screenshot of my home screen.

I’d previously posted in 2017, 2016, and 2010. I decided not to upgrade to the iPhone XS this year, so I have the same phone. The biggest changes are I’m back to a single page and I’ve filled the last space with the Tesla app.

Home Screen – iPhone X

A year ago, I posted a screenshot of the home screen on my iPhone 7 Plus. Might as well make this a yearly thing. Not much has changed with my app usage though. Here’s the home screen on my iPhone X.

This may be the first time since iOS added app groups that I have a 2nd page.

img_0227

These are some augmented reality apps I wanted to try. I’ll get around to filing them into a group soon because this second screen is bugging me.

Don’t Take My Phone

I spent all of last week with about 540 Automatticians. For an introvert like me it’s a challenging and exhausting week. When meeting new people each day we often repeat the same conversations.

How is your week going?

What team are you on?

How long have you been working here?

It’s all a bit awkward (but good) for me, being someone who doesn’t enjoy small talk.

These conversations and interactions may not have been the hardest part of the week though. We tried something new at this year’s Grand Meetup, called Homeroom. Each person in the company was split off into a group of about 25 people we met with for an hour on 4 of the days. At the beginning of each hour, the leads in the room had us place our phones in a drawer or box so we could focus on the group and getting to know people.

Andy said, “It feels like someone cut off my arm.”

I think I’m pretty good at not constantly pulling out my phone in social situations, but not having the option gave me an uneasy feeling.

Phone Keypad Hacking: Part 2

Go back and read Part 1 if you want to the full story on this little project. I did decide to get rid of the PCB on the old phone keypad. Good thing I’ve been getting a lot of desoldering practice. In order to remove the PCB, I first had to remove the wires I had added to the column and row contact points. That was easy and getting the PCB off was a pretty smooth process as well.

PCB and new look of the back side of the keypad.

Other side of the PCB. The white rectangle is the back of the 557D IC.

Now that I didn’t have the PCB to carry power and ground around everywhere, I had to solder in my own wires. I also had to solder back in all of my connection points to provide the outputs I’d feed into a microcontroller (I used an Adafruit Feather 32u4 Basic Proto).

Once all of the wires were in place and then connected to my microcontroller I wasn’t getting expected results from a simple little program I wrote to display the values. Took far too long for me to remember I needed to use pull down resistors to prevent floating values. I put 10k Ω resistors in each of the circuits…

img_8994
Prototyping with pull down resistors.

Output from the pins couldn’t get any better…

phone-keypad-row-col-values.png

I loaded an example from the Arduino KeyPad library, which gave me very weird behavior. After looking at the underlying code, I realized it wanted the outputs of the keypad to be HIGH when a key was not pressed and LOW when it was. Well, my circuit was doing the opposite, so I had to have to invert everything. I didn’t have any inverter ICs, so I used NPN transistors to create an inverter circuit on each output.

img_8993
Prototyping by inverting the output of the keypad column and row values.

Progress. Now I was able to get the library to correctly recognize some key presses. 95% of the time it seemed to think everything was coming from column 1 (1, 4, 7, *) though. The library comes with a MultiKey example. When I ran that, it was reporting every key on the row as being pressed. WTF?!

For the life of me I could not figure out what caused this. I checked wires, measured voltages, did continuity tests, resoldered connections, changed boards, used different GPIO pins, and countless other things. Nothing made a difference. My own code was working beautifully though. Eventually I gave up on the library. It wasn’t worth the effort and I was out of ideas.

Update: Later on I went back and read the KeyPad library code again because it was bugging me. Turns out these keypads don’t actively read the column pins like they do the row pins. My assumptions about how they worked was very wrong because I hadn’t read far enough into the code before. When checking for key presses, typical keypads iterate through the columns to send a pulse which feeds over in to the rows, which are then read in. How a Key Matrix Works has a pretty good explanation with visuals. If I get my hands on another similar keypad maybe I’ll try to recreate this functionality.

I rewired everything to use the pull down resistors again (video of soldering). A huge benefit of the decision was it drastically simplified my circuitry. This would save me 49 solder points! I probably would have needed to use a half-size perma-proto board instead of the 1/4 size I ended up using.

I decided to put in a piezo buzzer to add sounds. I also used a tiny LED, which I had salvaged from some old computer speakers, to show when power is switched on to the backlight.

The finished board. Isn’t it a thing of beauty?

 

Side view before bending the output wires off to the sides.

I tried a couple of different methods of producing touch tones (DTMF) to match up with each key, but with the microcontroller I’m using and the small piezo buzzer, the sound was terrible. I would need something a little more capable I think.

Here’s a demo video.

Hard to see the OLED screen in the video, but I was only using it to output each key press. Something like this…

phone-keypad-oled-output.jpg

All of the code and Fritzing wiring are available in my phone-keypad repo on GitHub.

I even went out of my comfort zone and did a quick share of this on Adafruit’s Show and Tell. If the video doesn’t start at the right spot you can skip ahead to the 12:42 mark. Going back to watch, my demo kind of sucked since it’s hard to hold something up to the Mac camera and push buttons at the same time.

Update: Continue on to Part 3, where I create a matrix of buttons to act as a keypad.

Yellowbook

A couple of weeks ago I came home to find this 2017/2018 Yellowbook thrown in my driveway. How is a physical phone book still a thing?

Remember the white pages where you could look up the phone number for anyone in your area? Seems like decades ago, though I couldn’t tell you the last time I called a personal land line.