PlatformIO Community

Avrdude: Device signature = 0x000000 error when trying to upload code, works on arduino ide

I am trying to upload a code i wrote in vscode with platformio, i have custom pcb with atmega168 and minicore bootloader, i can upload code to it through arduino ide no problem, but on platformio i get avrdude: Device signature = 0x000000 error, so it doesn’t even detect anything, port is 100% correct, my platformio.ini configuration is

   [platformio]
default_envs = Upload_UART ; Default build target


; Common settings for all environments
[env]
platform = atmelavr
framework = arduino

; TARGET SETTINGS
; Chip in use
board = ATmega168P
; Clock frequency in [Hz]
board_build.f_cpu = 16000000L

; BUILD OPTIONS
; Comment out to enable LTO (this line unflags it)
build_unflags = -flto
; Extra build flags
build_flags = 

; SERIAL MONITOR OPTIONS
; Serial monitor port defined in the Upload_UART environment
monitor_port = ${env:Upload_UART.upload_port}
; Serial monitor baud rate
monitor_speed = 115200


; Run the following command to upload with this environment
; pio run -e Upload_UART -t upload
[env:Upload_UART]
;  Serial bootloader protocol
upload_protocol = avrisp
; Serial upload port
upload_port = /dev/ttyUSB0
; Get upload baud rate defined in the fuses_bootloader environment
board_upload.speed = ${env:fuses_bootloader.board_bootloader.speed}


; Run the following command to upload with this environment
; pio run -e Upload_ISP -t upload
[env:Upload_ISP]
; Custom upload procedure
upload_protocol = custom
; Avrdude upload flags
upload_flags =
  -C$PROJECT_PACKAGES_DIR/tool-avrdude/avrdude.conf
  -p$BOARD_MCU
  -PUSB
  -cusbasp
; Avrdude upload command
upload_command = avrdude $UPLOAD_FLAGS -U flash:w:$SOURCE:i


; Run the following command to set fuses
; pio run -e fuses_bootloader -t fuses
; Run the following command to set fuses + burn bootloader
; pio run -e fuses_bootloader -t bootloader
[env:fuses_bootloader]
board_hardware.oscillator = external ; Oscillator type
board_hardware.uart = uart0          ; Set UART to use for serial upload
board_bootloader.speed = 115200      ; Set bootloader baud rate
board_hardware.bod = 4.3v            ; Set brown-out detection
board_hardware.eesave = yes          ; Preserve EEPROM when uploading using programmer
upload_protocol = avrisp             ; Use the USBasp as programmer
upload_flags =                       ; Select USB as upload port and divide the SPI clock by 8
  -PUSB
  -B8

as written here
https://github.com/MCUdude/MiniCore/blob/master/PlatformIO.md just changed a few settings, any ideas what might be wrong?

What is the exact invocation of the uploader in the Arduino IDE when you activate File → Preferences → Verbose Upload? Maybe you’re mussing some upload_flags.

It might also be possible that the avrdude.conf or avrdude.exe are slightly different. The verbose upload will show where Arduino’s version is and you can try and take those and use it to replace the files in C:\User\<user>\.platformio\pacakges\tool-avrdude with.

Fixed it with changing upload_protocol from avrisp to arduino