I did wrote a wiki page about my toughts:
http://code.google.com/p/bicycleledpov/wiki/MemoryOrganization
But yesterday I agree with Fernando to do like this: Initial table on
memory have the position of START and END of animation on the memory.
Each position, frame, have the time that will be displayed and the
data, so, MCU will just show frame_data and wait the frame_time before
jumps to next frame.
This make sense??
About colors, I am a bit loose... eheh :-)
kvassoff, what do you think that hardware should report, using the
API?? the size of the matrix, number of channels and bits per channel?
Eheh -- just put raw data on memory, so an MCU like this one with 512
RAM bytes can use it.
To use video, I would use some hardware with Linux, to be able to read
all kind of video codecs and data images.
2008/9/24 Casainho <casa...@gmail.com>:
--
Fagote / Contrafagote
Bassoon / Contra-bassoon
http://myspace.com/ricardolameiro
Sorry, didn't understand that - my poor understand of english.
> we need to have an strong software,
> maybe will need to shift the direction of software dev, I am just an
> amateur and I dont have the skills or the time to learn them, so we
> should start to search someone to do this. Maybe Fernando is a god
> choice, I wouldn't mind if the software uses the mono platform, I
> believe that in mono would be very cross-platform friendly. say your
> thoughts about this.
Fernando can help on software and he will work with tools that he is
motivated to work with. But for sure that is some Open Source programing
language and development tools, also the software will be available with
some Open Source license.
For now, it's very important to work on API and memory organization, so
anyone can do a software program implementing that API and memory
organization. The same on hardware firmware.
Ricardo, you can always continue to working on software and using the
BRANCH directory on SVN, and let's learning with all of our
knowledge!! :-)
I hope to stay with Fernando next saturday and write on paper the API
and memory organization, after I will put it on wiki to see if there is
some other ideas, some errors, something missing.
I am still waiting for kvas_off ideas.
As I discussed with Jorge, we need to have an API that should have 2
goals: be simple and flexible. As all you know if we implement
something simple it will have some ground to grow in the future.
So, Jorge, please finish the API spec and forget that non sense of
having "everything" in the first version of this software.
Resuming:
* getSystemInfo - returns API version, firmware version, radials
count, leds per radial, color depth (in bits) and memory size
* readByte - reads one byte from the memory
* writeByte - writes one byte into the memory
And this is enough to implement something!
Regards,
Okok, I can now start writing but I have one question: color depth, what
is in actual hardware? and what would be in an RGB hardware with 3 leds,
one R, other G and other B, with just turning ON and OFF each LED?
That means, that we need to return a byte with the number of bits
supported. In this case, it will return "1" and it's with that value
that we will work.
In the future, it can return any other value (eg. 8, 16, 24, 32) that
we will then think how we will implement.
Fernando tolds me that do not want to make various versions of
software, just one to work with one API.
To say the true, I also feel the same when thinking in coding again
API changes on firmware... I would prefer now to work on API, thinking
very well it and after just do one more time firmware for it.
Although there may be different ways to make hardware for RGB, there
is no problem because hardware and firmware can adapt for the API!!
Also I understand that the way to go is having information on memory
as If it was an image file, or at least, software will work like
that...
Fernando, so:
> In the future, it can return any other value (eg. 8, 16, 24, 32) that
> we will then think how we will implement.
If I wanted to make one RGB hardware, with 8 bits of data for each R,
G and B colors,
* getSystemInfo - returns API version, firmware version, radials
count, leds per radial, color depth (in bits) and memory size
getSystemInfo could return:
API version - 1.0.0
Firmware version - 1.0.0
Radials count - 256
Leds per radial - 32
Color depth - 24 (8 bits for R + 8 bits for G + 8 bits for B)
Memory size - 1024 (kB)
And If RGB but with just ON/OFF each R,G, and B LED:
getSystemInfo could return:
Color depth - 1 ???
How can we know if hardware uses 1 bit color depth for just one color
LED (like actual hardware) or uses 1 bit color for 3 color LEDs?
Software don't need to know how hardware works...
Maybe is just putting an image file like .BMP on memory, MCU after
have to decode the image before putting it on LEDs.... BUT, this MCU
have just 512 bytes RAM (the same RAM shared for USB, etc). Also MCU
is speed is very low, 8MHz, to read memory data, decode it and send to
SPI BUS for the LEDS, and use data from sensor hall effect to
calculate time frame....
I remember Fernando talking about using .BMP or ICOn files...
> As I said before, VERY INTERESTING and useful article:
> http://en.wikipedia.org/wiki/Color_depth
I need to find some free time to read it :-)