Trouble while flashing Sensebender Micro: protocol error, expect=0x14, resp=0x90



  • Hello,

    I have a problem flashing one of my Sensebender Micros, maybe someone can help.
    The board is not connected to anything but the FTDI programmer. I already used this programmer on several other Sensebenders and all worked flawless. The error message from avrdude is: "stk500_getparm(): (a) protocol error, expect=0x14, resp=0x90"

    The board itself is ok, the initial software worked and was able to send messages to the gateway and print serial debug messages. I also can burn sketches directly using the spi programmer. I also burned the dualboot bootloader again, but that didnt solve the flash problem.

    Here is the complete output of the flash procedure:

    avrdude: Version 6.3, compiled on Jun 22 2016 at 16:05:21
             Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
             Copyright (c) 2007-2014 Joerg Wunsch
    
             System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"
    
             Using Port                    : COM15
             Using Programmer              : arduino
             Overriding Baud Rate          : 57600
             AVR Part                      : ATmega328P
             Chip Erase delay              : 9000 us
             PAGEL                         : PD7
             BS2                           : PC2
             RESET disposition             : dedicated
             RETRY pulse                   : SCK
             serial program mode           : yes
             parallel program mode         : yes
             Timeout                       : 200
             StabDelay                     : 100
             CmdexeDelay                   : 25
             SyncLoops                     : 32
             ByteDelay                     : 0
             PollIndex                     : 3
             PollValue                     : 0x53
             Memory Detail                 :
    
                                      Block Poll               Page                       Polled
               Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
               flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
               lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
               signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
    
             Programmer Type : Arduino
             Description     : Arduino
    
    avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x90
    
    avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x90
    
    avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x90
    
    avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x90
             Hardware Version: 4728160
             Firmware Version: 0.4598627
    
    avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x90
    
    avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x90
             Vtarget         : 0.3 V
             Varef           : 200212948.0 V
             Oscillator      : 921.600 kHz
             SCK period      : 3.3 us
    
    avrdude: AVR device initialized and ready to accept instructions
    
    Reading | 
    avrdude: arduino_read_sig_bytes(): (a) protocol error, expect=0x10, resp=0x90
    avrdude: error reading signature data for part "ATmega328P", rc=-3
    avrdude: error reading signature data, rc=-1
    avrdude: stk500_disable(): unknown response=0x90
    

  • Admin

    @christiang

    What supply voltage do you use? Is it stable during programming?

    I did some google searching, and found this https://forum.arduino.cc/index.php?topic=50889.0



  • This post is deleted!


  • @tbowmo
    Supply voltage are the 3.3v from the ftdi programmer. Nothing else is connected to the USB so it should be stable. Tried few other sensebender today and the ftdi programming worked flawless every time.

    Could that be a timing problem, because UART communication is also not very stable at that particular sensebender with 57600 baud. The other ones work even at 115200 without a problem.


  • Admin

    Could be timing then, if the internal RC oscillator is not running at the expected 8mhz.

    I haven't made any calculations on how much it can deviate from 8mhz before serial is having troubles



  • @tbowmo
    You think a lower baud rate at programming could solve that issue temporarily?
    Am I correct that to test that I would need to change the rate in boards.txt and rebuild the bootloader (Baud rate has to be changed via the Makefile I guess)

    The option to solve the problem if it is indeed timing would be to solder an external quarz.
    Would that be the right type for the soldering pads on the sensebender?: https://www.conrad.de/de/smd-quarz-49usmx-serie-crystal-euroquartz-8000mhz-49usmx-30504018pfatf-frequenz-8000000-mhz-l-x-b-x-h-1135-x-47-x-42-mm-155384.html

    Thanks for your time 🙂


  • Admin

    Probably a lower baudrate would fix things. You need to build a new bootloader with correct baudrate though.

    I can't remember which crystal I designed to be used on the sensebender. It was with 32khz oscillator in mind though, as there is no external load capacitors (you need to add them if you want to use 8mhz crystal)


 

507
Online

7.9k
Users

8.7k
Topics

93.6k
Posts