Quattro B6AC Invalid device signature

61 views
Skip to first unread message

giuseppe buglione

unread,
Feb 26, 2024, 8:31:59 PMFeb 26
to cheali-charger
Hello to everybody and first of all, let me say I am deeply grateful to everybody involved in this project.DSC03137.JPG

Somebody gave me this charger because it didn't work.
After fixing the hardware side of things I am now taking care of the FW upgrade.
I have successfully installed cheali-charger-imaxB6-clone_2.00-e10.3.12-20160613_atmega32.hex on 3 of the four chargers.
The fourth one is giving me trouble. I am using a NANO as ISP programmer. I have to solder on the traces next to the ATMEGA32L as there are no headers available.
This fourth MCU is not recognized.
`boombox@BoomBox:~
$ sudo avrdude -p atmega32 -c stk500v1 -P /dev/ttyUSB0 -b 19200  -U flash:w:"cheali-charger-imaxB6-clone_2.00-e10.3.12-20160613_atmega32.hex":i -F

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for ATmega32 is 1E 95 02
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "cheali-charger-imaxB6-clone_2.00-e10.3.12-20160613_atmega32.hex"
avrdude: writing flash (31738 bytes):

Writing | ################################################## | 100% 35.34s

avrdude: 31738 bytes of flash written
avrdude: verifying flash memory against cheali-charger-imaxB6-clone_2.00-e10.3.12-20160613_atmega32.hex:
avrdude: load data flash data from input file cheali-charger-imaxB6-clone_2.00-e10.3.12-20160613_atmega32.hex:
avrdude: input file cheali-charger-imaxB6-clone_2.00-e10.3.12-20160613_atmega32.hex contains 31738 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 19.63s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0x00 != 0x0c
avrdude: verification error; content mismatch

avrdude: safemode: Fuses OK (E:FF, H:00, L:00)

avrdude done.  Thank you.
`
The strange thing is that, after unsuccessfully trying to write to it, when I power the unit on, this charger LED shows black squares on the top row.
Before, it was working normally, showing the Skymax B6 welcome screen.
Any help is greatly appreciated.

by the way, on a side note, when calibrating one of the chargers, in the Idischarge high current process, the initial calibration value was so off that i pulled more than 8A and the discharge mosfet and resistor blew. It might be an idea to set the initial calibration value very low, and let the user increase it as needed.

Roberto Garcia

unread,
Feb 27, 2024, 6:17:34 AMFeb 27
to giuseppe buglione, cheali-charger
/
/


Good to know and I agreed 100%.

As I read on this wonderful contribution, your charger turns into a good weight paper.

But no problem if you remove the death chips and replace with fresh one and start all over again.

Let us know what you do with this sad issue.

/



--
You received this message because you are subscribed to the Google Groups "cheali-charger" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cheali-charge...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cheali-charger/d8aa3770-6386-4b19-bc2f-52a1bbef6fc3n%40googlegroups.com.

giuseppe buglione

unread,
Feb 28, 2024, 10:32:28 AMFeb 28
to cheali-charger
3 out of 4 are working fine, so it's quite a useful paper weight, i say...
It's just a pity, not be able to use the fourth one. I am researching, the problem seems to be related to the Fuses being set incorrectly, but since I cannot establish a connection, I cannot reset them. 
I am reading about High Voltage programming, but so far I have not found something specific for the Atmega32l.
This kind of thing takes some time to understand, especially for somebody as stupid as me...
I am more tempted to rewire the charger's pins to an Arduino. Is the code compatible to any Atmega32 based Arduino?
Maybe it's a good opportunity to do some experimentation

Roberto Garcia

unread,
Feb 28, 2024, 11:04:58 AMFeb 28
to giuseppe buglione, cheali-charger
/
/

Well.. We are in the same path ... ;-)

As I understand, the main problem is to follow the CPU traces and also to understand the HEX code. The other problem is when you try to install a firmware on a wrong CPU, as you did... :-(

Very difficult to understand the code. 

Working on that , of course, need some time and money to "inspire" the experts to develop some solutions to the problem.

As a Radio control enthusiast, I get involve in repairing RC charger and I have a lot of fun doing it.

High voltage... Bigger mosfet and modify the code... It is a hard task to achieve.
The problem is to change the way imaxb6 balance the cells ... It takes a lot of time.

This issue can be solve using a third party balancer.

So, when I want  to charge a little bit faster, I don't use the balance port from imaxb6. I used a hyperion balancer instead.

Thinking about installing a more powerful mosfet to the balance circuitry ...mmmm... Better not.


/








diggit

unread,
Feb 28, 2024, 2:53:50 PMFeb 28
to cheali-charger
Giuseppe:
Invalid signature means communication is not working. It can have multiple reasons.
  • Wrong wiring
  • Wrong fuse (quite common)
  • Damaged HW (eg. dead 5V rgulator, dead MCU,....)
Several tips:
  • Don't power charger from programmer, rather use normal power input
  • Check 5V on MCU or programming connector
  • Double check wiring
I know about high voltage programming (12 V on reset pins or so), but I never tried it. For me it is easier to replace MCU with new one (hot air soldering station recommended).

Is your charger 50 W per channel? Because 50 W variants have usually simplified voltage measurement circuitry for 2 lowest balancer ports (reason for that "expert" calibration menu).
80 W chargers usually have differential amplifiers on all channels and in that case you want to flash for example B6AC image.
The reason why I am asking is that I can see quite a lot of chips per channel on PCB. If you have incorrect FW, you'll get degraded measurement performance on bottom 2 channels.
Can you check marking on chips marked in green?
DSC03137_crop_marked.JPG

BTW when you see rectangles on display, it means display was not initialized by MCU and thus FW is probably not running.

Roberto:
>  Thinking about installing a more powerful mosfet to the balance circuitry ...mmmm... Better not.

If you replace balancer switching transistors with something with lower Rdson, you won't get better balancer performance. You have to replace balancing resistors with lower resistance ones (which can also dissipate all the heat!).

To increase charging power, you'd have to modify several components and it's generally not worth it. Increasing discharging power is easier. I modified one charger and it has discharging resistor on old GPU heat sink (also discharging shunt had to be changed to allow wider current range).

There are links to several schematics on cheali FW github page to understand it in more detail.

There are existing threads here about this topic here. If you want to discuss mods, it's better create new thread and not mix it here with troubleshooting stuff.

giuseppe buglione

unread,
Feb 29, 2024, 6:02:30 AMFeb 29
to cheali-charger

So, I have made some progress. I used the code found here to program an Arduino Nano as ISP programmer with clock output, and it works, I can reset the fuses and upload Firmware. The device works, as long as the programmer 8Mhz output (if i understand correctly) is still connected to Xtal.

The problem is that when I remove this connection, the device is not accessible anymore, and it stops working.

The fuses were changed as per Firmware directions:

-Uhfuse:w:0xc5:m -Ulfuse:w:0x3f:m


Does this indicate that the external oscillator is malfunctioning? I don't have an oscilloscope to verify this.

giuseppe buglione

unread,
Feb 29, 2024, 6:14:54 AMFeb 29
to cheali-charger
DSC03137_crop_marked.JPG

giuseppe buglione

unread,
Mar 3, 2024, 9:03:08 PMMar 3
to cheali-charger

Hello, so I have set the fuses so as to use the internal oscillator at 8Mhz. The charger works, the only difference i can notice is slower response to button presses and the buzzer sound is lower, like an octave lower. I wonder if other functions will also be affected by the slower clock rate. I can go back and try to set the fuses again, see if I can get 16Mhz, but since the charger is working fine now, I will use it as it is.

I am very interested in upgrading the discharge circuit, I do a lot of battery repair, so it would be useful to have a higher discharge rate. I used to do this with a Cellpro PowerLab6 1000w charger, but it is now throwing me an error, the company has gone out of business and I cannot figure out what the problem is. 
I am inclined to think that upgrading the discharge mosfet and replacing the internal resistor with a lower resistance and higher Wattage rating one mounted externally on a heat sink and fan should do the trick. But I am not sure how the measuring circuit will be affected by the modification. Also, is there a limit in the FW on the maximum discharge rate?

diggit

unread,
Mar 4, 2024, 3:00:58 PMMar 4
to cheali-charger

Hi,
good debugging! It really looks like dead crystal.

> I wonder if other functions will also be affected by the slower clock rate.
Yeah, SMPS switching frequency is way off. Inductor will be most probably driven into saturation levels. Not good!
Also all time related features (energy, capacity,..) will be off.
Get some replacement crystal. These are cheap.

> I am very interested in upgrading the discharge circuit, I do a lot of battery repair, so it would be useful to have a higher discharge rate.
  1. pick FET with sufficient power rating
  2. put it on heat sink
  3. check if everything works
  4. change discharging current sense shunt with smaller resistance (same Vdrop at Imax as original)
  5. modify FW to allow higher discharge currents and power limits, build and flash it int charger
  6. re-calibrate discharging current
BTW most effective discharging method is to move the energy into different battery, instead of turning it into heat.
Reply all
Reply to author
Forward
Message has been deleted
0 new messages