Bonjour,

Depuis pas mal de temps je suis de prés le développement de Calaos, j’avais même envoyé un patch pour ajouter le support du OneWire dans Calaos que Raoul avait gentiment intégré et poussé sur le SVN. J’utilise Calaos Server pour la maison de campagne de mes beaux parents, le but étant de piloter les chauffages à distance, pour que quand ils arrivent dans la maison celle-ci soit a température viable :) Lorsque la rénovation a été faites, nous avons demandé a l’électricien d’ajouter différents câbles Ethernet un peu partout dans la maison, et avons fait en sorte que leurs terminaisons soient toutes regroupées au niveau du tableau électrique. J’ai ensuite câblé des capteurs de températures One Wire de type DS18B20 au bout de chaque câble, et relié le tout a un convertisseur OneWire/USB branché sur une Mele a2000. L’interrêt de tout cela c’est que nous avons 6 capteurs répartis dans la maison pour ~100€. Bon bien sur je ne compte pas le câblage de l’électricien la dedans.

Les capteurs de température c’est la première étape pour asservissement de la température, mail il faut également piloter les chauffages. Les chauffages sont électriques et possèdent un fil pilote. J’ai déjà expliqué le pilotage de cette techno sur mon blog il ya plusieurs années. A l’époque c’était a l’aide de modules a courant porteur X10. Ça marchait mais sans plus, les ordres étaient pas tout le temps pris en compte et donc le tout se désynchronisai de temps en temps voire tres souvent. La je pilote mes chauffages avec deux ordres : On/Off,  avec le retour des capteurs positionnés ailleurs dans la pièce, cela permet de vraiment faire une régulation. N’ayant pas voulu prendre de risque sur l’électronique de pilotage des chauffages j’ai acheté une centrale relais IPX800v2 chez Domadoo encore (C’est la dernière coupure pub promis). La centrale possède un serveur web, est connectée en ethernet au reste de la maison et calaos peut facilement s’interface avec le serveur web pour piloter les relais. Les relais sont ensuite connectés avec une diode de redressement pour faire les deux ordres qui nous interessent.

Voici le tableau récapitulatif des ordres du fil pilotes, il y a également deux ordres suplémentaires, pas toujours pris en compte par les  radiateurs mais qui sont a mon sens inutile : Confort -1° et Confort -2°.

Voici le Schéma de principe du raccordement des relais contenus dans la centrale IPX800 aux fils pilotes des radiateurs.

Et voici le schéma de principe du raccordement de tous les capteurs de température 1Wire au module DS94980R.

Et ensuite le reste c’est de la configuration Calaos, grâce à calaos installeur, on peut facilement créer ses actions et le pilotages de ces entrées/sorties mais cela fera l’objet d’un autre billet :)

Hello there,

After a very long time of inactivity on what i will called Enna legacy or Enna 1, I finally took the time to fix the build of it with EFL 1.2. It was not so much hard, but it was painfull. Core EFL (eina, ecore, edje, evas) didn’t move at all as I was already using 1.0 version of them. What changed a lot is Elementary. All of the efforts was done in adapting enna’s code to the new elementary API.

Finally it’s done and you can get the code here :
https://github.com/naguirre/enna

Few screenshots : Enna Mainmenu

Enna Weather

Hi there,

I will try to explain how to build the mele a1000 kernel with the angstrom sdk. So first we need the sdk :) . As explain in bonus note of my previous blog post, you can launch the creation of the toolchain with the commande :

bitbake meta-toolchain

After few minutes (hours it depends on your config ) you should have a toolchain in the directory

build/tmp-angstrom_2010_x-eglibc/deploy/sdk/angstrom-eglibc-x86_64-armv7a-v2012.05-toolchain.tar.bz2

Note : If want to create a sdk for a different machine than the one you are running on, let’s say for example a x86 sdk when your build machine is a x86_64 architecture, you can use the following command

SDKMACHINE=i686 bitbake meta-toolchain

This sdk contains all headers and binary need to build programs for the arm target. One thing that i dislike with this sdk, is that the directoy in wich you have to decompress it is fixed, it will be

/usr/local/oecore-x86_64

Decompression, be carefull to decompress the sdk and not an arm image. you are decompressing all this stuff with root privilege in the / directory. I say that because it happend to me to decompress a rootfs instead of the sdk with the same command on my x86 machine, and it’s really not a good idea ;)

cd /
sudo tar jxvf /home/nico/allwinner/setup-scripts/build/tmp-angstrom_2010_x-eglibc/deploy/sdk/angstrom-eglibc-x86_64-armv7a-v2012.05-toolchain.tar.bz2

Once it’s done, there is an interesting file : /usr/local/oecore-x86_64/environment-setup-armv7a-angstrom-linux-gnueabi. You have to source this file to feed all environnement variable needed for cross compilation. All non but a lot of them. For example the PATH wille contain the gcc crosscompiler.

Now wa can clone and build the kernel :

git clone git://github.com/ebutera/meta-allwinner.git kernel
cd kernel
export ARCH=arm
export CROSS_COMPILE=arm-angstrom-linux-gnueabi-
export INSTALL_MOD_PATH="../modules"
make sun4i_defconfig
make oldconfig
make uImage
make modules
make modules_install

Now you should get uImage in arch/arm/boot and all built modules in ../modules

Note : if you want to configure the kernel (make menuconfig) on ubuntu 12.04 you need to install the package lib32ncurses5-dev , otherwise you will get errors like that :

mconf.c:(.text.startup+0x66): undefined reference to `initscr'
mconf.c:(.text.startup+0x6d): undefined reference to `stdscr'

easy ?

Hi there,

I will explain how to setup a working angstrom image for the mele a1000 using openembedded.

First you need to get angstrom setup scripts, it’s a couple of scripts which are usefull to fetch git repositories of openembedded, angstrom and others usefull meta layers.

mkdir a1000 && cd a1000

git clone git://github.com/Angstrom-distribution/setup-scripts.git

Then you need to get the meta layer for the allwinner processor. This layer contains recipes for the bootload (u-boot) and the kernel. We will not use u-boot and kernel in the final image, but it’s better to have them for the future.

mkdir -p setup-scripts/sources
&& cd setup-scripts/sources
git clone git://github.com/ebutera/meta-allwinner
cd ..

We have to add the allwinner meta layer in the list of meta layers in use, so edit the file conf/bblayers.conf abd add  ${TOPDIR}/sources/meta-allwinner to the BSPLAYERS variable.

it should looks like this :

BSPLAYERS ?= " \
  ${TOPDIR}/sources/meta-ti \
  ${TOPDIR}/sources/meta-efikamx \
  ${TOPDIR}/sources/meta-nslu2 \
  ${TOPDIR}/sources/meta-smartphone/meta-htc \
  ${TOPDIR}/sources/meta-smartphone/meta-nokia \
  ${TOPDIR}/sources/meta-smartphone/meta-openmoko \
  ${TOPDIR}/sources/meta-smartphone/meta-palm \
  ${TOPDIR}/sources/meta-handheld \
  ${TOPDIR}/sources/meta-raspberrypi \
  ${TOPDIR}/sources/meta-intel \
  ${TOPDIR}/sources/meta-intel/meta-sugarbay \
  ${TOPDIR}/sources/meta-intel/meta-crownbay \
  ${TOPDIR}/sources/meta-intel/meta-emenlow \
  ${TOPDIR}/sources/meta-intel/meta-fishriver \
  ${TOPDIR}/sources/meta-intel/meta-fri2 \
  ${TOPDIR}/sources/meta-intel/meta-jasperforest \
  ${TOPDIR}/sources/meta-intel/meta-n450 \
  ${TOPDIR}/sources/meta-allwinner \
"

Now it’stime to use angstrom script to retrieve all oe sources. In the top directory launch

./oebb.sh config allwinner-a10

it will create the file ~/.oe/environment-angstromv2012.05 wich contains environnement variables needed to correctly build an openembedded image. It will also fetch all the recipes for angstrom and openembedded and will define allwinner-a10 as the default machine. Every time you want to build a pacakge or an image for the mele, you juste have to source the file ~/.oe/environment-angstromv2012.05  and launch bitbake something.

Once it’s done, we can build our first angstrom image :

bitbake efl-nodm-image

After a long time depending on your machine, (i launched it before sleeping, and get the result back in the morning) you should find a directory  build/tmp-angstrom_2010_x-eglibc/deploy/images/allwinner-a10 containing Angstrom-efl-nodm-image-eglibc-ipk-v2012.05-allwinner-a10.rootfs.tar.bz2.

Now we will use the method described here : http://www.cnx-software.com/2012/06/13/hardware-packs-for-allwinner-a10-devices-and-easier-method-to-create-a-bootable-ubuntu-12-04-sd-card/ to run our image.

Im’ using the vga output so io do : (be carful on the /dev/sdX you are using !)

wget http://dl.dropbox.com/u/45842273/mele-a1000-vga_hwpack_2012.06.13.7z
./a1x-media-create.sh /dev/sdb mele-a1000-vga_hwpack_2012.06.13.7z Angstrom-efl-nodm-image-eglibc-ipk-v2012.05-allwinner-a10.rootfs.tar.bz2

You can now try to start up with sdcard. Once image has started, you should get a ssh terminal with this command : ssh root@allwinner-a10.local (password is empty). Xorg is not working out of the box, you need to create the file /etc/modules-load.d/screen.conf  on the sdcard and this content :

disp
lcd
hdmi
8192cu

reboot the machine, Xorg should be launche at startup now !

Bonus,

if you like to create a toolchain dedicated to the mele a1000, you can use this command :

bitbake meta-toolchain

Once finished you will find in build/tmp-angstrom_2010_x-eglibc/deploy/ a tar.gz containing all the stuff need to build applications for the mele a1000, like u-boot, kernel.

There is something annoying with the Illume profile, you can’t switch from a window to another easily. Well you can, but you need to use the illume soft key module, and cycle between windows. This module works great but it takes too much place on the screen, specially for small devices.
On a regular desktop, you can use the so beautiful jefdameth’s comp-scale module, and the exposé mode. But it doesn’t works well on illume profile, so i decided to add this windows list directly in Elfe. It uses the composite module (in gl/gles of software mode). So if you are not running a composite desktop you can not use this effect. to use it you have to bind an Enlightenment action to it. In the demo below, i choose to bind the Edje Top screen bindings to launch this effect.

And here the demo :

And Enna come back to Enlightenment SVN …. in a different way, with a different goal.
Enna was intented to be a mediacenter for home theater pc, with support of audio, video and music files. For a while it was hosted on Geexbox server, and it will stay there.
But this version is completely different. It’s named enna-explorer, the source code is based on enna mediacenter, as it took me a long time to have a good implementation of the virtual file mechanism (in my point of view) and I like my theme (almost).

So this version is intented to be a file explorer for phones and embedded devices, to be used with a touchscreen and use EFL of course. For now the theme is phones oriented, and doesn’t fit well on tablets.
But well it’s a first shoot, so please, be kind :P

Currently, enna-explorer is able to browse your hard drive and it uses Eio for that. You can remove files selected on the user interface. You can’t copy/paste yet but i planned to add this features soon.
There is still some issues in eio to have a full user experience, like displaying a progress bar during copying/deleting files. But it’s planned. (Cedricccccccc :P )

When you select a file, it takes the default program viewer to display it.
Enna-explorer is able to browse upnp devices, and uses gupnp for this purpose. For now you can’t display files of upnp shares.
NFS shares are automatically detected if they are already mounted, but you can’t yet browse them.
If your samba shares are mounted with fstab it should also detect them but you can’t browse them.

I know there is a lot of people that are using EFL tehcnos on embedded devices , i think about SHR guys, Bodhilinux guys … Please report bugs, and features you would like to see in it. And patches are always accepted !

And as people like screenshots, here it is :

screenshot
Enna-Explorer

My previous blog post about installing Enna on an Ubunu seems to interrest a lot of people if I refer at the website stats.
So I decide to write a new short tutorial about how to install Enna on Ubuntu, 10.10 this time.
An Enna package is present the 10.04 release of Ubuntu. But as you should already know Enna depends intensively on EFL’s. These libraries have not yet been released. I hope that we will have a good news in the comming week(s), but before distributions like ubuntu integrates EFL, they may be a while, and thus this kind of tutorial is not a waste of time in my opinion.
Enna is not yet ready for a new release, so if you want to give it a try, you have to build it from scratch. You have been warned :) And as usual if you find bugs, you can send me patches. It’s more than welcome !
How to proceed :
You will need Efls, Libplayer Libvalhalla and Enna.
Before compiling anything we will installed all the packages needed for the compilation of all these libs. I have update this list since the last time.
sudo apt-get install xterm make gcc bison flex subversion automake autoconf autotools-dev \
autoconf-archive libtool gettext \
libpam0g-dev libfreetype6-dev libpng12-dev zlib1g-dev libjpeg62-dev \
libtiff4-dev libungif4-dev librsvg2-dev libx11-dev libxcursor-dev \
libxrender-dev libxrandr-dev libxfixes-dev libxdamage-dev \
libxcomposite-dev libxss-dev libxp-dev libxext-dev libxinerama-dev \
libxft-dev libxfont-dev libxi-dev libxv-dev libxkbfile-dev \
libxres-dev libxtst-dev libltdl7-dev libglu1-xorg-dev \
libglut3-dev xserver-xephyr libdbus-1-dev cvs subversion mercurial \
liblua5.1-dev libavformat-dev mplayer libxine-dev libxml2-dev \
libcurl4-openssl-dev wget libexif-dev libsqlite3-dev libxine1-all-plugins libxine1-ffmpeg \
autopoint libudev-dev

I just added autopoint for the autogen.sh of ecore and enna and the udev developpement package for eeze.

EFL libraries :

For EFL’s compilation we will use Brian ‘morlenxus’ Miculcy script : easy_e17.sh

wget http://omicron.homeip.net/projects/easy_e17/easy_e17.sh
chmod +x easy_e17.sh

We need to change a bit this script to suit our needs.
edit this script with the editor of your choice and change :
line 28:

efl_basic="eina eet evas ecore efreet eio eeze e_dbus embryo edje emotion ethumb elementary"

And line 30 :

bin_basic=""

Save your changes.
This script will download, build and install EFL in /opt/e17 and set all environnement variable you need to execute an EFL binary.
Sources will be download in $HOME/e17_src.
execute the script with :

./easy_e17.sh -i

Compilation begins. Later if you want to update EFL you just have to execute

./easy_e17.sh -u

And only changes since the last check out will be compiled.

Gb libs

You need the HEAD version of GeexBoX libs. In the previous post the 1.0.0 version was enough but Mat has made interresting changes in these libs, and Enna depends on them.
create a new directory :

mkdir gb_src && cd gb_src
hg clone http://hg.geexbox.org/libplayer
hg clone http://hg.geexbox.org/libnfo
hg clone http://hg.geexbox.org/libvalhalla
hg clone http://hg.geexbox.org/enna

When EFL compilation is finished and succesfull, you can verify if all is working fine by executing : elementary_test
If something happens, congrats, EFL are correctly installed :)
Ok, now GB libs. We will installed all libs in /opt/e17 as easy_e17 script do for EFLs.

cd libplayer
./configure --prefix=/opt/e17
make
sudo make install
cd .. && cd libnfo
./configure --prefix=/opt/e17
make
sudo make install
cd .. && cd libvalhalla
./configure --prefix=/opt/e17
make
sudo make install
cd .. && cd enna
./autogen.sh --prefix=/opt/e17
make
sudo make install

At this point you should launch enna.
You can run it with :

enna

The default theme is currently completly broke, so if you want to have something usable, you have to launch enna with the stb theme.

enna -t stb

Configuration

In previous version of Enna the configuration file was created in $HOME/.enna/enna.cfg. We try to follow freedesktop guidelines, and so are now using the $XDG_CONFIG_DIRS     $XDG_DATA_DIRS.
The configuration is now saved in $HOME/.config/enna/enna.cfg
The libvalhalla database, fanarts, covers and all informations grabbed by libvalhlla are saved in $HOME/.local/share/enna/
The configuration is still created at enna startup.
To use the stb thme by default you can change the theme=default line in enna configuration by theme=stb in the [enna] section

Enjoy!

I have not post for a while, busy by my work. But I continue working hard on Enna.

In the current 0.4.0 release, I’m not satisfied by the theme. Some people complained about the backgrounds transitions in the main menu when you select a new item. It’s slow on some hardware, especially on embedded card like the Beagle Board, where CPU and RAM ressources are low.

So I have decided to rewrite a new theme from scratch. You can find it in the source code, in the mercurial repository, in data/themes/stb. I called it STB, as I would like it fits well on Settop Boxes and on HD screens from 720p to 1080p resolutions.

Here some Screenshots of the current theme.

Stb theme mainmenu
Stb theme mainmenu

Stb theme video infos
Stb theme video infos

Stb theme disk infos
Stb theme disk infos

stb theme music info
stb theme music info

For the fonst, I’m using the Comfortaa font : http://aajohan.deviantart.com/art/Comfortaa-font-105395949. And icons comes from the Faenza gnome icons theme : http://tiheum.deviantart.com/art/Faenza-Icons-173323228

I Add some cool effects between mediaplayer and informations panel, thanks to the more and more powerfull Elementary library. And I plan to add more.

More work, is need to polish the UI, All infos are not yet well placed. But as you can see there is more informations than in the previous release. I had have to change a lot of code in the core, to achieve this goal, and for informations, libvahalla helps more than ever.The Informations retrieval is as usual entirely asynchronous, and on demand. So the database is created while you browse you disks.

I hope that you like this new UI.
See you soon.

Let me introduce you a very cool usage of Enna (v0.4.0 from Ubuntu Packages). These photos have been taken at the home of a coworker of mine. He have integrate a PC running GNU/Linux and a 17″ touchscreen  in his wall. The mediacenter has two video outputs, one for the touchsreen and another for a video projector.
This is so funny !!!

Don’t blame me these pictures have been taken with an iPhone (bouhh!)

One critisism the more heard during the Enna’s release was the fact that it only runs on GNU/Linux.
Enna depends of EFL and of GeeXBoX’s libs. EFL are already ready for Windows. I want to thanks Vincent Torri who has made an HUUUGGGGE work to have the EFL on this system.

About the GeeXBoX’s libs, Mat has already fixed the configure script, and some other fixes in order to have libvalhalla and libplayer running on Windows. Now the big work is to have an libplayer backend that can play videos and music on windows. The natural choice is to rewrite the VLC backend. VLC is a really good at solid software, for years now, and is working on mostly all OS. With it, we should have a backend for all of enna’s port, MacOS, Windows, and of course Linux.

About the MacOS port.
Here there is a lot of work, mostly on evas and ecore. The Evas Quartz engine is not in a good shape. And the ecore Quartz code just doesn’t work. I begin to write a new engine for MacOS, based on OpenGL cocoa. It’s not ready for prime time now, but I can run all expedite test, and I get an Evas Speed arround 250fps on my MacMini with an Intel GMA500.

There is a lot of work to have Enna running on them, but it’s a first step :)

If you have skills on these systems, contact me, help is always welcome.