googlecreativelab / anypixel

A web-friendly way for anyone to build unusual displays
Apache License 2.0
6.44k stars 517 forks source link

Specify LED compatibility and grid definition #7

Open sahunt opened 8 years ago

sahunt commented 8 years ago

Loving this project and am dying to try it out. Great work!

There are two major areas which would greatly help in understanding how to set up this project:

1) What type of LEDs are supported? I'm assuming WS2812 as those are fairly common, though without this specified I'm not sure what LEDs anypixel.js can talk to.

2) How is the LED grid defined, or can it even be defined? There's many ways to set up the LEDs -- i.e in linear or nonlinear strips, individual LEDs connected in columns or rows... knowing how to specify this is essential for setting up the pixel grid.

Bre77 commented 8 years ago

Sorry for the less than authoritative response I am going to provide you.

I believe they are using standard RGB LEDs controlled with 12bit PWM, and using a fancy method to scale the 8bit source to 12bit range. Chips like the WS2812 do this magic for you and can be chained together. They are two completely different hardware architectures.

I do however plan to adapt anypixel to a typical Arduino/WS2812 setup in the near future, and will certainly contribute that code if suitable.

I will also be exploring the second part of your question in my work, but don't have any answers yet, but suspect it will require custom code to transform the canvas output to your non-linear display.

sahunt commented 8 years ago

I'd be surprised if they're standard RGB LEDs -- based on the demos they seem to be some type of addressable. "Standard arcade button with LEDs" isn't much to go on so really could be anything.

Would love to see how this would work with Arduino! Will keep an eye out for it.

Bre77 commented 8 years ago

Well take a look at the schematics. Each light is connected up to three PWM outputs. They do have a degree of addressability, but using larger controllers which are responsible for what seems to be 5 lights per PWM module and two PWM modules.

https://github.com/googlecreativelab/anypixel/blob/master/hardware/pcb/display/display-r2-schematic.pdf?raw=true

aabowen commented 8 years ago

How/where do I get the code from the website header to re-use? Is that acceptable?

I absolutely love the header and want to customize it for a website.

Thanks!

On Tue, Jun 7, 2016 at 7:58 AM, Brett notifications@github.com wrote:

Well take a look at the schematics. Each light is connected up to three PWM outputs. They do have a degree of addressability, but using larger controllers which are responsible for what seems to be 5 lights per PWM module and two PWM modules.

https://github.com/googlecreativelab/anypixel/blob/master/hardware/pcb/display/display-r2-schematic.pdf?raw=true

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/googlecreativelab/anypixel/issues/7#issuecomment-224258867, or mute the thread https://github.com/notifications/unsubscribe/AQ7hmvIa8lu8k7HvJi5GB7phLh9zwC2Kks5qJVzsgaJpZM4IvEXg .

Alexandra Bowen w: http://alexandrabowen.weebly.com/ http://alexandrabowen.weebly.com/ May This Message Find You In Health And Happiness [image: Facebook] https://www.facebook.com/alexandra.a.brower [image: Twitter] https://twitter.com/hawaiiaspenalex [image: LinkedIn] http://www.linkedin.com/in/alexandrabrower/

To weave together the landscapes of man and nature for the benefit of both

jeremyabel commented 8 years ago

@aabowen please file a separate issue for this and I'd be happy to help!

ryburke commented 8 years ago

Overall, our documentation is installation specific. The parts and methodologies employed were what we found to work. So unfortunately, we cannot speak to compatibility with other LEDs or controllers.

The LEDs and controllers used in the installation are documented in the BOM.

The buttonwall is numbered from top left to bottom right. In the installation, the LED grid is defined by the PCBs as documented in / pcb.

Also, @Bre77 - keep up the great work!

jeremyabel commented 8 years ago

From an engineering standpoint, really any LED should work well enough. It might be worth checking the datasheet for the TLC59401 to see what would work best, as we can't speak to any other specific type of LED beyond the ones we used in the installation.

ARKopp commented 8 years ago

Hi, did anybody did the work already to do this with an arduino or pi? Would love to do this but without making all these pcbs. I would use some 12min WS2801 like this https://learn.adafruit.com/12mm-led-pixels/overview

ARKopp commented 8 years ago

Also I did not get how the button press works. Normally there is like a small swith on the bottom of these Buttons. How do you manage that?

ryburke commented 7 years ago

@ARKopp This morning we released a simple starter example with AnyPixel running on a first gen Raspberry Pi controlling a single neopixel button. Check it out at /rpi-example.

haaslukas commented 5 years ago

Sorry for the less than authoritative response I am going to provide you.

I believe they are using standard RGB LEDs controlled with 12bit PWM, and using a fancy method to scale the 8bit source to 12bit range. Chips like the WS2812 do this magic for you and can be chained together. They are two completely different hardware architectures.

I do however plan to adapt anypixel to a typical Arduino/WS2812 setup in the near future, and will certainly contribute that code if suitable.

I will also be exploring the second part of your question in my work, but don't have any answers yet, but suspect it will require custom code to transform the canvas output to your non-linear display.

@Bre77 did you try any sort of Arduino/WS2812 setup so far? I'm starting to think about a simple ESP32 implementation along with the FastLED library to control 256 buttons (shift register button matrix setup) and WS2812 LEDs. Of course it would be nice, if you already have some code snippets or at least a few thoughts about possible pitfalls. I guess the hardest part would be to adapt the firmware in order to talk to the ESP32.