Bootloader upgrade to 02.04.0005 fails with CRC error

Discussions about RaZberry - Z-Wave board for Raspberry computer
User avatar
aLiEnHeAd
Posts: 146
Joined: 02 Feb 2017 15:09

Re: Bootloader upgrade to 02.04.0005 fails with CRC error

Post by aLiEnHeAd »

In the z-wave.me -> trident upgrade instructions it says
Make sure to install the latest firmware in your Z-Wave radio module. For this, navigate to Firmware Upgrade page and upgrade to 7.42, then upgrade the bootloader to 02.04.0005, then upgrade to 7.46, and finally to 7.47.
https://z-wave.me/support/upgrade-z-wav ... iot-z-way/

I successfully updated the firmware from 7.28 -> 7.36 -> 7.42
But updating the bootloader of my RaZberry 7 Pro fails: "Unable to update data. /ZWave.zway/ZMEBootloaderUpgrade"

[2026-05-21 08:07:33.348] [zway] Job 0xf4 (Start reflashing bootloader of Z-Wave.Me firmware for 5th generation Z-Wave chip): Wrong checksum
[2026-05-21 08:07:33.348] [D] [zway] Job 0xf4 (Start reflashing bootloader of Z-Wave.Me firmware for 5th generation Z-Wave chip): fail
User avatar
aLiEnHeAd
Posts: 146
Joined: 02 Feb 2017 15:09

Re: Bootloader upgrade to 02.04.0005 fails with CRC error

Post by aLiEnHeAd »

I updated to the latest 5.0.2 nightly and added the following patch to
/opt/z-way-server/automation/modules/ZWave/index.js

after that I succesfully updated the bootloader and then I updated the firmware from 7.42 to 7.46
Now my RaZberry 7 Pro is bricked :(

Code: Select all

[2026-05-22 20:40:38.178] [I] [zway] Adding job: Get controller info and supported function classes
[2026-05-22 20:40:38.179] [D] [zway] SENDING: ( 01 03 00 07 FB )
[2026-05-22 20:40:39.293] [I] [zway] Job 0x07 (Get controller info and supported function classes): No ACK received before timeout
[2026-05-22 20:40:39.293] [D] [zway] SENDING: ( 01 03 00 07 FB )
[2026-05-22 20:40:40.411] [I] [zway] Job 0x07 (Get controller info and supported function classes): No ACK received before timeout
[2026-05-22 20:40:40.411] [D] [zway] SENDING: ( 01 03 00 07 FB )
[2026-05-22 20:40:41.519] [I] [zway] Job 0x07 (Get controller info and supported function classes): No ACK received before timeout
[2026-05-22 20:40:41.519] [W] [zway] Job 0x07 (Get controller info and supported function classes) dropped: too many resends
[2026-05-22 20:40:41.519] [D] [zway] Job 0x07 (Get controller info and supported function classes): fail
[2026-05-22 20:40:41.520] [C] [zway] Get Serial API Capabilities returned zero.
[2026-05-22 20:40:41.520] [I] [zway] Removing job: Get controller info and supported function classes
[2026-05-22 20:40:41.531] [D] [zway] Worker thread exit point
[2026-05-22 20:40:41.531] [D] [zway] Worker thread successfully finished
[2026-05-22 20:40:41.531] [D] [i/o] Closing port
[2026-05-22 20:40:41.771] [I] [core] Error: Bad data - communication failed
When I start the Raspberry Pi no LED activity on the RaZberry...
I really hope I can bring it back to life. Any ideas?



here's the patch I got from PoltoS:

Code: Select all

diff --git a/modules/ZWave/index.js b/modules/ZWave/index.js
index daa55834..ee7b215c 100644
--- a/modules/ZWave/index.js
+++ b/modules/ZWave/index.js
@@ -346,7 +346,8 @@ ZWave.prototype.startBinding = function() {
 	var uartSpeed = function(type) {
 		var data = this;
 
-		if (type === self.ZWAY_DATA_CHANGE_TYPE["Updated"])
+		if ((type & ~self.ZWAY_DATA_CHANGE_TYPE["PhantomUpdate"]) !== self.ZWAY_DATA_CHANGE_TYPE["Updated"]) return;
+		
 		if (self.config.speed !== data.value) {
 			self.config.speed = data.value;
 			self.saveConfig();
@@ -357,7 +358,9 @@ ZWave.prototype.startBinding = function() {
 	}
 	this.zway.controller.data.hardware.uartSpeed.bind(uartSpeed);
 	
-	var firmwareFaultNotify = function() {
+	var firmwareFaultNotify = function(type) {
+		if ((type & ~self.ZWAY_DATA_CHANGE_TYPE["PhantomUpdate"]) !== self.ZWAY_DATA_CHANGE_TYPE["Updated"]) return;
+		
 		if (this.value != 0) {
 			http.request({
 				url: "https://service.z-wave.me/expertui/firmware-faults/",
@@ -2651,8 +2654,7 @@ ZWave.prototype.defineHandlers = function() {
 				var data = buf;
 
 				if (parseFloat(zway.controller.data.SDK.value.substr(0, 4)) >= 7.12) {
-					var arr = (new Uint8Array(data.slice(0, 30)));
-					zway.ZMEBootloaderLoadFlash(data.slice(0, 5), function() {
+					zway.ZMEBootloaderLoadFlash(data, function() {
 						result = "done";
 						zway.stop(); // to force re-start Z-Way
 					}, function() {
@@ -2684,13 +2686,15 @@ ZWave.prototype.defineHandlers = function() {
 						});
 				}
 			} else if (data.url) {
+				console.log("Fetching bootloader from " + data.url);
+				
 				http.request({
 					url: data.url,
 					async: true,
 					contentType: "application/octet-stream",
 					success: function(response) {
 						if (parseFloat(zway.controller.data.SDK.value.substr(0, 4)) >= 7.12) {
-							zway.ZMEBootloaderLoadFlash(data, function() {
+							zway.ZMEBootloaderLoadFlash(response.data, function() {
 								result = "done";
 								zway.stop(); // to force re-start Z-Way
 							}, function() {
Post Reply