Looking at the current schematics for SpokePOV I have a few questions.
I'd like to use spokePOV on a larger device such as a fan. Rather than program 2 seperate spoke POV's i'd like to use a single device and just extend the board to add new LED banks.
The simplest way i'd like to accomplish this it to get a second spokePOV board and jump the 6 rails to the start of the next bank of 74HC595 latches, essentially creating a 60 LED version.
My question is about the hardware limitations of the microcontroller and the limitations of the software to load the images.
1. Can the F and B select choose more than the 32 available led banks and respective led's or will the microcontroller need to be reprogrammed for this. Is the microcontroller firmware available if it does need to be reprogrammed?
2. Is the memory storage of the EEPROM able to store an image that may require all 60 or even 90 leds to be on for an entire revolution. If it is not, can i replace it with one capable of storing a higher resolution image, and perhaps more than 4 images. Are there any suggestions for what EEPROM would be a good choice for this?
3. The software is designed for 30 LEDs or less depending on the chosen wheel size. I am a programmer by trade, so it should not be an issue for me to extend the code to include the additional led pixels. What I need to know is if the hardware is up to the task?
Spoke POV adding more LED's/updating software
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- new reverie
- Posts: 3
- Joined: Tue Dec 15, 2009 3:52 pm
-
- Posts: 12151
- Joined: Thu Apr 06, 2006 4:21 pm
Re: Spoke POV adding more LED's/updating software
you can have as many LEDs as you'd like (just add more 595's and update the firmware)
the memory can also be expanded. the software has some constants, you could just change them
the memory can also be expanded. the software has some constants, you could just change them
- new reverie
- Posts: 3
- Joined: Tue Dec 15, 2009 3:52 pm
Re: Spoke POV adding more LED's/updating software
thanks for the encouraging response!
work has begun on the new circuit design to pull this off.
One question that I had still remains unanswered.
How much data can i fit in each memory bank of the EEPROM?
Is there a calculation available to determine the max number of LED's i can use?
I understand each bank has 1024 addresses. Does this mean i can only turn on/off a maximum of 1024 LEDs during a single rotation?
My ultimate goal is to be able to turn on 150 LEDs with a resolution of 1 degree.
the storage result is essentially a 360x150 monocolor bitmap that i need to store for each image.
360x150 = 54000 pixels
I have a feeling my resolution requirements may cause me to seek a different memory solution.
work has begun on the new circuit design to pull this off.
One question that I had still remains unanswered.
How much data can i fit in each memory bank of the EEPROM?
Is there a calculation available to determine the max number of LED's i can use?
I understand each bank has 1024 addresses. Does this mean i can only turn on/off a maximum of 1024 LEDs during a single rotation?
My ultimate goal is to be able to turn on 150 LEDs with a resolution of 1 degree.
the storage result is essentially a 360x150 monocolor bitmap that i need to store for each image.
360x150 = 54000 pixels
I have a feeling my resolution requirements may cause me to seek a different memory solution.
-
- Posts: 12151
- Joined: Thu Apr 06, 2006 4:21 pm
Re: Spoke POV adding more LED's/updating software
the 'bank' is software defined. the eeprom is contiguous. you can have 1 bank thats 32k long. just depends on which eeprom ya buy!
- new reverie
- Posts: 3
- Joined: Tue Dec 15, 2009 3:52 pm
Re: Spoke POV adding more LED's/updating software
Thats great!
Is there an equation i can use to determine how long i want to make my banks?
ie
X led * Y state changes * C byte conversion = L bank length
Here is the closest i have found to some sort of idea how this works
http://www.instructables.com/id/STIS38KFVMVBXFP/
192 bits for each LED * 150 LED for line = 28800bits = 3600 bytes/line
3600 bytes/line * 360 lines = 1296000bytes ~ 1266kbytes/image
This is greater than 1M which appears to be the largest EEPROM available, and i need to store several images. Is my math here correct? Do i need to find an alternative memory solution or reduce my resolution?
Or am i misunderstanding the 192 bits for each color to be all of the combined bits for the LEDs? In the project linked there are 16 RGB LEDs. Does 192 bits for each color mean 192/16 = 12 bits for each LED?
in which case, substituting into my previous equations i get 225 bytes/line and thus 80kbytes/img
Is there an equation i can use to determine how long i want to make my banks?
ie
X led * Y state changes * C byte conversion = L bank length
Here is the closest i have found to some sort of idea how this works
http://www.instructables.com/id/STIS38KFVMVBXFP/
In my case i want 360 linesFor one image of 100 lines:
192 bits for each colour * 3 colours for line = 576 bits / 72 bytes for each line
72 bytes/line * 100 lines = 7200 bytes/image, ~7kBytes/image
192 bits for each LED * 150 LED for line = 28800bits = 3600 bytes/line
3600 bytes/line * 360 lines = 1296000bytes ~ 1266kbytes/image
This is greater than 1M which appears to be the largest EEPROM available, and i need to store several images. Is my math here correct? Do i need to find an alternative memory solution or reduce my resolution?
Or am i misunderstanding the 192 bits for each color to be all of the combined bits for the LEDs? In the project linked there are 16 RGB LEDs. Does 192 bits for each color mean 192/16 = 12 bits for each LED?
in which case, substituting into my previous equations i get 225 bytes/line and thus 80kbytes/img
-
- Posts: 12151
- Joined: Thu Apr 06, 2006 4:21 pm
Re: Spoke POV adding more LED's/updating software
dont have the equations off hand, sorry! but a little math, reading the code and of course experimentation will go a long way
- new reverie
- Posts: 3
- Joined: Tue Dec 15, 2009 3:52 pm
Re: Spoke POV adding more LED's/updating software
Been working on changing your firmware code to what should work for my project. No way to test yet since i do not have a usb dongle or the chips, but they should be here soon!
I have a few questions you may be able to answer about EEPROMS.
The EEPROM I have chosen for this project is http://search.digikey.com/scripts/DkSea ... -6351-1-ND
From my understanding of the current code each of your images is exactly 1KB
Each 595 latch requires 8 bits (8 leds) = 1 byte
You have 4 latches = 4 bytes
4 bytes * 256 spokes = 1024bytes = 1Kbyte (seems as though the 256 spokes is a hardware limitation of the memory in this case, as it is the largest 8 bit value)
Now assuming my understanding is correct, onto the questions.
When I divide up my EEPROM memory, do i need to do it evenly like you do?
For example with my 1M EEPROM has 128K memory. Your software would divide this into 128 1K segments.
If I have 6 latches instead of 4 can I divide this up into 1.5K segments with .5k left over?
Would this unused memory show up as blank time just like unused memory does in SpokePOV? (if so i should be able to edit the firmware to not read the last segment and skip back to the beginning.)
Thanks for all your help adafruit, this project is coming along nicely. Hopefully i'll be able to post some pictures soon!
I have a few questions you may be able to answer about EEPROMS.
The EEPROM I have chosen for this project is http://search.digikey.com/scripts/DkSea ... -6351-1-ND
From my understanding of the current code each of your images is exactly 1KB
Each 595 latch requires 8 bits (8 leds) = 1 byte
You have 4 latches = 4 bytes
4 bytes * 256 spokes = 1024bytes = 1Kbyte (seems as though the 256 spokes is a hardware limitation of the memory in this case, as it is the largest 8 bit value)
Now assuming my understanding is correct, onto the questions.
When I divide up my EEPROM memory, do i need to do it evenly like you do?
For example with my 1M EEPROM has 128K memory. Your software would divide this into 128 1K segments.
If I have 6 latches instead of 4 can I divide this up into 1.5K segments with .5k left over?
Would this unused memory show up as blank time just like unused memory does in SpokePOV? (if so i should be able to edit the firmware to not read the last segment and skip back to the beginning.)
Thanks for all your help adafruit, this project is coming along nicely. Hopefully i'll be able to post some pictures soon!
Last edited by new reverie on Thu Dec 17, 2009 8:23 pm, edited 1 time in total.
-
- Posts: 150
- Joined: Tue Oct 09, 2007 1:06 am
Re: Spoke POV adding more LED's/updating software
You don't need to divide the memory evenly, its just makes the code simpler because you don't have to handle all the exception cases. In dinky microcontrollers you tend to do things in powers of 2 because it makes the code simple. This is why the circle is divided into 256 segments instead of 360. I've done 512 and even 1024 steps with similar hardware.
Please be positive and constructive with your questions and comments.