I just purchased a batch of ATtiny412-SSF direct from Microchip.
I have previously purchased 402 and 1604 devices from them with no issues.
When I tried to program one, I got an error message indicating the device returned the incorrect device ID.
Is this a duff batch of devices (I have a support thread started with Microchip)?
My platformio.ini …
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:ATtiny412]
platform = atmelmegaavr
board = ATtiny412
framework = arduino
board_build.f_cpu = 16000000L
upload_speed = 115200
upload_port = /dev/ttyUSB0
monitor_port = /dev/ttyUSB1
monitor_speed = 9600
upload_flags =
--tool
uart
--device
ATtiny1604
--uart
$UPLOAD_PORT
--clk
$UPLOAD_SPEED
upload_command = pymcuprog write --erase $UPLOAD_FLAGS --filename $SOURCE
The error code…
Processing ATtiny412 (platform: atmelmegaavr; board: ATtiny412; framework: arduino)
------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/atmelmegaavr/ATtiny412.html
PLATFORM: Atmel megaAVR (1.9.0) > ATtiny412
HARDWARE: ATTINY412 16MHz, 256B RAM, 4KB Flash
PACKAGES:
- framework-arduino-megaavr-megatinycore @ 2.6.7
- tool-avrdude @ 1.70100.0 (7.1.0)
- toolchain-atmelavr @ 3.70300.220127 (7.3.0)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 16 compatible libraries
Scanning dependencies...
Dependency Graph
|-- SendOnlySoftwareSerial
Building in release mode
Checking size .pio/build/ATtiny412/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [=== ] 29.7% (used 76 bytes from 256 bytes)
Flash: [===== ] 47.1% (used 1931 bytes from 4096 bytes)
Configuring upload protocol...
AVAILABLE: jtag2updi
CURRENT: upload_protocol = jtag2updi
Looking for upload port...
Using manually specified: /dev/ttyUSB0
Uploading .pio/build/ATtiny412/firmware.hex
Connecting to SerialUPDI
Pinging device...
pymcuprog.pymcuprog_main - ERROR - Device ID mismatch: read out '1E9223'; expected '1E9425'.
Done.
*** [upload] Error 1
I tested a sample ATtiny3226 I received in the same order and these also returned a device mismatch - but the programmer was expecting thesame value as per ATtiny412, that is 1E9425 - this can’t be correct as these are different devices.
My platformio.ini for ATTiny3226…
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:ATtiny3226]
platform = atmelmegaavr
board = ATtiny3226
framework = arduino
upload_speed = 115200
upload_port = /dev/ttyUSB0
; monitor_port = /dev/ttyUSB0
; monitor_speed = 115200
upload_flags =
--tool
uart
--device
ATtiny1604
--uart
$UPLOAD_PORT
--clk
$UPLOAD_SPEED
upload_command = pymcuprog write --erase $UPLOAD_FLAGS --filename $SOURCE
And the error...
Processing ATtiny3226 (platform: atmelmegaavr; board: ATtiny3226; framework: arduino)
------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/atmelmegaavr/ATtiny3226.html
PLATFORM: Atmel megaAVR (1.9.0) > ATtiny3226
HARDWARE: ATTINY3226 16MHz, 3KB RAM, 32KB Flash
PACKAGES:
- framework-arduino-megaavr-megatinycore @ 2.6.7
- tool-avrdude @ 1.70100.0 (7.1.0)
- toolchain-atmelavr @ 3.70300.220127 (7.3.0)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 15 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Compiling .pio/build/ATtiny3226/src/main.cpp.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/ExtraWiring.cpp.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/Tone.cpp.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/UART.cpp.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/UART0.cpp.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/UART1.cpp.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/WInterrupts.c.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/WInterrupts_PA.c.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/WInterrupts_PB.c.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/WInterrupts_PC.c.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/WMath.cpp.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/abi.cpp.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/api/Common.cpp.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/api/IPAddress.cpp.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/api/PluggableUSB.cpp.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/api/Print.cpp.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/api/RingBuffer.cpp.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/api/Stream.cpp.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/api/String.cpp.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/hooks.c.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/main.cpp.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/new.cpp.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/wiring.c.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/wiring_analog.c.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/wiring_digital.c.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/wiring_extra.cpp.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/wiring_pulse.S.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/wiring_pulse.c.o
Compiling .pio/build/ATtiny3226/FrameworkArduino/wiring_shift.c.o
Archiving .pio/build/ATtiny3226/libFrameworkArduino.a
Indexing .pio/build/ATtiny3226/libFrameworkArduino.a
Linking .pio/build/ATtiny3226/firmware.elf
Checking size .pio/build/ATtiny3226/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [ ] 0.1% (used 4 bytes from 3072 bytes)
Flash: [ ] 1.0% (used 334 bytes from 32768 bytes)
Building .pio/build/ATtiny3226/firmware.hex
Configuring upload protocol...
AVAILABLE: jtag2updi
CURRENT: upload_protocol = jtag2updi
Looking for upload port...
Using manually specified: /dev/ttyUSB0
Uploading .pio/build/ATtiny3226/firmware.hex
Connecting to SerialUPDI
Pinging device...
pymcuprog.pymcuprog_main - ERROR - Device ID mismatch: read out '1E9527'; expected '1E9425'.
Done.
*** [upload] Error 1
What do you think is going on?
By the way - I just used the same physical programmer to program an ATtiny1604 and this worked fine but…
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:ATtiny1604]
platform = atmelmegaavr
board = ATtiny1604
framework = arduino
; board_build.f_cpu = 16000000L
upload_speed = 115200
upload_port = /dev/ttyUSB0
; monitor_port = /dev/ttyUSB0
; monitor_speed = 115200
upload_flags =
--tool
uart
--device
ATtiny1604
--uart
$UPLOAD_PORT
--clk
$UPLOAD_SPEED
upload_command = pymcuprog write --erase $UPLOAD_FLAGS --filename $SOURCE
The output…
Processing ATtiny1604 (platform: atmelmegaavr; board: ATtiny1604; framework: arduino)
------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/atmelmegaavr/ATtiny1604.html
PLATFORM: Atmel megaAVR (1.9.0) > ATtiny1604
HARDWARE: ATTINY1604 16MHz, 1KB RAM, 16KB Flash
PACKAGES:
- framework-arduino-megaavr-megatinycore @ 2.6.7
- tool-avrdude @ 1.70100.0 (7.1.0)
- toolchain-atmelavr @ 3.70300.220127 (7.3.0)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 17 compatible libraries
Scanning dependencies...
Dependency Graph
|-- SendOnlySoftwareSerial
Building in release mode
Checking size .pio/build/ATtiny1604/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [ ] 3.0% (used 31 bytes from 1024 bytes)
Flash: [= ] 8.0% (used 1305 bytes from 16384 bytes)
Configuring upload protocol...
AVAILABLE: jtag2updi
CURRENT: upload_protocol = jtag2updi
Looking for upload port...
Using manually specified: /dev/ttyUSB0
Uploading .pio/build/ATtiny1604/firmware.hex
Connecting to SerialUPDI
Pinging device...
Ping response: 1E9425
Erasing device before writing from hex file...
Writing from hex file...
Writing flash...
Done.
But what I noticed is that the programmer got 1E9425 from the ATTiny1604 - so why was it expecting the same device ID for the ATtiny3226 and ATtiny412.
Is there some config file I need to edit?
What is the definitive device ID for ATtiny3226 and ATtiny412 ?