여러분은 가만히 계세요 제가 모두 고장낼게요

IT 지식, PC 모바일 문제 해결 그리고 종종 애니 게임 일상생활 근황을 종종 올리고 있어요!

냐.한국 자세히보기

임베디드/SlimeVR

SlimeVR 트래커 PCB 제작하기 12월 20일 (PCB 도착했어요)

Kamilake 2021. 12. 21. 17:31
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

11월 22일에 주문했으니 택배 도착까지 한달정도 걸린 것 같습니다.

사실 저는 이 상자를 나름 좋아하는데 이번에는 찌그러져서 왔네요 ㅠㅠ

아쉽게도 굿즈나 테이프 등은 들어있지 않았습니다.

지인분의 Cherry MX키용 PCB를 같이 주문했기에 합배송 받았습니다.

조립하지 않은 PCB는 진공포장으로, SMT 조립된 PCB는 랩과 에어캡으로 감싸서 배송되었습니다.

구성품은 PCB 5장이고 5장 모두 SMT Assembley를 신청했기에 조립되어서 도착했어요.

다만.. 재고가 없어서 두 부품은 못 붙여왔네요 ㅠㅠ

이전에 지인분이 만들었던 FBT와의 비교샷입니다.
기존에 만들었던 하우징보다 작아졌지만 18650의 길쭉한 크기 떄문에 길이는 거의 차이가 없습니다.

납땜 상태도 완벽하고 문제도 없어보이기에 전원을 연결했습니다.

스위치와 CH340이 재고가 없어서 주문을 못했기에 펌웨어는 FTDI 어댑터를 사용해서 올렸습니다

위 사진은 배터리 홀더를 연결한 모습입니다.

(열화상 카메라와 크기를 비교하니 확실히 작아보여요)

버튼쪽 PCB Edge Cut 길이가 0.5mm 더 길어서 나중에 수정해야겠지만 풋프린트는 전혀 문제 없이 연결되었어요

사진 속 셀은 LG 3400mAh F1L 18650 셀입니다. 아마 완충하면 24시간은 버티지 않을까 생각됩니다.

배터리를 연결해주고 충전 테스트를 수행했습니다.

5V@1A 모드로 회로를 구성했는데 지금 연장 케이블 때문에 전력을 다 못 끌어오는 듯 보이네요(귀찮으니 저렇게까지만 할게요) 4.74V@0.96A 4.5W에서 무난하게 충전됩니다.

TP4056은 생각보다 발열이 무시무시한 것 같아요.

(영주님의 TC4056A 충전 모듈에서 확인했어요) CC모드에서 1A로 충전시 80도 넘게 올라가는 것으로 보입니다.

저는 해당 문제가 걱정되어 기판 뒷면을 방열을 위해 Thermal pad로 변경했는데 아슬아슬하네요.. 다음에 만들면 더 키워야겠어요.

지금도 사용상의 문제는 전혀 없는 것으로 보입니다.

열이 주변으로 효과적으로 퍼지지는 않지만, 온도가 심하게 높아지지는 않았습니다. 언제나 정상 작동범위 내인 85도 이하로 유지되었어요.

이제 전원을 켜기 위해 스위치를 켜야 하지만 재고 문제로 스위치가 없습니다.

지인분의 트래커에 들어가는 ON/OFF 스위치가 절묘하게 잘 맞아떨어집니다.

사용하는 SPDT 슬라이드 스위치는 표면실장 타입의 JS102011SAQN 모델인데 이 역시 LCSC 재고 부족으로 빈 채로 조립하게 되었어요

다리를 90도로 접어서 아래로 내리고 폈습니다.

가지고 있는 스위치를 사용해 붙였는데 생각보다 완성도가 있어보여요.

이상 발열이나 전력소모 없이 무난하게 전원이 켜지고 충/방전 기능이 잘 동작합니다.

이제 빈 ESP에 펌웨어를 로드할 차례입니다.

USB로 데이터를 주고받지 못하는 건 아니고 단순히 칩셋이 없을 뿐이기에 USB-UART 컨버터를 사용해 펌웨어를 올려주면 되니 저는 별 상관이 없는데 만약 제품을 구입한 구매자라면 엄청나게 불편한 상황이 만들어지겠지요

사진에서 오른쪽 옆으로 긴 SOP-16 패키지가 CH340

추후에 양산하거나 할 필요가 생기면 반드시 CH340을 붙여서 올 겁니다(아직 부품이 없어서 테스트는 못 해봤어요)

사용되는 펌웨어는 오픈소스 FBT 프로젝트인 SlimeVR Tracker(https://github.com/SlimeVR/SlimeVR-Tracker-ESP)입니다.

 

GitHub - SlimeVR/SlimeVR-Tracker-ESP: SlimeVR tracker firmware for ESP32/ESP8266 and different IMUs

SlimeVR tracker firmware for ESP32/ESP8266 and different IMUs - GitHub - SlimeVR/SlimeVR-Tracker-ESP: SlimeVR tracker firmware for ESP32/ESP8266 and different IMUs

github.com

고로롱~

ESP의 첫번째와 두번째(모듈에서는 마지막 첫번째와 두번째) 핀은 UART TX/TX 핀입니다.

이 핀만 있으면 데이터 통신과 로그 입출력, 펌웨어 업로드 다운로드를 수행하는데 전혀 문제가 없습니다.

PC의 USB-UART 컨버터가 물린 USB허브와 같은 곳에서 전원을 공급받아 연결해줍니다.

제 손이 두개라서 gnd를 따로 연결하지 않을 계획이라, 이렇게 사용하는 전원의 그라운드 레벨을 맞춰야 합니다.

그렇지 않고 배터리 전원으로만 작동하거나 외부 AC 어댑터를 사용해 전원을 공급하면 서로간의 gnd 레벨이 달라져서 출력되는 신호의 HIGH/LOW 세기가 달라지는데, 이 상태에서는 올바른 정보를 주고받지 못할 뿐만 아니라 노이즈도 그대로 가지고 있게 됩니다.(정전기라도 오르면..)

펌웨어를 올리기 위해서는 ESP8266을 리커버리 모드로 부팅한 다음 Tx와 Rx를 손으로 잡고 펌웨어 플래시를 선택하면 됩니다.

PC에 CH340이 연결되어 있다면 UART 케이블을 뽑아도 포트가 사라지지 않습니다.

플래시 완료

성공적으로 펌웨어가 업로드되었다면 재부팅(리셋)하고 시리얼 터미널을 보면 로그를 볼 수 있습니다.

문제없이 잘 부팅된 것 같습니다. 이제 UART 어댑터는 필요없어요. 완전 무선으로 사용할 수 있습니다.

트래커 목록에 문제없이 잘 표시되고 있습니다.

MPU-6050 IMU도 ESP8266 MCU도 모두 문제 없이 잘 실행되는 것 같습니다.

모든 버튼과 LED도 문제없고 이상 발열 또는 쇼트도 없습니다.

첫 버전 PCB였는데 핵심 기능 전반이 문제없이 실행되서 아주 좋네요..!

대 성공입니다 :)

 

내일은 CH340을 붙이고 내장 올인원 USB포트로 모든 통신이 가능한지 체크해보고 완전 충전과 완전 방전을 반복하며 제품 상태를 계속 체크해볼 예정입니다.