Spoke POV adding more LED's/updating software

SpokePOV kit for bikes

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
new reverie
 
Posts: 3
Joined: Tue Dec 15, 2009 3:52 pm

Spoke POV adding more LED's/updating software

Post by new reverie »

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?

adafruit
 
Posts: 12151
Joined: Thu Apr 06, 2006 4:21 pm

Re: Spoke POV adding more LED's/updating software

Post by adafruit »

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

User avatar
new reverie
 
Posts: 3
Joined: Tue Dec 15, 2009 3:52 pm

Re: Spoke POV adding more LED's/updating software

Post by new reverie »

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.

adafruit
 
Posts: 12151
Joined: Thu Apr 06, 2006 4:21 pm

Re: Spoke POV adding more LED's/updating software

Post by adafruit »

the 'bank' is software defined. the eeprom is contiguous. you can have 1 bank thats 32k long. just depends on which eeprom ya buy!

User avatar
new reverie
 
Posts: 3
Joined: Tue Dec 15, 2009 3:52 pm

Re: Spoke POV adding more LED's/updating software

Post by new reverie »

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/
For 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
In my case i want 360 lines
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

adafruit
 
Posts: 12151
Joined: Thu Apr 06, 2006 4:21 pm

Re: Spoke POV adding more LED's/updating software

Post by adafruit »

dont have the equations off hand, sorry! but a little math, reading the code and of course experimentation will go a long way :)

User avatar
new reverie
 
Posts: 3
Joined: Tue Dec 15, 2009 3:52 pm

Re: Spoke POV adding more LED's/updating software

Post by new reverie »

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!
Last edited by new reverie on Thu Dec 17, 2009 8:23 pm, edited 1 time in total.

kayrock66
 
Posts: 150
Joined: Tue Oct 09, 2007 1:06 am

Re: Spoke POV adding more LED's/updating software

Post by kayrock66 »

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.

Locked
Please be positive and constructive with your questions and comments.

Return to “SpokePOV (discontinued)”