OpenVPN WiFi AP performance of Raspberry Pi vs. Raspberry Pi 2

I’ve been running an OpenVPN WiFi access point on my Raspberry Pi for a while now. This AP tunnels my devices seamlessly to a  VPN server in Finland – for example, ChromeCast, Android tablets etc.

The performance has been usable, but not great.  I should be able to get  over 30 Mbps over my current Internet connection, using the VPN server of Nebula in Helsinki, Finland. The original Pi is not that great in the CPU performance department and additionally it seemed like it was not able to handle the interrupts generated by the Ralink RT2870/RT3070 based cheapo WiFi USB dongle either.

So when the Pi2 was announced and after I figured that software-wise, it’s going to be a drop-in replacement if you’re running the most up to date version of Raspbian (a very nice job, by the way!), I ordered it to see how much things would improve.

Raspberry Pi 2 model B with Ralink USB Wifi dongle

It arrived yesterday and after transferring my SD card image to an Micro-SD card, I just connected the cables and booted it up. Yep, it Just Worked(tm). After a while I figured it’s still applying the overclocking settings meant for my old Pi, and selected the new frequencies meant for the Pi2 in raspi-config. I even bothered to try to make my Prolific PL2303 USB-serial adapter to work with my Mac again (it broke sometime after I upgraded to Mavericks or Yosemite) to make analyzing the board easier. For that, I found that the following driver package worked after rebooting my machine:

http://changux.co/osx-installer-to-pl2303-serial-usb-on-osx-lio/

So everything apparently works now, and I did some non-scientific quick and dirty benchmarks using the infamous Speedtest.net application. I ran the same benchmark against the same target server three times and picked the best result out of the three. Here they are:

  • Raspberry Pi 1, running at 700MHz: 5.34 Mbps
  • Raspberry Pi 2, running at 1000Mhz: 17.06 Mbps
  • Raspberry Pi 2, running at 1150Mhz (see below): 18.11 Mbps
  • Core i7-4771 PC running at 3.5GHz: 34.99 Mbps

So, a huge improvement and as easy as it can be; however there is still room for improvement. Maybe there are ways to tune the OpenSSL setup for improved performance?

 

Update1 23.02.2015:

Soon after I wrote this article, I started to experience problems with clients dropping off from the WiFi AP all the time, and this showed up in the /var/log/daemon.log:

hostapd: wlan0: STA xx:xx:xx:xx:xx:xx IEEE 802.11: deauthenticated due to inactivity

I workaround suggested on the Internets – to disable WMM by putting

wmm=0

into hostapd.conf, did not help. What did seem to help though was to update my board’s firmware, kernel, modules etc. with the rpi-update command. It’s been running fine for a day now.

Update2 28.2.2015

I started experimenting with overclocking. When I posted the results above my Raspi was running with the following overclocking settings:

arm_freq=1000
core_freq=500
sdram_freq=500
over_voltage=2

My VPN provider uses the 128-bit Blowfish cipher so this is the most important CPu benchmark I can use. With these settings, the command

openssl speed bf-cbc

reported the following results:

blowfish cbc 19095.24k 21153.30k 21657.60k 21785.94k 21826.22k

. After some experiments I ended up with these settings:

arm_freq=1150
core_freq=530
sdram_freq=530
over_voltage=8

With these settings the openssl benchmark reported

blowfish cbc 21917.48k 24319.51k 24907.61k 25054.21k 25100.29k

which is roughly a 15% increase. However this only translated into a Speedtest.net speed increase from 17.06 to 18.11 Mbps, which is not that much. Even so, I believe more could be gained from increasing the Blowfish processing speed further. Other things to try are to test with a “better” WiFi dongle and figuring out if OpenSSL can be tuned somehow for more performance.

Update3 18.5.2015:

The “deactived due to inactivity” problem was not really solved by updating the firmware. I finally tried putting the WiFi dongle in a powered USB 2.0 hub, and it has been working stable ever since.
My VPN provider has some problems and their server is nowadays too slow for any serious use. I tried a new one – I found another VPN provider with a Finnish server that gives you a OpenVPN config file – and now I have good performance again.

 

Some stuff from IFA 2014

IFA Berlin 2014This Sunday I decided to skip enjoying the last warm sunny day of the summer, and go and see what’s cooking at the IFA 2014 Consumer Electronics fair in Berlin. This is not an exhaustive professional report in the way the big established blogs and magazines do, instead I am just going to mention a few things that I saw there and what I thought of them – in my own style. Some of the gadgets I saw were not brand new, having been on the market for a few weeks or months already, but I just happened to see them there for the first time. So, in random order, here we go:

Update1: Added a full photo set to Flickr

Samsung Gear S

Let’s say I’ve been sceptic of the first wave of smartwatches. My suspicion has been that they would be too large, too cumbersome, consume so much battery that they would be a bother to maintain, and ultimately useless… but, the Samsung Gear S was not THAT large, not THAT cumbersome, (battery life I couldn’t comment on without using it on a daily basis)… and it wasn’t THAT useless either.
The HERE-based Navigation feature seemed like a genuine thing. It was a bit slow in finding a route to the restaurant “The Bird” (my standard navigation test in Berlin) and typing the name of the venue was a bit hard on such a small screen… but it did work. For turn-by-turn walk navigation, that is. A tiny map display would sometimes work wonders in augmenting my sense of where I’m going though. Also I see a lot of potential in adding support for HERE Transit, too!
So, the tech is promising but I am going to wait for the second or third generation before considering purchasing anything… The thing has to become less bulky for starters.

Samsung Gear S

 

Samsung’s Galaxy Tab S 10.5

Having recently bought the Samsung Galaxy Tab Pro 10.1 for it’s impressive screen, performance and good size+weight, I was positively impressed by the flagship S model. The screen was even better than on the Pro, and remember I said I bought the Pro because of the awesome screen it had! The overall build quality and feel were also much improved – and good thing too, because the cheaper Pro model does have a decidedly plasticky, creaky feel to it and the cheap metal band surrounding the tablet frame fails to hide the fact. Well, you get what you pay for; the S model is almost 200 euros more expensive.
It is such a shame how Samsung continues to degrade the apparent feel of performance of their products by adding their own UI tweaks and features though.. and there is no Cyanogenmod build for the Exynos SOCs that are used in the Galaxy Tab S and my WiFi Pro model, as of yet anyway. Doing such large changes on their own also makes it harder to keep up with Google’s latest Android releases, so I wonder how long will it take them to upgrade to the Android “L” release.

Samsung Galaxy Tab S 10.5

 

The Sony XperiaZ3 Tablet

This felt like a Samsung Galaxy Tab Pro 8.4 but with a far better build quality. It had a firm metallic feel, no creaky plastickyness. It also felt incredibly thin and it was easy to hold in hand. Apparent performance was snappier than in any of the Samsungs – maybe because Sony didn’t add so many poorly optimized UI tweaks as Samsung did. I’d get this if I didn’t think 10″ is my optimal screen size (having moved up from 7″.)

Sony Xperia Z3 Tablet Compact

 

Nokia/Microsoft Lumia 930 

Not exactly a new phone anymore either, having been announced in Spring of this year, this was the first time I got to try one anyway. Well, it’s a clear logical improvement from last year’s Lumia 920. Apparent performance has improved a lot, especially in apps like Here Maps where panning and zooming around in satellite view was really snappy.
They were handing out Nokia lanyards at the Microsoft phone exhibition in the Deutsche Telekom area, which could well be the last IFA where they will be doing this.Nokia Lumia 930

 

Lumia 1030 rumours

I spoke to two Microsoft employees and asked about a follow-up model to the record-breaking Lumia 1020 supercamera phone. They of course couldn’t tell me about unannounced products but went on to hint that I should wait 2 weeks and see what happens; and that “I would definitely buy it” without saying anything about the “it”…

I wonder if I would though. Upgrading Windows Phones isn’t as easy as it could be. Backup/Restore is not so great, at least if you’re used to the reliability possible on desktop operating systems. While the OS does back some things up and you can restore these things onto a newer device, not everything gets backed up. Any app that does not save it’s data in the cloud basically loses it’s data when you factory-reset your phone or upgrade to a newer model. With apps I mean games, actually.. I would hate to lose my level 24 character in Angry Birds Epic for example.

 

The Tesla car

The Panasonic exhibition had a gorgeous red Tesla Motors car. The car drew a lot of attention and it was nearly impossible to get a good picture of it, as the car was really crowded. The exciting thing was when they popped the car hood open to show what’s inside… turns out that nothing – it’s actually a storage compartment! As they use Panasonic-made batteries, I guess that’s why it was in the Panasonic exhibition.

Tesla Motors car

 

Oculus Rift

Several groups had an Oculus Rift on display. It was too hard to get to try any of these, as all of them had really long queues. Too bad, but it’s great to see the technology has a lot of appeal even though their marketing is so far very minimal – after all, it’snot a finished product yet. They are teasing at a consumer version right now though.

Earthquake simulation with Oculus Rift and shaking devices

 

Garmin

I was a heavy user of the Garmin Forerunner 205 years ago. But the device was kind of outdated in the size, software and user interface section and the company was dragging their feet updating the product. Eventually it broke down and Garmin had no decent replacement model, so I jumped into the more limited “Nike+ powered by TomTom” device (what a name!). This year at Garmin’s stand, I saw they’ve expanded their product lines a lot, with a multitude of health, fitness and navigation products being offered. This Forerunner 220 looks like the replacement I was waiting for and with a quick try, it seemed a lot more intuitive. I hope it doesn’t still come with that outdated PC software though…Garmin Forerunner 220

 

 

GDG Android bootcamp at c-Base

Droidcon Berlin 2013 is starting and the good folks of GDG Android Berlin organized a  Android training session as a good warm-up for the actual conference. The session was held at c-Base, the famous hacker space/crashed space station on Saturday morning 6th of April. The doors opened at 09:00 in the morning, which is a pretty tough time to wake up on a Saturday. I made it there around 09:20 and was among the first to show up – this is Berlin after all.

There was a never-ending supply of free Club Mate and food
There was a never-ending supply of free Club Mate and food

After some initial attempts of getting the microphones working, Benjamin Weiss was on the stage with the topic of Android 101. He covered some of the basic ingredients of an Android app, including the AndroidManifest.xml, Activities and Intents, Views, and application lifecycle. Also he gave some good pointers on where to learn more, such as developer.android.com, stackoverflow and openintents. While it was good stuff, I sort of missed an overall picture of what Android apps consist of; now it was more like a collection of useful info on various topics but nothing to really bind them together.

Next was Hasan Hosgel with the topic of Lists and Adapters. The basics of using the Android ListView and supplying data and custom behaviour using Adapters were covered. This was a well focused and good presentation. The topic itself wasn’t terribly exciting, but the ListView is useful in almost any kind of application.

Then it was Christian Ketterer going into much more detail about Intents. I found this part maybe the most interesting, at least judging by the large amount of notes I took. Both an overview of what Intents are used for (starting an Activity, sending a broadcast or starting service), and several good examples of using Intents were presented. Some particularly interesting parts were how to create a new contact with Intents, or how to start an Activity and get results back from the started Activity with startActivityForResult. Also, how to enable other developers to use your app via Intents by adding an Intent filter in AndroidManifest.xml, and by publishing your Intents on openintents.org.

Stephan Linzner covered the Android testing framework, which is based on JUnit 3. It seemed that this part of the Android framework was less familiar to the audience than the ones that were covered previously. Lots of good stuff for how to create automated tests for Android apps were shown, including test cases, test packages, how to use mock objects and contexts and how to use RenamingDelegatingContext to mock file accesses.  Perhaps my favourite was the Monkey tool which generates random input events to your app (iike a real monkey tester would do), often succeeding in making it crash. Running Monkey on the build server overnight seems like a cool idea!

Tim Messerschmidts topic was Managing Data Like a Boss. It was about the underlying SQLite database engine that Android apps rely on. SQLite is already familiar me on the C API level, and in the Android context it doesn’t look all that different. An introduction of SQLite was followed by how to perform queries, and how to iterate over the query result sets using Cursors. I got it that it’s not a good idea to call the getCount method often, as it’s expensive. Another good tidbit was the feature called FTS tables. These are a special type of table that enables fast Full Text Searches, which I found very useful. He also reminded us to use SQLite asynchronously, by creating a thread or an AsyncTask for all database operations. This makes me question: Why does the Android framework, being a high-level framework, offer synchronous (blocking) methods for SQLite access in the first place?

Stefah Hoth showed us how to get our apps published on the Google Play Store so we can make a lot of money with our brilliant apps. A good take-home message was that we should consider what permissions our apps should use – the more permissions they need, the less likely that the app will be included in the search results when an user searches for apps. For example, if you require permission to use the camera, then Nexus 7 users will never see the app as the Nexus 7 only has a front camera. Same for telephony etc..
During the session Stefan successfully published an incredibly useful app called BigRedButton, which some people in the audience were instantly able to install and rate..

Mister Ligi talked about Google+ Signin Integration. I was getting a little too tired at this point and was no longer able to concentrate, so unfortunately I missed the point here.

During the breaks I had some exciting chats with the other attendees and of course consumed some of the excellent sandwiches, fruits and Club Mate that was available thanks to the sponsors. Unfortunately after the official part of the day was done, I had to be elsewhere, otherwise I would have stayed and enjoyed the chance to chat some more and maybe have a beer or a few. I thank the organizers and the sponsors for a great Saturday, it’s events like this that prove Berlin is a great city for people who are into technology!

Windows Phone 7.x backup files

A few days ago the USB port on my Nokia Developer gift device Lumia 800 died. I need to get another phone, and as I don’t have another phone where I could restore the backups from my dead phone, I started wondering what could I salvage from those backups that are on my hard drive?

The first order of business was to discover where the Windows Phone app for Mac actually stores the backups. I wasn’t familiar with the "Containers" stuff on Mac, so it took me a while, but now I know they can be found under the following location:

 /Users/<username>/Library/Containers/com.microsoft.Windows-Phone-7-Connector/Data/Library/Application Support/Windows Phone/Devices/<deviceid>/Backup

Armed with this info, I can now dig deeper. Already I would appreciate if someone could tell me is there any nifty way to recover data specific to an app ("Isolated Storage") ? I need to recover a save file for the Dragon’s Blade game.

Updated 7.3.2013: I soon discovered that the backups are encrypted using some Microsoft encryption method, but also found a way to wiggle the USB cable just the right way to be able to charge my phone, and so I was able to manually retrieve my data from the device. So my investigations on this front have come to an end. However, I would like to use this space to complain that after getting a Lumia 820 to replace my dead 800, I’ve found that while the cloud backup features in WP8 are very nice as such – or "als solcher" as German patent language says – there appears to be NO WAY to backup any APPLICATION DATA. App makers are expected to save any important data to the cloud, however seems that many of my favourite apps actually don’t do this. Sigh.

Running Mac OS X on a Olympus E-P2 digital camera

Yes, this was an April Fool’s story.. but, like all the good ones, this one is also possible if someone was crazy enough to do it!

I was the first to run the full-blown version of Mac OS X on a smartphone (The Nokia N900), not even Apple did it before me. But I thought, why stop there? I’ve spent the last few weeks digging into the firmware and hardware of my digital camera, the Olympus E-P2 Micro Four Thirds camera body. As you know, digital cameras these days are pretty powerful machines, with plenty of RAM and storage space (in the form of a memory card) – you can get tens of gigabytes of storage with these things. And the display resolutions are nearing the level of yesterday’s desktop computers.

Continue reading Running Mac OS X on a Olympus E-P2 digital camera

Amazon Kindle Fire first impressions

Amazon Kindle Fire from an European perspective

I’ve been interested in tablet devices for years (Maemo devices, anyone?), even before the iPad created the current tablet market. However as smartphones became increasingly more powerful and meanwhile I got myself a really light laptop (MacBook Air), even though devices like the iPad and some of the more serious competing offerings are undeniably very well implemented, amazing devices, I simply didn’t see the need for those. On the other hand, I’m almost always carrying the ultralight Amazon Kindle WiFi e-book reader with me on travels, and often it also lives inside my coat pocket.

When the Amazon Kindle Fire was announced along with a cheap price tag and a size mostly comparable with the Kindle WiFi, I wanted to find out how useful it is and how well does it really work. I also knew that content services (books, magazines, videos, music, apps) are the main selling point for the device, and being an European – Finnish, currently living in Germany – I would probably be missing out on a lot, at least initially.

In this article I’ve collected my initial experiences, and I will continue to update this as I discover more, or as the Amazon offering gets updated. 

Last Updated: 14th February 2012

Continue reading Amazon Kindle Fire first impressions

Qt Dev Days 2011, Munich

Hi all, I wrote a short piece on Qt Developer Days 2011 (Munich), you can read it on my company’s blog:

http://whatsyourideaoftomorrow.blogspot.com/2011/11/qt-developer-days-in-munich-nov15.html

I took some pics there as well, with my new-old Olympus E-p1 digital camera. Too bad the LCD screen broke during the flight, so framing the shots was “challenging”. I managed quite well anyway, but I wasn’t able to use my über oldie manual focus Canon 50/1.2 lens for Leica Screw Mount that I was planning to use, alas. The pics are on Flickr:

http://www.flickr.com/photos/32856926@N06/sets/72157628014737024/

N950 Firmware Beta 2 (34-2) comments

A few days ago Nokia released the long-awaited first firmware update for the N950 at: 

http://www.developer.nokia.com/info/sw.nokia.com/id/db230178-aa63-4c73-ba7f-20930da13cad/Nokia_N950_OneClickFlashers.html

As Tuesday and Wednesday were such busy days for me, I didn’t want to risk bricking my phone. But today I bit the bullet and installed the upgrade, making sure to take backups first of course. Some random experiences, I will update this as I encounter more:

  • Generally the device responsiveness is lots better – scrolling is smoother, there are less delays etc. Feels very good now.
  • I restored backups. Upon completion it said something about not being able to restore everything, but then rebooted faster than I could read the notification.
  • To restore backups, I had to copy my backup file from my PC via USB, then manually move it from /home/user/MyDocs/Backup0 to /home/user/MyDocs/.backups so that the Backup application was able to see it.
  • After reboot, all Contacts were missing in Contacts app. However executing "tracker-search -c" on the command line revealed I do have some contacts. After waiting for a while, a part of my contacts started appearing in Contacts app. A few minutes later, they were all there – so if you’re worried you lost your contacts, just wait.
  • There is now an official Twitter app and Twitter feeds show up in the feeds page
  • The famous swipe downwards to close an app gesture can now be enabled from Display settings.
  • There’s a SIM menu (or what you call it) thats shows my operator’s services that are on my SIM
  • Feeds view can show weather as well. Default is Helsinki, Finland for some reason :)
  • There is Angry Birds, and it works very fast and smoothly, much better than on WinPhones for example!
  • Developer mode now has to be separately enabled in settings, but after you do it, Terminal and the usual goodness reappears
  • Markings on "Developer Edition" are gone
  • Ovi Store app no longer crashes all the time, and there is Ovi Music.
  • Upon starting Maps, it asks me for an username and password. It doesn’t say what service they are for, but I assumed it’s the Nokia ID, which was correct.
  • There is a WiFi Hotspot app, which is very welcome! 
  • Terminal app has gained new features, an ability to switch between an Shell and Arrows toolbar with the swipe gesture among them

Dealing with duplicated contacts on the N950/N9

I had problems with duplicated contacts. I tried a couple of different solutions, but the one that worked was: export all contacts as vcard files (.VCF). Then delete all your contacts in the contacts app. After that, you can delete .VCF files that match the pattern *(?).VCF (because duplicate contacts will be dumped with file names like JANEDOE.VCF, JANEDOE(2).VCF, JANEDOE(3).VCf etc.) and finally, re-import these VCF files using vcardconverter. Watch out, vcardconverter will fail if you have "funny characters" in filenames, so it’s a good idea to wrap it around in a for statement, something like this: for i in *.VCF;do cp $i tmp.vcf;vcardconverter tmp.vcf;done;rm tmp.vcf.

Nokia N950 arrived!

The N950 "dev kit" device arrived!

I’m super-busy during the whole week, but I did manage to get some Nokia N950 unboxing photos taken, and I’ve made it my primary device right away, so I will find out all the good and the bad that there is to find soon enough. Maybe I’ll write more during the weekend, but now, on to the unboxing pictures!

(Rest of the unboxing pics on Flickr: http://www.flickr.com/photos/32856926@N06/sets/72157627056484127/