Welcome to Open Discussion
Hi, as already promised, I start bugging you about this exiting project…
The documentation and example code are very, very promising in terms what could be developed by the community but it also left out a couple of topics. <br> Let me start with the (in my eyes) most obvious ones:
1) Which TV models/series are respective will be supported and
which generations (past/current/future)?<br>
2) I assume USB/Network connections will be required for installation of user applications (-> leads back to supported models)?<br>
3) Will a firmware upgrade be necessary as currently there is no option to start user applications (-> leads back to supported generations)?<br>
4) Could / will user applications cause warranty concerns?<br>
5) Will user applications have access to the TV's file structure for
saving/reading settings etc. or will that be masked somehow ("sandbox")<br>
First of all let me tell you a bit about the history…
3 years ago we started a great adventure with Denis Kropp (the main author of DirectFB).
We were releasing our first Linux based TV but we were looking for an architecture that would allow us developing the complete TV software in a more distributed way.
We came with the idea of a split architecture, isolating the development of a each application to better divide the tasks between everyone.
DirectFB was the best lightweight GFX engine to share the GFX resources accross the various applications and we selected it because it was very alive and very promising (and is still after all these years!)
We were already dealing with new applications like a multimedia player over USB and Network (UPnP+streaming), next to the existing TV broadcast application.
Even if DirectFB was already including a Window Manager, we were looking for building our applications manager next to all the other applications.
The cooperation with Denis resulted in SaWMan, a replacement window manager that allowed us building an external application manager, in control of the applications startup and the position of each window created by the applications.
All this to explain that our 2008, 2009 and our future 2010 TVs are all based on the same technology: DirectFB and the SPACE split architecture.
It means that from the begining, we had in mind the possibility to run external applications on our system, and our 2008 TVs were allowing the execution of additional applications from USB (when starting up the TV in a certain way and at the contition you had prepared the USB stick for your own TV).
Under these conditions, the application manager was allowing external applications to run on the TV.
Unfortunately, the TV is limited in resources like CPU and memory. So executing an external application is always a risk for the user.
Next to that we have to deal with security issue. You could see the complete RFS of the TV so you could destroy the complete set.
Moreover, the compiler was not public and so could not be distributed for free.
We never promoted the feature for those reasons…
The feature was disabled in the 2009 range.
We are now reconsidering the feature for our future range of displays by adressing it in a different way.
Almost all our TVs have ethernet connectivity per today.
What about controlling the TV from an external host? This is why we open our API today. Soon you will be able to do this.
Next to that, we are in favour of a remote UI server approach, to avoid increasing the load on our system with external code execution and allow the development of TV applications on a system that we don't own (toolchain and CPU can be whatever as long it is build on DirectFB techologies!)
So that will be our future sandbox approach.
You wont be able to browse the TV file system but only contol the TV features that we expose, including the rendering and control of external applications.
And yes, you will require new software for your TV to do this. This is what we are aiming with this project…
Thank you for this explanation J-M!
Let's see if I got it right.
So we'll need a firmware update for TV sets from the 2008 series onward and a network connection (8000 - series and higher).
Further we're "outsorcing" the CPU load. The program will actually run on the external host (PC, NAS…) and only tell the TV via the network connection what to display and how to display this content?
From what I've seen in the presentation and documentation the external program would tell the TV which source to show, how this source is processed (e.g. which video/ sound stream, video processing…) and how this content is displayed (contrast, ambilight, speakers or line out …). The user program would run on the external host, but all the video processing would be done by the TV set.
Though I haven't seen it during flipping through the docu I guess we'll also be able to create some kind of user interface (menus, buttons…). Or is this all be done via DirectFB? Will the design be fixed to the design of the original interface or are other designs possible?
The other idea would be to display a HTML page similar to that what is used in NetTV but that is located at the external host and react on this interface.
Initial development will be slow as this client/server approach might sometimes require to think around corners and it might be difficult to port existing software. But tons of ideas and possibilities and a unique point of selling for Philips!
The external host could be quite small in terms of CPU power and memory as the "expensive" video processing is done on the TV. A cheap NAS with low power consumption could do the job. Though it might cause some headaches to get it working… We could use a keyboard attached to the external host which controls the application and use the TV as "rendering engine" and display.
in the meantime I setup a virtual Ubuntu machine using vmware and installed jointSPACE. Well some hurdles to take, but it works!
I even tried the application.list.full. I think slowly I get a better understanding about the whole system will work.
But how do I end the application amapp gracefully? So far I can only leave it by closing the "TV window" or by hitting ^C. In both cases I get a warning that directFB wasn't shut down properly. The next time I start amapp the application stops with the message:
(*) DirectFB/Core: Multi Application Core. (2009-10-21 22:21)
(*) Fusion/SHM: Using MADV_REMOVE (126.96.36.199 >= 188.8.131.52)
~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.4.0 |~~~~~~~~~~~~~~~~~~~~~~~~~~
(C) 2001-2009 The world wide DirectFB Open Source Community
(C) 2000-2004 Convergence (integrated media) GmbH
(*) DirectFB/Core: Multi Application Core. (2009-10-21 22:21)
(*) Direct/Thread: Started 'Fusion Dispatch' (-1) <8388608>…
(*) Direct/Thread: Started 'Fusion Dispatch' (-1) <8388608>…
Then it just sits there and the "TV window" is not opened. So far I have to reboot the machine in order to get the application working again.
Please feel free to move this to another thread if you want to keep this one for a more general discussion.
You got it right, the applications will run on the remote devices and only the graphical operations will run on the TV.
Window creation and input events will happen on the TV .
We have also resources limitations in the TV but as long you use the DirectFB api to draw you little menu, it will be HW accelerated on the TV (=> limitted CPU load on the TV)
The network traffic might be heavier in case of high frame rate applications.
DirectFB can probably be compiled on a NAS device or on a Nintendo DS for e.g. No need for a display on the NAS, you will be able to use the TV. It still requires some memory but you can choose a limitted resolutio/pixel format.
Another type of applications is to create a control point for the TV. E.g. frome a WiFi phone, you could control the TV
I was thinking about something else possible, you could attach a PC to the TV, run an application on the PC selecting the PC as input source on the TV => for demo purpose and prototyping it can be nice; also to watch a DivX without having to touch your PC!
I noticed the problem with the amapp.
I will have a look but we had created a script called "die" in the amapp package that should be enough to kill all applications running.
Fusion fails because there is somehow an application that blocks some fusion worlds and do not allow to enter them.
I hope we can fix this in the coming week.
I got the configuration on the virtual machine working. If I press <space> in the "hello world" application the TV-screen is closed. Then I kill amapp using ^C. This way I get error messages but can (usually) restart amapp.
To ease the initial configuration for others I'm seeding this virtual machine with the complete setup. To get the torrent look at e.g.:
The Readme.txt both in the zip and the virtual machine gives details about passwords and the configuration.
My focus at the moment would be an improved dlna-client, as the current TV firmware allows playing movies from the Twonky mediaserver on my NAS but the implementation is quite basic and not really "sense and simplicity". Now I'm ready to start with the basics. ;)
Updated my VMware image to jointSpaceSimulator v1.2, released the image via
I further removed the torrent of the previous release.
Thanks a lot Georg!
I am happy to here you could manage the installation on the Ubuntu
I have also been busy this week-end with a compact demo image base on TinyCore . People will be soon able to try the simulator without recompiling. I post is soon.
Also we selected a UPnP stack to implement the remote services (thanks to Tim!).
I hope I can release something for next week-end to illustrate the basics of our architecture upgrade…
I thought distributing a preinstalled Ubuntu might attract some who don't want to fiddle so much with getting sources, compiling, installing DirectFB and other libraries. The vmware image allows you to start writing your own code using eclipse or any other editor installed in the image. Though the activity here is still quite low one can see from the file/website statistics that jointSPACE is gaining some interest. Also from the hifi-forum.de I can tell you that this project is watched!
That brings us immediately to the first question:
1) Can you give an estimate when the firmware updates allowing own developments will be released? The ability to actually do something on the TV would certainly lead to an increased interest into jointSPACE.
After playing around with the simulator and its sources for some hours the next questions arise (partially overlapping):
2) How will the pairing of application and TV take place - will there be some kind of (one time) interaction necessary?
3) Reading the docu I'm still not sure which parts of the original TV we'll actually override (amApp, homeapp) .
4) Will I loose some of the current functionality? Can I override existing implementations?
5) From what I understand so far amApp libam__clN_RequestActivity first maps the activity to an AppIndex (ActivityToAppIndex). Then this mapped activity is started. But only the activities (HomeScreen, NetTV, BrowseUSB, BrowseDLNA, WatchTV) are mapped. Moreover the first application from application.lst that fits is mapped.
Am I right that therefore - as long as amApp is used (on the TV) - it is not possible to define
6) two or more alternative applications for the same activity.
7) Additional applications that do not fit into that scheme cannot be defined (unless I misuse one of the above activities - and loose that functionality) .
-> the last two questions bring us back to the question 2)-4.
Ok, I am back from a nice week-en in Sweden, i hope you forgive me again from my late reaction….
For the current TV platform, which is I guess the one you own(?), I am afraid that there will never be a firmware release supporting external applications development. I am personnaly interrested also but the main issue is that the directfb version that was used in the product is quite old and I dont want to go back in time. Even if plfAPI is almost compatible, the amLib was not present . It would require recompiling the all software against the new DirectFB and re-test everything which is improbable as the product is already old (by the way what is the set type that you own and what firmware version?)
So for the next platform, I would say mid next year will be the date (yes, so late…)
A collegue of mine proposed to use UPnP to control the set remotely. It allows to create services and export a set of methods. Device discovery is perfect for pairing and the scenario we have in mind is:
export services (e.g a subset of plfApi or whatever library API as for e.g channelZapper library) a via a new application called jsApp. This application can be started from the HomeScreen. Default it presents a menu where you can browse the discovered devices and services. The remote device could also export a list of applications that could be executed on the TV (a new API?). jsApp contains also the DirectFB proxy code that allows remote UI running on the TV. So pairing is base on local network and IP address mainly.
It is not the intention to replace existing TV applications. More adding new ones but you could think about a second homeApp that would act as a remote application launcher… amApp is hard to replace….
So jsApp will be a new application presented in the homeScreen in the new firmware…
You are right that the amApp mapping is rather static today. The amApp need to be improved to extend the activity IDs or just accept to start whatever application.
The amApp in our product is slightly different and more complex than the one of the simulator. Give me some time to investigate but your remark 6) is right. Thanks for the feedback.
We rather work out the problem of adding new activities rather than sacrifying existing ones.
I am happy to see your interrest to the project. I hope you will be patient enough to wait for a firmware release.
Please communicate your exact set type to me. At the back of the TV…
If you had a old 2k4 Philips TV, I could give you very interresting SW but today security make TV open development more difficult ;-)
I am a bit late with what I wanted to release last week. No major changes but may be a package update to better illustrate what I have in mind and hopefully further comments from you….
sad to hear that the current platforms are not supported.
Could there be at least a chance for actual TVs to tweak some parameters like the static SmartSettings ? Or is there an Api available to load own configuration files ?
Ahhh - sorry I forgot to write my name, it's Mike.
I thought the post would show my public name not user name
Thank you for the explanations J-M.
Unfortunately these are quite dissappointing news. We've bought a 37PFL9604 a couple of months ago (current Firmware 026.066). My wife would call me nuts if I told her we'd need a new TV next year - especially if I told her it's only because of this (still interesting) project. And I'd fully agree with her.
Like Mike I still hope for some "goodies", but I guess I'll lean back and see what others might develop in the coming years. It's a pity as I really looked forward putting those ideas into projects. On the other side I can truly see some benefit leaving all the tears, sweat and grief of the first tough hours to others. ;)
And maybe, maybe Philips product development fixes some of the issues in the firmware of the current products. A quite long whishlist has been sent to "you" by the hifi-forum and it's only one month until Xmas. ;)
I using a 42PFL9603 (firmware 000.091.000.000) and jointspace support would be nice. I want to integrate the TV set in some kind of home automation (showing lights status, emails, etc)
Hi Jean-Marc, I just bought a new phllips (37PFL8404) and I'm trying to understand what's the programmability of the device.
Reading your post seems that no philips TV on the market can be programmed with JointSpace. Is it right? :-(
The jointSpace ubuntu distro is unavailable on torrent…it seem that no one is sharing this… Do you plan to release it somewhere else? Also if will be better to have a VirtualBox image of this
Tahnks in advance for your help
**NemoN:** the Ubuntu distro has little to do with J-M. I put it into the net. I just noticed that the software didn't response anymore and restarted it again. If you or someone else encounters problems again, please PM me.
**J-M:** I do understand your concerns regarding the old DirectFB support. And living with two versions will cause some overhead… But let me try to change your mind.
Looking at the statistics the simulator 1.2 has been downloaded about 70 times. Not all of these 70 potential developers will actually contribute, on the other side you'd gain some more if it was actually possible to develop software for the TV's and not only simulate that. So you've about 70 developers based on the models from 2008/2009 who are interested in this project. Most of those here who have a recent model won't buy a new one just because of this project.
**So if** you start with next years models you'll start with maybe a hand full developers. Remember, such a TV set is in the range of 1.000 euro and more. Philips customers for these series are people who are willing and able to pay for Philips quality and design. Within this group you are looking for those who are able to program and are willing to share their projects with others. Looking at your customer structure, this project will always be one with a small community, as most of us have good and demanding jobs, probably family ….
So think about it, if you can dispense those about 70 potential developers you've already attracted. Even if you told us that this was only to get some drive into the project and you'd switch to the next version of DirectFB next year, you'd still have a living community and existing projects based on jointSpace when next years models step into market. Probably those sets could still use the jointSPACE software developed for the current models with only minor changes. And finally you'd make at least 70 people happy, plus those who just consume the software that hopefully evolves from jointSpace. Think about it!
37PFL9604 and 37PFL8404 (both from 2k9) are "doable". In fact all sets with the Home Screen concept and from the range 7000 upward. It would require a special firmware release but I could start from the most stable sw and recompile the all package, adding the JS extras . I will think about it and see what could be done. It would be indeed a great Christmas present!
But my first priority is to move on with the project and review what is best to control remotely… The existing APIs are a bit too much and too low level to expose via UPnP. I will start with something simpler…
Great to read, I keep my fingers crossed.
so absolutely no support for 2k8 models like Pfl9703 ?
And also no release of a subset API possible to change existing parameters ?
Nice to ear that there's some hope for my 8404 ;-)
I'm quite new to HDTV and I'm learning….<br/>
If I'm right Philips TVs are based on linux kernel…and I thought that it would be feasible to install some other linux program on it…<br/>
as J-M told us this in not the case. (J-M do you work for philips?)
I'm not too convinced that the security reason is a real problem… I have a windows mobile phone and almost every week I update it with cooked ROMs… it's great and never found security problems… seems that Philips is going to follow the IPhone strategy…too bad!!! <br/>
The TV CPU seems to be limited, and you can see that it takes time from when you turn it on to get access to the home screen (anyway you can watch programs a little earlier).<br/>
So to do something with the TV we have to attach it to some 'server' stuff that feeds it.<br/>
For now we have some very lightweight programs that connects to Internet (YouTube, flickr, slideshow site ecc.) and also a limited internet browser (no flash support).<br/>
This isn't a great experience because I see hang-ups and the interface is not very good.
For example you see that also when there' no real content on the screen, all the screen space is taken (try to do something when your child is watching cartoon and you get the idea! )<br/>
The screen keyboard have big square for the keys, but the letter on it is very small!<br/>
So I'm looking into some piece of hardware to handle the content.
You can get some dedicated HW like 4Geek, Popcorn and the like but its not really cheap (say 200-300€) and you have to trust that the firmware will handle all of your needs.<br/>
So the best bet (at least for me) is a HTPC. This is a small PC with a HDMI port and a CPU suitable for handling 1080p content where you can install an OS of your choice say Linux, OSX (hackintosh) or windows.<br/>
You can get some media player on it like XBMC or Boxee (to name a couple) and with them you can stream photos, video and music.
What I'm looking for is also a storage where to put my HD content and (why not) also my pc data. <br/>
With HTPC you can attach some SATA or USB drive to handle the storage using some software to backup and mirror on different drives.<br/>
So why I'm still interested in programming my 8404… well I'm not certain if it's feasible but it will be great if I can use the TV remote control to send command to my HTPC<br/>
Also what I would like to achieve is doing some recording of what's visible in the TV…this will be great for using the HTPC like a VCR and to implement some time shifting feature.<br/>
The question here is… it would be possible to output the TV signal over an HDMI port?
Sorry if this post isn't jointSpace related, but helped me to sort out my thoughts about my TV experience
are there news about the special firmware for the 2k9 models?
Yes the 2k9 firmware should be released the 1st of June and the 2k10 around July.
I feel sorry that not much happend since december on the forum but I don't like to create enthusiasm if you are not allowed to try by yourself.
The 2k9 firmware should have been released end of March but for priority reasons it could not be done.
You will have to flash the SW via USB. I am not sure when it will be available over IP.
If you look in the files repository and in the top level Wiki page, you will find a new section about remote applications.
I hope your are still enthusiast about this!
We count on you.
Not later than yesterday, we were working with the author of DirectFB to offer more features for the future.
can't wait to try it out.
thanks for this new demo.
do you have news on the firmware upgrade to try it out :)