Upload code with protocol “usbtiny”

Hi Stuart,

I am trying to load code into the cell module but somehow failed. I’m trying to upload code with protocol “usbtiny” using a USBISP device. I am constantly getting the following issue.

Using Port : usb
Using Programmer : usbtiny
Setting bit clk period : 16.0
avrdude: usbdev_open(): Found USBtinyISP, bus:device: bus-0:\.\libusb0-0001–0x1781-0x0c9f
AVR Part : ATtiny841
Chip Erase delay : 4500 us
PAGEL : P00
BS2 : P00
RESET disposition : possible i/o
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     6     4    0 no        512    4      0  4000  4500 0xff 0xff
       flash         65     6    32    0 yes      8192   16    512  4500  4500 0xff 0xff
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
       lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00

     Programmer Type : USBtiny
     Description     : USBtiny simple USB programmer, http://www.ladyada.net/make/usbtinyisp/

avrdude: programmer operation not supported

avrdude: Setting SCK period to 16 usec
CMD: [ac 53 00 00] [00 00 00 00]
CMD: [ac 53 00 00] [00 00 00 00]
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

avrdude done. Thank you.

*** [upload] Error 1
================================================================================================== [FAILED] Took 1.41 seconds ==================================================================================================

Environment Status Duration


attiny841_V421 FAILED 00:00:01.411

Hello, it looks like it finds the programmer okay, so I’d suggest using the “-B” (uppercase) option to attempt to slow the programmer down. Try something like “-B 20” and then increase/decrease until it works.

-B bitclock

Specify the bit clock period for the JTAG interface or the ISP clock (JTAG ICE only). The value is a floating-point number in microseconds. The default value of the JTAG ICE results in about 1 microsecond bit clock period, suitable for target MCUs running at 4 MHz clock and above. Unlike certain parameters in the STK500, the JTAG ICE resets all its parameters to default values when the programming software signs off from the ICE, so for MCUs running at lower clock speeds, this parameter must be specified on the command-line. It can also be set in the configuration file by using the ’default_bitclock’ keyword.

You can put the value into platformio.ini file as part of the upload_flags options

upload_flags =
  -Pusb
  -B20
  -Ulfuse:w:0b11100010:m
  -Uhfuse:w:0b11010110:m
  -Uefuse:w:0b11110100:m