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
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
Additional components, Temp and humidity Sensor, USB W IFI Dongle and a click adapter
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 astro27 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:
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 astro27 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
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
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
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
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
Top Comments
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 …
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…
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…