Mooltipass compile and flash guide for MacOSX

Mooltipass

Mooltipass is an open source offline password keeper that started off at Hackaday as an idea from Mathieu Stephan. I am one of the few lucky beta-testers and as such I would like to explain in this guide how to compile and flash its firmware from source. This guide is written for Mac OSX 10.9.

1. First of all: I DO NOT TAKE RESPONSIBILITY IF YOUR MOOLTIPASS AND/OR DVD PLAYER EXPLODES AND/OR YOUR WIFE DUMPS YOU! FOLLOW THIS GUIDE AT YOUR OWN RISK, IT REPRESENTS THE UNOFFICIAL VIEW OF THE VOICES IN MY HEAD.

2. Second, get the required tools. If you don’t already have MacPorts, download and install it from their website.

3. Once this is done, install git, binutils, gcc, avr-gcc, avr-libc and dfu-programmer from MacPorts. Just a note: I already had xcode installed on my mac, so this did it for me. If you install all of these tools and still have problems at compiling, try installing the Command Line Tools.

sudo port install git binutils gcc48 avr-gcc avr-libc dfu-programmer

4. Get the latest source code from github:

git clone https://github.com/limpkin/mooltipass.git

5. Define that you are a beta-tester ;) and compile the source code:

cd mooltipass/source_code
sed -i "" "s/XXXXXXX/BETATESTERS_SETUP/" src/defines.h
make

6. Set your mooltipass in DFU mode:

  1. Disconnect your mooltipass (if connected).
  2. Insert your smartcard upside down, with the chip-side up.
  3. Connect your mooltipass.

7. Flash your newly compiled firmware:

sudo dfu-programmer atmega32u4 erase
sudo dfu-programmer atmega32u4 flash mooltipass.hex

8. Disconnect your mooltipass, remove the smartcard, connect your mooltipass and insert the smart card.

9. Profit?

Folk racing

Racing is something that I always wanted to do but never really got to it. A couple of weeks ago, I went folk racing with a friend at a nearby track. It was great fun! This month I booked a second time, and in the future, I will probably get my own crappy racing car provided that I find a parking spot for it.

Here is a video from the race a couple of weeks ago:

WiFi Thermal Printer with Arduino

I have been working on a wireless thermal printer for an application that I have in mind.

The system is composed of the following parts:

The WiFi shield uses the SPI bus, which leaves the serial port free for the printer. In the video below, you can see a simple example of Internet-to-Printer connectivity. As a standalone system with no connection to a PC, the system is started up, and it pings Google. When a successful ping response has been received, it prints the letter “P” with the printer. More information could have been printed here, but since I use an Arduino Diecimila with very little memory, the program only fits on the microcontroller as it is.

Here is the code used in the example:

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.

Master’s Thesis: Improved traffic safety by wireless vehicular communication

I have recently completed, presented, defended and passed my master’s thesis project. It was a great experience which I believe has the potential of preventing traffic accidents and saving human lives. Bellow you can read the abstract and if you are interested you may download the whole report here:

Abstract

In tomorrow’s vehicle industry vehicles will have the ability to communicate and cooperate with each other in order to avoid collisions and provide useful information to each other. However, for this cooperation to be possible all vehicles will have to be equipped with compatible wireless 802.11p modules that implement the ITS-G5 standard. During the implementation phase of the system, there will be plenty of older vehicles without such equipment.

This thesis addresses this problem by developing the hardware and software for a roadside unit called Drive ITS. It consists of a universal medium-range radar that detects older vehicles, an 802.11p modem that forwards their position and speed vectors to newer vehicles, and an embedded system that utilizes and integrates those two parts.

The hardware for the embedded system is divided into two main parts; a microcontroller board and a single-board microcomputer. The software is written in two programming languages; C++ for the microcontroller and Java for the microcomputer.

Tests have been performed by comparing Drive ITS results to results from other vehicles that already implement the ITS-G5 standard and it has been confirmed that the system works as it was intended to.

This solution will prevent potential accidents of newer ITS-G5 vehicles with older ordinary vehicles thus saving human lives.

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

Blocket.se 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.