If you ask for a quote, the manufactor counts the number of components, I do it.
This is kind of going off the deep end here. OP is clearly at the stage of needing to learn the basics, rather than build 100,000,000 boards.
Addressing this back to OP = gilperon, the “learning curve” says learn the basics first, then learn the clever hacks after a while. It will take you 2-pennies to solder in 2 additional Rs, and 2-days to figure out how to multiplex a bunch of Leds.
One issue with the RGB Led is the individual Leds have both different Vf as mentioned, and also different brightnesses in the 3 Leds. Typical, Red = 2.1V and 3000 mcd, Green = 3.5V and 5000 mcd, and Blue = 3.5V and 1000 mcd. Normally, people don’t care, but having 3 series-Rs allows you to use different R-values and set different currents in the 3 Leds, and therefore compensate for the different brightness characteristics, if you need to.
I understand the reason he used 330 ohms cause this will keep the current under 40mA.
Also, these things are VERY bright. 40mA is a lot of current for hi-brightness Leds. Even at 10mA, the RGB Leds are so bright they’ll bleach your photoreceptors in a couple of seconds at 2-foot distance.
BTW, his 330 ohms at Vcc=5V will drive only (5-3.3V)/330 = 4.5mA into the GB devices, and a little more into the R device. In my currently inprogress project, where the RGB is used as an indicator, I’m cutting the currents back to about 2 mA, just because they are so bright. So, more like 680 ohms.
One other issue is that people will immediately start talking about using extra driver stages, like NPN inverters, etc, in order to offload the Led currents from the processor I/O pins. This was more necessary when driving older Leds that did take 20-40 mA to get adequate brightness, than when using the newer hi-brightness Leds. In my project, I’m driving upwards to 20 indicator Leds, and the current is only in the range of 40-50 mA total, which is no problem for an Arduino chip.