I bought a fadecandy from here a while ago, I also got a neopixel ring, 8 x stick, but I bought a 16 x 16 (actually 2 of them) neopixel panel. The fadecandy only drives 64 pixels but I was wondering if anybody had any thoughts or idea for driving more then the 64.
One thought was potentially connecting multiple pins to the same panel input but offsetting the start. fadecandy seems to work fine for the first two options but it would be awesome to control a large neopixel panel with it and offload the work to that. Our hacklab could use it.
Finally if I don't use the fadecandy but just the generic arduino uno i'm trying to figure out the match/code for converting my own images or a sin wave, or level to a neopixel matrix frame. I've seen the awesome adafruit library for neopixels, and neomatrix, and tiling which i used to do a basic howdy but was hoping to go more intricate for drawing images, and motion.
Kind of a newbie at this so i'm all ears for help. Also waiting for my arduino neopixel shield to arrive.
fadecandy with larger then 8x8 panel
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- adafruit_support_rick
- Posts: 35092
- Joined: Tue Mar 15, 2011 11:42 am
Re: fadecandy with larger then 8x8 panel
Unfortunately, that won't work. The multiple signals would interfere with each other.prussia wrote:One thought was potentially connecting multiple pins to the same panel input but offsetting the start. fadecandy seems to work fine for the first two options but it would be awesome to control a large neopixel panel with it and offload the work to that. Our hacklab could use it.
- prussia
- Posts: 27
- Joined: Mon Jan 21, 2013 8:07 pm
Re: fadecandy with larger then 8x8 panel
thought as much :(. are there any other hardware tools I can use to offload the work of drawing neopixels?
Also this brings me to more questions.
1. If i'm going to have to use an uno how would I convert any image to a frame? neopixel drivers seem to work for either the strips or words but i couldn't seem to find examples for converting a bmp or any jpeg/animated gif to my panel for the matrixtest or tiletest codes?
2. I could use pointers controlling frames and drawing my own stuff?
I saw the learn.adafruit links the fastLED but can't seem to wrap my head around using anything larger then using the 8x8 or the uno shield. either links or sample code or anything that helps me get further
https://www.adafruit.com/neopixel
https://learn.adafruit.com/using-neopix ... -plus-text
https://punchthrough.com/bean/examples/ ... sketchpad/
In addition to just writing/drawing my own stuff i'd like to maybe make a restful api or use nodejs to have people at the makerspace be able to upload their own images or words to the panels. I might also have a t-shirt with the panel on it :)
many thanks in advance.
Also this brings me to more questions.
1. If i'm going to have to use an uno how would I convert any image to a frame? neopixel drivers seem to work for either the strips or words but i couldn't seem to find examples for converting a bmp or any jpeg/animated gif to my panel for the matrixtest or tiletest codes?
2. I could use pointers controlling frames and drawing my own stuff?
I saw the learn.adafruit links the fastLED but can't seem to wrap my head around using anything larger then using the 8x8 or the uno shield. either links or sample code or anything that helps me get further
https://www.adafruit.com/neopixel
https://learn.adafruit.com/using-neopix ... -plus-text
https://punchthrough.com/bean/examples/ ... sketchpad/
In addition to just writing/drawing my own stuff i'd like to maybe make a restful api or use nodejs to have people at the makerspace be able to upload their own images or words to the panels. I might also have a t-shirt with the panel on it :)
many thanks in advance.
- pburgess
- Posts: 4161
- Joined: Sun Oct 26, 2008 2:29 am
Re: fadecandy with larger then 8x8 panel
Fadecandy and larger matrices: if you're willing to cut traces on a (probably spendy) NeoPixel matrix) and inject signals at the corresponding points, then something could probably be done here; e.g. convert it into 4 16x4 subsections, each driven by a separate Fadecandy pin.
Image formats: one could write a conversion utility in a higher-level language like Processing or Python -- both of these have pretty decent image format support and can read JPEGs, PNGs, etc. The code could then output text (either to a .h file or just to the console for copy-and-paste) formatted as a valid Arduino PROGMEM array declaration (can then read from this and plot each point, or memcpy() to the NeoPixel strip buffer). If you want all of the code on the Arduino, then I'd suggest Windows BMP 'raw' format...it's big and ugly but the Arduino can handle it (though kinda slowly).
For the latter, take a look at the NeoPixel painter code: https://github.com/adafruit/NeoPixel_Painter
this reads a BMP and spits out a strip-ready temporary data file (which is later read).
For the former, I can't think of any specific NeoPixel examples, but we've done this sort of thing on a few projects such as the 'Flying Toasters' pendant:
https://learn.adafruit.com/animated-fly ... welry/code
(see the second file there -- bitmaps.h)
This was generated with a throwaway conversion program -- I don't have the source anymore -- but it was a simple program (in Processing, I think) that converted a set of 1-bit images to these arrays. The idea could be extended to support color and/or wider bit depth. Trick then is to fit much of anything into the Arduino's limited Flash space (32K minus the bootloader and your sketch code). Hence the use of an SD card for scratch space in the NeoPixel painter project.
Image formats: one could write a conversion utility in a higher-level language like Processing or Python -- both of these have pretty decent image format support and can read JPEGs, PNGs, etc. The code could then output text (either to a .h file or just to the console for copy-and-paste) formatted as a valid Arduino PROGMEM array declaration (can then read from this and plot each point, or memcpy() to the NeoPixel strip buffer). If you want all of the code on the Arduino, then I'd suggest Windows BMP 'raw' format...it's big and ugly but the Arduino can handle it (though kinda slowly).
For the latter, take a look at the NeoPixel painter code: https://github.com/adafruit/NeoPixel_Painter
this reads a BMP and spits out a strip-ready temporary data file (which is later read).
For the former, I can't think of any specific NeoPixel examples, but we've done this sort of thing on a few projects such as the 'Flying Toasters' pendant:
https://learn.adafruit.com/animated-fly ... welry/code
(see the second file there -- bitmaps.h)
This was generated with a throwaway conversion program -- I don't have the source anymore -- but it was a simple program (in Processing, I think) that converted a set of 1-bit images to these arrays. The idea could be extended to support color and/or wider bit depth. Trick then is to fit much of anything into the Arduino's limited Flash space (32K minus the bootloader and your sketch code). Hence the use of an SD card for scratch space in the NeoPixel painter project.
- prussia
- Posts: 27
- Joined: Mon Jan 21, 2013 8:07 pm
Re: fadecandy with larger then 8x8 panel
that was my fear for the Fadecandy.
hmm, so you seem to be setting me on the correct path but i'm sort of afraid this is over my head coding wise :(.
The NeoPixel painter code you linked me to seems to be exactly what I was hoping for and wanted (I think) but i have no idea how to re-purpose it to my usage.
The first conceptual issue is that i only have 256 pixels right (16 x16): Each pixel has color and brightness and I would need to somehow convert my image (or animated gif?) to be 16 x16 correct? Not sure how i could shrink a larger image but probably just crop what i want.
So your other thought is that instead of using the http://arduino.cc/en/Reference/PROGMEM PROGMEM to store the .h file I just save it as BMP? still not sure how I feed that to the neopixel buffer?
Finally trying to understand the whole light painting concept. i wanted to start with a few of the neopixel 8x strip (or the wring) attach it to a servo or motor that spins and get it to light pain a clock or some words. I've seen the bike lightpainting project (with the T bar). but I'm a bit lost on the basics of that.
How do you figure out the sequence to draw/print?, how do you time with the rotating motor? get frequencies etc? The lightpainting example has sample code etc but doesn't delve into the: "how we did the math and came up with this" part which I find fascinating :)
I have a spare sd card reader I can put on the uno so that should help aleviate the space issues but I'm ind of lost on the pendant example too.
What really is the difference for the conversion?
Terribly sorry for all the newbie examples and your post got me thinking and gave me more points to go explore but I'm feeling a bit overwhelmed actually.
It's looking like generally for the neopixel panel I can
1. convert to bmp or progmem somehow shove that in the neopixel buffer (somehow?) and have it draw.
2. or the flying toasters example which is to convert somehow to not BMP but 1 bit images to arrays (still confused) with color, brightness and bit depth.
Help and more nudges much appreciated :) i'd love to push this forward. My uno neopixel shield arrived and a few more strips but that big panel is what i'd love to make progress on.
hmm, so you seem to be setting me on the correct path but i'm sort of afraid this is over my head coding wise :(.
The NeoPixel painter code you linked me to seems to be exactly what I was hoping for and wanted (I think) but i have no idea how to re-purpose it to my usage.
The first conceptual issue is that i only have 256 pixels right (16 x16): Each pixel has color and brightness and I would need to somehow convert my image (or animated gif?) to be 16 x16 correct? Not sure how i could shrink a larger image but probably just crop what i want.
So your other thought is that instead of using the http://arduino.cc/en/Reference/PROGMEM PROGMEM to store the .h file I just save it as BMP? still not sure how I feed that to the neopixel buffer?
Finally trying to understand the whole light painting concept. i wanted to start with a few of the neopixel 8x strip (or the wring) attach it to a servo or motor that spins and get it to light pain a clock or some words. I've seen the bike lightpainting project (with the T bar). but I'm a bit lost on the basics of that.
How do you figure out the sequence to draw/print?, how do you time with the rotating motor? get frequencies etc? The lightpainting example has sample code etc but doesn't delve into the: "how we did the math and came up with this" part which I find fascinating :)
I have a spare sd card reader I can put on the uno so that should help aleviate the space issues but I'm ind of lost on the pendant example too.
What really is the difference for the conversion?
Terribly sorry for all the newbie examples and your post got me thinking and gave me more points to go explore but I'm feeling a bit overwhelmed actually.
It's looking like generally for the neopixel panel I can
1. convert to bmp or progmem somehow shove that in the neopixel buffer (somehow?) and have it draw.
2. or the flying toasters example which is to convert somehow to not BMP but 1 bit images to arrays (still confused) with color, brightness and bit depth.
Help and more nudges much appreciated :) i'd love to push this forward. My uno neopixel shield arrived and a few more strips but that big panel is what i'd love to make progress on.
- morwic
- Posts: 50
- Joined: Thu Nov 28, 2013 8:37 pm
Re: fadecandy with larger then 8x8 panel
Did you get the fadecandy to work with processing, ? I can run the test 50% light & full light? but processing will run but does not show the images on the 8x8 ? did you have this issue ?
- prussia
- Posts: 27
- Joined: Mon Jan 21, 2013 8:07 pm
Re: fadecandy with larger then 8x8 panel
Hi,
Sorry i have not used my fadecandy yet past the "hello world" test. It looks like an awesome piece of hardware with quite a few channels I can use but it won't work for my neopixel panel so it will have to wait :)..
Good luck!
Sorry i have not used my fadecandy yet past the "hello world" test. It looks like an awesome piece of hardware with quite a few channels I can use but it won't work for my neopixel panel so it will have to wait :)..
Good luck!
Please be positive and constructive with your questions and comments.