Controlling Nokia Phones With Arduino

While [Ilias Giechaskiel] was waiting for his SIM900 shield to arrive, he decided to see what he could do with an old Nokia 6310i and an Arduino. He was researching how to send automated SMS text messages for a home security project, and found it was possible to send AT commands via the headphone jack of Motorola phones. But unfortunately Nokia did not support this, as they use a protocol known as FBus. With little information to go on, [Ilias] was able to break down the complicated protocol and take control with his Arduino.

With the connections in place, [Ilias] was able to communicate with the Nokia phone using a program called Gnokii — a utility written specifically for controlling the phone with a computer. Using the Arduino as an intermediary, he was eventually able tap into the FBus and send SMS messages.

Be sure to check out his blog as [Ilias] goes into great detail on how Nokia’s FBus protocol works, and provides all source code needed to replicate his hack. There is also a video demonstration at the end showing the hack in action.

9 thoughts on “Controlling Nokia Phones With Arduino”

That’s a nice hack! I want to say ‘at last!’ because there’s so many old phones that could be used for something like this!
Great job on getting the protocol to work!

A small comment on the voltage divider – the 2.5V level is still considered a logic high from the phones perspective and it’s easier to make a divider with the same value instead of calculating the right values (and finding them in the parts bin). There’s absolutely nothing wrong with the approach – it’s the right way. The lazy way of using a 1:2 divider is just quicker sometimes.. I think that’s the reason behind the divders that is mentioned in the article

Nice! I learnt a lot playing with FBus :) For anyone looking for more information, I did a similar project with old Nokia phones many years ago. I go over the electronics and software used. I ended up offloading the work to a PC via a DIY-serial cable, where a Python script calls into Gammu (CLI for older Nokia devices): https://dinofizz.wordpress.com/projects/score2sms/

Old Siemens phones (x35 and x45 series) are even simpler to interface. They have 3.3V UART interface on the bottom of the phone, and commands are very well documented. The drawback is they use PDU message format, and can not be forced in text mode, so you have to write functions for 7-bit->8bit (and vice versa) conversions. Not a big deal, but it complicates thigs a bit, especially if you use uC with 128Byte RAM. Good thing is that you can buy those phones for few bucks while TC35 module (supports text mode) costs about $30.