jethome-ru / zigbee-firmware

130 stars 28 forks source link

CC2538 in native USB is failing with Z2M #16

Closed handfreezer closed 2 years ago

handfreezer commented 3 years ago

Hello, I came in problem with Z2M using a board with USB as native from CC2538:

zigbee-herdsman:adapter:zStack:znp:log Opening SerialPort with /dev/serial/by-id/usb-Texas_Instruments_CC2538_USB_CDC-if00 and {"baudRate":115200,"rtscts":false,"autoOpen":false} +0ms
  zigbee-herdsman:adapter:zStack:znp:log Serialport opened +8ms
  zigbee-herdsman:adapter:zStack:znp:log Writing skip bootloader payload +467ms
  zigbee-herdsman:adapter:zStack:unpi:writer --> buffer [239] +0ms
  zigbee-herdsman:adapter:zStack:znp:SREQ --> SYS - ping - {"capabilities":1} +0ms
  zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,0,33,1,32] +1s
  zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,2,97,1,121,7,28] +0ms
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,2,97,1,121,7,28] +1ms
  zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 2 - 3 - 1 - 1 - [121,7] - 28 +1ms
  zigbee-herdsman:adapter:zStack:znp:SRSP <-- SYS - ping - {"capabilities":1913} +0ms
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +3ms
  zigbee-herdsman:adapter:zStack:znp:SREQ --> SYS - version - {} +15ms
  zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,0,33,2,35] +12ms
  zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,14,97,2,2,2,2,7,2,50,62,52,1,2,255,255,255,255,81] +3ms
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,14,97,2,2,2,2,7,2,50,62,52,1,2,255,255,255,255,81] +0ms
  zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 14 - 3 - 1 - 2 - [2,2,2,7,2,50,62,52,1,2,255,255,255,255] - 81 +1ms
  zigbee-herdsman:adapter:zStack:znp:SRSP <-- SYS - version - {"transportrev":2,"product":2,"majorrel":2,"minorrel":7,"maintrel":2,"revision":20201010} +6ms
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +1ms
  zigbee-herdsman:adapter:zStack:adapter Adapter concurrent: 2 +0ms
  zigbee-herdsman:adapter:zStack:adapter Detected znp version 'zStack30x' ({"transportrev":2,"product":2,"majorrel":2,"minorrel":7,"maintrel":2,"revision":20201010}) +0ms
  zigbee-herdsman:adapter:zStack:znp:SREQ --> SYS - osalNvRead - {"id":96,"offset":0,"len":1,"value":{"type":"Buffer","data":[85]}} +6ms
  zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,3,33,8,96,0,0,74] +7ms
  zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,2,97,8,2,0,105] +13ms
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,2,97,8,2,0,105] +0ms
  zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 2 - 3 - 1 - 8 - [2,0] - 105 +0ms
  zigbee-herdsman:adapter:zStack:znp:SRSP <-- SYS - osalNvRead - {"status":2,"len":0,"value":{"type":"Buffer","data":[]}} +14ms
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +1ms
  zigbee-herdsman:adapter:zStack:startZnp Item 'hasConfigured' is invalid, got '{"type":"Buffer","data":[]}', expected '{"type":"Buffer","data":[85]}' +0ms
  zigbee-herdsman:adapter:zStack:znp:SREQ --> SYS - osalNvRead - {"id":96,"offset":0,"len":1,"value":{"type":"Buffer","data":[85]}} +14ms
  zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,3,33,8,96,0,0,74] +12ms
  zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,2,97,8,2,0,105] +11ms
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,2,97,8,2,0,105] +1ms
  zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 2 - 3 - 1 - 8 - [2,0] - 105 +0ms
  zigbee-herdsman:adapter:zStack:znp:SRSP <-- SYS - osalNvRead - {"status":2,"len":0,"value":{"type":"Buffer","data":[]}} +12ms
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +1ms
  zigbee-herdsman:adapter:zStack:startZnp Item 'hasConfigured' is invalid, got '{"type":"Buffer","data":[]}', expected '{"type":"Buffer","data":[85]}' +12ms
  zigbee-herdsman:adapter:zStack:startZnp Initialising coordinator +2ms
  zigbee-herdsman:adapter:zStack:znp:AREQ --> SYS - resetReq - {"type":1} +0ms
  zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,1,65,0,1,65] +14ms
  zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,6,65,128,0,2,2,2,7,2,192] +1s
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,6,65,128,0,2,2,2,7,2,192] +1ms
  zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 6 - 2 - 1 - 128 - [0,2,2,2,7,2] - 192 +1ms
  zigbee-herdsman:adapter:zStack:znp:AREQ <-- SYS - resetInd - {"reason":0,"transportrev":2,"productid":2,"majorrel":2,"minorrel":7,"hwrev":2} +1s
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +2ms
  zigbee-herdsman:adapter:zStack:znp:SREQ --> SYS - osalNvWrite - {"id":3,"len":1,"offset":0,"value":{"type":"Buffer","data":[2]}} +1s
  zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,5,33,9,3,0,0,1,2,45] +1s
  zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,97,9,10,99] +7ms
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,97,9,10,99] +0ms
  zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 1 - 9 - [10] - 99 +1ms
  zigbee-herdsman:adapter:zStack:znp:SRSP <-- SYS - osalNvWrite - {"status":10} +1s
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +0ms
Zigbee2MQTT:error 20210414-034117: Error while starting zigbee-herdsman
Zigbee2MQTT:error 20210414-034117: Failed to start zigbee

Then , I plug a ftdi232 on PA0/1 externally , then flash the jethome UART firmware, erased nvram, and then launch Z2M : it works! SO: I can say my CC2538 chip is not in a bad state, but the USB jethome firmware might have a little bug on NVram part (I don't think the board is defective as the native USB interface can enumerate correctly and Z2M start communicating, and also zStackEraseNvRam seems working)

Here is the board I'm using: image

Do you have any idea or test to run on my side to help?

Thanks in advance for your time.

0x3EC commented 3 years ago

Hello, I came in problem with Z2M using a board with USB as native from CC2538:

Hi @handfreezer After clearing the NVRAM using a script, you need to perform a cold restart of the board.

handfreezer commented 3 years ago

Hello, sorry for delay, I'm still using uart until now, but I can do some test. By cold restart, did you mean : remove power fully?

Also the process of doing things with a JTAG interface:

  1. Erasing all flash with j-flash
  2. flashing JH_2538_2592_ZNP_USB_20201010.zip through JTAG
  3. cold restart
  4. plug usb removing jtag and using the script to clear nvram
  5. cold restart
  6. try Z2M

right?

0x3EC commented 3 years ago

Hi, @handfreezer

remove power fully? right?

Yes.

Step 3 is optional.