PixelTeleporter is great and should save me lots of fiddling around, as well as allow me to play with patterns while on the road with a laptop. Thanks @zranger1!
For anyone considering using USB-TTL hardware using something other than authentic FTDI chipset, hopefully by sharing my experience with that I can save others some time and trouble:
I tried using PixelTeleporter on Windows 10 with a few different cheap USB-TTL modules I had lying around from AliExpress and I didn’t have any luck with any of them. I wrote a little test app using local loopback to try and figure out the problem and it turned out none of them could handle the 2,000,000 baud rate required.
The CH430 module worked until about 1,700,000 baud (but actual throughput struggled to get much over 1,000,000). Above that it would still accept the connection but started dropping bytes.
The PL2303 (clone) module could reliably handle up to around 1,900,000 baud (using these drivers), but frustratingly would cause a bluescreen(!) if I pushed it above that. I also tried some older drivers that were a bit worse and that also bluescreened at high baud rates. Maybe this module would have worked OK with different drivers (or on Linux?), but I couldn’t find anything that would make it work on Windows.
The CP2102 module refused to allow the baud rate to be set above 1,000,000, so it was a non-starter with PixelTeleporter. Loopback worked reliably up to 1,000,000 baud though.
So in a nutshell, whatever USB-TTL adapter you use, it will need to work reliably at 2,000,000 baud. Most of the cheap USB-TTL modules on AliExpress, eBay etc can’t handle that, so they won’t work with PixelTeleporter.
Given my lack of success with the above, I bought an authentic FT232 module similar to the one already mentioned earlier in this thread. Windows detected it automatically but I installed these drivers anyway (they were only released yesterday and I like shiny things ). Everything worked fine first time.
As a result of my testing I also have bit of feedback on some problems I noticed with pbxTeleporter.exe. None are showstoppers, but hopefully you find this helpful. It tends to hang a fair bit when the serial port connection is unreliable (i.e. with the cheap modules) including on startup before the application’s window is displayed, requiring me to force-kill it via Task Manager. Maybe something like the serialOpen() call is hanging/blocking on the event thread? Also, there is often tearing visible on the processing.exe output when patterns are being updated at high frame rates. My guess is that this is because there’s no synchronisation of the pixel_buffer between the serialReadThread and udpThread? There’s possibly other race conditions due to the lack of synchronisation too, maybe that’s what causes the crashes @spazzle mentioned? I’d have had a go at fixing some of the above but it has been more years than I care to think about since I touched C++ and don’t have a dev env set up for it, so humblest apologies for not providing any pull requests!