Help with homemade arduboy schematic

I’ve never tried it and have never seen it done, so I can’t say. All 5 pins that need to be grounded (21 - 25) are beside each other, so you could short them all with a single bare wire run across them with one end tied to ground. It probably wouldn’t look too bad.

Another option may be to scrape away a small strip of solder mask above the pins and connect them to the exposed GND by solder bridges. There’s a nice “finger” of ground plane above the pins that you need to ground.

1 Like

Yes I think I’m going to use the small 0.1mm copper wire, I was considering to add the fixed pcbs to the current order but it’s going to take 7 euros and 1 extra day to make them so it’s not really worth it

The boards have arrived today and they look beautiful😍!

I’ve already soldered the battery management and the LDO and they work, I get the battery voltage if I measure between B+ and GND, the first time I measured 1.5 from B+ and GND and after some time I decided to read the DW01 datasheet and I noticed that it said

Note: When a battery is connected for the first time, it may not enter the normal condition (dischargeable may not be enabled). In this case, short the CS and VSS pins or connect to a charger to restore to the normal condition.

I had already connected a charger but it didn’t work, so I shorted VSS and CS and it started to work correctly. And then I got 3.3 volts when I measured between VCC and GND. The leds turn on and off correctly when the battery is chargind and when it’s full. I’ll have to replace the red LED because I kept the soldering iron too much time when soldering it and now it stays on even when it shouldn’t( I know for sure it’s damaged because the same thing happened with the green one)

Tomorrow I’ll solder the microcontroller, I hope everything goes as smoothly as it went today!

2 Likes

You can’t damage a LED in a way that it would stay on when it shouldn’t. A LED turns on when current flows though it. For this LED, the current is controlled by the TP4056 charge control IC, which pulls pin 7 (CHRG) to GND level to turn it on.

Either the TP4056 is damaged or you’ve caused another current path by having pin 7, resistor R10, or the LED cathode shorted to ground.

It could also be that the battery is never reaching full charge. According to the datasheet, if you temporarily replace the battery with a 10uF capacitor and connect the USB power, the green STDBY LED should stay on and the red CHRG LED should flash at a rate of 1 to 4 seconds.

Ok, I resoldered all the components and a new tp4056 on a new board and now it works, when I connect the battery (at 4 volts) the charging led lights up, and when I plug in a charger the voltage between B+ and GND is 4.2volts, I left the battery charging for some time and its voltage goes up. Now that I think about it, the previous board may have not worked because I forgot to short the DW01’s VSS and CS pins each time I connected the battery again after disconnecting it, oh well. I’ve also soldered the LDO and it works. I’ve also already soldered the atmega32u4 with the crystal and all its other components, I’ve checked all the connections and there aren’t any shorts nor non-complete connections and the mcu isn’t getting hot.
What’s next? I tried connecting the USBasp to the ICSCP header and reading the signature using the command avrdude -c usbasp -p m32u4 but I get the error:
avrdude: warning: cannot set sck period. please check for usbasp firmware update. avrdude: error: program enable: target doesn't answer. 1 avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check.

I’ve already looked up the warking but I’ve read that it’s a normal thing with the chinese versions of the USBasp and it’s not a problem.
The 10pin to 6pin adapter hasn’t arrived yet so I used some jumper cables, I’ve already checked the connections using this image. I also measured the resistance from the MCU’s CLK, MOSI and MISO pins to the ICSP header and there’s a resistance of about 0.3 ohms so the distance of the header shouldn’t be a problem, right?


It’s not very high quality and there’s some kind of “noise”, but I’m pretty sure the pins aren’t shorted. Pls don’t judge the soldering😔

I get that error with my Chinese USBasp. It’s never been a problem.

If you have an oscilloscope with at least a 16MHz bandwidth, you should check to see if the crystal is oscillating at 16MHz. Otherwise, I can only suggest that you try some of the things @Mr.Blinky suggested here.

1 Like

Good(but also bad) news! I connected the USBasp to the ICSP header of an Arduino Uno and, using this command avrdude -c usbasp -p m328p I get the same error, so I assume it’s safe to say that the programmer is dead? If yes, that means that I’ll just have to order another USBasp(or just use and Arduino as ISP) and, hopefully, I won’t have to resolder everything!

I would recommend doing this. It would allow you to load the UNO with a sketch that toggles the programming pins at a slow rate. You can then check the wiring by seeing if the proper pins are also toggling on the target board. By using a very low frequency, you can use a meter to check for them toggling if you don’t have an oscilloscope.

did you use the USBasp succesfully before on a project? If not Is your USBasp actually an USBasp or does it have USBISP on the case? if it has then it’s not an USBasp at all and you need a program called progisp.

How is the device reconized in device manager?

Try pass along the config file too. Try the following with the config file in the same folder as avrdude:

avrdude -Cavrdude.conf -v -patmega32u4 -cusbasp -Pusb -B100

or alternatively if your using AVRdude of Arduino IDE

<arduino folder>\hardware\tools\avr/bin/avrdude -C<arduino folder>\hardware\tools\avr/etc/avrdude.conf  -v -patmega32u4 -cusbasp -Pusb -B100

Where is replaced to the actual path of your Arduino folder. If the path of arduino folder contains spaces you need to put double quotes around the command and config option.

I’ve never actually used it before, it’s an EvUSBasp from Baite(or Bete)MCU, on aliexpress.
Now that I look at the pictures on the page it actually uses progisp(on the amazon page where I bought it they weren’t there), I will try to use it.
In the device manager it’s listed under USB Device(Universal Serial Bus), I installed the “libusb” driver using Zadig

Then your quest is to get figure out how to get your programmer working first. Good you’ve got a Uno you can use that as test subject to figure out your programmer (make sure you only try read commands). Some chinese programmers can be challeging to get to work.

Alternatively you can use your Uno as ArduinoISP and read out your programmer as test. Usually you’ll need to short a (solder) jumper on those programmers so the reset pin on the header is connected to the atmega8 MCU.

You may also try using WinUSB


Edit for convenience, here’s an English version of ProgISP

2 Likes

Oh my god thank you so much!! I was going crazy trying to find an updated version of that software, the url going up and down in the software seems to be a real estate company and another site I found is completely broken

1 Like

I’ve just given up on using the USBasp, it gave a “Chip enable error” and I couldn’t find any solutions, so I just used the Arduino. When I type the command "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude" -C"C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -v -patmega32u4 -cstk500v1 -PCOM3 -b19200 -Ulfuse:r:-:h -B 100
AVRDUDE outputs:
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.06s

avrdude: Device signature = 0x1e9587 (probably m32u4) avrdude: safemode: lfuse reads as 5E avrdude: safemode: hfuse reads as 99 avrdude: safemode: efuse reads as F3 avrdude: reading lfuse memory:

Reading | ################################################## | 100% 0.01s

avrdude: writing output file "<stdout>" 0x5e

avrdude: safemode: lfuse reads as 5E avrdude: safemode: hfuse reads as 99 avrdude: safemode: efuse reads as F3 avrdude: safemode: Fuses OK (E:F3, H:99, L:5E)

avrdude done. Thank you.

So I guess it works?:grin::grin:
Do I have to set some fuses or can I directly burn the Caterina bootloader?(I’m going to burn the cathy3k or cathy2k later on)
Theoretically it’s already set to use an external oscillator since I ordered the -AU model, but I’m not sure on the speed

1 Like

If you burn the bootloader from the Arduino IDE it should set the fuses properly for you as part of the process.

The Arduino or the board were having a strange behaviour, I noticed that if the wires that connect the ICSP header on the board to the Arduino female pins don’t make good contact I get an “Invalid signature” error, so I looked this up and luckily it hasn’t happened only to me. I wonder if this could be your problem too @mameise ?
Anyway, I’ve successfully burned the bootloader
Edit: it gets recognized as an Arduino Leonardo so everything works!! :smile: :smile: :smile:

2 Likes

I’ve just had to replace the DW01 and the dual channel mosftet. After I firstly replaced the DW01(and shorted VSS and CS after connecting the battery) the voltage between B+ and GND wasn’t right, then after replacing the 8205A (and shorting…) it started working properly again. Do you know if keeping the battery disconnected and connecting a charger can damage one of the two components?

Unfortunately this is not the issue i have :frowning:

In the meantime i also soldered a different crystal on my board with normal capacitors (way too big components but for a test good enough.
Did not change anythin so i can assume that the crystal is not a problem for me. Also the wiring i checked more than ones and all is ok. I also already tested all the pins of the 32u4 and all are soldered properly and no shorts at all.

I will next try to understand how to use an oscilloscope to test further…

But nice that yours works first try :slight_smile: Hope i would have a bit of that luck :wink:

Good luck then! One more hypothesis, is the MCU brand new or is it the same one you used in the first version, which was also getting hot? If it’s the same, maybe it’s just broken

I have used a new one :wink: And in the meantime have set up 4 different versions to really check. Even with different components but still no luck somehow. Well i had some days off to refresh and will start on weekend again to further nail down the possible issue.

I haven’t done any work with either of these components myself. Everything I know about them is from what I’ve read in the datasheets.

As far as I can tell, powering the circuit from the charger without a battery connected shouldn’t cause problems. It would be similar to having a fully charged battery attached.

Attaching a battery with a low charge while the charger is supplying power might cause problems, though.

1 Like