Would be thankful for help to update the ED BMS diagnostics tool

Hallo guys,

I was trying to update my arduino with the latest version of the ED_BMSdiag-Tool but it’s not working. I’m getting this error message when I clicked the ‘check’-bock:

In file included from /Users/MineCooky/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino:28:0:
sketch/ED_BMSdiag.h:38:31: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
 char* const PROGMEM version = "0.7.1";
                               ^
sketch/canDiag.cpp: In member function 'void canDiag::setCAN_Filter_DRV()':
sketch/canDiag.cpp:124:37: warning: left shift count >= width of type [enabled by default]
   myCAN0->init_Filt(0, 0, (0x200 << 16));
                                     ^
sketch/canDiag.cpp:125:37: warning: left shift count >= width of type [enabled by default]
   myCAN0->init_Filt(1, 0, (0x318 << 16));
                                     ^
sketch/canDiag.cpp:126:37: warning: left shift count >= width of type [enabled by default]
   myCAN0->init_Filt(2, 0, (0x3CE << 16));
                                     ^
sketch/canDiag.cpp:127:37: warning: left shift count >= width of type [enabled by default]
   myCAN0->init_Filt(3, 0, (0x3F2 << 16));
                                     ^
sketch/canDiag.cpp:128:37: warning: left shift count >= width of type [enabled by default]
   myCAN0->init_Filt(4, 0, (0x3D7 << 16));
                                     ^
sketch/canDiag.cpp:129:37: warning: left shift count >= width of type [enabled by default]
   myCAN0->init_Filt(5, 0, (0x504 << 16));
                                     ^

Der Sketch verwendet 34.314 Bytes (106%) des Programmspeicherplatzes. Das Maximum sind 32.256 Bytes.
Globale Variablen verwenden 764 Bytes (37%) des dynamischen Speichers, 1.284 Bytes für lokale Variablen verbleiben. Das Maximum sind 2.048 Bytes.
processing.app.debug.RunnerException: Der Sketch ist zu groß; unter http://www.arduino.cc/en/Guide/Troubleshooting#size finden sich Hinweise, um die Größe zu verringern.
	at cc.arduino.Compiler.size(Compiler.java:315)
	at cc.arduino.Compiler.build(Compiler.java:156)
	at processing.app.Sketch.build(Sketch.java:1111)
	at processing.app.Sketch.build(Sketch.java:1081)
	at processing.app.Editor$BuildHandler.run(Editor.java:1988)
	at java.lang.Thread.run(Thread.java:745)
Der Sketch ist zu groß; unter http://www.arduino.cc/en/Guide/Troubleshooting#size finden sich Hinweise, um die Größe zu verringern.

As I had Version 0.38 running I thought it wouldn’t be hard to update :confused:

Thank’s for helping.

The problem is that the compiled code uses more program memory than your Arduino has.

Make sure you're using Arduino IDE 1.8.3. If not download it from:

and install it.

Make sure you're using the latest version of Arduino AVR Boards:

  • Tools > Board > Boards Manager
  • Wait for downloads to complete
  • Click on "Arduino AVR Boards"
  • If you see the button, click "Update"
  • Wait for installation to complete.
  • Click "Close"

The latest version (v0.7.1) should now compile successfully (it does for me).

Thanks for helping I’ve reinstalled the Arduino Software as it looked like I had already the latest version, I also deleted the Arduino-folder so it created a new one. Than I downloaded the files new and let it check again. That’s what I got:

In file included from /Users/MineCooky/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino:28:0:
sketch/ED_BMSdiag.h:38:31: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
 char* const PROGMEM version = "0.7.1";
                               ^
/Users/moritzleicht/Documents/Arduino/ED_BMSdiag/ED_BMSdiag_PRN.ino: In function 'printNLG6temperatures()':
/Users/moritzleicht/Documents/Arduino/ED_BMSdiag/ED_BMSdiag_PRN.ino:321:34: warning: iteration 7 invokes undefined behavior [-Waggressive-loop-optimizations]
         Serial.print(NLG6.Temps[n] - TEMP_OFFSET, DEC);
                                  ^
/Users/moritzleicht/Documents/Arduino/ED_BMSdiag/ED_BMSdiag_PRN.ino:320:5: note: containing loop
     for (byte n = 0; n < 8; n++) {
     ^
sketch/canDiag.cpp: In member function 'void canDiag::setCAN_Filter_DRV()':
sketch/canDiag.cpp:124:37: warning: left shift count >= width of type
   myCAN0->init_Filt(0, 0, (0x200 << 16));
                                     ^
sketch/canDiag.cpp:125:37: warning: left shift count >= width of type
   myCAN0->init_Filt(1, 0, (0x318 << 16));
                                     ^
sketch/canDiag.cpp:126:37: warning: left shift count >= width of type
   myCAN0->init_Filt(2, 0, (0x3CE << 16));
                                     ^
sketch/canDiag.cpp:127:37: warning: left shift count >= width of type
   myCAN0->init_Filt(3, 0, (0x3F2 << 16));
                                     ^
sketch/canDiag.cpp:128:37: warning: left shift count >= width of type
   myCAN0->init_Filt(4, 0, (0x3D7 << 16));
                                     ^
sketch/canDiag.cpp:129:37: warning: left shift count >= width of type
   myCAN0->init_Filt(5, 0, (0x504 << 16));
                                     ^
sketch/canDiag.cpp: In member function 'canDiag::getChargerTemperature(ChargerDiag_t*, bool)':
sketch/canDiag.cpp:925:39: warning: iteration 7 invokes undefined behavior [-Waggressive-loop-optimizations]
         myNLG6->Temps[n] = data[n + 5];
                                       ^
sketch/canDiag.cpp:924:7: note: containing loop
       for(byte n = 0; n < 8; n++) {
       ^
sketch/canDiag.cpp: In function 'getChargerTemperature.constprop':
sketch/canDiag.cpp:925:39: warning: iteration 7 invokes undefined behavior [-Waggressive-loop-optimizations]
         myNLG6->Temps[n] = data[n + 5];
                                       ^
sketch/canDiag.cpp:924:7: note: containing loop
       for(byte n = 0; n < 8; n++) {
       ^
/Users/moritzleicht/Documents/Arduino/ED_BMSdiag/ED_BMSdiag_PRN.ino: In function 'printNLG6temperatures':
/Users/moritzleicht/Documents/Arduino/ED_BMSdiag/ED_BMSdiag_PRN.ino:321:34: warning: iteration 7 invokes undefined behavior [-Waggressive-loop-optimizations]
         Serial.print(NLG6.Temps[n] - TEMP_OFFSET, DEC);
                                  ^
/Users/moritzleicht/Documents/Arduino/ED_BMSdiag/ED_BMSdiag_PRN.ino:320:5: note: containing loop
     for (byte n = 0; n < 8; n++) {
     ^
Der Sketch verwendet 28066 Bytes (87%) des Programmspeicherplatzes. Das Maximum sind 32256 Bytes.
Globale Variablen verwenden 770 Bytes (37%) des dynamischen Speichers, 1278 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.

As far as I can see the program is now having enough space on the board, but it’s still giving me a error.

I placed all files in the folder as shown by this photo:


So I got no idea what could be wrong now :confused:

warning: iteration 7 invokes undefined

Check your array sizes, and remember that array indices start from zero

left shift count >= width of typeShifting a sixteen bit variable left by sixteen bits is a bit pointless.

Those aren't errors, they're warnings. The sketch is compiling successfully.

It is certainly a good idea to always set File > Preferences > Warning level to "All" and pay attention to all warnings. You should fix all warnings from your own code but unfortunately some people do not hold their work to such high standards. Sometimes you can safely ignore warnings from other people's code, other times they indicate a serious problem that needs to be fixed.

Ohhhh right, It's working. Many thanks for helping me

In file included from /Users/moritzleicht/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino:29:0:
sketch/ED_BMSdiag.h:38:31: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
 char* const PROGMEM version = "1.0.1";
                               ^
Der Sketch verwendet 30734 Bytes (95%) des Programmspeicherplatzes. Das Maximum sind 32256 Bytes.
Globale Variablen verwenden 821 Bytes (40%) des dynamischen Speichers, 1227 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
Beim Hochladen des Sketches ist ein Fehler aufgetreten

Hey Guys,
there is a new version of the ED BMSdiag-tool and it looks like T can't get it installed. Again... :confused:

Would be great if you could help me. Already updated the Arduino software and checked everything I thought of it.

Thanks for helping me (again) :confused:

Found it, somehow the bootloader crashed. Got a new Arduino Uno, with that it’s working fine.