I'm working on creating an artnet controller based on teensy 3.2 and Wiz850io for ws2813 leds.

Since the packets artnet send can be huge, I'd like to increase the buffer size of the W5500 to it's maximum when using a single socket.
So I tried to do the same as what have been done here: https://github.com/PaulStoffregen/Ethernet/pull/7

E.g. set MAX_SOCK_NUM to 1 and #define W5200_16K_BUFFERS with the according branching.

The modifications are done here https://github.com/PaulStoffregen/Et...w5100.cpp#L120
#define W5500_16K_BUFFERS
// ...
} else if (isW5500()) {
	CH_BASE = 0x1000;
	#ifdef W5500_16K_BUFFERS
	SSIZE = 16384;     // 16K buffers and MAX_SOCK_NUM = 1
	#ifdef W5500_4K_BUFFERS
	SSIZE = 4096;    // 4K buffers
	TXBUF_BASE = 0x8000;
	RXBUF_BASE = 0xC000;
	for (i=0; i<MAX_SOCK_NUM; i++) {
		writeSnRX_SIZE(i, SSIZE >> 10);
		writeSnTX_SIZE(i, SSIZE >> 10);
	for (; i<8; i++) {
		writeSnRX_SIZE(i, 0);
		writeSnTX_SIZE(i, 0);
But the performances are pretty bad (worse than 4K buffer).

I also set the speed of the SPI clock to 30MHz. (see: https://github.com/PaulStoffregen/cores/pull/47)

I tried with a Wiz820io (W5200 based) and the modification of the pull request is working OK.

So what would be the code to handle 16K buffers with the W5500?

And I also see on the W5500 docs, that it is able to handle SPI at 80MHz, is it feasible with teensy?


You can see my custom artnet controler in action with madmapper here https://vimeo.com/247538495