Skip to content

Conversation

@SpComb
Copy link
Member

@SpComb SpComb commented Jul 5, 2025

Fix artnet input to use an eventgroup instead of problematic top-level task notifications.

Use separate dmx/sync event bits instead of the sync_mode bit in struct artnet_dmx. Change leds artnet logic to bypass soft-sync when in artnet sync mode.

Split per-output event bits into a separate event group, increasing the maximum artnet output count from 20 -> 24.

Tweak the ETH DMA buffer size/num to take into consideration the actual DMA buffer usage for expected Art-Net frame sizes vs maximum Ethernet frame size. This optimizes the fixed memory usage for DMA buffers by approx 15KB while increasing the number of Art-Net frames in the DMA buffer from 24 to 32, at the cost of each maximum-sized ethernet frame using two DMA buffers instead of one.

Bump both CONFIG_LWIP_UDP_RECVMBOX_SIZE and CONFIG_LWIP_TCPIP_RECVMBOX_SIZE to handle bursts of up to 32 packets.

@SpComb SpComb force-pushed the artnet-universe-bits branch from dddf75e to 3708bf7 Compare July 5, 2025 13:43
@SpComb
Copy link
Member Author

SpComb commented Jul 5, 2025

Tend to see one artnet_send_poll_reply -> artnet_send: send: Not enough space at boot, and the first batch of ArtPollReply is missing some packets, but it works fine after that.

Not sure why, it's only 24/4 -> 6 packet burst, and should fit into CONFIG_ETH_DMA_TX_BUFFER_NUM=10 . Perhaps something else is filling up the TX queue at boot.

EDIT: confirm that the ArtPollReply is only 281 bytes including the Ethernet framing, and the 6-packet burst should easily fit into CONFIG_ETH_DMA_TX_BUFFER_NUM=10.

@SpComb SpComb merged commit 615f7c1 into master Jul 5, 2025
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants