## Where communities thrive

• Join over 1.5M+ people
• Join over 100K+ communities
• Free without limits
##### Activity
• Mar 21 05:25
pfried commented #141
• Mar 20 19:02
sandinak commented #141
• Mar 01 04:16
scanlime closed #142
• Mar 01 04:14
aaronse opened #142
• Feb 06 15:38
swifty99 commented #141
• Feb 05 15:44
platinumjesus commented on 82ca2b1
• Jan 03 22:15
aocole closed #137
• Jan 03 22:15
aocole commented #137
• Oct 14 2021 13:51
jonwilliams-bluescape commented on 82ca2b1
• Oct 12 2021 05:53
pfried opened #141
• Sep 16 2021 23:58
videogame-hacker commented on 82ca2b1
• Sep 16 2021 21:50
scanlime commented on 82ca2b1
• Sep 14 2021 07:57
balls-mcgee commented on 82ca2b1
• Sep 11 2021 18:57
videogame-hacker commented on 82ca2b1
• Sep 11 2021 06:06
balls-mcgee commented on 82ca2b1
• Sep 08 2021 19:29
videogame-hacker commented on 82ca2b1
• Sep 08 2021 19:07
scanlime commented on 82ca2b1
• Sep 08 2021 19:04
thejohnd commented on 82ca2b1
• Jul 20 2021 18:55
orgicus commented #132
• Jul 20 2021 18:29
ultra-vi0let commented #132
Daniel Garcia
@focalintent
not sure a for loop is necessary in there
Matthew Kessler
@M-I-Kessler
This message was deleted
  // Set the location of several LEDs arranged in a strip.
// Angle is in radians, measured clockwise from +X.
// (x,y) is the center of the strip.
void ledStrip(int index, int count, float x, float y, float spacing, float angle, boolean reversed)
{
float s = sin(angle);
float c = cos(angle);
for (int i = 0; i < count; i++) {
led(reversed ? (index + count - 1 - i) : (index + i),
(int)(x + (i - (count-1)/2.0) * spacing * c + 0.5),
(int)(y + (i - (count-1)/2.0) * spacing * s + 0.5));
}
Matthew Kessler
@M-I-Kessler
for multiple strips it does need the for loop (at least the way I have done it) and the int position should be 54 like you originally had it
Matthew Kessler
@M-I-Kessler
int count* not int position
Alex Andre
@alexthevdwp
@focalintent Thans for that suggestion! The code did make all the LEDs on the 8 strips fire up simultaneously but the alignment of the dots on the screens seem to double up at the start and end of the dots... Possibly because this code was originally designed for 64 Neopixels... So when a color in the Loaded image goes over the 1st dots (1st dot column) it lights up the #6 Neopix on the strips. If this is the problem I believe i would have to change the code from 64 to 54 somewhere but where?
Alex Andre
@alexthevdwp
@M-I-Kessler Things are starting to align a little better when I code to reflect the 64 LEDs per strips as suggested by Daniel @focalintent but still experiencing inconsistencies with how the dots are aligning on the file window. I tried to do it for 54 led per strips as this is what I'm train to achieve since that's the correct number on each strips. I also trying to paste your code into the OPC file but didn't notice a difference. Could you please advice, thanks a bunch!!
Alex Andre
@alexthevdwp
Matthew Kessler
@M-I-Kessler
something I (believe) remembered, the code could have to have the amount of the LED on the strip or the 64 depending on how the OPC server is Setup.
Alex Andre
@alexthevdwp
@M-I-Kessler Not sure if the attachment above is visible but it was intended for Matthew @M-I-Kessler. To showcase the dots. As you can see the it gets weird on the first and the least few columns of dots. Is it possible to configure to 54 Leds or am i stuck with 64 leds per strip?
Matthew Kessler
@M-I-Kessler
Also, the code doesnt actually know at what led address a strip begins or ends. You can split one "strip" into multiple strips. I have two "strips" of 60 broken into 5 "strips"
Alex Andre
@alexthevdwp
@M-I-Kessler yes please post this code. I'd love to compare and try it, thanks
Matthew Kessler
@M-I-Kessler
{
size(600, 600);

// Connect to the local instance of fcserver
opc = new OPC(this, "InMiCoTA", 7890);

float spaceAll = width/100;

for (int i = 0; i < 120; i++)
opc.ledStrip( 0,  22,  (width/2)-((spaceAll*21)/2),  (height/2)-(spaceAll*9),  spaceAll,  0,       true);  //Bottom Led Addresses, Right
opc.ledStrip(22,  17,  (width/2)-(spaceAll*21),      (height/2),               spaceAll,  3*PI/2,  true);  //Right Led Addresses
opc.ledStrip(39,  43,  (width/2),                    (height/2)+(spaceAll*9),  spaceAll,  PI,      true);  //Top Led Addresses
opc.ledStrip(82,  17,  (width/2)+(spaceAll*21),      (height/2),               spaceAll,  (PI)/2,  true);  //Left Led Addresses
opc.ledStrip(99,  21,  (width/2)+((spaceAll*22)/2),  (height/2)-(spaceAll*9),  spaceAll,  0,       true);  //Bottom Led Addresses, Left

}
That looks like this
Alex Andre
@alexthevdwp
@M-I-Kessler thanks I'll try it!
Matthew Kessler
@M-I-Kessler
just to be clear, int index is your LED index number & int count is how many LED's are on a "strip"
you could have "extra" LED's to account for depending on how the OPC server is setup
Alex Andre
@alexthevdwp
@M-I-Kessler ok thanks for the tips. The "extra" leds set up on the OPC server may be way I'm having diffictuly getting everything aligned correctly...
Matthew Kessler
@M-I-Kessler
so you may need to have to do as focal intent said with the index locations but you would still keep the 54 as the striplength
Alex Andre
@alexthevdwp

Great I finally got it thanks to ur help @M-I-Kessler and @focalintent > here is the code that works: // Map one 54-LED strip to the center of the window
for (int i = 0; i < 8; i++)

opc.ledStrip(0, 54, width/2, height/4 + 15, width / 54.0, 0, false);
opc.ledStrip(64, 54, width/2, height/4 + 25, width / 54.0, 0, false);
opc.ledStrip(128, 54, width/2, height/4 + 35, width / 54.0, 0, false);
opc.ledStrip(192, 54, width/2, height/4 + 45, width / 54.0, 0, false);
opc.ledStrip(256, 54, width/2, height/4 + 55, width / 54.0, 0, false);
opc.ledStrip(320, 54, width/2, height/4 + 65, width / 54.0, 0, false);
opc.ledStrip(384, 54, width/2, height/4 + 75, width / 54.0, 0, false);
opc.ledStrip(448, 54, width/2, height/4 + 85, width / 54.0, 0, false);
}

Matthew Kessler
@M-I-Kessler
no problem
Are you going to be using multiple PDE documents with this?
Alex Andre
@alexthevdwp
@M-I-Kessler looking at your frame set up for the Blob file I'm wondering where is the missing 5th LED strip?
Matthew Kessler
@M-I-Kessler
the top row is split into two "strips"
Its for an infinity table i made. it actually only uses two 60 led chains and the initial index of 0 is at the top center
Alex Andre
@alexthevdwp
@M-I-Kessler Ok thanks for clarifying. I bet that looks nice with the infinity effect!
Matthew Kessler
@M-I-Kessler
It does! And adjujsting the frame rate has some pretty interesting and beautiful effects (depending on what I'm running) because of the dithering.
Alex Andre
@alexthevdwp
George Profenza
@orgicus
Quick question: Using WebSockets, I can send a '{"type":"list_connected_devices"}' message. Can I do the same with the TCP socket connection in Processing using OPC as well, or not ?
Micah Elizabeth Scott
@scanlime
You'd need to speak websockets to send those commands; the OPC protocol doesn't know about multiple devices, it just sees an abstract space of channels and pixels
(It's still the same TCP socket, the fcserver detects protocol based on whether you start sending HTTP or OPC packets)
George Profenza
@orgicus
Got it, Thank you Micah !
Alex Andre
@alexthevdwp
@M-I-Kessler @focalintent @scanlime Has anyone tried to play different .png images on different LED strips connected to the Fadecandy ?
Matthew Kessler
@M-I-Kessler
I have. Any specific questions? Also sorry, haven't responded my old computer crashed and my hard drive burned up, literally.
@alexthevdwp Also I just searched around online and just kinda figured out the coding stuff. There is a guide for a LED curtain that had some stuff on it on adafruit.com. However some of the stuff wasn't a best method in my opinion.
Matthew Kessler
@M-I-Kessler
@scanlime do you know if there has been any javascript stuff written for fadecandy?
Matthew Kessler
@M-I-Kessler
Nevermind I foundsome in the examples.
George Profenza
@orgicus
@scanlime I had some issues with some FadeCandies and I've provided details here: https://groups.google.com/forum/#!topic/fadecandy/U9bLwlr-oMU Any hints/tips on what I might be missing/doing wrong ? Thank you
J. Grizzard
@elfchief
If that's FB2 frying, that would imply a lot of current flow to ground. What's your physical wiring/setup look like?
J. Grizzard
@elfchief
(I guess that's technically "flow across ground")
George Profenza
@orgicus
That is the FB2 frying indeed. I've just uploaded some images of the wiring setup. I am now noticing I haven't attached the power supply of the USB hub itself. Could that cause problems ?
J. Grizzard
@elfchief
At worst that will just make USB not work. looks at pics You need to tie the grounds of the individual power supplies together, I think. It looks like you've got the power supplies connected to the fadecandies and pixel strings, but not to each other. Connect the output grounds all together. (Don't connect the output 5v together, though). I thiiiiiink that could cause what you're seeing.
George Profenza
@orgicus
Thanks @elfchief ! I'll run a test with the grounds connected.
J. Grizzard
@elfchief
(The output of the power supplies are all isolated, so unless the grounds are tied together they potentially float at different levels, and then end up equalizing those levels over the only common ground, which is the USB bus).
I'm assuming those fadecandy distribution boards tie power ground and signal ground together? (and/or do you have a schematic?)
George Profenza
@orgicus
Regarding the distribution board, I think that is correct and there should be some resistors and a capacitor as per NeoPixel Uberguide best practices (https://learn.adafruit.com/adafruit-neopixel-uberguide/power)
J. Grizzard
@elfchief
I boldly run my pixel strings without those capacitors. I am ... brave.
J. Grizzard
@elfchief
Also note, for clarity, that the output ground is not the same as the earth/safety ground. ;)