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

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
The remote control capability is available with different interfaces
  • 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