How many PWM pins on Artemis RedBoard ATP?

Hello,

I read that the Artemis RedBoard ATP contains 31 PWM channels SparkFun RedBoard Artemis ATP - SparkFun Electronics . However, I only counted 21 pins that have the tilde ~ sign. Could someone please tell what pins else can be used for PWM purposes? Thank you.

https://cdn.sparkfun.com/assets/a/8/c/1/e/RedBoard-Artemis-ATP.pdf has the full list…sometimes the silkscreen doesn’t allow all of them to be labeled, sometimes they’re used by the EEPROM, boot, etc. but there’s 31 tildes listed here (upper left).

Edit: the other 10 are in-use, 21 are broken-out/available for use

The “31 PWM channels” figure appears to describe Apollo3/Artemis pin-multiplexing capability, not 31 simultaneously available, independent PWM outputs in the Arduino pin map.

PWM is generated by the Apollo3 CTIMER peripherals, whose outputs can be routed to alternate GPIO pins. Some routes share the same timer output, so selecting another pin does not necessarily create another independent channel. Under the SparkFun Arduino core, the safe choices are the ATP pins marked with ~; SparkFun previously confirmed that those markings identify pins supported by analogWrite().

Therefore, your count of 21 usable Arduino PWM pins is probably the practical board-level answer. Additional Apollo3 routing might be possible through the Ambiq HAL and direct pin-mux configuration, but it would bypass normal Arduino support and could conflict with other peripheral assignments. The product page should distinguish “PWM-capable pin routes” from independent PWM channels.

Dear TS-Russell and Alice_Brown, we use two gimbal SparkFun 3-Phase BLDC motors each with encoder AS5048A Gimbal Motor with Encoder - 12V, 467RPM - SparkFun Electronics and two SparkFun 3-Phase Brushless motor-drivers SparkFun Brushless Motor Driver - 3-Phase (TMC6300) - SparkFun Electronics .

  1. If I understand correctly, the encoder sends analog PWM output signals. Hence, I need to connect one of the encoder’s three wires to the ~AD pins on the microcontroller board. Is it correct?
  2. There are 12 PWM wires connecting the motor-drivers to the microcontroller board. The microcontroller board sends digital output signals to the motor-drivers. Therefore, I connect the HIGH and LOW side pins of the motor-drivers to the ~D pins of the microcontroller board. Is it correct? Thank you.

Start with one motor.

Pick 6 PWM-capable pins on the ATP.

Wire them similarly to the redboard example here

Know that you’ll be using different pins, because it’s a different board

Connect U, V, and W to the motor’s 3-wire connector

Orientation doesn’t matter, as noted

Power the board

Alter the 6 pins in the example code to match the PWM ones you chose earlier

Then do the same for the second motor.

It could help to enlist someone locally to walk you through this, it’s been quite a lot of confusion across almost a year. There might be a local maker group on meetup/fb or hackerspace, or university, depending on where you are

Thank you, TS-Russell. For the encoders’ PWM output wires, I will use pins ~A12 and ~A13 on the microcontroller board https://cdn.sparkfun.com/assets/a/8/c/1/e/RedBoard-Artemis-ATP.pdf I am just scared of additional abbreviations which each pin has like (PDMCLK/TX1) and (I2SBCLK/RX1).

GPIO pins are often multi-functional, meaning they can be assigned to use a different protocols or serve a few alternate functions. You can use any of the 21 labeled on the board without issue (you wouldn’t want to try using the 10 pwm-capable pins that are used elsewhere, like ‘boot’, etc)

Thank you, TS-Russell. It is a very important remark!