PlatformIO 소개
유튜브에서 드론밧 채널을 꼬박꼬박 챙겨보는데 최근에 여기에서 PlatformIO을 소개 해주었다. 이렇게 좋은 게 있었다니 보면서 미리 알지 못한게 아쉬웠다. 이렇게 많은 기능을 가진 툴이 Visual Studio Code에 확장으로 설치되다니 환상의 조합이다.🤩
Microchip Studio의 디스크 용량을 확인해보면 무려 2.87GB이다.😱 개발 툴 치고는 상당히 큰 편이다. 그래서 지우고 다른 심플한 툴을 찾아봐야 하나 고민이었다. 그러던 차에 PlatformIO를 알게 된 것이다. 요즘 STM32 쪽을 본다고 CubeIDE와 CubeMX도 설치했는데 요놈들도 용량이 장난 아니다. Microchip Studio에 USBasp도 세팅하고 조금 노력을 기울였는데 아쉽기는 하지만 삭제를 해야겠다. Arduino IDE도 533MB 정도니 생각보다 많이 차지한다. 이것도 삭제해야겠다. 앞으로 AVR 계열은 PlatformIO로만 개발하는 게 맞아 보인다.
PlatformIO에 대한 전반적인 내용은 드론밧 할아버지께서 잘 설명해주셨다. 여기서는 USBasp를 사용하면서 발생한 이슈를 해결한 내용에 대해 적어본다.
🛴 Programmer 설정
programmer로 USBasp를 사용하기 위해 platformio.ini 파일에 아래의 내용을 추가한다.
[env:program_via_USBasp]
platform = atmelavr
framework = arduino
upload_protocol = custom
upload_port = usb
upload_flags =
-C
; use "tool-avrdude-megaavr" for the atmelmegaavr platform
$PROJECT_PACKAGES_DIR/tool-avrdude/avrdude.conf
-p
$BOARD_MCU
-P
$UPLOAD_PORT
-c
usbasp
upload_command = avrdude $UPLOAD_FLAGS -U flash:w:$SOURCE:i
board = uno
🚀 libusb 드라이버
Visual Studio Code에 PlatformIO 설치 후 빌드된 hex 업로드 시 avrdude에서 USBasp 디바이스 드라이버를 찾지 못하는 문제가 발생하였다.
⛔ avrdude: error: could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp'
설치된 USBasp 드라이버는 Microchip Studio에서 USBasp를 사용하기 위해 'libusb-win32(v1.2.6.0)'로 이미 설치한 상태였다. 이 드라이버와 뭔가 맞지 않은 모양이다. 그래서 zadig를 통해 'libusbK(v3.0.7.0)'으로 변경하여 드라이버를 설치하니 문제가 해결되었다.
'libusb-win32(v1.2.6.0)'와 'libusbK(v3.0.7.0)'의 차이는 없어 보이는데 아래 글을 보면 libusbK가 기능이 더 많은 것으로 보인다. 그리고 Microchip Studio에서 libusbK 드라이버를 사용해도 문제없이 동작한다.
참고 사이트
• libusbK
• libusb
* libusb-win32는 더 이상 릴리즈가 없고 버그 수정만 하고 libusb로 계속 릴리즈가 되고 있다.