Some time ago, I wrote about the FriendlyArm NanoPi M1, a simple, low cost board which seems to hold it’s own against the Raspberry Pi2 in all but GPIO control – that’s not to say there is anything wrong with the GPIO but you have to write your own stuff for it as there is (so it would seem) nothing remotely like PIGPIO for these or similar machines. PLEASE prove me wrong.
See updates to this article at the end….
So that’s all fine but what if you need something more meaty? The FriendlyArm NanoPC T3 is a 64 bit octa-core board of similar size to the Pi and where the M1 scored a benchmark similar to the Pi2, the T3 is nearly twice as fast and has a lot more going for it – but then, it is also more expensive. When I say TWICE as fast – that’s doing the same benchmark – if the benchmark made use of all eight cores then the difference could be considerably greater. I’ve also reviewed the NanoPC T2 but my recent conclusions on that, at least for Android were not too good, certainly not for media consumption. In fact, as of now, I would say NOT to use the T2 as a media centre. See later comments in here.
Like the M1 I’ve managed to get Debian with all my usual tools running on it, really without any great problems. So what’s so special about this one?
It has an A53 Octacore processor, running at 1.4Ghz, with 8Gb of eMMC internally and of course you can use an SD. Unlike most other boards it has 1Gbps Ethernet along with WiFi 802.11b/g/n and Bluetooth 3 dual mode.
Along with that we have 1GB RAM, the facility to handle one of the company’s inexpensive LCD touch display boards, serial debug, RTC interface, 4 USB ports, camera interface, HDMI and supports Android 5.1 (yes with Playstore, unlike the M1 which for some inexplicable reason also support a much earlier Android but with no Playstore – so I just ignored that option – pretty useless really), Debian and Ubuntu. A 2GB version is available which is called the NanoPC T2 Plus. This would be my preferred option.
I set mine up with Debian as usual, used my script to put all my usual stuff on and left it happily sitting in a corner running Node-Red for days – worked a treat.
On the GPIO front – there is some C code available and accessing the ports is fairly straight-forward but it requires root access and we really do need a better way.
Incidentally the unit I have, has a heatsink. Recommended.
There is a microphone input as well – and audio output can go to hdmi or the 3.5mm stereo jack. I already have a T2 model sitting running Android and ImperiHome as a kind of desktop status display – this one may end up doing something just a little more processor-intensive (read on). NOT cheap however so you might want to check total cost including postage.
About the only thing I really did not like about the Debian setup for the T3 was wpa_gui which not only looks naff – but also fails to report the status of WIFI. It would connect no problem but then still say “connect” – which is a worry.
Now, as it happens I have one of the FriendlyArm M1s again running Debian and that has wiCD Net work manager which does work. So I figured, in for a penny, in for a pound.
sudo apt-get install wicd
I had to tell it about the connection at first as it didn’t have my wifi details stored… and then
sudo apt-get remove wpagui
Problem solved. Now – getting the GPIO to work – it’s not an H3 so I can’t use WiringOp…. out of ideas on that one for now.
One issue with the T3 – is the eMMC itself. All of the above was done using eMMC and in an attempt to copy that to SD, I blew the lot. Why was I doing that? Because I can find no simple way to back up and restore the internal eMMC. I can’t actually see much use for 8GB of EMMC especially as it is a pain to back up.
I spent ages getting onto the Baidu site trying to get an SD version of the software as the Google Drive link on FriendlyArm’s website just would not work. I don’t know if you know but if you don’t read Chinese – getting a Baidu account can be a treat. Anyway I finally got one.
Update: I contacted FriendlyArm at least twice about this as their Google Drive link does not work – I don’t know what BAIDU is like inside China but it is ATROCIOUS outside of it. This is my third attempt took well over an hour… I would normally get such a small file in a matter of minutes at most.
When I eventually got the file – I realised I could get it to run – but I could not expand it – I tried various approaches including with support from FriendlyArm and the SD simple would not expand – I wanted to use an 64GB SD yet could access only a tiny amount of available storage – which seems awfully silly. With Android up and running the first thing I tried was a media player – but because there is no information on the infrared remote control, I thought I’d try WIFI control by my phone – but THAT requires root access and the Android provided is not rooted – worse – Kingroot simply will not root it.
Meantime, FriendlyArm sent me some information on expanding the board – info that they had previously put out on the web and it simple would not work – I’ve now checked and there is nothing out there on this – HOWEVER – their solution works – they just missed out some important info.
When you blow their image onto SD – BEFORE you start playing with Android AT ALL, stick the SD into a Linux PC or a Raspberry Pi or similar (or a Debian machine on one of their boards) – and do the following exactly… firstly check that SDA is available (/dev/) and if not – maybe it is SDB??
So to recap, flash the Android SD – put it straight into a Linux computer – and run the commands below – do not “try it out” in the T3 first or you will fail.
Replacing SDA with SDB etc if necessary (I’ve done several installations and not had to change this)…
sudo parted /dev/sda unit % resizepart 4 100% resizepart 7 100% unit MB print
sudo resize2fs -f /dev/sda
Now This isn’t EXACTLY what Friendlyarm said in their instructions – but then their exact instruction didn’t work – this does. Once done, take the SD out – stick it in your T3, hold the BOOT button, turn the power on and after a few seconds release the BOOT button. Might take a minute or so for Android to come up – originally I was getting a 4GB Android which is about as much use as an ashtray on a motorbike – now I have one set up with 32Gb and another with 64GB of internal memory – no problem. All of this this will work in a NanoPC T2 but overall I found that to be sluggish.
From there I’ve put KODI and several other programs in there and it all works very well – the hardware Ethernet being a boon if you’re streaming TV shows etc. and the video runs smoothly.
Now all I have to do is figure out how to get the board to boot into Android on SD without having to press the button… I did try just holding the button down and that works so worst case I could see a link coming on.
Update November 29th 2016: As you’ll see elsewhere I’ve been playing with the Nanopi M3 – a great little board with a nice heatsink and fan that makes for a good media centre… the only issue is – the noise of the fan. It is something one can deal with but it was enough to have me do one last test of the T3. There is now an image for the T3 that will boot up and let you have your choice in a menu of Ubuntu, Debian or Android 5.1.1 – now, I have commented in the blog that I am not stunningly impressed by either Debian or Ubuntu on these devices – at least not the FriendlyArm version and I really would like to see an up to date Android available – however – I thought I’d try this all in one SD image – which lets you easily blow code to the EMMC.
Well I have to say – M3 on SD – or T3 on EMMC – the results are quite clear – the T3 is FASTER. Running Kodi I noticed that videos play smoothly on the M3 until you pop up the menus – and running the video with all that guff overlaid onto it makes for a very SLIGHTLY jerky movement – but enough to notice it. Not so on the T3 which runs, to use a local phrase, as smooth as a baby’s bottom! Also Android is one hell of a lot easier to tackle for overscan and resolution changes than the other options and I was soon able to turn the mighty T3 into quiet a reasonable stick-on-the-back-of-the-TV media centre and I am more than happy with the results!
Dear Peter
Thank you ,
do you have pre rooted android for T3?
No. Sorry.
Have you tried dietpi on nanopi t3? It works well in my odroid c2 and orange pi zero.
My T3 units are happily functioning as media systrms using Android.
Hi Peter, can you use Netflix app on Android?
Here I installed Netflix and a got a error mensage whem I play a movie.
If can you use a Netflix, plese, tell me how do you configure your T3.
Tks,
Charles
No I bought a Roku 2 to handle Netflix and Amazon.
Just use a raspberry pi + osmc (kodi) + exodus plugin
It’s free and it’s better than netflix
I have Roku 2 for Netflix and Amazon – and the T3+Android+Kodi+Exodus+Showbox. They all have their place but given the occasional Chinese subtitles, variable quality and ads I would take issue with “better than Netflix”. With a high speed connection – which we have, if I have a choice of where to watch a particular program, it would be Netflix on the Roku every time.
Of course the choice is not always there – and so the T3+Kodi is a good second choice – no-where near as polished though.
For the purposes of the blog it should be clarified that while the Roku and Netflix are legitimate – and hence likely to be around for sometime, the use of Exodus is not and could be clamped down at any time.
That’s great stuff – so perhaps the summary might be to stick with EVO+ or EVO – unless you can use EMMC in which case use that. I’ve been using EVO and Sandisk Ultra – and I didn’t do proper tests but I’m convinced the T3 is WAY faster when you use EMMC. Just such a shame that backing it up is no-where near as simple as pulling an SD card out – and using Win32DiskManager to duplicate it. Clearly both yourself and Friendlyarm have easy utilities to copy SD to EMMC – what seems to be missing is the other way around?
Well, one year ago I wasn’t aware that so much SD cards are simply failing in this area (especially with small random writes which is exactly THE access pattern when used with SBC) and I also had to learn the hard way how SD cards start to fail (silent producing all sorts of weird symptoms — you never would think ‘storage is failing’).
I try to use eMMC if available and if not EVO/EVO+ whereever possible and choose 32 or 64 GB variants since both the smaller and higher capacities show slower random IO performance (might chance anytime without notice since ‘speed class’ doesn’t tell you anything here).
At least for Allwinner boards there’s an easy way to clone eMMC the usual way. Those devices can be ‘FEL booted’ and then expose an eMMC or an inserted SD card just like an USB card reader (so you can use any imaging tool to create a device backup then). Currently only H2+/H3 supported but runs with all major host operating systems: https://github.com/ThomasKaiser/sunxi-armbian-flasher-osx
I’m pretty sure something like armbian-backup will be finished in 2017 since all the necessary bits are already there. But before we want to push hardware vendors to put at least 16 Mb of SPI NOR flash on their boards since an universal bootloader living there is the right place to not only provide ‘boot from anywhere’ (SD card, USB stick, USB disk, network, whatever) but also include a diagnostics and a backup tool: http://linux-sunxi.org/Xunlong_Orange_Pi_Zero#SPI_NOR_flash
A quick note on Baidu: before someone told me of _pan-baidu-download_ weeks ago dealing with Baidu felt PITA all the time. Not any more: http://linux-sunxi.org/User:Tkaiser#Downloading_from_Baidu (It’s amazingly fast especially for us westerners and the smallest SBC running Linux is enough to get it working).
And regarding your update from today about SD card vs. eMMC: most if not all SD cards show horribly low random IO performance but this is the most important factor when using Android (constantly doing fsync calls to ensure stuff gets written to storage) or a sophisticated desktop Linux (all modern browsers constantly try to write stuff like history or location data to databases which is also random IO).
Over at Armbian we tested through a bunch of SD cards (and eMMC memory on different boards). Regardless of speed class the random IO differences (especially random writes with small block sizes) are HUGE. Renowned brands show here differences of factor 50! Just a few brands show comparable performance with eMMC here — details: https://forum.armbian.com/index.php/topic/954-sd-card-performance/
I’ve updated this having now managed to get Android running on the T3 with a full 64GB of internal FLASH running – which makes this board pretty ok for a media centre. I can’t find any way to ensure it always boots from SD (as against internal EMMC – which is a fairly useless 8GB) other than holding the boot button on powerup. I did check and it does not seem to mind if it is KEPT held down so I guess a blob of solder would do it in the absense of alternatives.
Pete – why wouldn’t you boot from the MMC and them mount the SD as a separate filesystem for your large data? There are many benefits to doing this, and it is just a 1 line add to the fstab to have the extra drive mounted automatically at boot.
Simple Jerry – because in Debian I could just about manage that with help from my friend Google – in Android I would not have a clue… The only way I would know how to do that would be to use the SD as external memory – and as we’re only talking un-rooted Android 5.11 here that would be useless as I’d run out of room for Apps. If this was a phone I would not dream of buying one with less than 16GB. Now if it was Android 6 that would be different as you can merge internal and external memory. ALSO – unlike the real Raspberry Pi which now has a one-click backup system, using EMMC and SD together would be a pain to back up.
i used this app when google music didn’t allow to move downloaed music to sdcard… but it needs root…
http://forum.xda-developers.com/showthread.php?t=2192122
https://play.google.com/store/apps/details?id=com.devasque.fmount
No rooting of this, anyway I solved the boot to SD – just soldered the boot button. Life is too short.
lol 🙂
same i did on my second multimeter, which had a not modifiable back light that was going away after a few seconds of pressing the light button… 😉
So much CPU power, and only 1GB I f RAM. Pitty!
The reason for me to look at other boards than the RPi is not enough RAM, where average CPU power is around 5% (with websites, dhcp, pihole, etc. running), but RAM uage is often at 80-90%.
Pete,
I’m getting 508 Resource limit reached errors while trying to post a comment.
I guess you get too many visitors 🙂
I don’t think so, Mars …. but thanks for that I will report that back to the provider – they were having troubles a couple of days ago.
Turns out the service provider thinks that 72 users at once is high!!! They’ve turned compression on which should help.
Is it possible you’re not looking in the right direction. A Raspberry Pi will EASILY run several people looking at a website – but if what you are after is a website or blog there are FAR cheaper online alternatives with the capability to handle hundreds of simultaneous users. My blog gets upwards of 100 simultaneous users at any time and doesn’t make a dent in the available RAM of the service provider yet what I pay for it per month is a tiny fraction of the cost of a Pi and power supply.
You have to be careful when looking at RAM usage on linux (or most unixy/bsd) system – well not careful, looking won’t break anything…
the ‘free’ command, or the info on the ‘top’ display shows a bunch of info (hopefully the formatting holds out):
total used free shared buff/cache available
Mem: 2038608 1285896 298804 113036 453908 599536
This is on an odroid XU-4 (which is a killer SBC…octocore and 2GB ram).
As you can see it says I have 2GB and am using 1.2GB…however the buffer/cache is just that – an in memory cache – the OS will seek to use up as much memory as you have in order to speed things up. A system that is doing ‘things’ will almost always show >80% memory used – but in order to get a real reading of free memory, you need to add the cache memory back in. So in my case I am using 1.2GB, but almost half of that is cache…if that memory is required by programs, it will be freed.
Web serving needs vary greatly based on the content you are serving (static pages, server side scripting, database access etc)but an RPI2 or 3 with nginx should have no problem serving a lot of concurrent web sessions.
On this odroid, I have grafana, nginx, influxdb, sqlite, am running X with firefox and chromium browsers open and node-red and mqtt are happily chugging along in the background, and I’m ‘using’ significantly less that 1GB. Top is reporting that chromium, firefox and X are using 40% of the used memory, so I could probably run this same load on an RPi 1 with 512MB.
MRSHARK – always happy to hear of alternatives – and new tools. I’ve settled on a few – phpliteadmin for SQLITE, phpsysinfo for system and webmin.
There seems to be a bit of an inconsistency – “The FriendlyArm NanoPC T3 is a 64 bit quad core ” in the second paragraph, but later on mentions Octacore (and the friendly arm site states octacore as well, so it seems like it should be octacore rather than quad core).
Nick
And indeed Nick you are correct – it should say octo-core and now it does.
Hi,
First, thx for sharing all the informations about the different friendlyArm boards, i want to buy 1 for the gigabite port(i think the M2 is the cheapest board with a gigabite connector in the market) and the cpu power but i think there is only you who write reviews Friendlyarm for the moment so it’s really useful.
I think the M3 is a lite version of the T3, It’s smaller and there is no 8gb of eMMC but his price is 35$ so it’s like the Raspberry.
I’m curious about the power management unit AXP228, they say we can power-off and wake up with a software, how it’s possible to wake up with the software ? Thx to the RTC ? We can do Wake-on-Lan ?
You said the M1 was easier to use than the Orange pi but they have both an allWinner Soc and i read it was a problem because the kernel on the AllWinner socs was really bad, so the M1 is really better than the orange pi because of friendlyArm work ?
Well my big problem with Orange Pi was just the totally disgraceful lack of support from the company – they don’t answer emails, they don’t answer questions, their website was always so slow as to be just pathetic, their links to drivers didn’t work so that others had to produce images. FriendlyArm at least talk to us and they have good examples of code – I mean – not in the same league as the Pi but they answer my questions. As I mentioned in the blog – the Android for the M1 is effectively useless – too old and no Playstore – but I’m having success with Debian. For reasons beyond me right now I can’t get TightVNC server to log in – I use this all the time but it’s just not having it – but everything else I’ve tried works. So for the money it is looking like a winner. It really depends how much the unit cost is and how much you value saving money – the Raspberry Pi 3 takes some beating of course.
Peter, try X2GO, it automaGically create remote gui access, using the already present ssh port 22, without having to do much to configure, and as everything is encrypted in an ssh tunnel, even safer than vnc… http://wiki.x2go.org/doku.php/doc:installation:x2goserver
I went alll the way through the Debian instructions for setting up in Debian, all went well, came to the actual installation (all copied from the link by cut and paste so no mistakes)
Package x2goserver is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package ‘x2goserver’ has no installation candidate
Meanwhile I realised why tightvncserver would not talk to me – I forgot to start up the service – duhhhhh.
i think the repo only contains binary for major architectures, and not for arm…
please try this:
uncomment the deb-src lines in apt (http://wiki.x2go.org/doku.php/wiki:repositories:debian)
then do the following to build your own package from source… you’ll find it in the directory you launch the commands in…
sudo apt-get build-dep x2go
sudo apt-get source –compile x2go
lol, good you’ve found the “bug” (this time between keyboard and chair) 😀
anyway, i use x2go wherever i can 🙂
oh, of course do “sudo apt-get update” whenever you modify some apt related files, to update the repo info it uses…
other (more detailed) info on building from sources in debian (but with having a system manageble deb package, not files spreaded everywhere…)
http://wiki.x2go.org/doku.php/wiki:development:deb-buildguide