Current Status of Development

The allegory of building a house for the way a software stack for mobiles is build says that building the cellar is done before the basement can be build and the roof will be the last part. Other project do not follow that idea because of marketing considerations or whatever and even others say this allegory is their own idea at all. Anyway here is the status of the layers of pyneo:


For pyneo everything below pyeno is “cellar”. So u-boot or Qi is, the kernel is and the buildsystem and baselibs are too. While loosing lots of time through the ever changing build system with unpredictable behavior pyneo tries to minimize the dependence on openembedded, bitbake and receipes as much as possible. To stick with one (working) version is not an solution because it is quickly not supported anymore.

  • buildsystem: Debian or bitbake.
  • distribution: Debian or openembedded.
  • bootloader: Qi or u-boot.
  • operating system: linux.
  • base libs/tools: various gnu utils.


The basement contains urgently needed parts like the muxer which normally would go into the cellar but wasnt provided there for too long time, the daemons like gsmd and generally all functionality. New mobile operating system wants to have functionality always seperated by dbus from the gui part.

The status of the damons:

  • pwr: power manegment ist rudimentary implemented in a pwr daemon but should be replaced or enhanced. [OK]
    • shutdown device [OK]
    • battery status signaling [OK]
    • vibrator support [OK]
    • led support [OK]
  • net: a dirty network and bluetooth daemon is around to allow switching networks until connman is ready to use. this one will (hopefully) disapear soon.
    • usb [OK]
    • ppp gprs [OK]
    • bt pan [Fail]
    • wlan [Fail]
    • forwarding/natting [Fail]
  • mux: the muxer is working fine with pygsmd.
    • power mngmt [OK]
    • modem init [OK]
    • channel allocation [OK]
    • dbus interaction [Fail]
  • gsm: all mature function of gsm can be used now.
    • power mngmt & muxer interaction [OK]
    • device inquiry [OK]
    • pin entry [OK]
    • gsm network register [OK]
    • signaling of signal strength, cellid, cipher status, network status change. [OK]
    • call handling initiating call, receiving call, hangup call, call state signaling, deflection, holding, forwarding. [OK]
    • sms signaling, listing, retreiving, sending, deleting. [OK]
    • Decoding of special sms like wappush, mms. [Fail]
    • cell broadcast signaling, retreiving. [?] (Missing test cases)
    • phonebook storing, listing, retreiving, deleting. [OK]
  • gps: is working fine on the gta02, due to missing udp support gta01 is currently not supported .
    • serial io [OK]
    • udp io [Fail]
    • u-blox support [OK]
    • nmea support [OK]
    • power mngmt through sysfs [OK]
    • power mngmt through gllin [Fail]
  • other location: pyneo uses the idea of interfaces of dbus alot. so if gps provides a location this is just the interface of a location provider that other daemons can implement too. one that also can determine neos location is one that uses the cell id for that. other may use wlan macs around. a daemons that uses googles location db is in place and working.
    • google location [OK]
    • custom location db which reads a database that you can get from a friend that measured the location of some cells. [OK]
  • map: maps can be fetched by position (and screensize to determine the tiles needed) with proper http handling optimized for mobile devices.
    • asyncron behavior integrated with glib and dbus (uses signals for map tiles). [OK]
    • open street map support for terrain and street. [OK]
    • google map support for terrain, hybrid, satelite and street. [OK]
    • yahoo map support for hybrid, satelite and street. [OK]
    • microsoft map support. [Fail]
    • map support. [Fail]
    • google map support for terrain, hybrid satelite and street. [OK]
  • http: [OK]
    • dns [OK]
    • keepalive [OK]
    • timeout [OK]
  • hon: most important daemon: the hot-or-not. [OK]
  • audio: a mp3 player over gstreamer is ready to use.
    • playing start/pause, next/prev, signaling [OK]
    • playlist set by list, by dir, by file [OK]
    • state loop, shuffle [OK]
    • volume set [OK]
    • ringtone set, play, stop [OK]
    • song info length, name, id3tags [Fail]
  • traffic: the traffic daemon shows maps with traffic jams around you
    • germany traffic report [OK]
  • timetable: a train timetable query daemon for german/europe is currently in development and waiting for the pyhttpd.
  • cover: a coversearch via amazon. [OK]
  • ent: a news entry daemon is in development.


The gui part makes the roof. As long as the basement is not stable no further work will be invested here. Currently there is “zad” which can show the power status of the dameon object that are “Powered” but no more. There is a sample that notices phone calls and sends a sms to the caller which was hacked for the 25c3 and last but not least epydial that is able to use most of the functionality of the pyneo.

  • epydial:
  • zad: On top of the daemon stack, pyneo has a GUI that as of now shows the states of underlying components. See goals if you want to know what is planned here or see the video of its current state showing hot-or-not, reading newsfeed, enter a number (pin), registration in the gsm network, osm-maps with location via gsm-cell (see the “llb” in front of the location), enabling gprs and maps with location via gps (see “gps” where the “llb” was before).