Tag Archives: android

Project “media player for my wife” finished

For long time I had one project on my todo list: media player for my wife use. Has to be easy to use and control, does not need connecting anything when you want to watch a movie etc. Typical black box design.

Idea was to take one of boards I have at home, plug 750GB 2.5″ hdd to it and put it on a box with only power and hdmi ports exposed. All running Ubuntu (with distro kernel) or Android. And controlled by simple remote control.

I tested several platforms as a base for it. First was Pandaboard — but as I have EA1 board it was far too slow for my use. And with current kernels there is no support for any hardware decoding or video acceleration (yay for PowerVR and yay for Texas Instruments). Then I purchased Wandboard Quad. Nice device, fast but I lacked patience to get it to properly recognize monitors so it always booted into XGA resolution. HW acceleration was a bit of fun as well.

Then I got Minnowboard Max from Dave Anders. After first days of playing with board it was visible that it can be a good platform for this project. But then something happened and board required RMA which took quite a long time (remember to pay for air transport of package while sending Europe->USA).

During last 2-3 weeks I was working on it in free time and finally got it done:

MMax in a box

Box contents:

  • Minnowboard Max (dualcore Atom with Intel GPU and 2GB ram)
  • 750GB Serial ATA 2.5″ hdd (bootloader, system, movies storage)
  • cheap Realtek WiFi dongle
  • cheap usb hub
  • remote control dongle
  • microhdmi/m -> hdmi/f cable
  • hdmi/m -> hdmi/m adapter
  • hdmi/f -> hdmi/f wall mountable adapter

Amount of HDMI adapters was required as finding microhdmi/m->hdmi/m cable is (probably) impossible.

USB hub was fun. I have several of those but this one got removed from case, got all cables desoldered (two going to second board with additional two ports and one going to host) and then fun started…

Only one connector had 2.54mm spacing while both host and second port one were some random size. After soldering single pins for host cable I decided to not add 4th port. Pictures show why ;D

IMG_20150525_171420 IMG_20150602_162548 IMG_20150602_162602 IMG_20150602_163710

That’s hardware. For software part I used Ubuntu 14.04 LTS with Kodi 14.2 ‘Helix’ as media center. After few small tweaks (automatic login to ‘kodi’ user and into ‘kodi’ session) system boots directly to movie selection.

But how to choose what to play? My Iogear wireless keyboard will not go with media player box… I bought Natec A30 airmouse but then it shown that it’s dpad buttons work only as IR control for TV ;( But then I realised that years ago I bought Sony bluetooth remote for Playstation 3 console (for some other random project). And it still works ;D

Still have to sort out key mapping as lot of remote buttons have no sense for media center (I have no idea what for those triangle/circle/box/cross are for example) but this is small part which I already have partially solved. And need to add BT dongle into the box to get it working ;D

96 boards again?

During Linaro Connect 2015 Asia there was announcement about new Linaro project called “96boards”. It is about making cheap ARM/AArch64 boards in same form factor and same placement of ports. And first board named HiKey was presented. Today third one — from Qualcomm. So we have two boards now (2/96 was not yet announced).

I prefer not to comment on form factor, lack of Ethernet, mobile phone cpus and other things people do not like but about software requirements.

96boards specification v1.0 says:

Minimum Software requirements for 96Boards certification will include:

  • Boot architecture (open source implementations are strongly recommended)
    • Support for bootloader such as U-Boot/FDT, UEFI/ACPI, UEFI/FDT
    • Support for a secure execution environment (optional)
    • Support for ARM Trusted Firmware (ARMv8), including PSCI APIs (optional)
  • Accelerated graphics support
    • Accelerated graphics drivers need to be fully supported either with open source code, or through royalty free binary drivers. If binary drivers are utilized, the vendor will provide support to provide updated drivers/libraries to support new mainline Linux kernel features.
  • Kernel
    • A kernel based on one of the following that is buildable from source code and any required binary blobs:
    • kernel.org latest “mainline” or “stable” kernel
    • The latest Google-supported Android kernel version
    • One of the last two kernel.org LTS kernels (for example Linaro LSK)
  • Operating system
    • The latest released (stable) version of one or more of the following open source distributions shall be made available for a 96Boards CE compliant design:
    • Android
    • Debian or Ubuntu
    • Fedora or Red Hat
    • An OpenEmbedded/Yocto build of a Linux distribution

I hoped that Linaro will be a place where free/open source software would matter. But it looks like “let release whatever you want as long as size and ports match” deal. Any blob as bootloader, binary graphics drivers (does someone remember TI OMAP line and PowerVR? Those boards run with raw framebuffer nowadays).

And that kernel requirement… HiKey uses cpu which is not in mainline kernel, so does Qualcomm one. Are they in AOSP kernel? Maybe. But does someone else than Android uses those trees for serious work? Latest I see in kernel-msm (which may not be proper place to check) is 3.10 which was released (in mainline) nearly 2 years ago…

I really wonder how “latest released (stable) version” of Debian/Fedora/Ubuntu can be made available for those boards when all those distributions use mainline kernel only (I do not count user generated remixes which are not supported by anyone).

So I wonder will 96/96 board came with mainline support, open bootloader and open drivers for everything. Time will show. Until that I am not so interested.

New project: Pandaboard based media player

I need an offline media player to play movies from hard drive. And I did not managed to find something interesting on a market. So decided to take a look into my electronics trashcan and dig some parts from it.

What did I found?

  • PandaBoard EA1
  • USB 3.0 to SATA adapter
  • 750GB 2.5″ SATA hard drive
  • 2xUSB PC bracket
  • 3.5A 5V power supply
  • u.FL to RP-SMA cable

Looks just fine for my needs. OMAP4430 ES2.0 cpu should be enough and with some libraries should decode everything I have. Just 1GB ram but hope to be enough, there is WiFi and Bluetooth on board with u.FL connector so I can get external RP-SMA antenna. HDMI with audio but no idea about CEC for remote control. And there are 4 USB ports (two at rear and two on pins) so internal hard drive is possible without any extra cables sticking outside.

OK, hard disk will be over USB 2.0 which is quite slow compared to SATA. But that’s all what is available on board. Otherwise I would have to buy new one.

Will have to find big enough plastic case to fit both boards and hard disk, cut some holes for power, HDMI and maybe also USB and RP-SMA antenna connector. Then solder J3 and J6 pins to get extra 2 USB ports, power and reset buttons and maybe even will do power LED.

Then connect USB3 -> SATA adapter into internal USB port, wire power cables to charge it directly from Pandaboard power plug (for when USB would not be enough) and get it running.

Have to check is there any good Android build for a board as this may give me more options than GNU/Linux distros with XBMC like apps. And have to solve remote control as well.

UPDATE: I booted Android 4.3.1 Jellybean (Linaro 13.10) on the board. It is so slow (with HW acceleration) that I am unable to use it. So project gets postponed to unknown date.

TouchWiz? Thanks, but no

Week ago I was at SmartDevCon conference where Samsung was main sponsor. They had some contest which I won and got Samsung Galaxy S4 (GT-I9505) phone.

Phone arrived on Friday just before my trip to WeCan demoparty so I had to spend some time with original software instead of starting from flashing CyanogenMod. It was painful experience…

Hardware is nice — Qualcomm Snapdragon 600 with 4 cores, 2GB ram, 5″ fullhd screen made it nice device but software… I had a dejavu and felt like travel back in time to moment when I bought Nexus S. Why? TouchWiz looks and feels like Gingerbread ;(

I have read many times posts where people complained about it, saw it on Galaxy S2 but never thought that it is so bad until played with it for few days.

As a person used to clean AOSP interface I had problems finding my place with it. For example dialer:

Dialer - keyboard Dialer - connection list

As phone is running Android 4.2.2 I would rather expect Holo compatible UI with tabs which can be switched by simple swipe. But no, Samsung decided to give users Gingerbread style with tab captions to tap if you want to switch. I did called few people by mistake as swipe right is call (left == send text message). Sure, dialer can be replaced by other application from Google Play Store but why?

Compare it with standard Android dialer on my Nexus 4:

Dialer on Nexus - keyboard Dialer on Nexus - connection list

Note also indicator icons on status bar. On Nexus WiFi icon is near to GSM signal one to not take precious space — not possible for Samsung. And while on AOSP network speed icon (GSM/EDGE/HSPA(+)) is above signal one, TouchWiz has separate one — just like it was in Gingerbread.

Or notification panel… This one is insane:

Notifications Quick Settings?

I already disabled brightness slider which was there as well. Note how pressing button in right top corner changed switches from ribbon to be full screen. I would like to remind Samsung that Android 4.2.2 has Quick Settings panel for such stuff (screenshot from my Nexus 4):

Quick Settings on Nexus 4

I could add more and more screenshots and complain about many things. But will not because I feel sick when have to use this UI. But just two more, Settings and recent apps:

Settings Recent apps

Note tab captions again, huge fonts (with text size already set to “small”). Recent apps list is another crazy thing. Device has “hardware” buttons so “Google Now” is harder to run now.

Speaking of buttons… Let me quote Android documentation for developers:

Beginning with Android 3.0, the Menu button is deprecated (some devices don’t have one), so you should migrate toward using the action bar to provide access to actions and other options.

And Honeycomb was released over two and half year ago. Recent apps button would be much more useful.

So what next? CyanogenMod 10.2 (Android 4.3 based) will land on device as usual.

I have a new time waster: Ingress

Months ago a new game started: Ingress. There is a story behind it but not that I care about it.

In short: there are two teams: green (Enlightenment) and blue (Resistance) trying to take over the world by “hacking portals”. Sure, someone could say that there are many MMORPG games on a market already and they would be right. But there are few things which made me play Ingress.

  1. To play you have to get your ass moved as game takes place in so-called “real world”. You know — streets with people, cars etc.
  2. Gives possibility to learn many more or less interesting places around.
  3. Another opportunity to meet other people and have something common to talk about.

For me it started 4 weeks ago when I had three spare hours during Sunday evening. Joined the Enlightenment and hacked some portals in Warsaw, made few links and ended with a bit above 10k AP which gave me 2nd level. Next evening (in Szczecin) I met some local players and they helped me to get to 3rd one.

Then time went… I convinced a friend to play and helped him to do L3 in one evening :D And during last weekend I was in Warsaw again and made 7th level (with help from local people who told me where to go to get some AP in quick and easy way).

But what I like most is a need to grab a bike (or take a walk) and go to city centre to spend some time in active way ;)

Nexus 7 — upgrade or complain?

Around week ago courier brought me Nexus 7 tablet (32GB, wifi only) as kind of upgrade to my Archos G9 80 ‘so called’ Turbo one.

First steps

Charged a bit, booted into Android 4.2 and was greeted by “upgrade to 4.2.2 is possible” soon after wifi connection. But decided to go my way instead ;)

Fetched Clockworkmod touch recovery, CyanogenMod 10.1 nightly image and Google Apps 4.2.2 pack and booted into bootloader. Quick ‘OEM unlock’, flash of new recovery and few minutes later I had CM 10.1 running just like I wanted.

Restored apps from Archos with use of TitaniumBackup and after some configuration I had tablet which responds fast and behaves properly.

Multiuser stuff

As my daughter was main user of Archos I waited for Android 4.2 to get multi user capabilities. Played a bit with them on G9 (with Paranoid Android installation) but 512MB ram and OMAP4430 gave my terrible experience with far too many moments when I wanted to crush tablet into pieces…

So when Mira had come from kindergarten I shown her Nexus 7, made a photo with internal ‘want to be a camera’ thing and gave instructions on how to turn device on and switch to her configuration. She had no problems with understanding it ;)

There are some issues with multiuser stuff. Each user is expected to have Google account, applications are not shared etc. I understand why but in my case it was annoying.

But there is Multi-User App Share app which allows to share applications with different users. So Mira has all her children apps and games available and is not able to spend real money on in-app payments due to lack of Google account (and credit card). I was able to remove them from my configuration as well.

Sharing files is more complicated as so far I did not check is there a shared space for them. So each of us has own music/movies.

Do I miss something?

There are few things which Archos G9 80 has and Nexus does not:

  • HDMI output
  • microSD slot
  • USB Host port

I may miss video output sometimes but had not used it for over half a year now. MicroSD would be nice so I would not have to buy 32GB version. But ~20% of tablet (50$) was sponsored by Tizen ;)

And by USB Host port I mean normal EHCI host port. Not an OTG one present in Nexus 7.

But I do not miss crazy upgrade scheme invented by Archos. Also do not miss I Scream for Sandwitch version of Android they offered. We have XXI century and their upgrade path is from previous millenium.

Complains?

So far I did not find something to complain about. OK, screen could be more square (4:3 Archos, 16:10 Nexus) but it is fine for me. Ask me in few months ;)

Revision 2013

This year I spent Easter in other way than in past years. Instead of staying with the family I went for demoscene party — Revision 2013 in Saarbrücken.

Please note (RSS readers mostly) that this post will contain many YouTube videos embedded. Please go to my blog to have them properly displayed (I use WordPress + Jetpack plugin to embed them).

Friday

Took us 12 hours to get there (mostly due to waiting on TXL and FRA airports) but we managed to be at party place around 19:00 on Friday. Registered, met friends and went to Kirchberg Hotel to drop bags.

Hotel has two stars but was perfectly fine for such trip as our. Clean bed, good breakfast, quiet place (except church bells at 10:00 on Sunday). All just ~2km from E-Werk where Revision took place.

Back to party, more people to meet, discuss a bit with guys from ARM Ltd about Samsung Chromebook, Cortex-A15, Mali etc. One guy joined with his Chromebook and recognized me when I asked “may I fry your speakers?” :D

Timetable listed one interesting thing: “Curio’s 2012 Essentials” which was ~1 hour long set of PC demos from previous year. It was nice as I was totally out of PC scene so was able to check how it looks.

Taxi to hotel was just 6€ ;D

Saturday

Attended “How to start writing compilers without a Ph.D” seminar as it sounded interesting to me. And it was ;) Video below:

Also had discussion with ARM guys about presenting not only technical demos (like Unreal Engine one) but also to show some demoscene productions. Soon “Beginnings” by Elude started on one of Nexus 10 tablets and was working nice. But coder who wrote it was not so happy about that when we discussed that later… I think that it would be a good thing for ARM Mali team to get some good demoscene groups to write demos for Android platform to amaze people with nice looking productions. ARM even had seminar for OpenGLES 3.0 API:

But Saturday was also full of competitions. Tracked music, oldskool music (read: 8-bit mostly), photo, animation/video, game, ascii/ansi, Amiga intros, PC 4K intros, Oldskool demos (8-bit, Atari STE, Amiga 500)…

There were many entries in compos where productions from long time no see groups/people were presented. For example in oldskool demo we got “RINK A DINK REDUX” from Lemon which was astonishing:

There were also demos for Amstrad CPC, MSX1, ZX Spectrum, Commodore 64 and other platforms. Oldskool music compo had even NES entry ;)

But it was also visible that demoscene is not full of amateurs like it was years ago. Some of videos in animation/video compo had professional level. “Lübeck 24x7x365″ took 50 days of recording but was really nice:

There was a concert in the evening… Ear plugs were not strong enough for me so I spent most of time outside talking with people. Next time need to take some better hearing protectors…

Sunday

As Saturday ended really late for us and competitions were planned for 13:00 we decided to not rush and stay in bed longer :) But at around 10:00 bells in local church started their music compo so we were not able to sleep anymore.

We got music, graphics, wild and of course PC 64K intro, web browser demo/intro, Amiga demo and PC demo competitions that day.

Graphics one was won by “Double Trouble by the Royal Forces” made by forcer & prince. Huge amount of details which was not so visible on big screen as it was on a tunnel’s wall where it was hanging as few square meters photo copy.

Wild compo… Man, that was something great. From productions made for Arduino (with some shields) though ARM Cortex-M3 one to interesting hack by Dexter/Abyss which shown one view on monochrome TV and second on oscilloscope while both were connected to Composite video signal only… See it for yourself (or grab separate entries from scene.org FTP server):

Then DJ set by h0ffman (skipped by me) and clue of party — Amiga and PC demos/intros. Different quality but most of them was really good — both from technical or design view (but not always from both at same time).

But as I am not a coder I looked mostly at design and audio/video part. All those names like ‘ray matching’ etc meant nothing to me so when someone tried to explain why demo which I did not like was so great I just told similar thing ;D

Monday

Wake up, breakfast, pack, pay, go to party place. We did not manage to get there before voting ended so not voted for PC demo compo entries. Greeted those who was still present, discussed a bit and then return trip… This time just ~9 hours but next time (if there will be such) we plan to go there by car. Less time needed.

Random stuff

I liked how party was organized — it was my first such event abroad and many people told me that Revision is the last demoscene party in old style. I really liked it. Saw many different platforms like MSX1, MSX2, C= VIC20, Amstrad CPC or Videoton…

Due to Easter time shops where closed on Sunday/Monday but it was not a problem for me as there was free coffee/tea, beer/water/orange juice was available to buy at low price (2.5€ for 0.5l beer) and there was hot food served all time (like 10:00 – midnight) also not so expensive.

Weather could be better as it was cold but at least there was no snow (which we still have here).

It was also nice to see Kiero at work as he was finishing “Machinist” Amiga demo on his x86-64 laptop with WinUAE running fullscreen. I was surprised that ASUS UL30A is capable to run it fast enough.

Amount of discussions with people is probably uncountable. Chromebook, ARM, Android, Amiga, scene were just subset of topics…

Will I go there next year? Will see…