I've never used that many LEDs haha.
It seems you have power under control, connection wise.
Maybe more power could help (max 704 * 60 mA = 42 A, avg 704 * 20 Ma = 14 A - so I'm thinking 26 A should be a good start if not all LEDs go on at max white level).
The question seems no uncommon, and maybe this post is a good read (see below).
It sounds like you're running at the max what an Arduino Uno can handle (memory/clock).
Maybe a newer Arduino model, like a Mega, with more memory and a faster uController clock speed, may allow for more LEDs to be controlled.
From that post:
it depends on a few things, generally they are :
- The amount of RAM that your uC has
- The framerate you want to achieve
- The power supply capacity ( and cable capacity )
- Uno/Leonardo/micro/nano : I don't go above 512 LEDs ( 1.5kByte of SRAM reserved for LEDs ),
- Mega : Ive done 1000 LEDs but not with many other things happening. ( 3 kByte of SRAM reserved for LEDs )
- DUE/ Zero : quite a lot of LEDs ( multiple controller examples ) never more than 1000 per "FASTLED controller" to keep framerate above 30.
Each LED ( or CRGB array entry ) uses 3 bytes of your SRAM.
The application on your uC will crash - sometimes "randomly" sometimes reliably - when it has too little SRAM to hold the datait needs to work on.
The amount of SRAM available for LEDs depends on what else the controller is doing that also requires SRAM buffers or "chunks" such as :
- String manipulation
- Networking ( Ethernet / Wifi with OSC, OPC or MQTT protocols )
- Serial data ( DMX ),
- Visualisations/ animations ( Fire 2012 , meteors, fireworks )
- Signal processing (audio spectrum FFT)
- Double buffering pixel data ( if you use it as an output for a video - like Processing.org sketches)
- Stored color pallets ( interpolation happens in SRAM )
- Arduino buffers ( 64 byte reserved for Serial buffers, I2C buffers, SPI buffers if they are initialised )
- other things stored in SRAM ( Serial.print("some text "); uses SRAM to store the "some text" )
Arduino Leonardo, Micro, Uno, Nano only has 2.5 kByte of SRAM,
Mega has 4 kByte SRAM.
Due, Teensy has oodles of SRAM, , DUE has 96kByte
Zero / MKR1000 has 32kByte SRAM
Required framerate - mostly to keep the animations or video frames looking smooth
1024 WS2812B LEDs spoken to at 800 kHz will give you 30 FPS
any more will lower your framerate
on DUE I have done about 3000 LEDs with 3 "controllers" , each one driving less than 1024 so the framerate stayed above 30 fps
Power supply rating ( and cabling used )
There is a voltage drop over the LED strips so we generally inject power every 2 strips ( 10 m ) with high capacity power cable. and with multiple supplies in parallel.
WS series ( 2811,2812,2812B ) LEDs have output drivers that "refresh" the signal when it is forwarded to the next LED in line, you could go a few m in-between LEDs ( Ive done up to 6m which is pushing it a bit as any other cables near the signal wire corrupted the signal )