dotMG (formerly Arduboy Cartridge Edition)

Thanks @Mr.Blinky. This is the one (see pics):

I can only see one component that looks like what you described, but maybe you can tell better than me.

That 5 pin SOT23 chip is the DC-DC converter for the OLEDs 12V~14V VCC. So it’s a 3.3V board. The SSD1309 can handle up to 4V though.

FYI A Pro micro with open jumper has usually a VCC of 4.5V when connected to USB.

Ref the boost converter, have you got a scope to look at the 12V rail? Maybe poor regulation is an issue. Perhaps the larger display is reaching the upper limit of what that cheap converter is able to provide (anticipating that they didn’t use a particularly efficient inductor).

Thanks all. So if I’m interpreting this correctly, I should keep the VCC to the display board at 3.3V? I was testing with both a 4.5-5V input (USB), and with the output of a 3.3V regulator (MCP1700). The brightness difference is what made me wonder if the display board was meant for 5V (that and the fact that the eBay seller assured me that 5V was correct, despite the page saying 3.3V).

I guess I’ll stick with 3.3V and hope that the display looks a tad better when not going through a breadboard (once I make a PCB). On the upside, I’m glad I don’t need to add a boost to 5V for the display (when running on 3.7V LiPo), and I’m glad that the hum is not as loud at 3.3V (also a possible indication that 5V is too much).

@SimonMerrett Unfortunately I don’t have a scope :frowning:

What’s the current draw from the oled display (allowing for boost to 12v) at 3.3v and what’s the MCP1700 able to supply?

I read somewhere that the current draw can get up to 200mA. The regulator allows up to 250mA.

I can say that I tried to take advantage of a 1.54" oled with the ssd1309 driver last summer and it was a total pain for the reason that the power shutdown control via register settings didn’t have any effect on the boost converter so I needed to slice the pullup trace and greenwire a gpio to the enable pin on the boost ic. But more than that, I couldn’t talk to the radio on the spi bus because the oled module was smacking the spi lines with noise. (hence me being so keen on turning it off).

For the particular 1.54" module I used, there was a distinct brightness difference between when the boost ic was enabled and disabled. Any sane person might expect the display to turn pixels off if the 12V supply was removed but not this thing. So this makes me wonder if the 12V rail is unstable and hence the flickering bright and dull. Could you carefully desolder the enable pin on the boost ic, lift it off the smd pad without bending it all the way off and then see if toggling it between GND and 3.3v causes similar symptoms (I’m trying to think round the limitation of not having a scope)?

Edit - if you find the chip markings you may well find the chip pinout - that’s what I was able to do (as well as shortlisting only the pins with continuity to the 3.3v header pin). If you find the datasheet and manufacturer’s recommended values for the supporting passives you can check whether yours are suitable. For a start, I’m not sure if tantalum caps are a good option for this application, and the inductor value may be incorrect. Cap and inductor markings should allow you to find their nominal values without having to desolder and check with a component tester. You could replace them or add capacitance / filtering to see if that remedies anything.

Thanks @SimonMerrett. I’ll keep some of this in mind. I’m trying to keep the build simple (and reproducible), so hopefully I won’t have to do any of this.

On a different note, anyone know of any volume wheels that have two wipers? I’d really like to keep the volume wheel in my design, but with the single wiper volume wheel that I have, it’s only possible for @Mr.Blinky ’s standard wiring (uses one vs two speaker wires).

@Mr.Blinky What’s the difference software-wise in the one vs two wire speaker setup? Would there be any harm in selecting alternate wiring but only connecting one speaker pin (other to GND)?

Then honestly I wouldn’t rely on modules too much. There’s too much variability in some.

I’m sorry, had a quick look for this wiring but can’t find a schematic. Would you mind sharing? I don’t think I understand why a dual potentiometer is required. I assume two gpios are used for the two speaker connections? And it’s a piezo speaker? So all motion of the speaker is a function of the voltage difference across the disc? Is the pot wired in series (gpio - spkr, no GND connection) or as a divider to ground?

@SimonMerrett Ah I think you’re right! :man_facepalming: For the single speaker wire configuration, the GPIO connects to the “high side” of the pot, and GND is connected to the “low”. One speaker pin connects to the wiper, and the other speaker pin is at GND. (Sorry, I’m on a phone so I don’t have a schematic handy).

But what you said makes sense, and I’ll rework this to use the other GPIO in place of GND. We’ll see what happens when I get a chance to breadboard it, thanks!

So I think you can achieve low volume on gpio 1, connected with the pot. but I don’t know how some of the dual tone stuff is used. If you turned the volume down to halfway, then the second gpio would be push-pulling a 5v range around 2.5v centre on the other side. I can’t imagine that would be noticeably quieter than having gpio side at any other voltage in the range. In that case, only the gpio 1 will be volume controlled. The resistances may have an effect on the rate of the piezo motion but I don’t know if they will be noticeable. So volume control is not and option for gpio 2 with one pot.

For volume, just add a suitable value potentiometer in series with either of the GPIO lines.


@MLXXXp I might be missing something, but I’m not sure how that would adjust the total volume.

Here is a quick drawing of the original working design for 1 GPIO. The right side is what I’m thinking in response to @SimonMerrett’s comment about thinking in terms of the voltage across the speaker (basically replaces GND with the second GPIO). I might need to look at this more closely, but it seems hopeful. I haven’t done any actual analysis on it though.

There’s only one path for current flow; from GPIO1 through the speaker, then through the pot, then to GPIO2 (or the opposite direction).

The pot increases the resistance of the current path. The more resistance, the less current can flow. The less current, the less the power. The less power, the less the volume.

This is true for either a voice coil speaker or a piezo speaker. You just have to choose a suitable resistance range for the pot based on your particular speaker.

Your way would work but it wastes power through the pot even when set for maximum volume. The one thing your circuit does allow is adjusting down to zero volume, but you’re still wasting power through the pot at that point.

Ah yeah, sorry I wasn’t clear. I’m aiming for full volume control, from totally muted to full volume.

Your circuit will give you full mute but it will waste power through the pot when muted. Whether you’ll get full volume depends on the drive capability of the pins, since they will have to supply current to both the speaker and the pot when adjusted to full volume, and even if you get full volume, you’ll still be wasting additional power into the pot.

Note that there’s almost always a way to mute the sound in Arduboy sketches, either from a menu item or by using the Arduboy2 library’s audio mute control button sequence when you power up. My circuit assumes that the pot will control volume within a reasonable range for listening and digital mute will be used for absolute silence.

True. But a big enough pot (e.g. 100K) should leave the power dissipation to minimum while providing this “smooth from 1 to 0” transition he desired.
Or if he don’t want that but wanted to hard-mute, he can use one of these (optionally with different valued ones):

But he seems rather determined if you ask me …

I had a identical one (10K) from a scrapped walkie-talkie. But I can’t … (NNnnggg!) I can’t pull out that knob.

Ok I did it.