These are chat archives for Makuna/NeoPixelBus

26th
Aug 2015
sticilface
@sticilface
Aug 26 2015 12:18
@Makuna I'm trying to make a few modifications / experiment with some stuff. One of the things I wanted to try was to put the send function in the C, and have it kept in RAM.. I'm getting some flickering when driving lots of pixels... anyway... placing anything serial in there causes an error. Is there a reason I can't print to serial from within functions in that file ?
sticilface
@sticilface
Aug 26 2015 12:35
That might not have made much sense. I want try and move the UART send into a function, similar to what you did with send_pixels_800, and have it in RAM. Only it objects to Serial1, or Serial being used?
Shelby Merrick
@forkineye
Aug 26 2015 13:40
@sticilface I think you'll have to work with the lower level serial interface for that. That's what I was going to do when I get around to optimizing it for my project.
HardwareSerial.cpp should give some ideas
sticilface
@sticilface
Aug 26 2015 14:25
Ah, cheers... I tried just running the neopixel demo.. which has nothing except sending pixels out... there is a lot of flickering with 300 pixels, and it crashes... i was going to try and put it in ram along with the bit banging stuff, and 2) try and only write to the serial buffer when it has space. ie.. once 64 pixels has been written, return to the sketch, and then come back and continue to fill it... just to see if that is what is causing the glitches.. as you pointed out 300leds, should take 9ms to stream so should be achievable. in fact something like 1000 should be possible in 30ms!
looks like you can get the buffer space too size_t room = uart_get_tx_fifo_room(_uart);
Shelby Merrick
@forkineye
Aug 26 2015 14:47
yeah, HardwareSerial looks to be handling it. would just be a more direct way by implementing right in the pixel driver. I'll play around with it once I get this GECE protocol implemented.
sticilface
@sticilface
Aug 26 2015 17:56
got it to work... had to be .cpp file and not .c . still seems to flash though! so its not the ram attribute