Atmel SAMA5D3 Xplained, Add-On Boards + LCD Bundle - Review

Table of contents

RoadTest: Atmel SAMA5D3 Xplained, Add-On Boards + LCD Bundle

Author: peteroakes

Creation date:

Evaluation Type: Independent Products

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: RiOT Board

What were the biggest problems encountered?: Lack of product readiness. Included parts where unable to be tested due to lack of built in support. LCD was not supported out of the box or even after following numerous instructions available . Documentation to leverage additional IO devices beyond basic digital I/O was unavailable

Detailed Review:

Where to begin

 

To quote the Atmel web site

The SAMA5D3 Xplained is a fast prototyping and evaluation platform for microprocessor-based design. The board comes with a rich set of ready to use connectivity and storage peripherals and expansion headers for easy customization. A Linux distribution and software package gets you evaluating fast. A USB device connector can be used to power the board as well as programming and debugging it.

Key Features

  • SAMA5D36 Cortex-A5 Microprocessor
  • 256MBytes DDR2
  • 256MBytes NAND Flash
  • LCD connectors
  • Dual Ethernet (GMAC + EMAC) with PHY and connectors
  • Three USB connectors (2 Host + 1 Device)
  • 1x SD/eMMC and 1x MicroSD slots
  • Expansions headers, Arduino R3 Shield compatible
  • Power measurement straps

image

The LCD Provided was a 4.3" 480*272 resolution display with resistive touch screen (Image was from my RiOT board... sorry to get your hopes up image

image

Additional components, Temp and humidity Sensor, USB W IFI Dongle and a click adapter

imageimageimage

This look like an excellent board, Powerful, Arduino Compatible,  A Linux OS, Dual Ethernet and LCD support built in, well yes the chip has the support but the provided distro does not, no console drivers for the LCD and no touch screen support either. so we were all (The Reviewers) left trying to figure out how to make things work, somewhere fortunate to have some deeper Linux experience and therefore were able to get some basic I/O working but only digital, and Greg Fenton managed to get graphics up on the LCD display but not as part of the console. It was only offering a basic frame buffer (/dev/fb0) and he has been working to improve on that

 

so in summary:

I was very impressed with the potential of this board, as far as loading images and having the basic LINUX up and running it was pretty straight forward.

 

What spoiled the experience was the lack of complete images with drivers already loaded for evaluation, this board is not advertised as a "Here is a board, now figure out how to get it working", It was my expectation based on the literature to be more like a Raspberry PI where the basics are there and it is up to the evaluator to adapt to his or her project, try out he capabilities and basically adapt to get a custom project up and running.

 

From that perspective I was very disappointed. the choice of a bare bones Yocto Polkey distro was in my opinion a bad move. There is so much support and knowledge for Debian in the form of Raspbian especially that  had the choice be different this could have gained a huge following from the PI, BBB and Arduino camps, instead as it stands this board will for most, end up in the bottom drawer gathering dust.

 

Atmel and E14 / Embest, please please pull it together and provide a core that is ready to go, just add imagination with ADC, LCD etc all built in. to expect the purchaser to have to compile kernels and spend hours or days just trying to get the basics up and running and for most... failing before they can get to grips with their own project is just plain bad. and just as important, most of us do not run LINUX workstations or have a clue about compiling kernels, don't make us do that and provide better support for windows as a loading mechanism (AKA ready built images and perhaps a menu to select the one the user wants. This is an evaluation board, I wanted to evaluate it, not learn how to build an OS

 

Now for the detailed "Review" (Lab notes on my lengthy attempt to get the board up to a usable level which to me was having the LCD and Touch up and running, then getting add ons going.)

 

Before I start, I would like to thanks all the other SAMA5D3 reviewers for the group support they provided, I think at the end of the day it was a team effort to get as much working as we did, I dont think anyone was able to get it to the level we expected it to arrive in but nevertheless it was a great and rewarding experience working with you all and sharing your work to help the rest of us.

 

Getting the basic GPIO working was straight forward after a little research it proved to be a straightforward export function as with most eval boards (BBB, PI, RiOT etc, AKA basic Linux file system integration

So as an example:

echo 8 > /sys/class/gpio/export results in pioA8 
echo 24 > /sys/class/gpio/export results in pioA24 
echo 32 > /sys/class/gpio/export results in pioB0 
echo 48 > /sys/class/gpio/export results in pioB16 
echo 64 > /sys/class/gpio/export results in pioC0
echo 96 > /sys/class/gpio/export results in pioD0
            

With that your now able to toggle IO pins or read them.

Here is a link that provided some clarification and help http://falsinsoft.blogspot.in/2012/11/access-gpio-from-linux-user-space.html

But still no analogue, SPI, I2C etc. Time for more research.... Many evenings of searching, scouring the planet for the elusive na Rare document that may shed light on this conundrum...

So I discovered several images that may work but they were still POLKEY

I Uploaded V4.4 (Latest for SAMA5D3) and could get the LCD to respond but only basic Frame Buffer stuff, no real interactive console, no APT-GET , GIT or anything else useful, you need a Linux workstation and familiarity with compiling the OS build which I do not have.


then I uploaded 4.6 (for the SAMA5D4), during power up this actually displayed splash screen on the LCD but then promptly crashed probably due to incompatible evaluation board but it does show the board will talk to the LCD with the right drivers that appear to be on the SAMA5D4 image but not the SAMA5D3


So now after getting really frustrated with Polkey I started looking for a more familiar Debian distro if possible.

 

With hard work I was able to get Debian up and running which is enabled for a lot more functionality, image from here: https://www.dropbox.com/sh/uo7fwrnpji6aoqc/DxYTGeXWGg

 

the first thing noted was the image on the SD card was only 2GB so refering to my experiance with the RiOT board I tried the same approach with this, it worked like a charm, now I have a full 16GB SD card, plenty of room for other libraries and apps.

Extend File system to fit SD Card

 

this is how I did it:

 

follow the instructions here:

http://www.element14.com/community/community/designcenter/single-board-computers/riotboard/blog/2014/06/13/debian-on-riotboard--after-basic-install-adding-a-gui-desktop

adjust for the fact it will be using /dev/mmcblk0p2 (Delete the existing one, then add in the new with the same name and using partition 2 for delete and re-create the partition accepting the new defaults as described in my RiOT post.

 

Adding USB Drivers and a few other fixes was fairly simple as   had that covered already

apt-get install usbutils


now add a few more for time zone and clock support:

apt-get install ntp

dpkg-reconfigure tzdata  to adjust the time-zone

 

Basic X Windows using lxde

apt-get install task-lxde-desktop

exec startlxde


sudo apt-get update


sudo apt-get install tightvncserver

/usr/bin/tightvncserver

Provide a password… but not for the view mode, no need

Load onto windows the TightVNC client from here http://www.tightvnc.com/download.php

Login with tightvncViewer and wait a few seconds… Voila, we now have remote X Window, a welcome sight image

image

Now to add a few of my own favourites

 

sudo apt-get install geany  (Programming UI)

sudo apt-get install vim

sudo apt-get install curl

and MQTT from this link:

http://jpmens.net/2013/09/01/installing-mosquitto-on-a-raspberry-pi/

 

curl -O http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key

sudo apt-key add mosquitto-repo.gpg.key

rm mosquitto-repo.gpg.key

cd /etc/apt/sources.list.d/

sudo curl -O http://repo.mosquitto.org/debian/mosquitto-repo.list

sudo apt-get update

  sudo apt-get install mosquitto mosquitto-clients python-mosquitto

 

the above now results in MQTT server and the client to be installed with python support, running the test apps worked like a charm locally and over the connected network.

See mosquitto_sub and mosquitto_pub with the base documentation here: Documentation | Mosquitto

 

Now to try get the LCD up and running again

NOTE: you need to be able to connect to the DEBUG serial interface on the board to make this work as you need to interrupt the boot process and access the UBOOT menu

 

trying to interpret instructions contained in the SAMA5D3_xplained LCD-EX Quick Guide_V1.2.pdf (Attached) also proved fruitless, primarily because they where talking the reader through compiling a new kernel, not exactly something I was expecting to do as the only Linux machines I own are the embedded ones. There where no instruction for adding the drivers from within the Woking image or a completed image for uploading from windows with the driver included. this would have made things so much easier for the reviewers.

 

following the instructions provided in the LCD manual it says to enter the following command

setenv bootargs console=ttymxc1,115200 init=/init nosmp video=mxcfb0:dev=lcd,7inch_LCD,if=RGB565 video=mxcfb1:off fbmem=10M malloc=400M androidboot.console=ttymxc1 androidboot.hardware=freescale calibration

 

which proves to be incorrect as we have a 4.3" display and as expected it did not work, it should have been the following

setenv bootargs console=ttymxc1,115200 init=/init nosmp video=mxcfb0:dev=lcd,4.3inch_LCD,if=RGB565 video=mxcfb1:off fbmem=10M malloc=400M androidboot.console=ttymxc1 androidboot.hardware=freescale calibration

 

but again this did not work, I did later discover that you also need to include the resolution but that still did not prove fruitful on the SAMA5D3 so time to try it on the RIOT board as the LCD manual claims it is compatible there too

 

RiOT Board the the 4.3" LCD Display

image

first thing first, find an image that will work with the LCD and RiOT board, not all the links in the document attached worked so I had to find an alternate source

 

I found this for Ubuntu, not quite what I was looking for but close enough http://www.farnell.com/datasheets/1854297.pdf

The site for downloads and instructions I found that worked here: RIoTboard Development Platform

The guide I selected was this one (Part way down the page, linking to a drop box

I attached it for reference

 

following almost an identical process as used for the SAMA5D3 board to modify the environment variables there still where not quite right, and defaulted to the wrong screen resolution

the corrected line is this

setenv bootargs console=ttymxc1,115200 init=/init nosmp video=mxcfb0:dev=lcd,4.3inch_LCD,480x272M,if=RGB565 video=mxcfb1:off fbmem=10M vmalloc=400M androidboot.console=ttymxc1 androidboot.hardware=freescale calibration

 

rebooting back to LINUX I was amazed to see the system boot up onto the LCD as the main console.. YAAAAAA

image

 

for reference, here are the other environmental settings for different screens

setenv bootargs console=ttymxc1,115200 init=/init nosmp video=mxcfb0:dev=hdmi,1280x720M@60,bpp=32 video=mxcfb1:off fbmem=10M vmalloc=400M androidboot.console=ttymxc1 androidboot.hardware=freescale

setenv bootargs console=ttymxc1,115200 init=/init nosmp video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off fbmem=10M vmalloc=400M androidboot.console=ttymxc1 androidboot.hardware=freescale

setenv bootargs console=ttymxc1,115200 init=/init nosmp video=mxcfb0:dev=lcd,7inch_LCD,if=RGB565 video=mxcfb1:off fbmem=10M vmalloc=400M androidboot.console=ttymxc1 androidboot.hardware=freescale calibration

setenv bootargs console=ttymxc1,115200 init=/init nosmp video=mxcfb0:dev=lcd,4.3inch_LCD,480x272M,if=RGB565 video=mxcfb1:off fbmem=10M vmalloc=400M androidboot.console=ttymxc1 androidboot.hardware=freescale calibration


now run the commands to get the screen and touch working better

sudo apt-get remove xserver-xorg-input-synaptics

sudo apt-get install xserver-xorg-input-tslib libts-bin

 

the second command failed but there was a backup plan so I followed it using the link

on the same page as the image link was provided above

 

get touch screen stuff from here https://www.dropbox.com/sh/49x7sjyj64ok8in/AABpGvyZ7aoIEX93zD61vzo1a?dl=0  as indicated by this web site http://www.embest-tech.com/shop/star/riotboard.html

 

A few more steps and hopefully it will all be over

extract content, place on usb then,...

mount USB

 

dpkg -i xserver-xorg-input-tslib_0.0.6-7_armel.deb

 

TSLIB_TSDEVICE=/dev/input/event0

TSLIB_CONFFILE=/etc/ts.conf

export TSLIB_TSDEVICE TSLIB_CONFFILE

ts_calibrate

 

the calibration screen appeared on the LCD.. this is good, but unfortunately it did not recognise the touch chip and would not respond to touch events so that was it.

 

only one more thing to try, upgrade UBUNTU as it was complaining it was out of date

after several hours of painful waiting it was done but not without errors, and now the calibrate would not work correctly

image

 

So after that little bit of work, the LCD screen now is used during boot and as a console, following the next instructions for the touch screen though still proved useless but atleast I had the LCD running on an Embedded Linux machine, Ill take the small win where I can. Now if only the OS made the icons and screens small enough to be usable for UBUNTU XDE, ah well, cant win them all

 




Anonymous
  • Unfortunately Peter, your RoadTest mimics what I was saying from when I first got my hands on the board, even when I managed to have some time with it I only managed to get Debian onto it (Boot Debian from an SD Card on the SAMA5D3 Xplained) before I had to move onto something else - and ended up getting no time to do something with it.

     

    The current trend for boards such as this, the Gizmo2 that was released, the Larkboard which was also released, is for embedded linux builds and the ones that come from Embest are just what's requested of them at present and there is this assumption somewhere that people will work it out - I don't know if it's used as a filter for ensuring the product's aimed at the intended market but in my eyes you'd want it to be aimed at the widest possible. I'm sure it's a hard call for someone who wants to have technical support for Linux quantifiable.

     

    I'm fortunate enough to have a personal laptop which I have an install of Debian on which I can do image rebuilding upon and it's not something that is nicely done within a virtual machine on a Windows box; but equally this is why amongst hackspaces you rarely see someone running Windows. Conversely in my past job where I did IT Support in a University, Linux machines were pretty rare to say the least.

     

    So what I guess I'm saying is, it's a difficult support gap to fill when Linux in essence is a community supported effort in the first place and I definitely feel your pain over it; I can only recommend and suggest that to keep it open in the gist of open source being free, as in beer, that community of support could be made here - hmm, maybe a 'Linux for Single Board Computers' group or something.

  • Nope, I would say your right on the money, Yokto i found to be awful, like I said in the review, a good Debian with compiler and the basic set of drivers for the common parts, ADC, LCD, WIFI etc already there, this could and would attract all the PI folks, Arduino and some Launchpad too as it would be familiar territory, and if there was a Wireing integration for it as well (Its all C after all), it could really take off

     

    It is a really powerful board with loads of currently un-tapable potential, kind of like an oil field with no rig to get at it

  • imageimage

    That's happy and cool smileys for you!

    I got my hands on this board some time ago, and was very interested due to the specs and the advertising. Atmel had a bit silly but OK demo on embedded world (do you have the source code of that ? It was also on element14's stand, showing a display, camera and servo ), so I thought this would be really nice to play with. Unfortunately the documentation is very hard to understand to me. There's  Yocto, there's SAM-BA, there's U-boot, and from that you should be able to make something? I wasn't able to install anything out of the box, and since the image/memory is so small there's no C compiler on board. That means that if you want to use any applications on the board, you'd have to set up your own cross-compiler (why is that not included in Atmel Studio? It's windows, but it's a good IDE, and you'd have an instantly working setup).

    If you think Yocto makes it easier, think again because they do some kind of package management, but in order to set that up you're again working hours and hours if you have no previous experience. Also, the amount of yocto-ready applications was very non-impressive. The last time I looked, python3 wasn't included.

     

    Maybe my arguments are not valid to those that really understand the ATSAMA5D3 / Yocto environment. I've set up AVRGCC, MSPGCC, GNU ARMGCC with debuggers and all, played with a BeagleBone (both original AND supported debian image) and with BeagleBone Black, but never met something that was so hard to change after unboxing; no clear way to setup drivers for peripherals, no clear way to install applications or make your own stuff. I've always merited Atmel for their outstanding documentation in AVR and XMEGA series, but this one was failing completely to me.

     

    Thanks for showing how you can get something working with this board without being an expert in Yocto / cross-compiling!!

     

    edit:

    Atmel: why include Arduino headers if you don't show how to AT LEAST do PWM out and analog In on this board?

  • Thanks for the positive feedback all, most appreciated,

     

    Now E14/Embest/Atmel... your turn image, can you deliver the missing parts of the puzzle ?, I would love to upgrade my score image

  • Hi Peter,

     

    Really, really awesome review. You've saved people a lot of headache by summarizing how to get started with the board, I/O and getting the display running.

    The review makes a great reference document for users of this board.

     

    You, Greg, Lucie and astro have done a terrific job collecting up the right bits of information to get people going!

  • Peter

    Well done.

     

    I could not agree more with your comments about supplying an image that allows users to use the board.

    I'm in no way Linux savvy, and therefore would probably have ditched it long ago.

     

    Mark