So yes, this video tells about the story that went on two days ago:
This is the goal of my personal project, make calls with SailfishOS enabled Raspberry Pi2, as a proof of concept of a DIY smartphone. Having not done this personally all together, I can’t take the full credit for this. Thanks to amazing soldering job by Miika Toivanen, I now have a functional GSM board that I was talking about earlier.
Now to the juiciest bit, getting all to work in the software: first of all, I needed to install the ArduPi library from here and compile it on the Raspberry Pi itself. This was done using:
pkcon install gcc-c++
This should install the C++ compiler to the SailfishOS and needed libraries in order to compile the library. The instructions to do this compilation are in here, same page which offers the documentation of the GSM module I’m using. One needs to edit the base peripheral address of the library header arduPi.h as:
#define IOBASE 0x20000000
#define IOBASE 0x3f000000
This enabled the GPIO to address the GSM board properly from Raspberry Pi 2. Then using the GSMIgnition program, the software can turn on the modem and register it to the GSM network.
Next bit was to integrate the GSM board modem to the ofono stack, using sim900 module. This was done first as creating /lib/udev/rules.d/98-ofono-sim900.rules file with contents:
Make sure that you disable getty console from kernel in order for the modem serial port to work! This is done by modifying the kernel command line from /boot partition on the SD card.
Having done that udev rule, I immediately ran into trouble with ofono itself, it said that the modem was registered but I could see no AT-commands flowing to the modem which would have activated the GSM network to the rest of the middleware. Having fought with this issue for a few hours, I realized that the ofono which comes with SailfishOS, directly from Nemo Mobile middleware, didn’t have support for sim900 yet. Recompiling the ofono library with:
allowed me to continue using ofono with sim900 plugin installed and the modem happily registering to the GSM network.
Now as can be seen from the video, the dialer app from SailfishOS worked almost out of the box, but with current eglfsrpi QPA plugin rendering, it was clear that the support for SailfishOS applications is still in its infancy. Dialer was run with command line:
voicecall-ui -platform eglfsrpi
in order to get the dialer visible and an incoming call registered to telepathy and the dialer itself.
This was a major win for me personally, having reached the goal of calls with Raspberry Pi 2 and SailfishOS, together bringing the possibility of a DIY smartphone. This smartphone also has the benefit of the modem being separated from the CPU all together, since, well, the serial port shouldn’t be able to talk to it, at least when modem separation is in question.
Thanks for reading!