Thanks for the details on the project it really helps with some context so I can help you as best I can.
First of all - I assume you are planning something unusual with the 7-segment displays? Because if you are just wishing to display text you could save a lot of hassle using this product (lots of color options too!): https://www.sparkfun.com/products/16425
Wait a minute I just took a closer look and realized that the display you show is RGB. That's pretty cool.
Good research into the problem also. I looked at the datasheet of that pin expander and confirmed what you are saying. How come you need 10 mA exactly? Have you tested that brightness and decided it is what you want? I only bring that up because it might not be a total dealbreaker. But it is understandable if you need more current driving capability, particularly to balance the R, G, and B channels visually.
Okay so now to actually provide an answer about the PWM on the Nano. The Apollo3 is a little weird with its hardware PWM generation - it has 8 timer modules, each with two "halves" of a timer (up to 16 now) and each of those can have two outputs (up to 32 now). However the two outputs on a particular half are not completely independent. The frequency of the "master" output must determine the frequency of the "slave" output. For some uses this restricts the Apollo3 to just 16 independent PWM outputs. But in your case (when only the duty cycle is important - not the frequency) you should be able to use all 32. Now we just need to make sure that there are indeed 16/17 PWM GPIO exposed on the RedBoard Artemis Nano. (You could definitely achieve this with the "ATP (all the pins)" version btw - but of course the Nano form factor is very cool) Checking out the schematic (https://cdn.sparkfun.com/assets/5/5/1/6 ... s-Nano.pdf
) confirms that there are 17 PWM outputs that are exposed - sadly two of them are hidden in the Qwiic connector (as you suggested). There are test points that you could solder to and there are cables that you could purchase to get at these pins. But if you still want I2C functionality... then you would need a pair of SDA/SCL lines from the same IOMaster. You're in luck - pins 9 and 10 are SCL and SDA of the IOMaster #4 respectively. Only one (pin 9) was a PWM pin to begin with. So just like magic your prediction is in fact true. You can get 16 PWM pins with two remaining to run I2C. Each pin should be able to have its own duty cycle as long as master/slave output pairs share a frequency (which should not affect this application). I recently fixed some bugs in the Arduino PWM interface (analogWrite) and made some improvements that should make this easy for you to set up in code.
Ooh minor disappointment - I just realized that you are trying to drive at least 3 segments - requiring 24 outputs not 16... One Nano could drive two segments without any help (edit: no it can't, we need addtl pins for cathode control). (I thought you might still want I2C for sensor readings or something). Hmmm. I do have one concern - matching the apparent brightness of the Nano PWM and the expander PWM might require a little work - perhaps all in software. Not a deal breaker but a consideration.
Grr.... an Artemis Thing Plus has 21 GPIO.... closer but not quite 24 yet! (Not to mention that you also need 3 more GPIO per digit to control the low sides...) Ahh I was hoping that it might do the trick and keep the nice small form factor.
You can definitely do what you need using only capabilities of the Artemis module. It seems like none of our boards can do it except the RedBoard Artemis ATP which has a large form factor.
Here's another thing you could consider... try prototyping this with the ATP (https://www.sparkfun.com/products/15442
). When you get it working you could design a board that would accept an Artemis module as well as your displays. That would be a very slick compact way to build what you have in mind and it would not require an in-between IO expander. If you have never designed a PCB before it could be a fun way to develop a new skill. If you had questions about how to do it you could post in the "Designing with Artemis" forum and I'm sure some people would be eager to help out. (here's one post of someone who built their own carrier board viewtopic.php?f=170&t=51685
Wow - that was a fun one to think about. Thanks for sharing. Whatever route you end up taking I hope you'll share the end result with us. It would be cool to see.