DIY Cellphone, Part 2

The last couple of days, I have been trying to put my cellphone together. Using soldering paste with lead requires good ventilation. The fumes are poisonous, and you shouldn’t breathe them. That’s why I had a big fan by my side. Your friends are; soldering paste, flux for the hard ones, a soldering iron, a tweezer, and patience.

I discovered that I didn’t receive the correct LiPo charger, and I haven’t been able to power the phone to program and use it. I have contacted the supplier (Electrokit), and I am sure they will find and ship the correct one. Still, I have to wait over the weekend before I can use my phone, which is not fun =(

Here are some pictures from the soldering procedure:

DIY Cellphone, Part 1

I believe in a society like today, we need to have better control over our communications. Today’s smartphones have been accused of being devices of mass surveillance. Therefore I have decided to build my own cellphone. I found this guide on the internetz, which describes an open-source cellphone platform based on a GSM module and an AVR microcontroller. I selected it as a starting point for my cellphone. It will most certainly receive software updates from me (I want snake!), and probably even hardware updates in the future. Yes, I know, GSM is not secure at all, and it is vulnerable to man-in-the-middle attacks, but I still prefer the man-in-the-middle over nsa-over-the-internetz.

Enough jabber, for now, let’s get to the fun part! So far, I have received all the needed components from the Bill of Materials (BOM) for the phone’s LCD version, besides the PAS414HR-VA5R SuperCap, which has been discontinued. Since the proposed replacement part isn’t good enough, I managed to find some leftover PAS414HR-VG1 at Farnell and instead ordered a few of those. It will take some scratching and soldering to fit it on the PCB, but its values are correct. Since I am living in Sweden, I had to find alternative suppliers for my materials (Electrokit for some electronics, In-Time for the antennas, Farnell for the SuperCaps). Some had to be ordered from DigiKey anyway. Try to keep your parts ordered from DigiKey below your country’s import tax threshold. Otherwise, you might end up paying import taxes like me, which is not fun.

Here is a picture of the PCBs from OSH Park, which are of excellent quality. More will come once I receive the SuperCaps and start soldering the cellphone.

Cellphone PCBs from OSH Park.
Cellphone PCBs from OSH Park.

Harlem Shake with a Stewart platform

I had a project assignment to do for one of my university courses (Numerical Analysis). The project was about modeling a Stewart platform in MATLAB. I took it a step further and animated a Harlem Shake of the final result. Enjoy the video!

Here is the code that I have written to generate the images compiled in the video above:

Master Thesis Prototype

Currently, I am doing my Master’s Thesis at the Department of Electrical and Information Technology, Lund University. In this project, we aim to demonstrate a new concept for improving traffic safety using wireless communication between vehicles.

This image is a sneak peek into our second prototype. Can you guess what the lower part is? The final report will be published here in the middle of June.

Blocket Contest Solution

As I mentioned last week, I have participated in a contest. In total, I got 17 points, which means 7 extra points out of 10 for my solution in the last challenge. That puts me in place 28 or place 3, depending on if you consider everybody with the same points in the same place or not.

Here comes my solution. The problem description can be found in the picture above.

Blocket Easter Eggs Contest is a Swedish online market for buying and selling goods. They are huge and probably exist in your country, too, under a different name.

They are now hiring people, and what better way to recruit programmers than to set up a contest? They have hidden 10 Easter eggs (geeky riddles) in the guts of their website, and the challenge is to find them and provide the right answers.

A friend of mine and I have found them all. We also found out that the last egg has a follow-up task which you are not required to complete. However, I have completed it, and I will post my answer here after the contest ends on the 7:th of April.

Arduino LCD Keypad Shield – Clock Application

UPDATED: I removed all delay(); calls because they were not accurate enough, and there was a time drift. Instead, now there is a while(); that waits until the required time has passed.

Recently I found here a really cheap LCD shield with buttons for Arduino.

Today it arrived, and I made a simple clock program to test it out. It’s a little slow when refreshing the screen, but it’s perfect for the price.

A really cool application would be to use it together with a Raspberry Pi to execute simple commands and see a small web server’s status.

Here are some pictures, a video, and the code for the clock application. It is using the LCDKeypad C++ class which can be found here.

Leap Motion – Tell me your ideas

Leap Motion is a company that started with the vision of making the interaction between humans and computers better and more natural. They believe in achieving that using a sensor device that detects your hands.

About half a year ago, I showed my interest as a developer to make applications using their device. As of yesterday, I have received the device, which you can see in the video below.

I want to develop great applications, but I have very few ideas. What kind of applications would you like to see using this technology? Please tell me your ideas in the comment field below.

Box2D Test iOS Application

So I started learning some Box2D to improve my skills in game programming. Box2D is a physics engine written in C++. Many games use a graphics engine but not a physics engine. The graphics engine usually accelerates the GPU graphics, but what makes movements look realistic is the physics engine.

Because Box2D is written in C++, you cannot simply use it in your iOS project, but thanks to Objective-C++ support, you can change your file extensions to .mm and then simply use C++ in your Objective-C project.

In this example, I’m not using a graphics engine, only Box2D and basic UIKit elements (UIView). The next step would be to do a similar example using a graphics engine like Cocos2D.

Source code: