picoFlamingo Software
The picoFlamingo system requires several software components that are
described in this page. The figure below shows a general diagram of the different components and their communication paths.

picoFlamingo Software Block Diagram

picoFlamingo Software Block Diagram
Presentation system (BeagleBoard)
The presentation system is the main component, in charge of rendering the presentation, and processing the files and the user inputs. The main features of this component are:- Can render the following items:
- Slide background
- Text
- Images (jpeg, png, bmp, etc...)
- 3D models (3DS format)
- Live Video
- Can render all the presentation items in a 3D space, including X,Y,Z position and Euler Angles for orientation
- Can navigate through the different slides sequentially
- Can remote control presentation navigation
- Can selection of 3D items in the slide (item focus)
Remote Control system
The remote control system works on different platforms with wireless communication capabilities. The following options are supported in current release:- PC with wifi/Ethernet support
- PC with Bluetooth support
- Symbian based Bluetooth device with S60Python installed (Nokia N70)
- OpenMoko phone using wifi or Bluetooth
- Android 1.5 phones using Bluetooth
- Command line interface for easy scripting. Use picoFlamingo to build simple interfaces
- Advanced Graphical interface supporting user manipulation of 3D objects
- Symbian graphical interface for Nokia N70. Basic slide Navigation
- Android graphical interface for basic navigation and direct commanding
Support Tools (NetKitty)
To simplify the connectivity problem, and to improve the coolness of the project, the NetKitty application will be used. Using this tool, wifi and bluetooth connectivity can be achieved immediately redirecting the processes standard input and standard output. Netkitty will be used instead of other solutions like Netcat for the following reasons:
- It is our tool :P
- It runs in the OpenMoko, BeagleBoard and PCs running GNU/Linux
- We only need to write this:
$ nk -server B,1 T,5000 | picoFlamingo - Applications just printf remote commands in the client side and scanf in the server side
- It can be compiled to an static executable smaller than 40Kb