Okay, wow, there’s a lot here. And first off thank you everyone for your input. It’s really helpful. But I’m feeling a little overwhelmed by all of the talk and different options. Let’s see if I can sum this up and ask a more directed question. But first, more about the intended use.
The idea was to make a small little ARGB LED PCB, something like 20-30 LEDs, in two or three groups to light up a 120mm fan from the outer edge. Most of the time it will be playing one color or maybe doing some form of breathing effect for lack of a better term for it. The intent for ARGB control via a computer (either USB or Serial was just to add a bit of complexity and programming to the project to help me learn some more. I’m not a programming wiz, so I figured a simple terminal program would be a good place to start. But I would likely set one pattern, which would be saved to the microcontroller and leave it alone. So not much traffic is needed in either direction. It’s also just a personal project. In terms of variables, I was thinking a couple of RGB values and a timer for how long the light should be on before moving to the next value.
I’ve never really looked into how communication with a microcontroller works for either USB or Serial. I know that COM ports exist and with the serial monitors in VS code/arduino, you can communicate with them and change settings that way.
So with that in mind. For Serial, I would need to implement something like this on the board and send the output of the FTDI (or other Serial chip) to the Atmel chip of my choice. I will have to do more digging on dev boards which provide this functionality. The software stack here is easier and drivers wouldn’t need to be written to handle any communication at all. In terms of Serial converter chips, there’s FTDI, CH340 Family, and CP2102 Family. And technically, the Serial could be done off board and just left to a programmer if I wanted. But that’s an option I have at that point.
For USB, I would need to get a USB chip (if I’m not using something that provides USB in hardware like the Atmega16u2) and I would have to contend with the USB software stack and overhead required to keep it working. If I use libusb, it sounds like some of that is abstracted away though and I’m left with an easier time, but I’m guessing I would still need to write drivers to be able to communicate to the unit via USB as I’m asking it to do a fairly limited thing??? I understand that HID is a deep category, but no buttons were planned for the unit, as it was just a static art piece mostly.
Is this a fair summation so far?
At this point, I’m much more inclined to go with serial as USB seems like a headache and a half. Maybe if I was going with a microprocessor it would make a bit more sense.