Monday, 5 August 2013

I've taken up woodworking....

As the title says, I've taken up woodworking, I've wanted to make things for a while now but always lacked any decent tools and any skill, apart from a soldering iron and some wire cutters.  as you can see from my other articles, I like embedded electronics, but there are never any sensible cases for things, if there are, it's a ridiculous price and probably not entirely appropriate to my needs.  So I want to design and craft my own cases, along with little bits of furniture and other ideas I might have for my other hobbies, eventually I'd like to build a cnc to take care of intricate parts but for bigger projects woodworking will be great.  I have been ill for some time, so this will also be an opportunity to start to slowly get fitter.

My tool kit has consisted for some time of rusty pliers, a junior hacksaw, a rasp, a claw hammer and a bent chisel, not exactly inspiring.  I started looking into getting some tools together, spoke to my dad and the upshot was that he donated me power tools and hand tools as he's been upgrading his.

So far I have a ferm scroll saw, jig saw, power drill, 2 routers, 2 router tables, compound sliding mitre saw, detail sander, cordless circular saw, detail sander, 7 bevel edged chisels, a record no.4 smoothing plane and an oilstone.  It all sounds like a reasonable load of kit and on the face of things it is, however, there are a few issues that needed sorting out.

The first power tool I was given was a Ferm ffz-400n scroll saw, it's pretty much your standard lower middle range scroll saw, it's a pinned blade system but can be upgraded to a pinless system, to use it properly it will need to be upgraded, as it stands it's quite hit and miss as to how the blade will behave and intricate inside work is impossible due to needing at least a 5mm hole to insert the blade through a work piece.

Next was the Bosch router and router table, the router is a 1/4", it's ok but apparently the micro-adjuster suffers from creep even when the thing is locked, it was missing bushes and being bosch they were proprietary and expensive, it also had trammel bars but these were rusty.

The Bosch RT60 router table is a cast metal table, it's really a jobbing table than a precision unit, it's got a rudimentary plastic fence which has a couple of nice features but non standard slots in it and no way to attach anything, being plastic you'll probably ruin it before you modify it with any attachments.  It's also got a mitre slot cast into the bench but the finish was so poor on the paintwork/casting that it would really need plenty of work to get it to a usable state for jigs and to top it all the mitre slot is shorter than the standard slots that everyone else uses.

I wasn't entirely convinced with the router, being a plunge router in a table it's not exactly simple to swap bits and adjust height, by the time I'd spent money on the router to get it up to a usable state, I could have bought 1/2 a new router with all the trimmings that could take 1/2 inch router bits.

The 2nd router was a blackspur, again, like the bosch it's a plunge router, it's a bit weak, certainly not suitable for a table and most of the bits missing for using it as a normal router, it's essentially now a fat 1kw laminate trimmer.

At this point I'd read up a lot on routers, router tables, fences and associated systems, my dad incidentally has an incra setup, it's something I'd like to aspire to but not something I would want to spend the money on, at least not right now.

So, what to do?  Well, it was clear that I wanted to have a router table with a fence system that allows repeatability, I also need a decent workbench to work on too, this was again discussed with my father, who graciously decided to donate his 'shopsmith' router table, this is a thick mdf affair, with a proper dado'd aluminium mitre slot, the only small issue with it is that the slot is actually a shopsmith proprietary size but this will soon be remedied when the standard mitre slot arrives.

I also decided at this point that if I'm going to have a reasonable router table then I should have a reasonable router, I don't have hundreds of pounds to spend on festool etc. but I wanted a fixed based router, I settled on a draper 1350w combination router kit,  it's got a plunge base and a fixed base, it comes with a 1/4" and 1/2" collets, a set of screw in bushes, trammel bars, guide rail and centring pin.  I didn't go mad with bits, I bought a cheap draper 1/4" set, I figured that I'd get a set of cheap generic bits so that I could learn which bits I really needed and wouldn't worry about trashing them with my ineptitude.

All that prep work and not a single thing built yet!!  This isn't really surprising, as my current workbench is a weak workmate style bench, I also have zero skills, along with a distinct lack of timber.

My Dad to the rescue yet again, brought over a load of wood that was supposed to be enough to build a bench and a couple of different sets of plans for building one.  I Studied the plans looked at the wood and figured there wasn't really that much of a relationship between the 2!!  I had 4x 29"x3x3, one of them square, the other 3 didn't have a 90deg angle between them, so they're too short and they'd need a bit of work to get them to a usable state.  The rails were also in a dubious state/not enough.

  To cut a long story short, I decided to cut my losses on the legs and go and get 4x 39"x3x3 PAR, my Dad also sorted me out with enough wood to sort out the rails.  I'm currently waiting on the wood for the top but that should be within the next week or so.

I've knocked up a design on sketchup (had to learn how to use that first), it's based on a few other designs dotted around the net, it'll be sturdy enough to last for years and give me a solid work area for all of my projects.

Once I've got the bench built, I will build a carcass for the shopsmith router table to sit on.

Onto the hand tools,  using a junior hacksaw for everything is lame and my bent chisel is only useful for opening tins of paint.  You can't really build a bench with those, so I bought myself a tenon saw, in hindsight it was cheap junk and not really that appropriate or at least not appropriate for someone who hasn't used a saw much in his life.  It was really too bulky for fine control, more teeth than a piranha and set wide enough to drive a bus through the kerf.

Dad to the rescue yet again (he really is great isn't he?), 7 bevel edged chisels, an oilstone, a record no.4 and a japanese flush cutting saw with a ninja style name.

A couple of the chisels were stanley, 3 of them looked like the stanleys but no markings and the last 2 had no names on them, some of them were the same size, so I ended up with 3 different sizes, 1/2", 3/4" and 1".

None of them had sensible bevels on them, I weighed up the time it would take to learn how to hone chisels by hand/eye coordination alone vs getting a honing guide kit and getting on with life, the honing guide kit won.

There are many methods to putting a bevel on a chisel and producing a nice sharp edge, I'm still trying them all out so I won't tell you how I do mine, you'll have to find out for yourself :-)

With sharp chisels, I could attempt to chop holes in wood, my previous couple of attempts with my bent paint tin opener were abject failures, tearout, poor control, rubbish bevel/sharp edge all contributed to a crummy mortice.

I watched quite a few videos on the net, most notably paul sellers, he has a really nice presentation style, very easy to listen to and explains everything simply.  Armed with what I'd seen and sharp chisels I have attempted a few more mortices, with much better success.  I am refining my technique, getting a feel for the chisel, a feel for the wood and how the grain will behave, after 5 mortices with the sharp chisels I'm getting nice straight walls, neat lines and I'm cutting them much faster.  I still need to keep an eye when I'm cleaning out chips as I seem to not pay attention at some point and crush a short wall.

The plane has been a fun learning experience, I first had to learn about all the parts of a plane and how to fettle them, not exactly easy when you have no idea of how a plane should behave, it didn't behave too well, it seemed to jam up quite quickly, so I set about taking it apart and seeing if I could make it better.

I sorted the bevel out on the blade, then flattened the chipbreaker edge so that it was tight against the blade and set back from the tip accordingly. I also adjusted the frog to give a slightly wider blade/mouth opening and set about using the plane on one of the bits of 29x3x3 legs that my dad had given me, 4 sides later and I have a plane that I am confident in using and a length of 3x3 that is nicely trued and not a matchstick either!!

Yeah, yeah, I know, I still haven't built anything at this point, I don't see the point of attempting anything with the wood for the bench until I am sure I can complete the task.  Due to my illness I don't have oodles of time or energy to spend a day in a workshop, so I've been doing things when appropriate, over time this will get better I'm sure.

I would like to point out that I have been reading up and watching wood working videos on the net, as well as getting superb help on the guys there have been fantastic and given me great advice and opinion, they've given me lots of insight into modern and old techniques that are going to prove invaluable in the future, thanks guys.

Everything I've been doing so far has been self learnt, I won't say self taught as I've used those wonderful free resources supplied by google to find forums, videos and articles by people that have taught me, I know the internet is a big place but I found that there are enough opinions out there whether they're conflicting or not that will allow you to filter them and find the information that's appropriate for you, your skill level and your budget.

It all seems a bit daunting to start off with, there are loads of websites, hundreds of tools, gadgets and doohickys out there, with more opinions than stars in the galaxy, so if you're starting out like me, my advice is to read a lot, watch as many videos as you can, join a forum, ask lots of questions (whether they seem stupid or not), never be afraid to challenge opinion and most of all, learn to use google to your best advantage.

I've learnt tons of stuff over the last few months, it doesn't feel like I've done much as it's all been prep work,

I reckon in the next week or 2 that I'll get started on my bench for real, I think by then I'll have gained enough skill and confidence to produce something that I will be proud of, I had originally planned on using 1/2 lap joints but I'm now starting to think I might actually be able to do decent enough mortices that I might use those instead.

I think that's about enough from me for now for my first woodworking post, see you next time....

Saturday, 27 July 2013

Shiny new exynos 4412 board and hi-res touchscreen + mini210s black edition released on andahammer

It looks like and friendlyarm have been busy again and released a couple of new boards, first up we have the mini210s black edition, with some neat features, made exclusively for andahammer, they feature a 6pin header for access to the buzzer, pot and mic headers and a write protect for the eeprom which means you can safely store mac addresses, phone numbers, device serial numbers etc. and retrieve them at boot, lastly there is a jumper to silence the onboard piezo buzzer.

They're only small changes but from a developers point of view they open up some nice features, firstly it means that you're no longer tied to having the inconvenient onboard placement for the buzzer, pot and mic, once the min210 is in a case, those devices will be near useless so being able to place them where they can be used is a big help.

As mentioned for the eeprom, it's easy to see the advantages of having a write protect option, it means that you can store information on the device without worrying it will be wiped, it means you can have a small level of security over your stored data and uniquely identify the board and more importantly store a mac address which is useful if you have a lot of mini210S on a network.

The buzzer, it screeches like a banshee, being able to mute it with a jumper is manna from heaven :)

Onto the shiny new exynos 4412 board, the folks over at have a system ready to go, it's a standard friendylarm 'tiny' form factor, so it's a core tiny board (cpu, ram, e-mmc) with an arm cortex-a9 quad core cpu, 1GB ddr 3, 4GB e-mmc flash, then you have the SDK board which has all of the headers for all of the peripherals like usb/micro usb, ethernet, SD socket, com ports, hdmi, g-sensor (accelerometer), audio out/mic in,buttons and most interestingly there is a cpld on board for some programmable logic fun, if you want more information keep an eye on the andahammer website for updates.

I almost forgot, the LCD that goes with the tiny4412 kit is a 7" high resolution 1280x800 capacitive touchscreen which gives it a very nice resolution for any of the modern OS distros.

I can't wait to see what this board can actually do, 1.5Ghz quad core should go like a rocket, lots of ram, the nand flash should be that bit faster on the e-mmc setup, it should have better 3d/2d support and the usual hd codec support, it will be running kernel 3.50 and android 4.2.

mini210S updates

Yet again it's been a while since my last post but things are moving forwards with the nand driver, there is currently an effort from some of the chinese developers on the forums to do various ports  for the tiny/mini210s, barebox, uboot and a kernel upgrade to 3.10, I've been helping to iron out issues with the nand driver port and this evening we got a working 3.10 nand driver, it's currently spitting out ecc errors but hey, don't they all?

All joking aside that is actually a reasonable state for the driver to be in, at that point the code has managed to query the nand chip and retrieve the ID bytes directly from it, so we know the read/write functions are working.

We also know at this point that we're hitting the correct register addresses because the functions are working and we're pulling in meaningful information, it was broken but we found that the nand_flash_dev struct had been altered so simply changing where we pull the current device id from fixed that.  As long as nothing else has changed in a big way in the nand driver then it's more than likely a mismatch between the version of superboot and our nand driver, more specifically it's probably the nand ecc pos layout that is at fault.

There was a pull request on github for the nand driver, there was a 'typo' in the ecc pos layout, which in fairness wasn't our error, we used a specific driver to dump information from to write our driver, the values for the ecc pos layout were a direct dump, which probably explains why our driver only ever worked with a specific version of superboot.  The next step is to dump information from the nand drivers from the newer dvds, if we use the kernel sources and matching superboot we can see if the 'typo' error is isolated or not.

Thursday, 25 April 2013

Mini210s, nand drivers, 16bit ecc and bootloaders

It's been a while since I last posted anything here, recently I've been helping out with an open source nand driver for the mini210S which you can find here:

With some fantastic work from Jkent and some help from me, we've managed to get a stable nand driver working that's pretty faithful to the original drivers.

It basically replaces the friendlyarm binary blob ( with open source code, which means it should now be relatively simple to add 16bit ecc support into any of the bootloaders that are currently being worked on.

I'm repeating myself a bit here but our driver was tested on a mini210S with 4GB of MLC nand, we tested it with android 4.0.3 and it works with either kernel, 2.6.35 and 3.0.8.

Now we've released our driver we started to look at the bootloaders that were currently available, there is barebox and a pair of uboots, each of them seem to have their own issues, the major issue is that some of them are using older code, so even if you get the nand layout correct, it still won't work because the mtd subsystem and nand base drivers aren't setup to read 5/6 byte ID strings. 

Another issue I found was that barebox wasn't capable of addressing > 2GB in bytes due to using an int32 when it should be using a int64, it also cannot address 640byte oob nor was it capable of addressing 8k pages.

The last issue which is inherent to all of the open source bootloaders is the lack of proper ECC layout for each of the chips, I'll try and address that now.

When we started to write our own nand driver we needed to dump some information from the driver, namely the ecclayout, as you can see here:

To get this information we had to edit the s3c_nand.c code, you can use the same code that we did to get the ecc layout for 1GB SLC, 2GB MLC or 4GB MLC nand, look for the print_oob function and make it look like this:

void print_oob(const char *header, struct mtd_info *mtd)
 int i;
 struct nand_chip *chip = mtd->priv;

// Reggie modified to dump the nand info from a K9GBGB8U0A 4GB mlc nand chip
 printk(KERN_INFO "%s:\t", header);
  printk("Dumping the nand ecc layout positions\n");
// Work out how many eccbytes we need to read the positions for
  int j = chip->ecc.layout->eccbytes ;

  printk(KERN_INFO "\n");
  for (i = 0; i < j; i++){
     printk("%u, ", chip->ecc.layout->eccpos[i]);
    if(i != 0 && i%8 == 0)

  printk("Dumping the nand ecc layout\n");
  printk(".eccbytes %d \n", chip->ecc.layout->eccbytes);
  printk(".oobfree offset %d \n", chip->ecc.layout->oobfree->offset);
  printk(".oobfree length %d \n", chip->ecc.layout->oobfree->length);
  printk("ecc bytes  %d \n", chip->ecc.bytes);
  printk("ecc size %d \n", chip->ecc.size);
  printk("badblockbits %d \n", chip->badblockbits);
  printk("chip->pagemask %d \n", chip->pagemask);
  printk("mtd->oobsize %d \n", mtd->oobsize);
  printk("chip->ecc.steps %d \n",  chip->ecc.steps);
  printk("mtd->writesize %d \n", mtd->writesize);
  printk("chip-> %d \n", chip->;

You will also have to edit the end of the s3c_nand_probe function:
 print_oob("Nand oob info", s3c_mtd);
 pr_debug("initialized ok\n");

 return 0;


 return ret;

In fact, it should be relatively simple to use a similar method to get the correct ooblayout from any nand as long as you have access to it's probe functions and even if you don't have access to those, you should be able to find somewhere to poke the mtd driver to give up all of this information anyway.

Friday, 14 September 2012

Mini210S has now got a wiki!

Armworks have put up a wiki for it's devices, you can find it here.  It's a mediawiki based site, so it should be familiar to anyone that's used elinux or any other mediawiki based wiki.

You can jump straight to the mini210S pages here, I've spent a few days adding content with tutorials on things I've managed to discover since I got my lovely mini210S in the post :)  I'm sure over the coming weeks and months the mini210S page will fill out nicely with community contributed code, projects and information.

I will probably start to do a mixture of wiki posts and link back to them here with a bit of background around the tutorial/how to, makes sense rather than blogging about it then having to reformat it for the wiki as well.

The tutorials to note so far are:
How to burn a rootfs image to nand
How to root Android 4.0.3 on the mini210S
How to install google apps into the android 4.0.3 img and burn to nand
How to install google apps on the mini210S Android 4.0.3
How to access android debug bridge via tcpip

Burning your own rootfs to nand is obviously going to be a useful skill :D  FriendlyArm provided a prebuilt rootfs for us, so if you haven't got the time or inclination to build your own, you can just dump your working project binaries and scripts into a known working rootfs and just test them out.  Of course once you work out how to build your own rootfs you can make your own from scratch and burn it quite easily.

Rooting Android 4.0.3 seems odd that you'd have to root a development device until of course you consider it's 'rooted' from a development point of view but not rooted from an end user viewpoint.  so if you want to run around android treating it like you would any other device that you own, then you'll want to root it :)  Of course this won't be the case if you're doing an installation of some kind, so use this with caution as rooting has serious security implications.

Google Apps, there are a couple tutorials for getting google apps. onto a mini210S, if you're developing android software on a mini210S, you're probably going to want some kind of access to google play (formally android market) this has to be done by installing google apps (gapps), if you are 'into' using google's web software then you will need to install google apps.  Google apps. provides youtube, gmail, maps, play apps. for android, unfortunately the mini210S doesn't have them installed as standard so we have no way of installing them normally, so a tutorial is needed, I did 2, to cover 2 different methods.

Android debug Bridge via tcp/ip, this tutorial gives a quick and simple way to connect to adb on the mini210S via LAN/Wifi, saves digging around for a usb cable and could end up being a very powerful remote debugging feature, works nicely on a standard home network, I wonder how well it would cope across the internet?

There's also a tutorial on installing flash player on the mini210S, only really of any interest to UK mini210S owners, I did this one so that I could watch iplayer through the mini210S :D

They are mainly Android tutorials at the moment, should have more linux tutorials coming up.  I will also have some info on booting the kernel and rootfs from an SD card soon too!!

Sunday, 9 September 2012

Mini210S, flash player, iplayer and google play

I live in the UK, so I get access to bbc TV/Radio video/audio streaming services for free via their iPlayer service, this needs adobe flash player, unfortunately, flash player isn't installed on the 210S and we don't have access to the android market/google play.  Follow these instructions to quickly and simply install adobe flash player on the mini210S.

1. go to the adobe flashplayer archives and download a version appropriate for the version of android, I downloaded the latest version (Flash Player 11.1.for Android 4.0 ( as I have android 4.0.3 (Ice cream Sandwich) installed.

2. Save it to the Download dir on your SD card, using the ES file explorer, browse to the Download folder on the card, tap on install_flash_player_ics.apk, (if it complains about not being set to install apps that aren't downloaded from the android market, click on the settings button and scroll down and make sure 'unknown sources' is ticked, then press the back button and try again!).

3. once it's installed you can click done or open, if you click open, it will open the web browser and take you to the flash settings page, it was oversized on my LCD, so I don't think it was showing me the whole screen, probably something to do with screen pixel density maybe?  Either way, you should see something legible on screen, if all you see is a little block with a ? in it, then something went wrong somewhere and I have no idea where :D

If everything went ok and you're in the UK you can test flashplayer by going to and play a tv show. 

Obviously this will use data, make sure you use it via wifi or it will use up your download quota if you're connected via mobile networks!! 

You can still test it by doing going to the shows page but don't actually play the video, if it's working you will see all of the user controls and the video itself, if it's not working you will probably see the blue box with the ? in it or just a black area.

Unfortunately, android and flash player is a well trodden subject on the internet, you will find many forum posts on the subject and many apk files to download, I tried loads of different methods until I stumbled across the the developer archive!!  I think this is probably going to be a bit of a commonly recurring theme while trying to track down issues with android.

Another unfortunate thing with the mini210S at the time of writing, there is no google play/android market support, it appears there are chinese app market tools on the device but nothing to cater for the continental markets.  For the time being at least we will probably have to use an alternative market, it's been suggested to me to use this:

I haven't tried it myself yet but it will do until I can work out how to get 'gapps' (google applications) installed on the mini210S, which will give us gmail and other google associated goodies including access to the market.

Burning an OS image to the nand of the mini210S

I decided it was about time I played with linux on the mini210S, so I used the user manual guide to burn linux to the nand and this is what I found out :)

things you will need
  • 1x micro SD card (4GB recommended, backup any data on teh card before starting, if you're on vista/win7 it will wipe the card)
  • 1x mini210S dvd iso downloaded from the friendlyarm ftp, opened in your favorite iso mounter/editing app or burned to dvd
  • 1x Windows PC
They recommend to use a 4GB sd card, formatted to fat32, this is purely for card compatibility, in reality, the images folder on the mini210S dvd iso is under 1GB in size, so if you've only got a 1GB card, it's worth a try :)
Burning Superboot to the SD card
Make sure that your SD card is formatted to fat32 and backed up before you start!

Go to the tools\ directory on the mini210S dvd, if you're using win7/vista, right click on SD-Flasher.exe and choose 'run as administrator', i you're using XP, just run the app. as normal, in the small window that pops up, click the radio button next to 'mini210S' then click 'next'.

You will now see the main window of the SD-Flasher app, click on the button with '...' on it, browse to the mini210S dvd, then go into the images folder, then select the superboot210.bin file and click the open button. SD-Flasher needs this file to be able to burn it to your SD card.

Next click on the 'Scan' button, after a few seconds, the section marked 'SD Drive(s)' will become populated with your SD cards details.  If you're on XP you can skip this step and just go onto the next one, if you're on Vista/win7 then continue reading.  For vista/win7 we need to use a slightly different method to get superboot210.bin burnt to the SD card, so click on the 'ReLayout!' button, this will wipe all of the data from the card, click 'yes' if you've backed your data up or it's a freshly formatted card. Click on the 'Scan' button again and you should see your card again.

This next step is the same for XP or win7/vista, simply click on the 'Fuse' button to burn superboot210.bin to the SD card.  That's it for burning superboot to the SD card, the next step is to copy the necessary files to burn linux to the nand onto the SD card.

Dumping the image files onto the SD card
In the manual, it suggests that you can test whether you burnt superboot to the SD card by putting it into the  uSD socket, flipping the boot mode switch (left hand switch as the ethernet port faces you) and it should show you 2 flashing leds when you boot, which didn't happen in my case, all I got was a screaming banshee, which I believe indicates either a card not present, or no valid images files found.
The manual also says to dump the whole images folder onto your SD card but we're only messing with linux, so we don't need all the extra stuff :)

On your SD card fat32 partition, create a folder called images, next open the images folder on your mini210S dvd iso, select the linux folder, superboot210.bin and friendlyarm.ini, copy them and paste them into the SD card images folder.

Setting up friendlyarm.ini to install linux

We're nearly done, now all we need to do is setup the friendlyarm.ini file so that superboot burns the image onto nand, so go to your sd card and open \images\friendlyarm.ini in your favourite text editor.
As far as I know, superboot only works with one image at a time, so we're just concentrating on linux, only thing to do is change line 5 from:
OS = Android
OS = Linux

Save friendlyarm.ini and close your text editor.

That's it for setting up the SD card.  I believe the methods are slightly different for android and win ce, with winCE you have the option to run the image from SD card instead of burning (I think), for Android, depending on which version you want to install, 2.3 or 4.0.3, you'll have to comment out the irrelevant android section in the friendlyarm.ini file.

 Burning it all to nand

Now we've setup the SD card with superboot where the bootloader can find it, got the kernel zImage and and rootfs image where superboot can find it, it's time to burn it all to nand, fun times!

Make sure the mini210S is turned off, insert your uSD card into the uSD socket, switch S2 to SD (left hand side switch, switched to the back) and power on the mini210S, you should hear a quick beep.

You will now be presented with superboot, giving you various information about the mini210S (cpu, ram, nand, TS and LCD type), at this point the burning process is totally automatic, you should see it quickly burn superboot and the zImage to nand, then it will start burning the rootfs image, this will take some time, you should see the progress bar fill up, you will also notice that the led 4 is flashing and as the progress bar goes over 25%, 50%, 75%, it will make a led go solid and start to flash the next one until it's finished.

Once the burning process has finished, the mini210S will beep twice and you will see some instructions in yellow on the lcd, you will also notice that your mini210S is now doing a knightrider impression!

Testing it worked
Follow the instructions on screen and switch S2 back to nand boot mode and power cycle the mini210S, after a few seconds you will be greeted with Tux, after about 25 seconds, you will see a few services go live on the lcd and then you should be presented with the TS calibration screen, as is standard with these devices, touch the calibration points (boxes with crosshairs in them!) one by one to calibrate the touchscreen.

Next up pick your language (You can have any language you like apparently, as long as it's english:us :D), setup the time and timezone and you're done.

Changing the language
You should now be presented with a window with a number of tabs, unfortunately, it's all in chinese, as I'm english I needed to change the language.

To do this yourself, tap on the 2nd tab, then using the scroll bar, scroll down, until you can see a icon that has a chinese flag over the top of a british flag and tap it, in the app. that opens, click on your preferred language (english, chinese or japanese), then click OK, qtopia will now restart and you should now be able to see all the tabs and icons in your chosen language.

That's about it for my testing, the rest is down to you to have a look around in the menus and see what it can do, don't forget to refer back to the manual for more information about the apps/options that you can configure.