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, http://helpx.adobe.com/flash-player/kb/archived-flash-player-versions.html I downloaded the latest version (Flash Player 11.1.for Android 4.0 (11.1.115.17)) 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 http://www.bbc.co.uk/mobile/iplayer 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:

http://www.1mobile.com/app/market/

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
to:
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.

Friday 24 August 2012

My mini210S has arrived

My friendlyarm mini210S package arrived from andahammer a couple of days ago, unfortunately, I didn't get much sleep, so I didn't have a great deal of energy to do much with it except unpack all of the goodies in the box and power it on with the preloaded android 4 image.

A quick run through some of the goodies and there are some very interesting bits, the sdio breakouts look really cute, they fit on the mini210S sdio header, which just happens to have 3.3v, 5v, gnd, spi and i2c on it with a protoboard style which opens up a world of possibilities.

I got the cam130 module which fits into a dedicated cmos camera port, I'm looking forward to seeing what it can do in my astro projects, I think the cmos module on there might give me access to the 'frex' pin via the 2mm header block. 

I got the sdio wifi module with it's obvious benefits. I also got the comprehensive mini210S cable kit for every header on the board and there was also a good quality mini hdmi to hdmi cable :)

Charlie also very kindly chucked in some free goodies, some poe kit, a tiny usb wifi adapter, a nice clear breadboard and a handful of jumper wires, Thanks Charlie!!

So with anticipation I plugged the power supply into the mini2010S, checked that it was in nand boot mode and flipped the power switch, the first thing I noticed is that I didn't have to fish around for jumpers, it might seem daft but little things like switches for boot mode settings are a refreshing change :)

I have zero experience with android, so as far as boot times go I have nothing similar to judge it against, it was around 20 or so seconds but either way, I wasn't annoyed by the wait.  Once the gui is up and running, the mini210S is nice and responsive, flipping through the menus is a pleasant experience, with a mixture of touchscreen and the 4 side buttons to help you navigate, it is a resistive touch screen so there are no gestures/multitouch but it's been as good as other resistive touchscreen devices I've used.

There are plenty of apps. preloaded but for now I settled for trying the iTest app first, testing the leds, pwm buzzer and adc, as expected they worked just fine, the led test app. allows you to turn the leds on and off independently of each other and the buzzer app allows you to set the pwm speed and hear it through the buzzer, no shock there then!

the A/D Convert test shows the value of the ADC pin that is connected to a small blue pot, which is nestled between the buzzer and the back of the ethernet socket, if you adjust the pot with a screwdriver you can see the adc value change on screen, unfortunately there appears to be a glitch in the display side of the software as it's not rendering the bottom 1/2 of the numbers but you can clearly see that the adc is working as expected.

I also tested out the sdio wifi module, unfortunately there doesn't appear to be an app. store icon/app installed on the mini210S so I couldn't go and test bbc iplayer etc. but browsing the bbc website was simple enough and youtube worked just fine too :)  I tested the music player and got very decent quality audio from the headphone socket.

The video player appears to want mp4/aac encoded video, so a quick re-encode of some video with my cuda enabled graphics card and a few minutes later I was watching video on the mini210S, I had to access the video via the 'es file browser' app but once you click on it you get the option of using the es video player or the gallery software, either is capable of playing the video and does it well.

Last thing I tested was the cam130 cmos camera module, as previously mentioned, it fits onto a dedicated cmos camera socket on the mini210S, in android there is a simple camera application that allows you to take snapshots or record video, the software starts up quickly and presents you with a picture.  There are the usual settings buttons which allow you to change exposure, brightness, mode etc. as well as a set of buttons to allow you to swap between camera/video modes and a third mode that I haven't quite worked out yet :)

So that's my initial experience of the mini210S and android, I'm really happy with the potential of the mini210S, the onboard android image has enough software on it to give you a very reasonable media experience out of the box, I forgot to mention that you can also connect it to a hdtv, for a device that has been built for developers, it's a great little media centre which just adds more power to your elbow :)

I can't wait to get linux onto it now and start developing, the mini210S has shown itself as being a very capable device just from me messing around in the stock android and I've barely scratched the surface, I have a feeling that it's just going to get better and better once I start developing on it :)

Monday 20 August 2012

Hot Pi!

It turns out that the raspberry pi has hit another hardware snag, with a forum post outlining the issue here: Fixing 1.8V power rail design error  Essentially, there is a 1.8v filter pin on the ethernet/usb chip that has actually ended up being connected to the 1.8v rail, this can cause the ethernet chip to supply power to the whole 1.8v rail instead of the linear regulator that is supposed to be doing the job, this in turn makes the ethernet run hot.

Not a complete show stopper but could certainly be compounding issues that are prevalent in the current usb drivers, current work on the usb drivers and possible fixes are being discussed here.

Unfortunately, the usb fixes have not fixed the issues I am having with my webcam, luckily I have the mini210S coming to experiment with.

Clearing the decks for the min210S

So it looks like I'm getting a mini210S, in honour of the fact, I decided to clear some bench space for it.  Not sure about anyone else but my computer desk is a mixture of computers and random circuits/electronics all vying for the same desktop space, it's a bit like the penny falls machines in the arcades, eventually, stuff makes its way to the back of the desk and falls off. 

I've been slowly tidying my desk over the last few weeks, lots of sets of plastic drawers etc. for the random stuff I collect/use.  After all the tidying, I now have a reasonable 12-18" sq. area of space that should do just nicely for the 210S and any associated circuits that are bound to build up around it!

Thursday 9 August 2012

Mini210S

In my introduction I mentioned that I'd been looking at the mini210S, after my raspberry pi experience, I feel like I needed a full arm dev board, it's a logical progression really, from hacking arm devices, to a small dev board, to a full board.  I've often looked at the mini2440/6410 etc. range of arm boards, they always impressed me as looking like very neat devices, well presented board designs with ports everywhere and some nice looking addon screens, however the price put me off.

I spoke to a friend recently about the way forward and he informed me about the forthcoming mini210S release.  As you can see, it's a very well featured device, it comes with an arm cortex a8 @ 1Ghz, 512MB of ram and 4gb of nand, a huge list of features and more IO connectors than you could shake a stick at.  Very interesting indeed!

Mixed feelings...

As I mentioned in my intro, I have hacked/developed on the didj/df3120 arm boards, they are fantastic little units for cutting your teeth with hacking and linux development but sometimes you just want something that hasn't had it's pins purposed by someone else.

So recently I have been messing around with the raspberry pi, I have mixed feelings about the Pi, it's an arm11 clocked at 700Mhz default, 256MB ram with a custom broadcom gpu (opengl ES 2.0 3d).

It's definitely fulfilled the cheap niche, you can undoubtedly program on it so it fulfills the foundations aims.  My pi board worked great right out of the box, my son's pi needed the crystal for the smsc ethernet/usb chip reflowing before the usb would work. 

Power is finicky on the pi, you have to find the right combo of psu and powered usb hub, even then you may or may not get a specific usb device to work, experimentation is key.  Don't get me wrong, I like the pi, I was aware of quite a few of the caveats before I purchased it, so some of these issues are to be expected and I have learnt a few things on the way but right now the specific project I wanted the pi for (apart from tinkering) has stalled, hence the mixed feelings.  I really need to bite the bullet and look at a full blown arm dev board.


I guess I should intoduce myself?

Hi, My name is Reggie, I'll get the namebadge made up later if that's ok?  I am a tinkerer/hacker with embedded devices (atmel and arm), this will be my space to document some of the stuff I mess around with.  I have developed software for the leapfrog didj/explorer consoles, hacks with the parrot df3120 photoframe and more recently I have been messing around with the raspberry pi, I am currently looking at a mini210S but I'll talk more about all of those in future posts.