Forum Rule: Always post complete source code & details to reproduce any issue!
-
Teensy 3.5 , and Octows2811 no Lights on string 7 and 8
I am trying to make a mega-tree with 8 Strings of a 100 but nothing is output to string 7 or 8. I have tested with the basic test works fine , DHCP printer works good and 8 strings up to 80 works good. But anythings over 80 and I loose the the last 2 strings .I have tried a couple of examples Artnet Octows2811 and Artnet. Realize I am very new to teensy product but I was understanding that the teensy 3.5 could control 4000 Leds.
Is this right?
8 Strips of 100 =800 Leds?pixels times 3 which equals 2400 channels on 8 universes.
Any pointers would be great.
The code I am using:
// Receive multiple universes via Artnet and control a strip of ws2811 leds via OctoWS2811
//
// This example may be copied under the terms of the MIT license, see the LICENSE file for details
// https://github.com/natcl/Artnet
//
// http://forum.pjrc.com/threads/24688-...ll=1#post55589
#include <Artnet.h>
#include <Ethernet.h>
#include <EthernetUdp.h>
#include <SPI.h>
#include <OctoWS2811.h>
// Ideas for improving performance with WIZ820io / WIZ850io Ethernet:
// https://forum.pjrc.com/threads/45760...t-improvements
// OctoWS2811 settings
const int ledsPerStrip = 100; // change for your setup
const byte numStrips= 8; // change for your setup
DMAMEM int displayMemory[ledsPerStrip*6];
int drawingMemory[ledsPerStrip*6];
const int config = WS2811_RGB | WS2811_800kHz;
OctoWS2811 leds(ledsPerStrip, displayMemory, drawingMemory, config);
// Artnet settings
Artnet artnet;
const int startUniverse = 0; // CHANGE FOR YOUR SETUP most software this is 1, some software send out artnet first universe as zero.
const int numberOfChannels = ledsPerStrip * numStrips * 3; // Total number of channels you want to receive (1 led = 3 channels)
byte channelBuffer[numberOfChannels]; // Combined universes into a single array
// Check if we got all universes
const int maxUniverses = numberOfChannels / 512 + ((numberOfChannels % 512) ? 1 : 0);
bool universesReceived[maxUniverses];
bool sendFrame = 1;
// Change ip and mac address for your setup
byte ip[] = {192, 168, 1, 150};
byte mac[] = {0x04, 0xE9, 0xE5, 0x00, 0x69, 0xEC};
void setup()
{
Serial.begin(115200);
artnet.begin(mac, ip);
leds.begin();
initTest();
// this will be called for each packet received
artnet.setArtDmxCallback(onDmxFrame);
}
void loop()
{
// we call the read function inside the loop
artnet.read();
}
void onDmxFrame(uint16_t universe, uint16_t length, uint8_t sequence, uint8_t* data)
{
sendFrame = 1;
// Store which universe has got in
if (universe < maxUniverses)
universesReceived[universe] = 1;
for (int i = 0 ; i < maxUniverses ; i++)
{
if (universesReceived[i] == 0)
{
//Serial.println("Broke");
sendFrame = 0;
break;
}
}
// read universe and put into the right part of the display buffer
for (int i = 0 ; i < length ; i++)
{
int bufferIndex = i + ((universe - startUniverse) * length);
if (bufferIndex < numberOfChannels) // to verify
channelBuffer[bufferIndex] = byte(data[i]);
}
// send to leds
for (int i = 0; i < ledsPerStrip * numStrips; i++)
{
leds.setPixel(i, channelBuffer[(i) * 3], channelBuffer[(i * 3) + 1], channelBuffer[(i * 3) + 2]);
}
if (sendFrame)
{
leds.show();
// Reset universeReceived to 0
memset(universesReceived, 0, maxUniverses);
}
}
void initTest()
{
for (int i = 0 ; i < ledsPerStrip * numStrips ; i++)
leds.setPixel(i, 127, 0, 0);
leds.show();
delay(500);
for (int i = 0 ; i < ledsPerStrip * numStrips ; i++)
leds.setPixel(i, 0, 127, 0);
leds.show();
delay(500);
for (int i = 0 ; i < ledsPerStrip * numStrips ; i++)
leds.setPixel(i, 0, 0, 127);
leds.show();
delay(500);
for (int i = 0 ; i < ledsPerStrip * numStrips ; i++)
leds.setPixel(i, 0, 0, 0);
leds.show();
}
-
Senior Member
Do those pins work if you use File > Examples > OctoWS2811 > BasicTest ?
In other words, does the problem only happen when all those libraries and network communication are used together? (which I can't reproduce here... no Artnet software) Or can it be reproduced with a simpler setup? (which I can very easily test here)
-

Originally Posted by
PaulStoffregen
Do those pins work if you use File > Examples > OctoWS2811 > BasicTest ?
In other words, does the problem only happen when all those libraries and network communication are used together? (which I can't reproduce here... no Artnet software) Or can it be reproduced with a simpler setup? (which I can very easily test here)
Basic test works except output 7 pin 21......its just white lights on 21. I just tried ethernet E131 with this error:
Arduino: 1.8.13 (Windows 10), TD: 1.53, Board: "Teensy 3.5, Serial, 120 MHz, Faster, US English"
In file included from C:\Users\MAINOF~1\AppData\Local\Temp\arduino_modif ied_sketch_370372\Ethernet_FastLED.ino:24:0:
C:\Users\Main Office\Documents\Arduino\libraries\E131/E131.h:146:5: error: '_UDP' does not name a type
_UDP udp; /* UDP handle */
^
C:\Users\Main Office\Documents\Arduino\libraries\E131/E131.h: In member function 'uint16_t E131:
arsePacket()':
C:\Users\Main Office\Documents\Arduino\libraries\E131/E131.h:209:20: error: 'udp' was not declared in this scope
int size = udp.parsePacket();
^
C:\Users\Main Office\Documents\Arduino\libraries\E131/E131.h:219:50: error: 'htons' was not declared in this scope
universe = htons(packet->universe);
^
C:\Users\Main Office\Documents\Arduino\libraries\E131/E131.h: In member function 'e131_error_t E131::validate()':
C:\Users\Main Office\Documents\Arduino\libraries\E131/E131.h:244:38: error: 'htonl' was not declared in this scope
if (htonl(pwbuff->root_vector) != VECTOR_ROOT)
^
C:\Users\Main Office\Documents\Arduino\libraries\E131/E131.h:246:39: error: 'htonl' was not declared in this scope
if (htonl(pwbuff->frame_vector) != VECTOR_FRAME)
^
In file included from C:\Users\MAINOF~1\AppData\Local\Temp\arduino_modif ied_sketch_370372\Ethernet_FastLED.ino:25:0:
C:\Users\Main Office\Documents\Arduino\libraries\FastLED/FastLED.h: At global scope:
C:\Users\Main Office\Documents\Arduino\libraries\FastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.003.003
# pragma message "FastLED version 3.003.003"
^
Ethernet_FastLED: In function 'void setup()':
Ethernet_FastLED:39: error: no matching function for call to 'E131::begin(byte [6])'
e131.begin(gmac);
^
In file included from C:\Users\MAINOF~1\AppData\Local\Temp\arduino_modif ied_sketch_370372\Ethernet_FastLED.ino:24:0:
C:\Users\Main Office\Documents\Arduino\libraries\E131/E131.h:164:10: note: candidate: void E131::begin(e131_listen_t, uint16_t, uint8_t)
void begin(e131_listen_t type, uint16_t universe = 1, uint8_t n = 1);
^
C:\Users\Main Office\Documents\Arduino\libraries\E131/E131.h:164:10: note: no known conversion for argument 1 from 'byte [6] {aka unsigned char [6]}' to 'e131_listen_t'
Multiple libraries were found for "FastLED.h"
Used: C:\Users\Main Office\Documents\Arduino\libraries\FastLED
Not used: C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\FastLE D
Multiple libraries were found for "Ethernet.h"
Used: C:\Users\Main Office\Documents\Arduino\libraries\Ethernet
Not used: C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\Ethern et
Not used: C:\Users\Main Office\Documents\Arduino\libraries\EthernetENC
no matching function for call to 'E131::begin(byte [6])'
And the artnet and Artnet Octows2811 First 600 leds works great but nothing after that.
-
I just built another new circuit exactly like the OctoWS2811 library new 3.2 teensy , no Octo board. wiznet 5100. Basic test worked great all around but once I put in the original code I loose op's 7 and 8 again
-
Should I be using different code to use this for a megatree?
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules