This is going to be a long post, I’m going to go over a bunch of stuff, so feel free to go and fetch some coffee before reading it
We’ll be talking about Google Summer of Code, Project Memphis, a kick-ass community project using Canola and also the pending release.
As part of the Maemo project umbrella, Canola got 5 slots for this year’s GSoC. The 5 approved projects were for new plugins for Canola, and now that GSoC has finished I believe it’s time to write a post showing some of the work that was done. Hopefully the students will keep doing new stuff not only on their plugins, but on Canola itself. The entire GSoC experience was quite interesting, and we’ve learned a lot during it and will try to make it even better next year. You can find more info about each plugin here, but let me show off a few screenshots.
Lauri Võsandi worked on a bittorrent plugin for Canola. It has support for fetching RSS feeds, searching within a few sites and also managing running instances of Transmission both on the tablet or somewhere else (though it does not depend on transmission to work stand-alone). This is a personal interest of mine, hopefully it will be coming to the maemo-extras repository soon so that others can try it out and if you have any suggestions for improvements here (and for the other plugins as well) send an email to the canola-devel mailing list.

Canola Bittorrent plugin
Thiago “bolaum” Borges Abdnur worked on a instant messaging client, which promises to bring quite some cool features to Canola. Some parts of his implementation used the awesome Elementary project from the Enlightenment Foundation Libraries (on which Canola is based). The plugin uses telepathy and therefore has support for all the major IM networks. Something to watch out for is integration between UPnP plugins and the awesome Bonjour network (which this plugin already supports), so Canola users could share media with no extra configuration of any kind, just search for your friend on the network and select what you want to send him.

Canola instant messaging plugin
Andrei Mirestean worked on a Picasa plugin, one of the most requested plugins for Canola. It already supports most of the features that Picasa users need, and last I heard Andrei was implementing support for geolocation on it (a first for Canola).

Canola Picasa plugin
Andrey Popelo worked on a Remember the Milk plugin with support for not only seeing tasks but also creating new ones and synching them. I still need to test this one better, been quite busy lately and haven’t had the time yet, but it promises to be quite an interesting showcase of Canola being not only a media player but a kick-ass platform for developing all kinds of different applications. One thing I’d really like to see done on this plugin for the future is geolocation, so I could easily have TODO lists that were related to what I was doing at the time (work, shopping, etc.).

Canola Remember the Milk Plugin
And Kasun Herath worked on a Twitter plugin, which is already working for regular tweets and should have support soon for tweetpics (pardon me if the terminology is wrong, but I’m most definitely not a Twitter user).

Canola Twitter Plugin
Well, that’s it for the Summer of Code projects. If you’re interested in testing any of them, just go to their page on the Maemo wiki (linked above) and there should be up to date .debs there for you to try out.
Some of the guys at ProFUSION have worked lately on an in-car entertainment center called Project Memphis (video here). It’s a really sleek demonstration and we should be hearing more about it soon (I promise another blog post about it on a not too distant future).
Regarding the next release (the first as a Free Software project), it should happen quite soon, Eduardo “Etrunko” Lima is hard at work on it and it should be coming out any time now. I also heard he is working on a book, someone sent me a supposed cover for it but I’m not sure if it’s the real thing or not:

Maemo Packaging for dummies
Also, sometime ago Morgan Tørvolt sent me info about a car-pc project he was doing using Canola. His email was quite detailed, so I’m just going to paste it here (it has links to screenshots as well):
Hi luis,
As promised, I am sending you an e-mail with some pictures and text
related to my car-pc project.Text:
After years of wishful thinking, and looking at different hardware and
setups, I managed to order parts for my Car PC about a year ago. The
build did take some time due to me always being busy. After that, I
have been trying to run KDE, Gnome, Linux ICE and others, hoping that
I woudl manage to set up a computer that works well as a media player
and GPS in my car.When I came across Canola a while back (trough the Mer project), I was
instantly sure that this was what I needed. Finally a touchscreen
friendly media application for media playback.I installed canola from svn, with good help from the guys at the
#canola IRC channel and some guides. After some initial startup
problems, I had my PC mounted in my car in about a day. I have been
using it there for a few weeks now, and it works very well.I have been tweaking things back and forth for a while, running Canola
under KDE. This was not a very good solution, as the boot-up time is
very long, and I don’t need all the window manager stuff. I have now
managed to set the computer up so that boots right into an X session
that runs only Canola. No window manager or anything else. Boot time
is still a bit on the slow side, but after POST, it takes somewhere
around 15 seconds.The system consists of:
CPU: Core Duo 1.83GHz
Motherboard: https://store.mp3car.com/ProductDetails.asp?ProductCode=MTB-016
Monitor: https://store.mp3car.com/ProductDetails.asp?ProductCode=MON-001
PSU: https://store.mp3car.com/ProductDetails.asp?ProductCode=PWR-015
Double DIN frame:
https://store.mp3car.com/ProductDetails.asp?ProductCode=DSH-012
GPS: i.Trek M7 USB
Wlan: Unknown USB dongle
I-bus: http://www.canusb.com/The double din frame fits straight into my dashboard. The entire thing
takes up no more space than my old original stereo. I am very happy
with how that turned out. Fitting the screen was easy, as the case is
built to fit the screen. Fitting both PSU, motherboard, Harddrive and
all the other stuff was not so easy. Especially the long original
cabling that came with the screen was an issue. I had to make a custom
VGA plug, and connect the USB interface for the touch screen directly
to the motherboard and not to the rear USB connector. In fact, I
cannot use any of the rear connectors as there is not enough depth in
the dashboard for that. As you can see from the pictures, I have used
an angled connector for audio, and made a custom VGA connector.I use a USB 2.0 hub that I will put in the glove compartment. I
connect the CANUSB, GPS, Wlan and potentially an external drive, mouse
or keyboard to that. I provide 5V power to the hub directly from the
PSU. I also drive the Lilliput screen from the PSU, but this is from
the 12V rail. This way everything is turned off properly when I stop
the car.Future plans:
- First get the CANUSB device to grab data from the databus in my car,
so that I can grab the bottonpresses from the steering wheel buttons.
Secondly, I need to somehow get Canola to accept these presses,
probably trough a python daemon I will make. Next, previous, volume
+/- should be made to work. A way to use the buttons to move about in
the menusystem would also be nice. There has been some work done for
this communication on the I-bus. Volkswagen has to my knowledge added
networking componet that works similar to IP traffic to the latest
linux kernel. Maybe use this?
- To make this complete, I need to run a GPS application. The plan is
to use one of the steering-wheel buttons (the “next” button I guess)
to switch between Canola and Navit. Even better would be to embed
Navit in Canola somehow. The last option is probably the better one as
I am not running a windowmanager.
- My Saab 9-5 even has a built in amplifier. Unfortunately they have
chosen the professional version of audio signals, namely balanced
audio. This did not work well with a standard line out level, so now I
am using a ground loop isolator unit to be able to connect to the amp.
I am thinking of making a line level to balanced converter in order to
get higher volume and more bass than I get now.
- My Saab also has a built in microphone for handsfree. I wish to
connect this to the line in, and get a bluetooth device to connect to
my phone so that I get handsfree.
- Radio and TV support would be cool. Maybe Canola will support tuners
in the future?
- I wish to have something like Carman (
http://openbossa.indt.org/carman/ ) to be able to show stuff like
actual speed, rews, gas usage, gas milage and other interesting stuff
that I can grab off the databus of the car. There is quite a lot of
data available there (
http://pikkupossu.1g.fi/tomi/projects/i-bus/i-bus.html ).
- Add a rear facing camera that is activated when in reverse gear (
get this data from the car databus )
- Add a forward facing camera that detects street signs and speed
limit signs and informs the driver, much like what has been made
publicly available by Mercedes, and also Opel/Vauxhall lately.I am very aware that I will not be able to do much of this in the near
future of course, but maybe I will get there someday? Probably I have
a car with all of this built-in by then…
Morgan Tørvolt
Awesome project Morgan, and thanks alot for the detailed information.
Well folks, that’s it.
Pingback: Valério Valério’s Blog » Blog Archive » Maemo Community @ GSoC 09 – Results & thanks
Is there already more information on how to build plugins, how to get familiar with the source and how to build the code from source.
The wiki page in gitorious is a relatively poor starting place, not completely up to date (atleast last time i checked) and I was not able to get a complete build working.
A more general page describing canola source and a step-by-step build tutorial for canola the application (both on linux and on maemo?), a my-first-plugin type tutorial and api docs would be very much appreciated.
(excuse my ignorance if some of these are already in place, if they exist at least i had trouble finding them)
Improving the documentation is something we really need to do, there was this http://profusion.mobi/setting-up-canola-2.0 , but I’m also not sure if it’s still working or not. Gustavo has a PPA with Canola packages being built, you could possibly look at them to see how they are working: https://edge.launchpad.net/~barbieri-profusion/+archive/canola2 .
Regarding plugin development, there are some old posts that describe it, and though they are not that up to date, they should provide some good guidance on the architecture:
http://blog.gustavobarbieri.com.br/2008/03/25/canola-model-plugin-example/
http://labs.morpheuz.eng.br/blog/26/03/2008/yet-another-plugin-tutorial/
http://blog.eduardofleury.com/archives/2008/04/24/
But honestly, right now the best documentation you’ll get is the source code. Hopefully the GSoC students are going to provide more documentation as well, I know that lauri had written a script to parse the terra libraries and generate inheritance documentation, that script is on his repository for the canola bittorrent plugin in gitorious.
The pages above provide a “my-first-plugin” type of tutorial, and perhaps a good starting point would be updating that plugin if it’s not working with the current canola release and blogging about it?
OpenIce / Linux ICE /nGhost! I believe they are replacing carman with nOBD. demo can be found on youtube and the openice wiki.
Hi! I was surfing and found your blog post… nice! I love your blog.
Cheers! Sandra. R.