CrazyVito11's Arduboy Clone

I’ve just modified the connection and it works perfectly! :grin:
I am glad i did it because some games do use the second “channel”, so i was missing some sounds
Thanks for the help! :slight_smile:

2 Likes

Yes, that’s one of the disadvantages for those using a Pro Micro, which has no Pin 13.

Wait, why is that? It uses the same processor right?
Is it just not connected to anything or something?

Correct. The Pro Micro is a smaller board and doesn’t bring out some of the pins used by the Arduboy.

https://community.arduboy.com/t/12-arduboy-compatible-system/236/81

Kind of a waste of pins if you ask me.
But if you are really crammed in enclosure space, then it probably makes more sense.
Even tho it is probably better to just buy the chip separately and solder it directly into the circuit.

It’s not a waste but a smart move to double the volume.

That’s why I made my board package with library changes so the Pro Micro doesn’t have to miss out on sound (and visuals)

Does your board package include modified versions of all the sound libraries that use Pin 13?
ArduboyTones, ArduboyPlaytune, ATMlib, ArdVoice …

Plus, this won’t help for those loading precompiled .hex files.

Oops no. only ArduboyPlaytunes supports the extra speaker pin atm.

EDIT:
I’ve added support for high volume in ArduboyTones. No support can be added for ATMlib and ArdVoice because OC4A can’t be mapped to another pin. so half volume for those on a Pro Micro.
At least the alternative pin support for Pro Micro saves you from missing tones when using ArduboyPlaytunes if only one speaker pin is used.

Not half volume, actually no sound at all. For ATMlib and ArdVoice, Pin 13 is used to generate the sounds. Pin 5 isn’t used at all by these libraries. (They expect it to be an output set to low, or used for mixing sounds from other code that only uses Pin 5.)

For a Pro Micro, you could move the display reset from Pin 6 to Pin 2, then use Pin 6 as the second speaker pin. You could then modify any libraries using OC4A to use OC4D instead.

All in all, for the best Arduboy compatibility, it’s best to use a Leonardo or exact compatible. Even the Arduino Micro, though it brings out all the required pins, still suffers from having different USB IDs and the TX and RX LEDs having reversed polarity.

That’s not true.I’ve got sound on my Pro Micro the sketches that use ATMlib use arduboy.audio.on(); which will activate the alternative pin.

Hmm I’ll look into that.

I can’t agree more. But a small and cheap Pro Micro is more attractive then a ‘bulky’ Leonardo.

Sorry, my mistake. Upon closer examination I see that both ATMlib and ArdVoice put the Pin 5/13 pair in complimentary mode (one goes high when the other goes low). With only one pin connected to the speaker, you will get half the intended voltage swing, thus lower volume.

This means that switching the second speaker lead to Pin 6 won’t gain you anything. You need to use compare register pairs (5/13, 6/12, 9/10) to get the high volume in this timer mode.

For full sound support you could use Pins 9 and 10 for the speaker, then move the RGB LED to the remaining PWM Pins 3, 5 and 6. This would probably disrupt the use of whatever LED was on Pin 6, in analog mode, when Timer 4 was used for sound, since Pin 6 can only use Timer 4.

1 Like

And an Arduino Micro is a compromise between the two.

1 Like

I think pin 6 might still work if OC4D will be used also and set to the same value as OC4A. something more to test. If this works I’ll change my Pro Micro pin references.

Anyone using my alternate Pro Micro pin mapping yet?

1 Like