Arduboy Leonardo

I was creating arduboy clone and meet some problems that I would like to address(and problems I might need help with). Since the $12 Arduboy Compatiable system was closed, I might as well just begin my story here.
I guess other people should use this post too if they have this issue…

If you’re willing to pay the high price, the Adafruit one is available

Are those 1.3" ? most cheap SSD1306 display modules I see are 0.96" The Genuine 1.3" SSD1306 are quite pricey lately.

1 Like

I just tried all of the options. Delete the Arduboy2 library and install Mr. Blinky’s Arduboy2 library. It has variants for the different display controllers.

This is what I bought:
1.54" http://r.ebay.com/W91MKg
2.42" http://r.ebay.com/kvWJda
1.3" https://www.aliexpress.com/item/1PCS-1-3-OLED-module-blue-color-SPI-128X64-1-3-inch-OLED-LCD-LED-Display/32683117916.html

1 Like

If you do want to make use of the SSH1106 screen there are some modifications you can make:

It’s a long time, but I have deciding to get back to work, even though I lost the SSD1306 1.3 inch screens, the arduino leonardo, and as well as the buttons and the developer board.
But I got this fantastic soldering iron having temperature regulation and a bunch of time.
@Mr.Blinky can you show/guide me to the table you made about the pins for arduino(leonardo)?

Checkout the info on the Homemade board package on GitHub

1 Like

I am ignoring CART_CS and SPI MISO because I bet that have to do with some CART(RIDGE) thing…
looks neat. Thanks.

Yes. It’s optional. That’s why I put it under the dotted line and remarked with ***

2 Likes

The first design. Unique in having the display mounted “upside down”
thTP4V6EYD
The second design (which was kind of pushed my mum because she dislike anything that can be related to games, so this board was designed to look NOT like a gameboy (so it do not have a D-pad) but allow decent controls to be made.
It also allows a very big power module (charging and discharging of Arduboy)
thO3XJSX2O
That make me think of a third design…
th9K0Y2QQZ
Which is nice in it have the D-pad and all the buttons in nice place.
But it won’t allow for a battery charger…
What do you think? Tell us!

  • Design A
  • Design B
  • Design C

0 voters

In fact, all of the said designs are capable of mounting “mom-proof” controls (like Design B), but design B will have to have a very small D-pad (because of room)
Design C will be able to mount a power-module when mounting “mom-proof” controls

Then I was thinking about the circuitry (power circuitry) to power it (I’d like more than a plug-in and play module)
I also don’t want a separate port to charge (because it is dumb and make it look and feel less “original”, and the charging port can wear out
So I had came up with the following designs, utlizing the power pins on the Leonardo.
Some quick hack proves this thing will work (already blinked a LED :yum:)


It’s a spare UNO, but it’s still a piece of Arduino. A Leonardo will still work.

BAT = Battery
CHG = battery charge module
Arduino Leonardo = Arduino Leonardo
Which design do you think is better?

  • LEFT arrangement
  • RIGHT arrangement
  • Neither will work

0 voters

@Mr.Blinky, I have heard you had some expertice in these hardware things?
Or do you have ay idea how the circuitry inside Arduboy was like?

Both designs are bad and won’t work.

  • The two diodes at the battery are wired up in the wrong direction. So the Arduino in both designs won’t be able to run on the battery.

  • When the switch is closed in left design and in right most position in the right design. The battery will be (over)charged by Arduino when powered through USB (charging board will not function properly)

  • Turning the diodes around does make the Arduino run from battery. But wiring up a battery without over current and discharge protection is a dangerous thing.

If you want to use a single USB connection for uploading and charging. You can take the USB voltage after the F1 fuse on an Arduino Uno / Leonardo and connect it to the charger module input Voltage(+)

Make sure the charger module has an over discharge protection and an over current protection for its output voltage.

You can connect the modules output voltage(+) to VCC/5V of Arduino and put a switch in series.

Example charging module with protection. You can ignore the micro USB connector as it has seperate (+) and (-) input pads.

Not that this module has no voltage booster. But in your design you want to run the Arduino on battery voltage anyway.

Leonardo

Uno

1 Like

I wasn’t very good at this…

That is what the two 4.5V zener diode is for. They allow current to pass if voltage is higher than 4.5 (so to prevent battery from powering the charging unit) and allow it to charge when voltage is higher than 4.5V(like connected to a USB output)
Obviously I didn’t did a good drawing…
When the device is connected (5V) and power switch switched on, the
yes there is a mistake in LEFT design.
Or not. Wait a second…
The battery will be “idle” because of the diodes limiting the way of current it is travelling in. The 5V(being higher than limit of Zener diode) will “break down” the diode and power the charge module will charge the battery, but it’s output is still lower than 5V so it will not go to the main circuitry… (wait. what?)Yes, I believe so.
So the LEFT design would have worked. (just those standard diodes reversed)

I think so. It also prevents backflow.

There is 5V, GND, GND and Vin (Assume it is Vin and the GND next to it?) (the ISCP also have power pins that are identical to 5V)
A closer lock revealed that Vin and 5V is treated differently on the board.
It also shows that all GNDs are connected (which may or may not be a bad thing)
I was hoping to get the voltage from the pins (like not soldering something to the board, because according to your methods I can just wreck the round power plug and solder wires from there
What is the AREF on UNO? Feels like a USB host interface (from MEGA16U2)
Can I use it to say, ISCP another Arduino?

I’m not sure if you understand how zener diodes work. When wired up normally (like in your diagram) thay act as normal diodes.
Only when they are wired up in reverse the zener effect will be in effect and cause the ‘regulated’ voltage drop.
So if you would use a single 4.5V zener diode and feed 5V into it, only 0.5V would be left on the otherside because of the 4.5V drop.

VUSB I marked in the images is not the same as 5V.

I have not given such advise.

Well…mind me for that.
so if I use two zener diode (like I was in my design), one of the zener diode will not be activated? because of the voltage drop
Hmm…:thinking:
so I should buy some 5V ones. (but some USB out is exactly 5V, so a slight mistake or the battery won’t charge)

Any thought of using one of those triodes(transistors)?
I can also use two triode (NPN and PNP) for the charger block (a 5V and GND is saver than only one 5V) and use a single 4.5V zener diode as a “voltage sensor” of whether the voltage (at the charger block end) was higher than 4.5V or not. if it is higher than 4.5V (like any of the USB power thingy), the transistors will conduct and charge the battery. if NOT, it will, well, simply not conduct.
It sound like complete nonsense to me, because the curve from zener effect was considerably more (round) when at lower voltages. Higher voltage cause the avalanche effect (which means the voltage drop/current curve was very sharp)

So the diodes(regular) in my circuit do prevent the battery from being charged by a supply of 5V current (not from the power circuitry), when placed correctly.
Thanks.

But they are similar…well, if you say so.

Erm…do you know anything about the Vin on the Arduinos?

I think because of a language barrier you’re not getting the picture. I recommend to read up about zeners (and transistors) in electronic literature in your native language so you can understand exactly how they work.
When you do, you will realize why they won’t work in your designs and why they are not suitable for what you want to do.

tl;dr

Forget about using zeners, diodes and transistors.

I do. But I’m not going in to that because you mentioned you want to use a single cable.

Since you mentioned don’t want to solder to the Arduino board. Maybe you could consider making a USB Y (splitter) extension cable / adapter.

  • One end will have full wiring and will connect to the Arduino
  • The other end will only have the power wires (VUSB and GND) and will connect to the charger module.
  • the common end will have a female connector where you can connect your normal USB cable to.
    usb-micro-female-split-to-2-micro-usb-male-dual-splitter-cable
(Note: Most of these commercial splitter cables do not have any data wires)
1 Like

It always annoys me when manufacturers do this.

The manufacturers shouldn’t be allowed to call those USB cables because the USB specification explicitly requires the data lines and does not make any special case for ‘power-only’ USB.

At the very least they should advertise the lack of data lines,
but instead they tend to assume “the general public is dumb and won’t know or care”.

1 Like

I can’t agree more.

I wished there was a standard for USB power only cables with a specific icon. It would have saved a lot of confusion.

1 Like

Yes it does. Amongst others, there’s the Battery Charging (BC) 1.2 specification, which shorts the data lines to indicate higher current is available.

To recognize Battery Charging, a dedicated charging port places a resistance not exceeding 200 Ω across the D+ and D− terminals.

But it doesn’t say “such devices must use an alternate USB symbol” or “such devices must refer to themselves as USB Power-Only”, which is what I meant by ‘special case’.

Hence power-only USB cables are free to label themselves “USB cables” and conveniently not mention “by the way, we’ve shorted the data lines”.

It’s not possible to check whether the data lines have been shorted if the cable is stuffed into plastic packaging, as many are, or if the cable is being bought online.

Requiring a different symbol or a different naming convention would be incredibly useful.