I'm still waiting for my unit to arrive , but have done a lot of reading, have already downloaded the update and a few posts by member "unrequited" got me thinking.
First off i am not a programmer. Not even close. i just have applied patches created by people over at gpspassion who have worked extremely hard on helping users "unlocking" certain devices
now "unrequited" mentioned about a data.zip file that contained bmp of junk in the trunk..
so for those who dont know
the data.zip is like a "skin/theme if you will" it makes the pioneer navigation GUI look the way it looks. So people who see those blue bars still hanging around - the problem may lie in this file. (data.zip).
I have loaded numerous data.zip on my GPS mio 220 and it changes the whole look and feel of the device to your liking. For example having the Street name at the top of the screen over a Green board (mimic signs you see on the road). its all eye candy to say the least but believe me with this new update and what it may have exposed could lead to further improvement and not just by pioneer, if you know what i mean.
But again theres the question of how to write this information as was mentioned in another thread.
Just for your info, I turned my bare bone mio 220 that just ran a gps over windows CE 5 into a mp3 player/ video player / nes/genesis emulator, note pad / and a desktop that looks like vista! complete with taskbar and icons etc. I also could install different navigation programs if i wanted to. (this involves a lot more work than just data.zip)
One last thing i want to add that is relevant to the F series since we do have sd slot and bluetooth is you can get wifi sd network cards! so yep its possible to get internet on these units. Also its possible to use your bluetooth phone as a modem to connect on the internet. Again, i'm not a programmer, I dont take credit for any of their work other than to say that i applied it and it works and the potential of these unit.
OK, so I am not a GPS hacker, but I am a Software Engineer with over 6 years professional experience and a Bachelors and Masters in Software Engineering. So here is my .02
All that you propose is possible given the time. Most likely the screen that we see is a program that is written by Pioneer to provide a User Interface for multiple hardware drivers and 3rd party libraries. The drivers run the specific hardware in the unit (USB controller, SD Card controller, radio controller, audio output, bluetooth, etc etc). 3rd party libraries and applications would be the GPS, MSN direct, etc.
The problem is that the code has to be reverse engineered, since Pioneer has not released the code in a Software Dev Kit, someone who has more time to blow than me would have to decompile the program to produce code. Often, this won't look as good as if we were given an SDK either, since decopmilers can't include comments, and class/variable names, etc etc.
If we were given code I would be more than happy to look into fixing things, but I am not a hacker nor do I have the time to reverse engineer.
And frankly, I am not really interested in getting on WiFi and adding all those other goodies. That would be nice and all, but I just want the thing to work as it should!
Unfortunately I see a real problem with the priority settings within the software. A brief reading of WinCE (and I am no CE expert) indicates its a realtime OS with 256 CPU priority levels. It should not be too difficult for a good team with some experience and time to produce robust software using this type of platform. But the problems I have seen indicate an *architecture* problem, not just a few bugs. The "comma" problem, and the green squares on NAV - well those are minor bugs. The UI slowness, the SD skipping the ends of songs, the slow bootup, the bluetooth issues... those all indicate a more significant issue.
IMO, the UI should be running at a very high priority within its own thread, and it should not be sharing data with other processes directly, but should use an async messaging implementation. This would keep it running quickly and responding ASAP always, button presses would work correctly. Then you do have other issues such as how to reflect the data settings correctly, etc. But there are ways to handle that (see Model View Controller).
These sort of problems imply a tech refresh is necessary. Thats not great news for us.
Of course, I could be wrong, and these could be minor bugs that just *look* like a design and architecture problem.
I do wish we could get an SDK.