Extracting Sky Router Crash Data Amidst Kernel Panics

Sky Hub

I have a Sky broadband connection with fibre into a Sky Router / Sky Hub. I have noticed very short outages of internet service with increasing frequency recently. The outages are short, maybe around 3-5 minutes long but these are annoying enough in the middle of an online meeting or some other synchronous activity. Sometimes two or three of these short outages occur in a relatively short time frame.

There did not seem to be a correlation to temperature, or even usage. In other words, the device doesn’t seem to be crashing because it is overheating under load or ambient temperature.

Extracting the Crash Data

It turns out that some enterprising engineer took the decision to embed crash or reset data in what is perhaps a surprising place, or at least a surprising place for easy user access. If one backups the router configuration settings to a file, the result is an XML file that includes two interesting stanzas towards the end.


Now the X_SKY_COM_DEVICE_DOCTOR also looks quite interesting, but the piece for us right now is the X_SKY_REBOOT_CAUSE. You will note in this case that the RebootInfo data contains the following:

kernel panic marker detected in the flash

Which is interesting if not encouraging. For those not in the know a kernel panic indicates a type of crash in the base operating system of the device. It could be caused by faulty software or in this case firmware in the device, or it could be caused by some hardware problem. In Sky’s case firmware updates are highly automated. It could easily be caused by a firmware bug, but in that case it would likely be experienced by many customers. The smart money if that’s not the case might be on faulty hardware.

Importantly, even if there is some problem in the broadband provision coming from the fibre, the router should not panic or crash – it should just deal with the problem, reconnect when possible and move on. That would be obvious in the device logs.

I called Sky to report this, and the first conversation wasn’t too productive if it wasn’t surprising: the request to turn the device off and on again. Not bad advice, but not successful. I got told to do a total factory reset – which was a time consuming pain, and didn’t fix the problem.

By this point, I’d started to write a very small Python script to automate extracting the crash data and time-stamping it, if the backup file was download by hand. To complete the script I really need to automate the web request part – which I haven’t attempted yet as it looks like I need to handle the session data – not insurmountable, but a bit of work. Here is that short unvarnished script.

import xml.etree.ElementTree as ET
import datetime as dt
import os

# Extract the XML from the settings file and get the root
tree = ET.parse('sky_router_settings.conf')
root = tree.getroot()

# Look for the X_SKY_REBOOT_CAUSE stanza should it exist
for item in root.findall('.//X_SKY_REBOOT_CAUSE'):
    # It does, so let's extract the details
    reboot_time = int(item.find('RebootTime').text)
    reboot_reason_type = item.find('RebootReasonType').text
    reboot_reason_code = item.find('RebootReasonCode').text
    reboot_info = item.find('RebootInfo').text
    # Make an ISO datetime from the Unix epoch timestamp
    reboot_format_time = dt.datetime.utcfromtimestamp(reboot_time).strftime("%Y-%m-%d %H:%M:%S")
    # Let's write the data if it isn't already there (in current working directory)
    if not os.path.exists(reboot_format_time):
        print(f"Found new crash data... {reboot_format_time} {reboot_info}")
            fh = open(reboot_format_time, 'x')
            print(f'Time:{reboot_format_time}', file=fh)
            print(f'Type:{reboot_reason_type}', file=fh)
            print(f'Code:{reboot_reason_code}', file=fh)
            print(f'Info:{reboot_info}', file=fh)
        except Exception as e:
            print(f'oops, something went wrong')

So, to use this, one logs into the sky router (probably browse to or whatever address your router is on from within your network) – go to Maintenance and Backup Settings. Drop the saved file in the same directory as the script, and run it. I was doing this periodically to check for crashes I had not witnessed. It will save any new data into a file with the timestamp as a filename in the same directory. Crude, but it works.

Armed with a number of crash events I called Sky back. What followed was a highly frustrating conversation for all sides, where I was advised that I had to plug the hub into a different electrical socket. I duly did so, and incidentally noticed that the hub records a different reason for the reset.

Power On Reset detected

In other words, the hub notes when it was power cycled. To the surprise of virtually no-one, changing the socket the hub was plugged into did not prevent the crashes. My script detected another one just before 2 am yesterday.

Time:2022-09-07 01:56:12
Info:kernel panic marker detected in the flash

I called Sky again and finally had a constructive conversation – they are sending me a new hub to test. Hopefully this will solve the problem. I doubt it’s a firmware issue or it would have been more widely reported.


I think I will probably try and bite the bullet and use Python to download the backup file too. If I can get that bit working I can rig the whole thing up to cron to check for crash data automatically. New hub or not, keeping a track of these crash events would be useful.

It’s curious that the hub obviously does this hard work of storing crash data, but this doesn’t seem to be transmitted to Sky which would really help them diagnose problems when customers call.


Unfortunately a new hub has not solved the problem, so it looks as though it may be a firmware problem after all. I have collected some more messages that might be in the reboot reason. Here is my list so far:

kernel panic marker detected in the flash
Power On Reset detected
The new firmware image downloaded by FUS is being written to flash. The device may REBOOT
CPE has been software resetted (possibly watchdog timeout, if no other indicators

Installing Android Nougat on a Stock Galaxy Tab 10.1

My daughter uses an Android Samsung tablet (coded GT-P7510) which ended official support on Android 4.0.4. Unfortunately I didn’t pay any attention to this issue until the apps she most wanted to use, namely Netflix and YouTube stopped working on it as the Android version was too low.

I found a ROM to upgrade to Android 7.1 (Nougat) with some cost – for instance, the camera doesn’t work, but Aimee doesn’t care about that. So I decided to try upgrading it since the tablet was otherwise now utterly useless.

To make things more difficult, most of the information on upgrading this tablet on the Internet is outdated or wrong, or pre-supposes that the device was long since updated. I also don’t run Windows, and ran into some problems with the Heimdall alternative.

So this quick article is the result of a couple of evenings running into dead ends. It might help someone else. Certainly if I ever need to do it again it’ll help me.

But as usual, if you break something, you own all the parts. These instructions are completely specific to this particular tablet, and the wifi only version at that. Make sure your device is fully charged before you start.

A new recovery image had to be installed first, and some steps had to be undertaken just to get that far.


First of all there’s supposed to Windows software called Odin that is used to update the ROM, especially from a stock start. I can’t run that without emulation since I don’t run Windows, and in any case, I suspect it might behave badly in a virtual machine, and probably wouldn’t run correctly on modern Windows.

So I installed a Free and Open Source alternative known as Heimdall. For me, this was simple as it was Debian packaged. I couldn’t get the frontend to be useful, and I couldn’t get the Java version of the frontend to work online or offline. So I defaulted to the command line.

So, as root on Debian GNU/Linux:

aptitude install adb heimdall

This is also ensuring all the command line tools for android debugging are installed (I already had these).

Receiving TWRP

The device needs to be made ready for Odin / Heimdall upload. Turn the device off, and then hold Power and Volume Down till it appears with two icon choices. You want the one on the right. Use Volume Up to select, and use Volume Up again to bypass the dire warnings.

I had no success in using the Heimdall frontend, your mileage may vary. I got the correct archive for my purposes from here.

I downloaded the archive, and used tar xvf to extract the contents. You will find two .img files, recovery.img and hidden.img. You’ll need both.

Note that the partition target on the device for recovery is not called recovery but is called SOS at least on my device.

heimdall flash --SOS recovery.img --no-reboot

Because of the no-reboot option note that the tablet will continue to warn you not to restart it. You’ll need to watch the command line progress carefully to ensure that it is on. Now reboot the machine once again into the Odin / Heimdall mode again. I.e. power it off, and turn it on with Power and Volume Down.

Now flash

heimdall flash --HID hidden.img

For me this successfully got TWRP 3.0.3 loaded. It was a major odyssey of conflicting information to get this far. When you reboot make sure you hold down volume down to get to the recover menu, (and now choose the left hand option). If you don’t do this, the stock ROM overwrites the new one and you’ll need to start again.

Using TWRP

From here, things were relatively plain sailing. I got the ROM from here.
(EDIT: 2021-10-21: A reader brought it to my attention that the ROM images were no longer there, I think I found new versions here.) Incidentally, I’d tried other recovery ROMs I got onto the device before when I couldn’t get TWRP onto it, they did not allow the following steps to work.

I then used TWRP’s wipe option to wipe Cache, Data, and Dalvik Cache.

I used the Advanced button and put the device into sideload mode.

I then, from the Linux command prompt executed

adb sideload aosp-7.1-p4wifi-20170320.zip

I then did not reboot but went back in TWRP and selected sideload again, this time I was careful to uncheck the wipe data and cache items since I’m loading other items on top of the basic ROM image.

adb sideload P7500-open_gapps-arm-7.1-pico-20170119.zip

and I repeated the same for the last package

adb sideload superuser.zip

finally I selected to reboot the tablet. It took a pretty long time to boot. Don’t forget it’s a relatively underpowered device.

The device is up and running and now runs the apps my daughter wants again.

Of Wired, Wireless, Sky+ and 5GHz, and the Linksys ea6300 router

This is partly a ramble, partly a product review, and partly a howto, and mainly an aide memoire. It will naturally therefore be unlikely to succeed perfectly at any of those, but if you have questions, place them in a comment.

We moved into this house just under two years ago, and when we moved in there was no network. Yes, I know – in this day and age.

So we had a Sky+ bundle installed, slightly sadly because I always got broadband from Zen Internet previously, and I have to say I just love them, but the price for the bundle was simply too much below what was possible from Zen.

For a while we had to have an extension cable trailing through the house to where the router had to be installed because the phone socket was in an odd place. Then I finally installed a double socket a bit closer. Then we had a tidier install, but WiFi only throughout. Somewhat to my surprise we got a reliable fast enough signal throughout the height of the (three storey) house. A bit slow, but everything worked.

Bringing gondolin (my main server) back here caused a bit of a headache, partly to due to the loss of a static IP address, and mainly because of a lack of wired network. Two old Ethernet over mains adaptors took care of that to some extent, but it was slow.

So probably about a year ago I finally installed a Cat 6 cable from the router up to the room housing the computer (and a Smart Switch). This was a BigDeal (TM), because now I finally had reliable and fast wired network where all my main IT infrastructure was.

However, we have a couple of smart TVs and a Sky+ box which were all running off the WiFi, and over the years this caused some problems. The TVs were generally OK, but occasionally the streaming quality of video just wasn’t very good and Skype was sometimes flaky (impossible to tell if the problem was our end). The Sky+ OnDemand service was much more of a problem. Hooked to a wireless to wired Access Point it would often drop a film in the middle of streaming and require a lot of intervention (and frustrated viewers) to resume the streaming. We also saw the WiFi space around us grow more crowded and performance at the top of the house became a problem.

So I needed to get a wired network to our living room, ideally with connections for four devices and preferably move the wireless upstairs.

The house is old and the floor boards brittle, so I decided to run the cable around the gable end of the house, alongside some coax cables already there. I hate ladders, but it turns out I hate flaky network connections more, so on Christmas Eve after a lot of hassle I finally squeezed a Cat 5e cable out of an existing but quite full cable hole, and around to the network switch.

I wired plugs on both ends and connected the switch at one end and Sky+ box at the other. Having got a successful wired connection, I then planned to move the Sky+ router to the living room. This would mean that essentially the BT OpenReach box would connect to the switch, and the switch to the router. For reasons that were just not clear to me I couldn’t get the router to connect to the internet in that position. You will see below that there may have been a prosaic reason but in any case the router would have only provided three spare ports and not quite the four I needed, and I found some hints online that the idea  of having a switch in the middle would not work.

So I had a rethink and bought a Linksys ea6300 router, it was on offer at a local supplier, and a check of the manual indicated it could be placed behind an existing router. It also has 5 RJ45 ports, one for the upstream link, and so the four remaining that I needed and offers dual band WiFi.

Installing the router was initially easy, it had good web based configuration behind a custom WiFi network out of the box. I did experience a few headaches on my first attempts at configurations but I find that pretty common with WiFi, especially when you want to do something unusual. I didn’t immediately go for bridge mode, but in the end found that in the IPv4 configuration and that sorted it.

One point to note, in bridge mode it wants to default to a dynamic IP but then can’t be configured (obviously) unless you know that IP. Fortunately I had configured by DHCPD to allocated it a specific IP, or I could easily have “lost” it. But in any case, my bench tests showed that in the study, it was connected to the Internet and working perfectly.

So I moved the box back into the living room, plugged in the network cable and awaited my triumphant success. In vain. Nothing was working. I plugged the cable back into the Sky+ box, it got a connection straight away. I tried flexing the cable to provoke a fault, nothing. I checked the cable (again) with a cable tester, all wire pairs reported as correct.

I went around in this circle for quite a while, messing around with settings on my Smart Switch and ports as you do when a red herring is about. I didn’t want to accept anything could be wrong with my new cable for two reasons; one was that it was working with the Sky+ box, but the other was I didn’t fancy another afternoon up ladders racing against the sunset.

I had visually inspected both plugs of course, but decided there was nothing for it but to try new plugs. I cut off the living room end and fitted a new plug. And it all worked… it seems my cable crimping skills and cable tester are both in some doubt.

I was able to plug four devices that could be networked into the back of the router, and got two new WiFi networks into the bargain. At the moment one has the same SSID and password as my old WiFi (and both are operating currently), a second 5GHz network is so labelled at least for now to help with testing.

I am getting excellent speeds from the WiFi now over the upper areas of house. I think occasionally there seems to be a connection hiccup and I may have to rename or disable the downstairs main router WiFi but I am leaving them both for now.

I can much more easily stream video at the top of the house, and the image quality is consistently much better.

The Linksys router is a nice, inexpensive device for this purpose, although that is obviously only a small amount of its functionality. It has no external antennae but as it is adding to coverage at the moment that is not a problem, it’s a visually neat box and the inbuilt web interface is slick and well designed. One very good feature is that it does not come with the usual “admin” or “password” preset but a randomly generated password on install (which you can edit). More devices should do this. The manual is not particularly clear about all questions one might have, but overall this is a good solution for my problem for now, at least at the low price I was able to obtain it.






iPhone connection problems, and how to reset it, so it still won’t work

I have two phones, currently a Samsung Galaxy S5 for domestic use, and an iPhone 4S for work. I used to have an iPhone 4 for work but its radio functionality started sporadically not working. Actually it would be better to say it didn’t work and would sporadically work.

About a week ago, my 4S started the same behaviour, I thought an upgrade to iOS 8 might fix it, but of course it couldn’t download the update. So I used iTunes (which I really can’t stand) to do the upgrade.

It didn’t make any difference, in a few moments when radio functionality was working I was able to download some app updates, but generally nothing works reliably, or for more than a few seconds at a time.

(Of course iOS 8 does add some stuff – and it can’t be ignored it’s stuff that has been in Android for some time, the battery also started to drain at an unprecedented rate).

So I decided there was no choice but to do a reinstall of the phone. Grappling with iTunes again (grr) I get asked (again) if the computer is trusted, it is, it was, it still will be. I do a backup. I try to do a restore. But I can’t because it requires me to turn off “find my iPhone” in the iCloud settings. To do that, I need a working network connection through which to put my password (even though this is a trusted computer that has seen the phone before).

Nothing works, including trying to share my network connection through the iPhone USB.

So I consult the Oracale of Google, and find this is now an unknown problem, and that there is a procedure for putting the phone in a recovery mode (so what’s the point in the previous paranoia).

I do that, I reinstall the default firmware, and now can’t get a connection to verify the phone.

So, this is the second iPhone 4* I seem to have turned into a brick.

Extending a wired doorbell with a wireless one

I moved into a new house in January 2013. Well, new to me, building seems to have started on these houses around 1888. There was, and still is, plenty of remedial work to do in the house, but by the end of 2013 I had renovated the main reception room that we “live” in. This is the middle floor (it’s a three floor property) and immediately above the wired, AC doorbell in the hall downstairs. The thing is, when we get into that room and close the door to stop any noise disturbing Matilda, you can’t hear the doorbell below at all. It’s largely easy to hear from other parts of the house. I didn’t want to replace the good working doorbell, especially since in my experience outdoor switches last longest when there is AC current going through them.

So I began researching doorbell extenders but found they were quite pricey and typically required batteries. I did find what looked like a suitable system for US voltages and sockets but nothing for the UK. So I bagan to wonder if I could just rig something up from a cheap wireless doorbell to have an additional sounder. Basically to wire the voltage from the existing wired door bell to a switch of a wireless one. Because I usually search for solutions on the Oracle of Google before such undertakings, and didn’t find anything quite like I wanted, I’m adding this to the mix.

My first problem was trying to convert the 12V AC I had metered in the bell box to something appropriate in DC. I looked at the components to build my own circuit for this, but remarkably discovered I could buy something from eBay from China for £1.60 (including postage) that performed the AC to DC conversion with a pot to allow the voltage to be calibrated. I will leave you to search for your own.

The AC to DC Converter The AC to DC Converter

I then bought a pretty cheap wireless bell from Amazon. It cost £12.40 for a bell that would plug directly into the mains (so no battery), so this Kingavon wireless door bell did the job.

Wireless Bell The Kingavon wireless bell. Nice and cheap, reasonable feature set.

The bell push normally takes a 3 V battery. My plan was to supply that voltage directly from the AC to DC converter to avoid the need for a battery at that end too. If I could rig up the 12 V AC that was produced in the wired bell box when the push was pressed this might work. So I took the bell and push into work and finally in a free 30 minutes grabbed two colleages and headed to the lab.

We connected the AC to DC converter to 12 V AC (as it would be in the bell box) and calibrated the pot until we had a 3 V DC output.

The micro-switch in the doorbell push was soldered closed (so that in effect the button was always pressed down). Finally the DC output was soldered to the battery pins on the door push.

Soldered Push Button Note the short circuit across the micro switch (just to its left).

In bench tests we then tried turning on the supply to see how quickly the wireless doorbell push came up and activated the bell. As I suspected if the power was “jabbed” on there wasn’t enough time for the transmitted circuitry to get its act together, but when “pressed” for say just under a second (simulated by supplying the AC) the wireess bell went off. I figured this was the downside of going to a battery-less solution, but given that I had guests trying to ring the bell repeatedly (since they knew I was in) I figured this would work.

So I used a multi-meter to work out which terminals in the bell box went to 12 V when the bell push was pressed, hooked up the leads into the AC to DC converter and bingo, the set-up works. At the time of writing I still consider it to be in testing so the components are literally wrapped around the bell box, but since the box doesn’t contain batteries, there will be room to place them in later, once i get them properly insulated – and I get a new glue stick for my glue gun to fasten them in.

(Almost) final wiring Wired up inside the box, but still trailing during extended testing.

So this approach works, but it won’t be for everyone – the wireless bell can fail to go off if someone really jabs the outdoor bell push, but for us, it’s a workable solution for £14 and the cost of some wire.

Swan Heated Tray repair

We have a nice Swan Heated Tray courtesy of my Mum. It’s useful for lots of things, heating plates for dinner and then placing serving dishes on it, or for keeping a stack of pancakes warm on Sunday. Unfortunately it stopped working recently. The red power LED still lit when power was applied but no heating. Google produced no answers (which is why I’m writing this for anyone following a similar trail). The helpline couldn’t help, and theoretically the tray was under warranty, but with no receipt we couldn’t follow their advice to return it to the store. So I had to fix it myself.

You should obviously think twice before messing around with something (a) electrical and (b) which generates large amounts of heat. Please don’t kill yourself or burn your house down, that will make us both feel really bad.

The tray is fitted with triangular screws which reinforces my comments above, but not having previously purchased some triangular screwdrivers, these were next to be acquired. I figured they might come in useful for something else in the future.

Taking the device apart shows that basically it’s quite simple, there are some blocks through which elements do the heating, a lot of glass fibre (so wear gloves) to protect the underneath from the blocks.

The inside of the tray
The inside of the tray. You can see the connections on the two right most blocks where I removed the section of cabling that was not working.

There are also a number of polythene covers to hold the corners of the blocks, though it seems a few were missing. There was no obvious fuse much to my surprise and irritation. A bit of testing with a continuity tester showed that a particular loop of cable was no longer doing its job. I pulled it out, and pulled back some insulated sheathing to reveal the culprit fuse.

The culprit
The culprit

Replacement fuses can be obtained here. I teased upon the crimps with a precision screw driver and fitted the replacement, crimping it very firmly back in place. Then it was a matter of putting it all back together and testing it was appropriate safety measures in case of problems. All working again.

Rooting and Upgrading the HTC Desire

I have been asked by a few friends to document how I did this. All the information is derived from elsewhere and its currency may be limited. Trying to root and flash phones is potentially dangerous. You need to take your time and consider what you are doing carefully. If you break your phone, you own the pieces. This worked for me, but I can make no guarantees. You get the idea.

Read the whole article before you start please.

The HTC Desire is a lovely phone, but it has two pretty annoying flaws. First of all the battery life isn’t great, but that’s not what this article is about, and secondly, the internal memory is very limited. I thought when I got the phone that Froyo would save me because it had apps2sd. Apps2sd allows you to move applications from the internal memory to the SD card, but it has some serious limitations:

  • apps with widgets and some other bits won’t work properly from SD
  • many apps only partially move to SD
  • some huge apps won’t move at all (I’m looking at you Google).

The ROM images I was getting, from Google to HTC to O2 were out of date, and they clearly didn’t even care about fixing some significant issues (like the broken authentication in the HTC Peep program). This wouldn’t matter because you could install a decent twitter client if you had the memory… oh… you get the idea. I was rapidly having to remove apps hand over fist with every upgrade, and my Daughter was complaining about their absence. So I decided to sort it out.

Some ROM images have the rather different data2sd. This allows you to treat part of your SD card as the internal memory of the phone. This makes a crucial difference, no messing about partially moving to “SD”, but allowing a large amount of memory to be treated as internal.

Step Zero: You will need

  1. This process will take some time, during which you won’t really be able to use your phone. Make sure you have time. If it works you will have to do some work setting some things back up, it will to some extent be like having a new phone; some work can be done to minimise this. See below.
  2. For this to work you will need a half decent SD card. Mine is a class 6, 8G card. The class information is written in the card in a number with a circle on it, and has to do with the speed of the card. Class 2 will apparently be painful. Class 4 is apparently fine. But I already had class 6. Get a decent card.
  3. Some means of mounting the card on your PC, usually an SD to micro SD adapter.
  4. Possibly a blank CD, and some spare Hard Disc space for backups.

Step One: Backup Your Phone…. Really

Even if this all works it will be like having a new phone to some extent, so expect to do some setup again. If you don’t have time, don’t start. Backup your phone. I had Backup PRO which I used to backup everything. I did this to the SD card this time, but actually, I should have done it online instead (or as well). I’ll explain why later. Backup PRO wasn’t free, but it was cheap and has been more than worth it for me. I’ve used it several times.

Now backup your SD card. Either mount it as a drive or take it out of the phone and put it in your adapter or whatever. Copy everything to your PC as files (in the past I’ve used dd, but this is not needed).

Step Two: Root Your Phone

At some points in the past this has been very tricky, but this was easy this time. I went to the Unrevoked website, and downloaded the software to flash the phone. Follow the instructions carefully and read all the guidance. Click on the Desire, and your OS, and download what’s needed (some extra drivers for Windows please note). I was using Debian GNU/Linux at the time.

Turn on “USB Debugging” (Menu >> Settings >> Applications >> Development) on the phone, and then plug the phone in (leave it as charge only when it prompts you). Run the software, wait, and in a few minutes your phone should reboot with ClockworkMod and root access. Note some people suggest you need to run the program on your PC as root, I did need to do so.

Step Three: Check you can access recover mode

For some reason I couldn’t do this with the volume buttons on power on, so I did the following. Power off the phone. Hold the “back” (hardware button) down. Now press power on. You will get to the Bootloader screen. By using the power button you can run the Bootloader. This brings another menu and (after some patience) allows you to move up and down with the volume buttons until you pick “Recovery”. Now press the power button again. When the phone reboots it will be into recovery mode. Peruse the options, see that you can navigate with the optical trackball and the back button.

Step Four: Possibly install a ROM manager

Now you can pick an alternative ROM of your choice. But this article following on below is specific to the Supernova ROM.

I installed ROM Manager (and it’s cheap but not free upgrade) to allow me to download ROMs and flash them, and I flashed Cyanogen… but I didn’t like it. I did it for old time’s sake and much as I tried to bring myself to like it I found I missed the HTC Sense stuff (that surprised me). You can experiment with all of this. I strongly recommend you opt to wipe user data on a major ROM change, the phone will probably hang if you don’t when you reboot, and you’ll have to get into recovery mode anyway and do it there.

Step Five: Get the ROM files

The ROM I went for was Supernova since essentially it’s a good, HTC Sense oriented, Gingerbread based ROM with the data2sd extra. In other words, you get newer Android goodies with much the same user experience, but don’t have to worry so much about the memory. You need to sign up to the website and then go to the download links and get the ROM and data2sd installer. Copy them to your hard disc for now.

Step Six: Prepare your SD card

For the data2sd to work, you need to prepare your SD card with a FAT32 partition (for general use) followed by an ext4 partition (for use as internal memory). Don’t panic if you’re not a Linux user. There is a way to do this for you.

In Debian, I installed gparted. I then put the SD card in its adapter and in the machine. The machine may mount it automatically… make sure you unmount it before proceeding. Run gparted and follow on below.

If you are using another OS, get the GParted live CD.

Follow these instructions carefully.

Make sure the GParted is accessing the correct device in the pull down before you start, make sure the disc space in front of you looks correct. YOU DO NOT WANT TO ACCIDENTALLY REPARTITION YOUR COMPUTER’S HARD DISC. TAKE YOUR TIME. Personally I went for about 7000 MB on FAT32 and the remainder for my ext4 partition.

Get out of GParted, back into your regular environment (close GParted, reboot or whatever). Now copy your SD card backup (remember that, right?) back onto the card. Finally copy the two ZIP files from the Supernova website (the ROM and data2sd installer) into the root of the SD card. Dismount the card and put it in your phone.

Step Seven: Install the ROM and data2sd bits

I recommend you read and follow the official instructions carefully from here in. Note I didn’t bother with the radio code because I was confident it was already very recent. Follow the instructions very carefully to be sure the data2sd will work correctly… note there are a few very specific things you must do and must not do in between boots.. Basically you need to use reovey mode to do a factory reset, navigate to the ROM ZIP and install, reboot, change a few settings, back to recovery, navigate to the data2sd ZIP, install, reboot.

Step Eight: Restore as needed

You should now have loads of space in internal memory. Check in Menu >> Settings >> Applications >> Storage.

I then put in my Google credentials and restored everything after downloading Backup PRO again. Because my backup was on the SD and it was copying to SD, it was slow. I recommend using the online option. Be patient, if you are restoring call logs and SMS messages it will take time, do not navigate away. Wait for it to finish and immediately restart. Think twice about copying “settings”, I always worry it will cause the newer ROM to cease. Your mileage may vary.

HTC Desire versus Apple iPhone 4

I have both these phones. The HTC Desire is my personal phone, and runs Android (in this case Froyo, Android 2.2). I’ve been using Android for some time now, and regular readers will know I haven’t been shy about commenting on its problems in the early releases. I also have, and have had for about the last month, an Apple iPhone 4, running iOS 4, for work. I’ve been promising some people a comparison.

Disclosure: I’m not really an Apple fan. From the moment I started to play with some in QUB, I disliked the single button, the cotton wool interface that kept you from “harming yourself”, or doing anything deep. But I know that has changed somewhat, the latest Apple computers, while still having that fluffy exterior now have a decent operating system underneath. So I’m going to try to be as fair as I can be.

First a comment about the build quality. Both phones feel very similar both in the hand and in the pocket, the iPhone feels like it has a better build quality, but then you do expect solid hardware from Apple. Both phones have a button on the top to “wake” the device. Both have volume controls on the side. The iPhone has a nice feature of a slider button that mutes the device at one go; the Desire requires you to put the volume slider to zero (there are other ways, I know). The iPhone has one big button at the bottom, reminiscent of the one button mouse, and this is an area where the Desire wins hands down, with more physical buttons including the search, back button, the menu button, the home button and the optical trackball.

A note on the intuitiveness of the interface. Apple claims that their interface is so intuitive you don’t need any instructions. I must say I find the Android (Desire) interface more intuitive, and when you start that phone for the first time, it walks you through the basics. Very helpful for beginners.

Anyway, time is short and some people are waiting on this review, so here’s a potted comparison.

Feature iPhone Desire
Basic Interface Uncluttered, but uninformative, no widgets, no live wall paper, no active folders. Dull, one size fits all. Switching between tasks and back again is inelegant. Notification of outstanding items is cleaner than standard Android. Very rich, combinations of apps on the desktop, widgets and all the things mentioned by their absence for the iPhone. Much more personalised. Task switching, particularly the back button, is much more elegant. HTC Sense is nicer.
Phone Disastrous. Frequently won’t connect calls when my Desire will. There seems to be something else at play here and I’ve reported it. Both phones are on the same network BTW. It’s more awkward to change numbers on the fly and many other things. But it’s very pretty. Much improved in Android over the last few versions, the ease of dialling, changing numbers is much better. Finding contacts to dial is much easier and faster. Oh, did I mention it works?
Voicemail Fancy. Asks me to set it up every single time I turn on the phone. Recently while travelling, I couldn’t pick up a voicemail because of this for about an hour, by which time I was sitting with the caller. Not Fancy. Works all the time.
Workplace The stock mail client is very pretty, and for example, links to appointments easily (but makes it hard to see if you are free). It has limited threading support which is really nice. The Android exchange support is, in my opinion, superior. It lacks threading, but does have follow up support, which I take to be vastly more important.
Apps Legendary, but there are relatively few free quality apps. For example, I struggled (still haven’t) found a decent calculator (not the built in one) that is free. I find the market app rather clunky. Can’t find any decent external exchange apps that work. Many problems with the Market were fixed in Froyo, the apps available seem to be broader in nature, and many more are free (my perception). Choice of several exchange apps, more fully featured than iOS.
Software Keyboard Simple, elegant, but frustratingly difficult to type complex content, having to change layouts all the time. More cluttered, but actually as easy to use, better word prediction, less switching between layouts.
Battery Life Initially winning hands down, but now hogging battery like no tomorrow, can’t make it through an average day. I don’t know what’s causing the problem and so I’m just deleting apps all over the show. Vastly improved over other phones, still an issue, but actually appreciating it more after the iPhone
Music Very pretty. iTunes integration. This is also the problem. A cheap player I bought for my Daughter allows me to just dump music on it and it works. What I had to go through to get Music onto the iPhone because of my unusual setup, well, it wasn’t easy. Oh, and by the way. iTunes sucks. I mean really… disastrous, but with no alternative. Bulk device, you can just copy the music on and it works. Plays music just as well as the iPhone, in fact better because the former occaisionally and inexplicably stops. Wide variety of music players.
Video Flash.
Web Browser is probably prettier than Android’s and allows more Tabs, seems to be slower though. Native Flash is an advantage here too.
Notifications Really dreadful, and a well known problem in the Apple community. Poorly handled, and when they pop up, and you go to use the phone the notification is just gone. Elegant system that allows multiple notifications each of which take you straight to the issue. Persist, unobtrusively, until dismissed.
Calendaring / Time Automatically setting the time to the wrong time since the clocks changed. Manually fixing this makes calender entries wrong. Setting it back to automatic makes the time wrong again. Google Calendar back end more open than Exchange. Exchange functionality built in too. Minor quibble, cannot change the colour of the Exchange calendar. Date / Time works. Minor quibble, on a non rooted device you can’t use ntp for ultra correct times. Can’t on the iPhone either as far as I know.
Oddities My laptop supplies power out of USB while it’s off. I use this to charge my Desire if need be. The iPhone requires the whole machine to be on for it to charge the phone. The power connector on my Desire seems to be a bit stretched, so if I’m not careful, it’s not being charged. The Desire asks, when plugged in, whether it should charge, act as a disk, do internet tethering etc..

I’m honestly struggling to find an area where the iPhone wins hands down against its competitor. I can’t think of one. I imagine if the iPhone is the only smart phone you are used to, it seems miraculous. It probably seemed that way against Android 1.1. But Android has grown up now, and it makes the iPhone look just stupid by comparison. I couldn’t recommend an iPhone to anyone. Sorry.

By the way, I fully accept that perhaps when I get used to the iPhone I might come to love it more, but I’ll be surprised.

Roberts WM201 Internet Radio

I recently bought a Roberts WM201 Internet Radio. I’ve used it for a while now and thought I’d post my thoughts.

First of all, I was looking for a radio meeting certain criteria, it needed wifi, I wanted it to pack a reasonable punch since it would essentially be my main music source, it needed to support upnp media servers. I also wanted it to have an integrated transformer so that it would not have a bulky mains lead since I wanted it for my rather small kitchen. Finally I wanted it to be semi portable, so I could move it from room to room without too much fuss.

The WM201 meets all these criteria, and is based on the Reciva technology that has been well received by a few of my friends, notably Paddy and Noodles. The radio is a pretty good size, not too large and not too small, and feels really solid. It has a wired network port as well as wireless capability which is great. For complex reasons, when it first arrived I had no internet connection (no gasps, I was making do with 3G hookups). That being the case I knew I wouldn’t be able to get the internet radio functionality itself working. But I figured I’d set up a local lan and get the mediatomb server on my development machine working. I was able to hook up to the LAN and enter the WPA password, but it just would not play with any functionality whatsoever if it doesn’t see the servers it expects to. Now Noodles has suggested my geek privileges should be revoked for not working out how much of the internet I had to fake to get it to work. He may well have a point! In my defense I had plenty of other issues to deal with instead.

About a week later I got my net connection, albeit temporarily since some work was needed on the cable. So while the network was up I was finally able to get into all the functionality, and I was really impressed, the small display and control is really intuitive and the shipped remote control is excellent. When it came time for the external network connection to be severed again, I quickly switched the device over to streaming media from a playlist on mediatomb, but interestingly it still gave that up midway when the external connection went down. Dumb, but forgivable.

So again, what’s good? It offers brilliant sound, and more volume than I could wish for. It’s easy to browse through the huge array of stations, and for things like the BBC stations, it has a good interface to the “listen again” service. It works seamlessly with mediatomb on my PC. All excellent. A minor grumble is that it’s not easy to switch briefly from a radio station to the playlist on mediatomb and back again, you have to go through all the menus every time. The number of stations is so huge, finding them can be a little slow, but you can as you would expect, save them to a preferred list. I hit a problem with that; my saved BBC stations have spontaneously stopped working, just showing endless retrying messages. When I go back through the menus it’s all fine. Odd.

The radio becomes better yet when you use the Reciva portal to set up your “stuff”, a list of your preferred stations and podcasts. Obviously it’s much easier to do this on a web page, and then you simply register your radio. Now (it seemed to require a hard power cycle for me) the radio has an extra “My Stuff” menu which gives really easy access to your favourite stations and allows you to quickly select podcasts, far faster than navigating on the radio. An odd note, if you for example navigate through “listen again” in the normal way, you can fast forward, pause and rewind the playing media. But if the same stream is selected from the podcast menu in “My Stuff”, you can’t. A slight annoyance.

I’d really recommend the device overall, it’s great. Incidentally the cheapest prices I could find were on Amazon by some distance, but time and time again, I would select a seller and only at the final hurdle be told they wouldn’t ship to Northern Ireland. I’ve complained about this before, it would be useful to know rather sooner that I’m wasting my time. Anyway, I found a simple way to work out which sellers ship to Northern Ireland and find the cheapest of those. I selected one from each and every seller on Amazon. Then when I went to checkout I removed all those that caused complaints. It was then easy to find the cheapest remaining seller. Much faster than trying them one at a time.

Android 1.5 (Cupcake) firmware

I recently wrote about my experiences with the Google G1 dev phone running the 1.1 Android firmware, and discussed a number of problems.

Last night I obtained the just released 1.5 (cupcake) firmware and performed the upgrade. That all went smoothly, it helped to have done it before and working out the idiosyncrasies of the process. So how does the new firmware measure up?

Initial thoughts and feelings are very good. Picture handling in MMS is hugely improved, although I still had a problem with an old video clip, but I’ll see if it was the oldness that was the problem. The optional on-screen keyboard is very useful and surprisingly easy to use, with predictive words hovering just above it. I enabled the options to automatically rotate the screen upon device reorientation, that is a big improvement in general usability, and means you no longer have to flip out the keyboard just to provoke rotation.

Other improvements include the camera – much better, and video capability, although the microphone doesn’t pick up sound very well on video. The web browser is also much improved and hugely more usable and readable, the auto rotation helps that too.

One very quirky problem, the one screen I’ve found that doesn’t auto rotate on the device orientation is the home page. That rather surprised me. Overall, this is a very significant set of improvements, and I’d suggest any G1 user upgrades as soon as possible.

All of this goes a long way to making the G1 a good day to day phone for me, although I’m still having to limp from one charging source to another, I don’t think I can get through a day of my normal use without charging in the car and at my desk – and yes, I’m frequently trimming back all the features to extend battery life, when I remember.


Here are a few more comments after a little while of using cupcake. Of little problems and whether or not I’ve resolved them.

  • Bluetooth pairing
    After Cupcake, the phone no longer automatically paired with my in car gadgetry. In the end I found that going through the settings and clicking connect explicitly for each device connected it that time, and next time it did so automatically.
  • MMS issues
    There are still some of these, I get some images from some people that are much smaller than I remember getting from the same people with the same phone when I had the N95. It’s not clear if this is because the G1 is just not allowing the same level of zoom, or what else may be to blame, but still rather small. Also, video clips are simply not playing. When I receive one I still get another text from my provider (O2) telling me I can’t receive them. But now there is an icon suggesting they can be played. When you try, you simply get a number of seconds of a blank screen and silence. Suggesting possibly a codec problem, but I can find no mention in the oracle of google as to how to fix it if so, or whether I should expect it to work.
  • Fast switcher apps
    The API that allowed apps to turn off and on some features has been deliberately disabled. Not a huge issue, but it means many apps that helped you turn on and off wifi, for example, no longer work. Unhelpful in a phone that still has profound battery life issues.