I'm not sure how interesting this is for most of us - I imagine most
neuros customers
are either people who have an intent to repurpose the devices (as
noted previously)
or are Linux enthusiasts. Offering devices closer to standard PC
hardware is not
particularly interesting to either - if we wanted devices like that,
we could put them
together ourselves.
. Geeks like me enjoy putting together a box we're going to use
(we don't think of it as work) and hacking on it. What we need/want
most urgently from you and other geek-friendly companies with the
right expertise is accomplishments in hardware (plus, for many of us,
included software/firmware that works well enough to inspire us to
play with the device).
I'm very happy to see Neuros willing to experiment with off-the-shelve
components. I think that by innovating on the user-experience and
getting the last 10% 'right' Neuros might have a much bigger chance on
delivering the best possible experience while maintaining its openess.
Think Apple (in user-experience & design) but open and hacker-friendly.
I disagree with Pavel on the embedded part. Personally I think that the
embedded market is very interesting from a technical viewpoint, yet
requires to much in developing the basics before the interesting parts
(at least for the end-users) can be given enough attention. Therefor it
might not be the best start for smaller companies with limited resources
such as Neuros Technology.
Instead if Neuros Technology would focus its energy in combining the
existing free/open-source software towards a system that will provide
end-users with the best possible user-experience while maintaining its
open and hackable identity it is in my humble opinion adding an unique
value to free and open-source software.
You could argue that this is the same as what Canonical has been doing
with Ubuntu and what made Ubuntu a very popular Linux distribution in a
short time.
In my again humble opinion its not so much about the hardware. If I
would generalize/exaggerate I would say that anyone can handle that
part. Its about the added value on top of the hardware: possible usage,
experience, extensibility etc.
Again Apple is a good example. Take the iPod. It came late to the market
(there were plenty more players) yet it took over the market due to its
design, user-experience and seamless (monopoly) integration. Off course
the hardware is an important factor as well, but I haven't heard about
someone who bought the iPod for its interesting hardware.
I'm not quite sure about the target group(s) for the Neuros devices.
Although in my arguments above I keep the average end-user in mind.
Somebody who likes a product that works and does what it promises from
the start. I belief that this is something all user archetypes would
like to have.
Anyway, if you look at these four archetypes, one question is quite hard
to answer: why would anyone chose a Neuros device instead of one from
its competitors? I'll try to answer this question for the three types
I've defined.
1) User-type: End-user
Wants:
An easy to use device for all their media usage. Enjoys new features,
but does not like to experiment and gets quickly annoyed/irritated if
the device does not work as it (in perception or reality) should be.
Why Neuros:
Value of usage increases instead of diminishes compared to competitors.
The device offers all what it promises and offers even more after sale
at least if the user updates its device. Due to openess third-parties
(developers but also other companies) can add extra value to the device.
Think durability and extensibility.
2) User-type: Power-user / Prosumer
Wants:
An easy to use device for all their media usage. Enjoys new features and
likes to enhance or change their device according to their abilities.
They might develop a new skin for a menu or create a physical mod of the
device so it fits better with their living room. Is a bit more forgiving
yet they still get quickly annoyed/irritated if the device does not work
as it (in perception or reality) should be.
Why Neuros:
Value of usage increases instead of diminishes compared to competitors.
The device offers all what it promises and offers even more after sale
at least if the user updates its device. Due to openess they can change
or add value to the device itself. Their work might end up on somebody
elses Neuros device ('ego-driven'?).
3) User-type: Developers (companies/hobbyists etc)
Wants:
An easy to use device for all their (or their clients) media usage which
is also open and extensible. Might be interested in developing
applications either to 'scratch their own itch' or for commercial
purposes. Has experience in developing desktop or webapplications. Has
no experience in embedded development(!). Is quite forgiving yet they
still get quickly annoyed/irritated if the device does not work as it
(in perception or reality) should. Needs clear documentation and
guidelines in how to quickly develop applications for the Neuros device.
Why Neuros:
Due to openess they can change or add value to the device itself. Their
work might end up on somebody elses Neuros device. Might be interested
in commercial purposes as well. Easier to develop for than embedded
systems(!?). Imagine an Android Market, Wii channels or the iPhone store
for third-party Neuros developers
4) User-type Hackers
Wants:
An easy to use device for all their (or their clients) media usage which
is also open and extensible. Is more interested in being able to
transform the hardware into anything they can think of than just using
the default to build upon (is that the difference between developer and
hacker?). Is very forgiving if the device does not work as it (in
perception or reality) should. Perceives this as an interesting
challenge and aims to fix it.. Lack of documtation is acceptable as long
as the sources and specs will be available.
Why Neuros:
Due to openess they can change or add value to the device itself. They
have searched and found Neuros to be the best solution for their problem.
Curious about any remarks, comments and so on this huge braindump.
Thanks for reading this far :)
All the best,
grtz
BjornW
met vriendelijke groet,
Bjorn Wijers
* b u r o b j o r n .nl *
digitaal vakmanschap | digital craftsmanship
Concordiastraat 68-126
3551 EM Utrecht
The Netherlands
phone: +31 6 49 74 78 70
http://www.burobjorn.nl
> <http://nbc.com>, the bbc's iplayer etc (and a ton more) and that $99
My concern is re-focusing to small hobbyists market with WUMP
you'll loose OSD market (which I believe suppose to be much bigger
end-user market) and all those embedded investments will be wasted.
> [...] Finally, what above means if Neuros wants sales they need to
> focuse on OSD2 functionality (codecs, apps, api) and not WUMP.
I second this.
--
Best regards,
Martin Springer
.------------------------------------------.
| DirectFB - Hardware accelerated graphics |
| http://www.directfb.org/ |
"------------------------------------------"
PS: Joe, ever managed to get your ebay-purchased prismiq up and running?. Noticed already what I said about the D-Pad on the Prismiq's remote?
>> basics before the interesting parts
>> (at least for the end-users) can be given enough attention.
>
> Could you please elaborate what are those interesting parts?
>
The interesting parts for an end-user will be the interaction and
integration possibilities. To give you an idea, I wrote down some
features that I would consider non basic yet end-users might be very
interested in it. Off course this would be guessing at the moment.
- The ability to scrobble (do they still call it this?) your audio usage
to last.fm This has only recently been added if I'm correctly.
- The option to view and down-/upload your own images to Flickr.com or
any other image storing facility.
- The option for an Electronic Programming Guide (EPG) which gathers
metadata to make recording a breeze, but also makes it easy to find
recorded programms afterwards.
- The option to quickly find more info about a media file either be it
audio or video. For instance I would like to find the IMDB score for the
movie I'm going to watch.
- The ability to easily download media files using something like
bittorrent. I know some might find this being questionable, but there's
plenty of free legal stuff available to make this a valid AND legally
sound option. The sharing of the material would also be possible, but
that might open a can of copyright worms although it might be a very
interesting feature from a social/communication perspective.
There's plenty more ideas that I can come up with. Imagine what ten or
possible hundreds of people can come up with. Personally I think that
the main objectives for Neuros Technology should be:
1) Creating an easy to use device that offers the basics promised and
partially delivered in the OSD1 and sell it for a reasonable price.
2) Make developing / hacking the device as easy and attractive as
possible. Adding surplus value and perhaps even create a 'second-market'
interesting for third-parties.
Now that I think of it. Neuros Technology could use something like the
bounties in combination with something like Dell's[1] or Ubuntu's[2]
Ideastorm in order to decided which non-basic features get implemented.
It could even be setup in such a way that users can offer small bounties
as well. So that very popular request could in theory be funded by the
community. Doing this might also strengthen the community between
developers and end-users and even create a 'second-market' for the
Neuros OSD.
All the best,
grtz
BjornW
[1] http://www.ideastorm.com/apex/ideaList?lsi=0
[2] http://brainstorm.ubuntu.com/
Actually it is more difficult on an OSD than on x86, otherwise we would
already have these options. Instead the basics have only just gotten far
enough to make the OSD deliver its promises. I also have the feeling
(very subjective) that the interest / amount of developers doing
interesting stuff with the Neuros seems to be less than its potential.
Imagine having a more 'mainstream' system built upon commodity hardware.
The pool of potential developers is substantially bigger than using a
less mainstream system and more specialized hardware.
IMHO there are two options:
Neuros Technology needs to offer everything on their own with regards to
the basics to build upon, which has and will take significant resources
and the risks that it will be obsolete before it can be used.
Or they will use commodity hardware which has already the basics done
(lets say 80% is already there) and Neuros Technology invests in the
last 20% procent (which according to a common saying will take 80% of
the time ;)) to make it great.
Either way, it's up to Neuros Technology and I hope they will make the
right decision. I applaud their interest in experimenting with commodity
hardware and I'm very interested in using / developing for it.
All the best.
grtz
BjornW
It's because, for one reason or another, the software on the OSD is
not easy to simply "hack". It has always attracted the more low-level
developers, with time on their hands. Over the time I've been around,
it has changed a lot. These GSoC projects would not have even been
possible last year :)
> In one of the last meetings with TI, they asked just what are the missing
> software parts that they need to deliver in order to be more competitive in
> allowing experimentation. It's a response that now has been on my to-do
> list for months, but I haven't really been able to answer, but its pretty
> clear to me that it's there and it's real. A host of "small things" that
> add up to making all the difference in the world.
>
The small things are the unified, open API - available in the
developer's personal language of choice (be it Lua, Python, or C/C++).
I've said this many times. Open-source is of no direct value to
end-users - none whatsoever - unless developers are hacking it. Most
open-source projects have a strong developer community, the OSD never
had this, because quite frankly the APIs didn't exist, and hence the
barrier to entry was just too high for the majority of people.
http://xbmc.org/wiki/?title=HOW-TO_build_Python_Scripts#Play_A_File
Playing an audio file in 2 lines of code. *That's* a successful
open-source project. The easier it is to write the code (that is, the
more help we give them), the more time developers can spend on being
innovative, creative, and productive.
We must not of course forget the documentation. But that's for another day.
Note that it is still my personal mission to achieve these things on
the OSD (1 or 2), and any other device I can lay my hands on.
> Thoughts?
>
:)
Matthew.
In one of the last meetings with TI, they asked just what are the missing software parts that they need to deliver in order to be more competitive in allowing experimentation. It's a response that now has been on my to-do list for months, but I haven't really been able to answer, but its pretty clear to me that it's there and it's real. A host of "small things" that add up to making all the difference in the world.
> I'd like to try and give a point or two regarding this.
...
> As an example, the OSD1 is stretched to its limit when playing an audio
> file with xmms2 while displaying the audio player GUI. The ARM needs to
> take the audio file, convert the contents to PCM format on the fly and
> pass it to the DSP (which does sod all), and update the GUI every
> second. That's a lot of work for a wee 203Mhz CPU.
There is a couple of PMP products out there that have used the DM320 as their CPU and had no problems to play audio and
display a decent UI at the same time, so I do not buy this argument. Maybe 200Mhz is not enough to run a fancy
visualization, but updating the play time display every 1s is not so much of a burden. Ask the rockbox guys about what
they do/did with a 12Mhz SH-1.
But you still might have a point, because what the OSD1 does is to try to achieve the same but going through several
(more) layers like fancy UI toolkits, Window managers etc and this might be too much indeed.
> However one side-affect I believe Crweb or Nero mentioned was that there
> then can be no on-screen GUI while the DSP is playing/recording video.
Again, there exist products that did that on this very CPU.
> The OSD1 & 2 are dedicated media devices. Trying to run something trendy
> like Compiz on them is daft. But a web browser isn't so daft, and while
> ravenexus did manage to run Webkit on the OSD1, it is dog slow, because
> 203Mhz isn't enough. Nor do I expect that 300Mhz will make it much nicer
> - even with the DDR RAM - there is still a speed issue. Offsetting the
> GUI generation to the DSP may improve this situation though.
The issue with web browsing is that it has literally "exploded" over the last two years in terms of CPU performance
needed. HTML used to be a more or less static description on how to *render* a web page, now it is just the pipe to
transport the actual SW (javascript) that *runs* the web page in your browser. So yes, a 200-300Mhz ARM9 is not enough
for this task.
> What we all really want is experimentation with media. The decision to
> go with VLC on the OSD2 was a good one IMHO, it makes playing a wider
> choice of media more possible, especially those from the internet,
> however is does still rely on the ARM to transcode on the fly that which
> the DSP does not possess a codec for - something I don't think it can do
> fast enough for certain video formats. A more open DSP access would be
> nice, and while DaVinci is going that way, it appears that one still
> cannot write a new codec without going under NDA.
There is not much that you can transcode on the ARM, things like SPARK to MPEG4 are easy because they are more or less
the same codec with slight changes, but anything else is more like a decode/reencode, so no way.
> But with a machine that can play almost anything reliably, then wrapper
> apps can easily be made to play online streams. If it cannot play the
> codec, no such wrapper will ever be made. These wrapper apps are not
> processor heavy, current ARM processors will easily manage them. I think
> once the OSD2 get's the reputation of Play-it-All, then this work will
> appear.
The Davinci can play all these formats in SD:
MPEG2
MPEG4
DIVX3.11
WMV9/VC1
H264
RealVideo 9/10
On2 VP6
Some people claim that is does some HD as well, but the actual products show that this is not true, the playback cannot
keep up when the bitrate is too high or certain codec features are used.
So, you could end up with an SD play-it-all.
I agree there, the idea was that of having to choose a tradeoff
between complexity and CPU usage versus maintanability and ease of
development (also for 3rd parties).
We went with QT since we believed the trade off would be good enough
but of course I don't deny that we might have been wrong there, and
we're paying some price in areas where CPU is scarce.
However consider this: QT brought a host of good things that wouldn't
have been possible before, or being harder. The mediafly project
wouldn't have existed, the web browser, probably lastfm too, it's all
stuff that would've required a lot more time and effort if we remained
with nano-x and probably chased away the hackers.
Also it allowed us internally to have more manageable code with less
hacks (leaving aside the fact that sometimes the team ended up
mis-using QT in ways that can be much optimized) and MUCH easier to
fix, change and extend when needed.
In the end i believe QT is good for making the UI of the device for
most of its operation (again, granted that it can be optimized some
more), like settings, file browser, menus, etc.
However when doing recording (and possibly also playback) we may
benefit from something simpler (both for display and also for the
actual recording code itself).
There was some discussion on shutting down all of QT before recording
and displaying a very simplified recording GUI directly on the FB, or
using some extremely lightweight GUI toolkit in that case, or going
back to nanox (given we have now lots of space on the CF card to keep
more libs), to see if things were much better, but we didn't have the
chance to experiment much in that department yet.
Another option may also be to bypass the neuros media server (which
may introduce some latency, epecially when responding to commands) and
have the player app go directly to the ingenient framework, but again
not much was done on that too. I think Michael Gshwandtner will do
some research in that direction while working on some of the fuse
stream stuff soon enough.
Anyway, the CPU is capable of doing the stuff we need i believe,
Vladimir is right, but of course it all comes at the cost of more
complicated code or harder to maintain code, and possibly uglier (or
not seamless) appearance of the GUI (which i personally don't give a
damn about but the end-user does, unfortunately)
--
nero
> As an example, the OSD1 is stretched to its limit when playing an audio file
> with xmms2 while displaying the audio player GUI.
Out of curiousity: are all the codecs xmms2 is using fixed-point or does this
also suffer due to floating-point emulation?
--
I agree there, the idea was that of having to choose a tradeoff
between complexity and CPU usage versus maintanability and ease of
development (also for 3rd parties).
We went with QT since we believed the trade off would be good enough
but of course I don't deny that we might have been wrong there, and
we're paying some price in areas where CPU is scarce.
When i tried it, it was ok, but didn't have exceptional performance.
Raster also said that from his experiments way back on the OSD,
without being able to tap into the DSP, there was no chance of having
anything with any serious eye candy (like you describe above,
animations, transparency, etc etc).
So I wouldn't expect too much there, from ARM alone, on OSD1.
There were also some problems with handling the hardware-based binary
transparency due to some dithering that the EFL libs were doing when
converting to rgb565, but i hear that has been fixed by now.
In any case, I would very much like to see what you can get out of it :)
Please do keep us updated,
--
nero
The ones we use are all fixed point, as far as i know.
--
nero
As for TI, they were not really concerned about providing a sound platform for experimentation with the DM320, the Linux
offering on this was not really where their mainstream interest was. This chip is/was mainly for digital cameras running
some closed OS. The fact that Neuros used it for the OSD1 would not make TI support it heavily.
The real change comes with the OMAP3 (which is one generation after the Davinci), with a *really* powerful ARM and the
the same DSP as Davinci it makes a truly impressive embedded platform and TI is really supporting it on the open source
side. See the $150 beagleboard and the large following it managed to gather in a really short time.
(http://beagleboard.org/)
So, maybe Neuros could/should replace the Davinci CPU module inside the OSD2 with an OMAP3 based one :-)
Archos gen4 and gen5 devices
So, maybe Neuros could/should replace the Davinci CPU module inside the OSD2 with an OMAP3 based one :-)
>It's because, for one reason or another, the software on the OSD is
> This statement gets right to the heart of the matter. In my experience,
> it's just not true. I'm not a developer and I'm not able to explain exactly
> why, but it's clear from observing, that the results tell the story. Look
> at the two gsoc projects we featured, just as examples, and there are tons
> more:
>
> last.fm
> http://open.neurostechnology.com/content/lastfm-social-music-revolution-comes-neuros-osd
>
> webkits
> http://open.neurostechnology.com/content/web-your-tv-why-it-makes-sense
>
not easy to simply "hack". It has always attracted the more low-level
developers, with time on their hands. Over the time I've been around,
it has changed a lot. These GSoC projects would not have even been
possible last year :)