Posts Tagged ‘hardware’

Mesada Flexiview FV-1 “AndroidTV” Technical Review

Monday, January 9th, 2012

I’m calling this a “technical review” because I’m not going to spend much time talking about using Android on this device. The reason for that will become apparent.

I recently purchased two “Android TV” boxes from aliexpress, for investigation and general hackery.

Android TV front
Android TV back
Android TV remote

You can buy these from various online vendors (dealextreme, aliexpress, etc.) Also under other names – for instance it’s sold here in Australia as the Kogan Agora TV.

The “original” product is the Flexiview FV-1, made by Mesada Technology, Shenzhen.

High-Level Specifications

  • Cortex-A8 1Ghz CPU (Samsung S5PV210 SoC)
  • 512Mb RAM
  • Hardware supports 1080p video decoding, 2d/3d acceleration
  • HDMI output
  • Wifi, bluetooth, ethernet connectivity
  • 3 USB 2.0 ports
  • RF remote with wiimote-like infared pointing feature

Price varies between $130 & $150 online.

Bear in mind that like most of these “shanzhai-esque” products, what’s advertised on the web page may be different to what you get. There are a few similar-looking products out there – I’ve seen ones with SoCs from Rockchip and Amlogic. Also, specs and build quality can vary widely depending on vendor.

First Impressions

The hardware is cheap & cheerful. The marks and scratches visible in the photos weren’t me, it was like that out of the box. Nevertheless, things mostly work and the build quality seems OK. One thing I did notice is that the video output can be a bit picky on the stock firmware – only some of my monitors worked, and I saw reports of some TVs not working. I think the requirement may possibly be supporting a 720p YPbPr video mode.

The other cheap and nasty bit is the little plastic “door” on the front covering 2 USB ports. It’s hard to open and close, and I doubt any serious user would leave it there for long.

Android TV?

Three word review of the “Android TV” experience: “really, don’t bother.”

If you’ve never heard of “Android TV”, that’s because it doesn’t really exist. There is a thing called “Google TV”, but those products are relatively rare and closed-source and not available for $130.

“Android TV” really means “the plain vanilla phone operating system, with a remote control that emulates a mouse & keyboard which you then use to control an interface designed for touch-screens.”

Sound nearly unusable? It is. A touchscreen interface is not a PC, which is in turn not a remote control interface. It’s horrid.

The device works pretty well with a wireless keyboard and/or mouse. Which is fine, but you’d be just as well off buying a tablet with an HDMI port (for less money) or even just hooking up an old PC.

I didn’t use Android much – I can confirm the browser works quite nicely. However, looking around the internet I saw a lot of reports of patchy video playback. Which is disappointing.

Firmware Updates

As usual for these devices, the vendor offers no after-sales support. Firmware updates are scattered around the net in strange places (others are hidden in various giant forum threads!)

So why did you buy two?

I bought these because I have a weakness for cheap low-power ARM hardware. I wanted to see how easy it was to port GNU/Linux, and maybe have a stab at porting XBMC. I’ll put details about running GNU/Linux in a follow-up blog post.

Of course, to get hacking, you need to open the cover:

Top of FV-1 board

Here’s the board. The sloppily attached cable is the serial console. Thanks to eDIY NZ for posting the serial cable pinout online – it’s a 3.3v lvTTL port, 115200bps. Looking top-to-bottom in this photo the pinout is 3.3v/TX/RX/GND. The hot glue was originally for strain relief!

For a serial link, I used my favourite source – a mobile phone USB<->Serial cable that I got for $2 at an op shop1.

Also note the unpopulated USB port, some unpopulated front & rear connectors, and the button cell battery. The battery surprised me, I wonder why they didn’t drop it to save on BoM (bill-of-materials) cost.

The large clear LEDs at the front are the IR LED beacon for the “wiimote-style” remote. The red LED is for power (amusingly, HDMI standby power can come from the monitor and light it even when the unit is off!) The green LED is connected to a GPIO.

Under the covers

Pry off the RF shielding and things are a bit more interesting. “Open in New Tab” on the images if you want to be able to read chip names.

Naked top of FV-1 board

Left hand area contains:
* Power regulation.

Middle area contains:
* Asix AX88772A USB to 10/100 Ethernet adapter
* RAM
* System-On-A-Chip (Samsung S5PV210)
* Sandisk flash memory. I believe this is an “embedded MMC” interface – it shows up as an SD card to the kernel.

Right area contains:
* TI WL1271 combined Wifi & Bluetooth adapter, packaged by Samsung as the SWB-T37 and connected via SDIO.

Naked base of FV-1 board

On the underside, the most interesting thing is the Nordic Semiconductor nRF24LE1 2.4Ghz digital transceiver under the left-hand shield. This is connected via SPI and talks to a similar model IC in the remote control. I haven’t looked at the protocol yet.

Under the main cover, it looks like there is an unpopulated LCD interface. Plus something else totally unpopulated on the bottom left. Given that Mesada also make many GPS devices, maybe there is a car GPS that uses this board?

PCB identifier for this batch is 9000J-MSD-SACC-PCB-110107. Which I guess makes it just over one year old!

GPL? What’s a GPL?

As I’ve written before, GPL compliance for these kinds of products is generally poor. The FV-1 is no exception, as far as I know it is impossible to get source for the exact Linux kernel running on the device.

It is possible that distributors outside China, like Kogan here in Australia or “Flexiview NZ”, are able to supply GPL source code – they have more reasons to act ethically and not break the license, and potentially severe consequences if they are distributing a violating product. I don’t have any more information either way.

In the meantime, I bought this device anyhow because Samsung are generally proactive with open source development, and S5PV210 SoC support is part of the mainline Linux kernel. In practice, it was much more work than I anticipated to get a kernel building from source that runs on the device.

This is partially because of differences between the FV-1 and any available reference board. Partially because not all S5PV210 support has made it to the official linux-samsung-soc kernel. Partially because embedded development is always a bit of a pain…

Vendor Kernel on Device

The device comes with a 2.6.32 Android kernel loaded. Here’s a dump of the boot messages and dmesg, plus some interactions from the Android side – /proc entries, mount points, etc.

Among the custom additions in this kernel are:
* The TI vendor WL1271 driver (open source, but different to the Linux kernel one)
* The PowerVR SGX540 3D accelerator drivers
* In-kernel driver (it seems) for the RF remote, via SPI.

Also of note is that Android isn’t using a Framebuffer device for the HDMI output (the framebuffer in that kernel is for the LCD only.) Android must be using an earlier revision of the v4l2-based s5p-tv interface.

3.2 Kernel

As I said, it seems like no source exists for the 2.6.32 “vendorkernel” that ships on the device.

I now have a 3.2rc kernel that boots and can run a normal GNU/Linux, with xorg over framebuffer, available here on github. Not everything works yet, though. Some of the fixes are a bit hacky and need to be cleaned up. Hopefully, soon some of the support can go upstream to the mainline kernel. More on this kernel in a follow-up post.

Other Reference Kernels

After much searching, I found two other helpful S5PV210/S5PC110 kernel sources (not that I ever successfully booted them on the FV-1.)

The Samsung Galaxy GT-I9000 source code, available from opensource.samsung.com, is for very similar hardware.

A Chinese development board called the RealARM Realv210. This looks to be very similar to Samsung’s SMDKV210 development board. I think the FV-1′s reference board was either the Realv210 or the SMDKV210.

RealARM are distributing a number of useful resources, including a Linux 2.6.32 kernel for the Realv210 board. This reference has been very helpful in getting 3.2 up and running.

Mesada mboot

The last vendor surprise is the bootloader. “Mesada mboot” is the strangest embedded bootloader I’ve ever seen – among its features it appears to be able to both read and format EXT3 filesystems! Unfortunately, mboot is also closed source and no documentation is available.

Here’s a dump of mboot performing a full system update for an Android firmware

The good news is I’ve managed to reverse engineer enough of the format to “unpack” and “repack” mesada’s .osk firmware update files. This allows the flashing of a new kernel, or new system partitions, or even a new bootloader. The project is called mboot-tools and is up on github. There are some usage instructions in the README there, and lots of comments in the header file.

It should also be possible to use mboot_unpack & mboot_pack to make “custom Android ROMs” or possibly even as a first step to porting a newer version of Android (after all the hardware is very similar to Galaxy/Nexus S, which can run ICS.)

What’s Next

I’ll put a post up soon explaining how to boot Debian on the FV-1, explaining what currently works and what doesn’t.

  1. “thrift store” []

Huawei Sonic U8650 Review

Sunday, August 7th, 2011

Last Monday I walked into a Big W store here in Canberra and paid $188AU ($196US) for an Android smartphone, no network lock and no contract. I’ve had it for nearly a week now. What do I think? I think, with minor qualifications, that it’s almost unbelievably good.

Packaging

The Sonic comes in a fairly standard box. It contains the phone, battery, USB charger, USB to MicroUSB charge/sync cable, and a handsfree kit. There is a 2Gb MicroSD card already inserted in the SD slot.

The handsfree uses the common extended-3.5mm-stereo-plug pinout, same as the iPhone, which is convenient given the range of existing accessories (maybe this is a defacto standard now?)

Build Quality

The phone is a plastic “candybar”, and it feels very sturdy. I was pleasantly surprised after playing with the $99 Eken M001 and $149 M003 tablets last year, which each felt like flimsy rubbish.

The only remaining question is how the Sonic will age. The touchscreen doesn’t seem more susceptible to scratches than any other phone, but time will tell for sure. I anticipate it will hold up well, though.

Performance

The Sonic has a 600Mhz ARM11 processor (the Qualcomm MSM7227), and 256Mb of RAM.

Compared to the current crop of dual-core 1Gb superphones, you can almost hear the gadget fanbois scoffing and calling the Sonic underpowered and therefore useless. Still, the real proof is in how the phone runs.

The Sonic runs Android 2.3 Gingerbread extremely well – performance is snappy, apps open quickly. I haven’t tried enabling bells and whistles like live background animations on the home screen, but in out-of-the-box use the HTC Sonic runs perfectly without compromise.

Before using it, I felt dubious about the Sonic’s 256Mb of RAM. More or less every Android phone since 2010 has at least 512Mb, and Android is known to be a bit of a RAM-hog. For the most part though, I’ve found the Sonic’s low RAM1 to not be a serious factor. The built-in memory management in 2.3 seems to be good at keeping RAM free for use, while allowing apps to run in the background where possible. I installed “Advanced Task Killer”, but I haven’t needed to use it yet.

There’s a slight delay when re-launching something that’s been closed while in the background, but for the most part it’s pretty seamless. I was able to keep several web pages open at once in the browser without a hint of page reloads or slowdowns, while other apps kept running in the background.

Screen

The Sonic has a 3.5″ HVGA (320×480) 262-thousand-colour capacitive touchscreen. Again, although it isn’t on par with the amazing “super-ultra-OANULTIMOLED” screens in the Desire HD or the Galaxy S2, it is still a competent screen. On paper it’s comparable to phones like the HTC Magic, or pre-iPhone 4 iPhones.

The screen surface is very shiny, which made it a bit of a pain to read in bright sunlight (not unreadable.) Otherwise I find it very readable.

However, using Android 2.3 on the Sonic I did get the impression that 320×480 is now the minimum resolution that the Android designers are working with. In some situations there isn’t enough screen space for the keyboard, the status indicators, and context for whatever is going on. Although this can be a bit fiddly, it’s only in a few places and never totally unusable.

However, I wouldn’t want to use 2.3 on a lower-resolution phone, and I suspect future Android versions may not fit comfortably on the Sonic’s screen.

Similarly, even though a 3.5 inch screen is realistically quite big, the default Android keyboard can be a bit small and fiddly when typing. I installed the free Swype keyboard beta and although I’m still getting the hang of it, it seems more forgiving.

As a Phone

The Sonic has a good loud speaker, good earpiece audio quality and volume. It does the “basic phone thing”2 very well.

Vendor Customisations

Huawei, thankfully, has resisted the urge to heavily customise the Sonic. The phone ships with the default Android launcher running a custom colour theme, plus a somewhat neat “cube” effect when switching launcher screens and an Expose-like “quick home screens view” that you can pull up by pressing Back on the home screen. The latter effects are particularly nifty.

The crummiest bit of “vendorware” is “Hi Space”, which as best as I can tell is Huawei’s “me too” App Store with some bonus features, but without any apps I actually wanted to install.

This is placed front-and-centre on the default home screen, and when I first used it my heart sank. Thankfully, though, Google’s Android Market is also installed (although not on any launcher home screen), and works fine.

I think Huawei really made a big mistake featuring Hi Space over the Android Market. Novice users are going to fire it up and look for things like “twitter” & “facebook”, and they won’t find them. If they don’t know they can dig around for the Market, this has the potential to cripple their use of the phone. It’s pretty much textbook “bad user experience”, and for what? So Huawei can pretend to be Apple?

Music Player

Huawei have also put in their own customised “Huawei Music” player. It is um, heavily, um, *cough* inspired by the iOS music player.

Even down to a very familiar “cover flow” type view if you turn the phone sideways:

Where did they get that 'unknown album' icon from, anyhow?

… however, amusing “inspirations” aside, the Huawei Music Player app actually seems pretty good.

EDIT: The next time I used this player I noticed a pretty major bug – all albums are played in alphabetical order by song name, even when the songs have track number tags & track numbers in the file names. Annoying. Have installed the PowerAMP trial.

What lets the Sonic down as a music player, unfortunately, is the sound quality. There is a significant background hiss any time the internal amplifier is on, loud enough in headphones that it eclipses even moderately quiet details in music. I’m not a card-carrying audiophile, and I’d expect some hiss in any consumer music player, but the Sonic is loud enough to ruin the experience for me. It was audible through the cheap-and-chearful earbuds that came with the Sonic, downright grating with my Sennheiser MM50 in-ear headphones.

Given that music was one of the reasons I went back to a smartphone, it’s safe to say that if I ditch the Sonic for any reason, it will probably be audio quality.

Battery Life

On my first full charge I got 2d 11h 27m before battery dropped below 3% and I decided it was time to charge.

That was with Wifi on about 35% of the time, GPS and mobile data on approximately 10% of the time, and only used lightly. Email, facebook, twitter were all checking for updates in the background.

Writing this now, the phone has been on battery for 50 hours with plenty of use and although the lock screen advises to “connect your charger”, I still have plenty of juice.

So I’m pretty happy with that. I think if you turned absolutely everything off and didn’t use the phone then you’d have a shot at the 72 hours that Huawei claims it will stay on standby for.

Camera

Unsurprisingly, the 3.2MP camera in the Sonic is pretty “camera phone like”. It’s good enough that in good light you can use it as a “visual notetaker”. You won’t want to hang the pictures on your wall, though.

For the pixel peepers, here are 3 quick unretouched sample snapshots from the Sonic. One taken at dusk, one on an overcast afternoon, and one indoors at night (poorly lit room.)

NFC

The Sonic also features NFC (Near Field Communication), which from what I can tell seems like a more complex version of RFID. The promise is that you’ll be able to do things like banking transfers by waving your phone near a reader. If you live in Europe or Japan then I expect this is very exciting, but I’m not holding my breath for the banks in Australia to roll it out.

Of course, I guess NFC support does mean I could get an RFID tag embedded in my arm and use it instead of an unlock code! :P

“Rooting” & “Custom ROMs”

When I first bought this phone, I expected it’d take some “customisation” before it was really any good to use. I figured at the time it was a compromise, the low cost in dollars means a cost in time spent tinkering. I like tinkering, so I figured I’d give it a shot.

Imagine my surprise when the phone is very good out of the box. I don’t really feel like I will want to load a “Custom ROM”, except maybe just to experiment.

That said, at this stage my simple investigations into serious customising haven’t gone well. “z4root”, apparently the easiest way to unlock root access on Android 2.3, doesn’t seem to work (exits suddenly but cleanly after the status message “obtaining root shell”, seemingly without having actually done so.) I haven’t done any more investigating yet.

The Sonic is a newly released phone though, so I expect more information and tools will appear in time.

Open Source Situation

Huawei themselves make Linux kernel source available for their devices, and the releases seem timely and are (apparently) complete. This makes me happy, and bodes well for community developments in the future.

Compared to the Huawei Ideos U8150

I came to the Sonic U8650 after looking at the Ideos U8150, which is now available for less than $100AU through some carriers. The Sonic is very similar to the Ideos, although there are some noteworthy differences:

The Ideos’ screen is smaller at 2.8″, and half the resolution at 320×240. I haven’t used the Ideos, but considering that the Sonic’s screen feels somewhat cramped I think this is the number one reason to choose the Sonic.

The Ideos’ chipset is MSM7225, very similar to the Sonic’s MSM7227 although slightly slower (528Mhz vs. 600Mhz.) Also the MSM7227 has a 256kb L2 cache, which the older sibling apparently lacks. All told, performance should be marginally better on the Sonic.

The Ideos ships with Android 2.2, although there is a “Custom ROM” with 2.3. 2.3 in the Sonic works very well out of the box, and this probably makes it a better option for most people. However, the availability of custom ROMS can be seen as something of a positive for the Ideos, because there are people actively working on source-based Android builds and kernel versions. I’m hoping that in time the Sonic will prove similarly popular with tinkerers, given its good ratio of cost to functionality.

Other Alternatives

What other budget Android options are out there? From what I’ve seen, in the same price bracket there are some similar phone models from major manufacturers. For instance, the Samsung Galaxy Mini or the HTC Wildfire. But they mostly have lower-resolution 320×240 graphics, and many (like the Wildfire) don’t officially support Android 2.3 yet.

Telstra sell the ZTE Racer as the Smarttouch for $99 but it’s both a small screen, resistive touchscreen (eck) and comes locked to Telstra. The ZTE Blade is apparently a good option (more RAM than the Sonic and a higher res screen) but it’s not available in Australia yet, you’d have to import it yourself.

Finally, there are secondhand smartphones. The HTC Desire & Samsung Galaxy S both seem to sell used on ebay for only marginally more than the Sonic costs new, so that could be a good alternative.

Bottom Line

Four years ago a 4Gb iPhone cost $499US, a year later the HTC Dream (Google G1) with Android cost $399US. The Huawei Sonic is several times more useful and usable than either of those phones, and costs less than half as much. I can see it being huge in markets like China and Indonesia, where many people want smartphones but most do not have the buying power.

I guess the Sonic’s affordability isn’t surprising given the unending march of technology towards lower costs with more features. However, it still daunts me that four years ago smartphones were boutique nerd curiosities, and now they are practically commodities, with no tradeoff in quality.

In other words, I’m amazed at how happy I am with this phone. It’s not going to set the world on fire, but it works well and does everything I would want from a smartphone.

Apart from headphone audio quality, the dislikes I do have are all niggles with Android rather than problems with the Sonic itself. And I suspect a lot of them are just the experience of a former iPhone user getting used to “the Android way”. Not the fault of the Sonic.

And did I mention that the Sonic costs $188AU?! Bought from a bricks-and-mortar store with a “change of mind” returns policy, and a walk-in return to claim the one year warranty. Without any network lockin or contract. That blows me away.

If you want a competent Android smartphone on a budget, and you’re not interested in “alpha geek” pissing contents over features and specs, then I totally recommend the Huawei Sonic.

  1. Being an embedded systems programmer during the day, I honestly find the very notion that 256Mb RAM is considered “low” to be cringeworthy. That’s Android for you, I suppose. []
  2. I know, people still make phone calls. WTF! []

Ubuntu on Asus eeepc 900AX

Tuesday, October 12th, 2010

These are some quick notes from installing Linux, specifically Ubuntu Netbook Remix 10.10, on the Asus 900AX.

The 900AX is a throwback to the original eee pc 701. Side by side, they look nearly identical – the 900 just has a 9″ screen, different keyboard labels and 2 USB ports (not 3.) There are a few other budget concessions, for example the RAM is apparently soldered directly on the board instead of on a removable DIMM.

This is offset by the fact I picked it up for just $198AU on sale. It boggles my mind that you can walk into a store and buy a fully functioning brand name laptop computer, new with a warranty, for $200.

Installation

First build your USB stick. You can either do it the easy way as described by Ubuntu, or mess around with dd if you’re keen (I went for the easy way.) Once the USB stick is inserted, boot up and press F2 to get to the BIOS menu. With the USB stick inserted, there will be a “Hard Disk Drives” menu (under Boot) which will let you choose the USB stick as your boot device of choice.

For some reason the trackpad didn’t work the first time I booted the installer (it worked on subsequent boots.) Apart from that, the Ubuntu Netbook Remix 10.10 installation went smoothly. Until the system froze when restarting after installation.

The freezing problem persisted, with freezing/lockups on shutdown, restart, suspend or hibernate. The RT3090 wireless was the problem. To fix it, you can install the DKMS kernel module package containing ralink’s proprietary source drivers. I just downloaded the prebuilt DKMS package on that page, I didn’t build it myself (lazy!) Then I blacklisted the OSS ralink modules:

Appending to /etc/modprobe.d/blacklist.conf

# blacklist other Ralink modules in favour of 3090 DKMS mod
blacklist rt2860sta
blacklist rt2870sta
blacklist rt2800pci
blacklist rt2800usb
blacklist rt2x00lib
blacklist rt2x00pci
blacklist rt2x00usb



Asus at MHV

… fixed! Other than that I’ve only noticed two problems:

  • The brightness hotkeys erratically switch between two brightness settings only, bright & dim. I remember this working properly under Windows in the store, so I’m guessing a driver issue.
  • The battery gets hot when charging, and the plug pack tip gets extremely hot – I almost burned myself on it after an hour of charging & using! Not sure if that’s a common fault or just mine. EDIT: This seems like it was me not properly inserting the plug. Has been fine since.
  • EDIT 2: At one point recently the trackpad totally stopped responding to me. After lots of messing around and wasted effort, I fixed it by shutting down, disconnecting power, removing the battery, and waiting for 30 seconds before powering back up.

Everything else seems to work out of the box so far. Nothing at all like the “bad old days” of Linux hardware support.

If I find anything else useful, I’ll append it here.