Today we would like to present Karotz’ software architecture, and take a first look at the possibilities it offers.
Karot’z system is based on a Linux 2.6 kernel, uClibC and BusyBox. To this base we added different system libraries, multimedia libraries, web libraries, etc.
The Wi-Fi rabbit Karotz contains different independant modules, that communicate with each other through an inter-process communication system, in this case a D-Bus.
- The controller is the heart of Karotz, it centralises all data that it receives from outside through our server, and it supervises the general functioning of Karotz.
- Karotz to Karotz is the VoIP communication modul between Karotz.
- The KarotzVM is the virtual machine based on V8 (created by Google), and offers the possibility to execute on-board applications.
- The Spirit Manager manages the different moods and behaviors of the rabbit.
Following modules make it possible to interact on the inputs and outputs of the rabbit.
- RFID: detection / reading of RFID chips
- Voice: voice recognition and speech synthesis
- Multimedia: reading of multimedia files from the flash memory of the rabbit itself, from an USB or at distance through streaming (http, rtsp, mms)
- Webcam: also takes photos when requested
- Button : detection of different types of clics
- LED: control of Karotz’ LED, management of the colours, the intensity and the pulsation’s speed
- Earz: control of the ears and movement detection
There will be 2 categories of possible applications for Karotz.
The distant applications use the API web (REST), and can be developped in any programming language and on any system (smartphone, Windows, Mac, Linux, etc.).
Many of you are owners of Nabaztags and maybe you noticed some breakdowns during the last two weeks.
I would like to use this blog to revisit these problems and the futur of Nabaztag.
As you know, Mindscape inherited the server architecture that has been created by Violet. We were very happy to enter the world of communicating objects, but we needed to learn many things about what has been done, and how to handle problems.
In october 2009 we discovered Violet’s structure, which was surprisingly oversized, compared to the users’ needs. So we started to reduce it. At this moment we discovered many things, for example that 10 servers out of 50 were turned on, but not used. And we also discovered that nothing was automated and that there was no technical documentation.
Here an example (that cost our team some sweat drops): Nabaztag creates an MP3 file whenever it reads an RSS feed. In the actual structure this code line is saved, but is never deleted. As time goes by, the servers fill up, and at the end nothing works no more. So we had to resolve this problem, which absorbed us quite a lot last July.
But last week a new problem occurred, that we never encountered before: a server, that never showed any problem, has broken down. We had to restart it. Maybe you think that this does not seem to be a big problem. But our developer who worked 12 hours on this, will not agree… Into the bargain our server could not digest so many logs, so we had to give him some medicine.
So you imagine that this situation cannot last any longer… We don’t want to maintain Violet’s servers any more (I alrady hear screams!) But don’t worry, we have a solution and we hope, it will satisfy you:
We decided to use the Karotz servers also for Nabaztag. Some of you might know that Nabaztag does not contain much intelligence, because all it’s services are placed on servers. During the development of Karotz we developped a virtual rabbit, that helps us to test the KAPI (Karotz API). We will use this virtual rabbit and connect it to your Nabaztags. To sum up, your rabbit will do the same things it did before, but it will not depend on Violet’s servers any more. Even better, it might be able to adopt some new functionalities of Karotz. (To learn more about this, please visit the blog from time to time.)
During the following days we will provide more information on the blog, and we also will add some Twitter accounts. One of these will inform about the server’s status.
We also will publish more technical details about Karotz, and every friday we will post a short video, that shows you what happens in the backstage.
As one misfortune is not enough, our host informed us that we need to relocate our structure into a new modernised space.
We are about to prepare this relocation to make it as efficient as possible, but it will be unavoidable that our services will be cut off for some hours. This interruption allows us to proceed an attendance of the database, that is subject to fatten up during winter.
We will keep you informed about this interruption…
We are really sorry for all these problems that you had with your Nabaztags, we don’t forget about you, but those were difficult problems that needed a lot of time and efforts.