Is there any documentation for the .jnx or .dat file formats that store configuration information?
or could future versions support a way to (perhaps extend jinxscript) to import (or export) matrix data ... so that complex (irregular) matrix can be created outside of the jinx patch editor ... it can get very tedious to enter large arrays ...
Beiträge von sfranzyshen
-
-
@folny
sfranzyshen just uploaded an update into git to support multiple blocks, maybe you will give it a try:
https://github.com/sfranzyshen/esp8266_tpm2net_ws2812
UPDATE: We are consolidating the code into a single driver as it is expanding quickly ... the new code set is locate here:
https://github.com/sfranzyshen/esp8266_tpm2netwe are also adding other chipsets for testing ...
https://github.com/sfranzyshen/esp8266_tpm2net_ws2801
https://github.com/sfranzyshen/esp8266_tpm2net_lpd6803 -
Cool .. if you have any questions feel free to ask
we would like announce that we are expanding our testing to other chipsets ... and could use some help testing ... of course this means you will need a ESP8266 handy and either a strand of lpd6803 or ws2801 ... we are looking to test these with up to 512 pixels ... but any testing would be greatly appreciated.
https://github.com/sfranzyshen/esp8266_tpm2net_lpd6803
https://github.com/sfranzyshen/esp8266_tpm2net_ws2801
and of course the original ws2812 code that has been successfully test with jinx & 16x32 (512 pixels)
https://github.com/sfranzyshen/esp8266_tpm2net_ws2812
thanks -
Thank you for your help!! ... we think we have things working now ... and updated code will be on github by this afternoon!
-
@sfranzyshen
It looks like your tpm2.net implementation doesnt support multiple blocks. This is very important if you want to drive more LEDs. If your channel count + protocol overhead exceeds the network mtu size, you will run into trouble with fragmented network packets. Thats why there are multiple blocks inside the tpm2.net protocol, so we can send a huge channel count with multiple network packets to avoid fragmentation. Most of the small tcpip stacks inside a microcontroller cant deal with fragmented packtets. See this post: Jinx! - LED Matrix Control ... und die nächste Matrix Software ...I am having problems trying to implement this ...
tpm2 - Protokoll zur Matrix-/Lichtsteuerung0) Paketnummer first packet starts with 0x01?
1) when Paketnummer == Anzahl Pakete all packets are done for frame?
2) when NO frame split Paketnummer == 0x00 or Paketnummer == 0x01 && Anzahl Pakete == 0x01?
3) pixels start numbering at 0? within Framegöße in 16 Bit?Here is my code ...
Code
Alles anzeigenuint16_t framebuffer_len = 0; unsigned char framebuffer[1536]; //max 512 rgb pixels static void ICACHE_FLASH_ATTR tpm2net_recv(void *arg, char *pusrdata, unsigned short length) { unsigned char *data =(unsigned char *)pusrdata; //pointer to espconn's returned data if (data && length >= 6 && data[0]==0x9C) { // header identifier (packet start) uint8_t blocktype = data[1]; // block type uint16_t framelength = ((uint16_t)data[2] << 8) | (uint16_t)data[3]; // frame length uint8_t packagenum = data[4]; // packet number 0-255 (0x00 = no split) uint8_t numpackages = data[5]; // total packets 1-255 if (blocktype == 0xDA) { // data command ... if (length >= framelength + 7 && data[6+framelength]==0x36) { // header end (packet stop) if (packagenum == 0x00 || numpackages == 0x01) { // no frame split found unsigned char *frame = &data[6]; // pointer 'frame' to espconn's data (start of data) ws2812_out(frame, framelength); // send data to strip } else { //frame split is found os_memcpy (&framebuffer[framebuffer_len], &data[6], framelength); framebuffer_len += framelength; if (packagenum == numpackages) { // all packets found unsigned char *frame = &framebuffer[0]; // pointer 'frame' framebuffer ws2812_out(frame, framebuffer_len); // send data to strip framebuffer_len = 0; } } } } } }
-
esp8266_tpm2net_ws2812
This is a custom firmware for the esp8266 wifi module that will drive a strand of ws2812 LEDs using the TPM2NET protocol. I am successful at driving 132 LEDs (11x12 matrix) using this firmware and pixelcontroller (v2.1.0-RC1) & glediator (v2.0.3) software. I expect it to operate more LEDs (hopefully up to 512 LEDs) ... This is based on work by Charles (cnlohr) and Frans (Frans-Willem) ...https://github.com/sfranzyshen/esp8266_tpm2net_ws2812
we are supporting other chipsets ...
https://github.com/sfranzyshen/esp8266_tpm2net_lpd6803
https://github.com/sfranzyshen/esp8266_tpm2net_ws2801 -
the cheapest Wifi RGB LED Stripe Controller that I have found is to use the esp8266 wifi module with custom firmware https://github.com/sfranzyshen/esp8266_tpm2net_ws2812
theses devices (ESP-01) can be purchased very cheap
http://www.ebay.com/sch/i.html…nkw=esp8266&_sop=15&rt=ncthe next step up would be a TL-MR3020 WiFi Router + Openwrt + Arduino ...
-
UPDATE: We are consolidating the code into a single driver as it is expanding quickly ... the new code set is locate here:
https://github.com/sfranzyshen/esp8266_tpm2netesp8266_tpm2net is a custom firmware for the esp8266 wifi module that will drive a strand of addressable RGB LED pixels using the TPM2NET control protocol. I was successful at driving 132 LEDs (11x12 matrix) using this firmware and the pixelcontroller (v2.1.0-RC1) software. I expect it to operate more LEDs (hopefully up to 512 LEDs) ... This is based on work by Charles (cnlohr) and Frans (Frans-Willem)
https://github.com/sfranzyshen/esp8266_tpm2net_ws2812
we are also adding other chipsets for testing ...
https://github.com/sfranzyshen/esp8266_tpm2net_ws2801
https://github.com/sfranzyshen/esp8266_tpm2net_lpd6803 -
This is a custom firmware for the esp8266 wifi module that will drive a strand of ws2812 LEDs using the TPM2NET protocol. I was successful at driving 132 LEDs (11x12 matrix) using this firmware and the pixelcontroller (v2.1.0-RC1) software. I expect it to operate more LEDs (hopefully up to 512 LEDs) ... This is based on work by Charles (cnlohr) and Frans (Frans-Willem)