Trouble while flashing Sensebender Micro: protocol error, expect=0x14, resp=0x90
christiang last edited by
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
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!
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.
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
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
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)