Huawei 3G USB sticks ("dongles") support a special command to control the mode how they will appear to a host computer. This allows to switch off the flipflop USB capability, also called USB modeswitching.

USB modeswitching means that these and many other USB 3G sticks at first only provide a virtual CD-ROM drive to the computer from which a (Windows) computer will install the device drivers, and then the device will switch to show only a 3G modem interface. This of course does not work with non-Windows computers like Linux and Android systems, making it a completely bad idea of course. For Linux, there is now the usb_modeswitch utility which now switches the device to the 3G modem mode more or less automatically, but this is still not standard for Android (though possible on rooted devices, and included in the PPP Widget app for rooted devices).

So for using Huawei 3G sticks on non-rooted Android devices, we want to disable the virtual CD-ROM mode permanently. This can be done as follows on a Linux host:

  1. Make sure you execute these steps from a computer that can see the serial line interfaces of the device. This should be possible on any Linux computer that has usb_modeswitch installed and configured, like done by default on at least Ubuntu 12.10 (and newer).
  2. Find out the first USB interface of the device by doing ls /dev/ttyUSB* before and after plugging the 3G stick in and taking the first result.
  3. Open one terminal for receiving messages from the device, by executing cat /dev/ttyUSB1 (using your device number of course).
  4. In another terminal, send a command to the stick to test communication with it. Execute echo "ATi^M" > /dev/ttyUSB1. But note: You can not simply copy this over, as the ^M is just the visual representation of a single control character. Enter this character in the terminal directly by pressing Ctrl+V and afterwards Ctrl+M.
  5. Now, your terminal with cat should display information that the stick sent about itself.
  6. If this worked, now send the command to disable the virtual CD-ROM mode: echo "AT^U2DIAG=0^M" > /dev/ttyUSB1. Note that ^M is again a control character that you have to enter specially (see above), but ^U is just normal text, so you can copy & paste it.
  7. Now your cat terminal should answer with OK. If so, the command was successful. [source]

The basic idea for this console based process comes from the article "Send AT commands to USB modem" by brunomgalmeida.

There are also instructions on an equivalent procedure using Windows; however I was not able to follow that procedure as my Huawei K3715 3G stick did not let me talk to it through a serial terminal at all, probably because I set it up with bad connection speed etc. settings (as these were nowhere to be found …).

Also compare "Hayes command set" on Wikipedia for more information.

These instructions were tested on a Flytouch 10 (more specs here), also known as Flytouch X, Superpad 10, Superpad X. The model naming of this Shenzai stuff is a mess, so be sure to check the linked specs and photos to make sure it's your device.


For a compatible 3G stick to work, you do not need to root your device, and you do not need to install additional software.

  1. Choose and buy a compatible 3G stick. There is no user manual to speak of for the Flytouch 10, just a leaflet coming with the product. Means there is no official documentation what 3G sticks will work with it. Probably all that work with a stock Android 4.1 will do, but it seems safe to use the narrower list users developed for earlier generations of the Flytouch: many or most of Huawei 3G sticks will do, but these are confirmed to work:
  2. Disable PIN entry on the SIM card you want to use. This can be done with any mobile phone. It is needed because (to my knowledge) the Flyouch 10 has no feature to ask for the PIN before connecting. This feature is however available in the PPP Widget app, which is a more flexible solution anyway but needs a rooted device. Compare the PPP Widget author's webpage.
  3. Make sure you can connect with the intended 3G stick / SIM card combination using a computer. If you get an Internet connection this way, it indicates that your 3G stick / SIM card combination does not have an issue with a SIM lock. It also excludes many other failure modes, meaning the remaining ones are on the tablet then.
  4. If necessary, remove the SIM lock from the 3G stick. If the last step failed, you might be able to make it work by removing this SIM lock. Legal disclaimer: You are advised to only do so if your provider and jurisdiction allow this.
  5. Configure the APN properly. These settings are in "Settings -> Wireless and Networks -> More -> Mobile Networks -> APN Settings". You should configure them exactly as on your computer or another device where you can successfully create a 3G Internet connection using the same SIM card. Because if you do something wrong here (like: missing username and password – often they're optional but not always), you will get no error message or other feedback. The 3G stick will simply not establish a data connection. Note that sometimes, your device will fetch APN settings from your network, creating a APN config entry for you – but, this does not guarantee that this entry is correct and working. In my case, it created an APN for German E-Plus network, which did not work for simyo (also using the E-Plus network but with different APN settings).
  6. Maybe: Disable the USB flip-flop mode and card reader on the 3G stick. This step was needed back in 2011-01 for the Flytouch 2, but I am not sure it is still needed. Since the Flytouch 10 did create APN settings before I executed this step, meaning it could access the 3G modem hardware somehow, I think it's rather not needed. If it is needed, you can use my instructions for disabling mode switching on Huawai 3G sticks.

Note: It is normal, at least for some devices like the Huawei K3715 in my case, that the mobile network search fails (in "Settings -> Wireless and Networks -> More -> Mobile Networks -> Mobile Network Provider"). The reason for this is unknown, but such a stick can still create data connections for the tablet. However, this network scanning was also not completely broken, since when going into AP


Normal usage of a 3G stick on the Flytouch 10:

  1. Insert the SIM card into your 3G stick. It's important, it won't work without! 😀
  2. It is not necessary to disable wi-fi on the Flytouch. Contrary to instructions for earlier generations of the Flytouch, you do not have to disable it in system settings, also not using the hardware switch. Just, make sure you are disconnected from any wi-fi network, because a wi-fi connection has a higher priority for the tablet: it will try to use it even when no Internet connection is available via this, then ignoring a possibly existing 3G Internet connection.
  3. Insert the UMTS stick into the lower USB port. It should work with both USB ports though, but at least for the device I tested it does not: the 3G stick will not start to flash its LED at all. This might be due to different power capabilities of the ports, or maybe one of them is broken already.
  4. Wait approx. 20s for a connection to appear. In the case of the Huawei K3715 stick, the progress is like this: at first it flashes double-flashes regularly, then single flashes regularly, then it lights continuously; which probably corresponds to "no connection; registered in mobile network; established data connection". Shortly afterwards, the 3G icon will appear in the notification area of the screen, in the lower right corner. At the beginning, it should have flashing arrows both up and down – if only up, it usually indicates that the data network connection is established, but not working.
  5. Use. Open a browser and call up a www page – it should work now.
  6. After standby, wait again 20s for the connection. Right when switching off the screen, the Flytouch 10 enters standby mode, also cutting off power from the 3G stick. So when resuming from standby, you have to wait just as for the initial connection to appear. So it can make sense to increase the duration until standby, in "Settings -> Display -> Standby".


  • Pull the 3G stick out and re-insert it. This often fixes a messed up registration in the data network, which can happen esp. when reception is poor.
  • Try a different USB port. As mentioned above, at the device I tested only one of the two ports worked for the Huawei K3715 stick.
  • Try a Y cable. At least the Huawei K3715 stick came with a Y cable originally, meaning that it could overchallenge the power supply of some USB ports.
  • Pull the stick out, disable wi-fi and re-insert it. Should not be necessary (except if you're actually connected to a wi-fi network), but worth a try. If you want to try this, disable wi-fi both in the system settings and via the hardware switch, to be sure.


I got quite annoyed by the vendor lock-in of Plesk Panel, so now I'm looking for a free and open alternative. The requirements were quite straight-forward:

  • good software quality
  • free and open source software
  • running on a Linux server
  • multi-domain capability
  • multi-client capability
  • FTP, webserver and e-mail configuration support
  • per-client SSH access


List of alternatives that I looked into, ranked by my subjective evaluation of matching the above requirements, the best first. First the panels that I consider the best for the above requirements, and they are all nearly on par:

  • ISPConfig. My personal first choice. See Wikipedia on ISPConfig. They have a live demo version available, which looks nice and stable, and with a whole lot of functionality, incl. five different modes how to host PHP, even with naming templates for database naming etc.. My only "complaint" would be that the multi-server features are also all over the place, which is overkill / distracting for our simpler requirements.
  • AlternC. I like their clean and simple user interface a lot. Their live demo version works well. Written mostly in PHP. Seems not as feature rich as ISPConfig, but simpler to use. For being used by non-techie users, I would choose this one, while for myself, I would choose ISPConfig.
  • ZPanel. Also a feature-complete hosting control panel.
  • Virtualmin. A variant of the well-known Webmin panel, adding website management features though additional modules. Written in Perl and modular, though due to its age the user interface is somewhat outdated and complicated, including the naming of items (such as "virtual servers" for "domains").

Other panels:

  • GNUPanel. See its website. Nice project, but not yet feature complete and it still has to mature. Plans for version 2.0 are well under way though.
  • Domain Technologie Control. Indeed still a very active project [source], but with just one main developer, so no warranties for the future. The DTC documentation however is extremely outdated (with comical overtones when they praise SysCP and Web-cp as "very good" [source], both dead since 4 resp. 8 years now). I did not like the self-praise in their docs, so did not even bother to try the software. Which I would have done however if there would be a live demo …
  • OpenPanel. Interesting architecture with a core written in C++, but so far not yet the full feature set as available in, for example, ISPConfig.
  • Froxlor. I have installed Froxlor on one web server, and I'm not really happy with their software quality then (2013-03), esp. the UI logic. Once it's running and you found your way around configuration issues, it works pretty stable though.
  • i-MSCP. Looked quite promising until I saw it does not support per-user SSH access [source].
  • Kloxo. Seems not really in active development any more [source], and its history is quite bumpy.
  • Webmin. One of the oldest web-based control panels, with its first release on 1997-10-05 [source]. Virtualmin, a derivative of Webmin, seems preferrable over Webmin for webserver management since it adds the website management features directly [source], while they probably could be added to Webmin as modules.
  • Usermin. A variant of Webmin, but not strictly for website management. Rather for user-level computer management. Virtualmin is the variant to choose for website management.
  • ispCP. No per-user SSH support, so not applicable for our requirements. Also, superseded by the fork i-MSCP.
  • SysCP. No per-user SSH support, so not applicable for our requirements. Dead since four years [source].
  • Baifox. Dead since 2009.
  • WebsitePanel. Only for Windows-based hosting [source].
  • EHCP. No information on this.
  • Ajenti. They say "Ajenti is a server control panel, not a hosting control panel." [source], means it is not possible to manage domains, clients etc. with this. Not for our purposes here, but an impressive project anyway.
  • Aegir. Impressive features and even a command line client for hosting management, but it is meant only for Drupal site deployment [source], not as a generic web hosting control panel.



Just rebooting the phone should fix this if this option is at least usually shown when connecting the phone by USB cable to a computer.

It does not help to use the feature in settings to "Safely Remove SD Card" and then drawing the SD card out and plugging it in again – the SD card is accessible by the phone without problems still, just not shared to a computer.

It might be that switching the "USB Tethering" feature on and off multiple times is what triggers this issue (since, by design, the USB mass storage connection option is not shown while USB Tethering is enabled on the phone; and by error, maybe also not afterwards in some cases).


The exact error when executing the cron job manually (/usr/bin/php -f /var/www/vhosts/ was:

PHP Fatal error:  Allowed memory size of 536870912 bytes exhausted (tried to allocate 7 bytes) in /var/www/vhosts/ on line 290


This error can happen if Magento's cron_schedule table has too many records, coming from the log entries of past cron runs. So, delete all the entries, directly in the database with TRUNCATE TABLE cron_schedule; or using phpMyAdmin or similar.

Now, when calling the cron job again from the command line, it finishes normally, without a crash.


It seems that the table could become that full because in "System -> Configuration -> System -> Cron", "History cleanup every" was set to "1440", thinking this was to be set in minutes. But instead, it seems it's set in days. The same for "Success history lifetime" and "Failure history lifetime" there. So better set all three to some meaningful value like "30".


This "Allowed memory size exhausted" error also persisted after installing the AOE Scheduler module and removing all scheduled cron tasks, then calling the cron job manually. This hinted to the fact that this error is unrelated to any single of Magento's various cron tasks (so also independent of installed contrib modules), and instead happens in Magento core. (This is Magento by the way.)

Also, from searching the error message on the Internet, it appears that the "Allowed memory size exhausted" problem at this specific code location is a rather generic error that else happens for example when processing too many product records at once (see for example here or here).

This had me look at Magento's cron_schedule table, in this case it had 673498 entries according to AOE scheduler (in the database, even 830,881 rows). These were too many records for Pdo.php to process within the memory limits: in line with other reports of the "Allowed memory size exhaused" error in Pdo.php line 290, the error was here caused by too many records in this cron_schedule table.

This applies for example when you want to add a photovoltaics installation to your campervan, expedition vehicle, garden hut, off-grid house or similar. For having enough electricity year-round from photovoltaics alone, battery size and module size have to be properly dimensioned.

The best tool I found for this is the European Commission JRC's PV potential estimation utility. There, use the last tab "Stand-alone PV".

Note that that the tilting angle of the solar panels is important in winter. Differences of up to ca. 30° from the optimum have no large effect, but above that they get quite important. So having an angle of 0° (flat panels) while you should have an angle of 74° (Germany in winter for example) means you get only about 25% of the power you would get at a 74° angle. You can calculate the exact numbers for this with the SunAngle calculator.


These are instructions how to import messages held in KMail 2 into Thunderbird. Versions were KMail 4.10.5 and Thunderbird 17.0.8, but should not matter for this to work.

  1. Install ImportExportTools in Thunderbird.
  2. In Thunderbird, create a folder into which you want your e-mails imported. This can be in "Local Folders", which is recommended, but also in an IMAP account. In the latter case, importing and uploading are done at the same time, so there are two error sources and the second step can not easily be repeated when it fails, without repeating the import step as well.
  3. Right-click on the new folder and select "ImportExportTools -> Import Messages".
  4. In the file selection dialog, go to ~/.kde/share/apps/kmail/mail/<your folder to import>/cur/, select "All Files" in the file filter at the bottom, and select all these messages (simplest by pressing Ctrl+A).
  5. After the import, all messages are marked as unread. Right-click the folder again and select "Mark folder as read" to fix this.

This should import all messages nicely and without errors. You may compare message counts to those in KMail.


The above solution seems quite straightforward, but it really was the only working solution I found. Various other solutions are meant to work, but did not:

  • Uploading local e-mails to an IMAP folder in KMail, then downloading again from there in Thunderbird. Should work usually, but in other cases errors in KMail can be triggered. For example, creating a new folder is not possible in KMail if the e-mail server is based on courier.
  • Selecting a bunch of e-mails in KMail and right-clicking on them then selecting "Save as …" gives the option to save them all to one .mbox file. Which can then be imported with "ImportExportTools -> Import Mbox files …" in Thunderbird. However that import often fails, so that no e-mails are imported at all.