1P by GN⁺ 2일전 | ★ favorite | 댓글 1개
  • 저자는 조화 웨이브 기어(하모닉 드라이브)ESP32 마이크로컨트롤러를 이용해 커스텀 망원경 마운트를 제작했음
  • 기존 상용 추적 마운트는 가격이 매우 높아서 DIY로 직접 설계 및 제작을 선택했음
  • PCB 설계 및 제작 과정, FreeCAD 3D 모델링, 구성 부품 선정 등 전체 설계 과정을 상세하게 설명함
  • 전체 제작 비용은 약 1,700유로 수준으로, 1대 단가 기준 상용 제품 대비 경쟁력을 확보함
  • 자체 제작 마운트와 OnStepX 펌웨어 통합을 통해 실제 천체 촬영 성능 및 개선 경험을 공유함

새로운 출발점

몇 년 전, 저자는 유튜브 천체사진 채널에 영감을 받아 천체사진에 관심을 가지게 됨. 삼각대 위에서 짧은 노출 시간으로 수백 장을 촬영한 후 Siril 소프트웨어로 합성하는 방식으로 오리온 성운 촬영을 시도함. 그러나 추적장치의 필요성을 느껴 Move Shoot Move 트래커를 구입했지만, 목표 천체 찾기와 극축 정렬의 어려움, 미흡한 결과로 인해 더 본격적인 망원경 마운트 제작에 관심을 가짐.

PCB 제작 경험의 확대

2024년, 맞춤형 PCB 설계 관련 유튜브 영상을 우연히 접하고, 기존의 엉성한 브레드보드 대신 깔끔하고 저렴한 제작용 PCB 사용법을 익히게 됨. 첫 번째 프로젝트로 ESP32와 e-paper 디스플레이, BME680 센서를 활용한 스마트 온도조절기를 제작함. 이 경험을 바탕으로, 망원경 마운트에도 직접 PCB 설계와 제작 기술을 적용하기로 결심함.

본격 연구와 커뮤니티 자원 활용

하모닉 드라이브 채택을 중심으로 한 설계를 구상. AliExpress와 다양한 DIY 커뮤니티(HEMY, HrEM, DHEM, DIY EQ Mount V2 등)의 오픈소스를 참고해 부품 선정과 기구 구조 연구에 많은 시간을 투자함. 스테퍼/서보 모터, FOC 제어, SimpleFOC 등 각종 오픈소스 구현체와 커뮤니티 정보를 조사함.

설계 결정 및 구조

  • RA축(적도축) : 42AIM15 서보모터 + Type 17 하모닉 드라이브(100:1 감속)
  • DEC축(경도축) : MKS Servo042D 스테퍼 + Type 14 하모닉 드라이브(100:1 감속)
  • 마운트 및 하우징: Arca Swiss 플레이트 채택, Move Shoot Move 웨지와 호환
  • 운영 모드: GEM(적도의) 또는 ALTAZ(수평-수직)
  • 마이크로컨트롤러: ESP32-S3
  • 전원: USB-C PD 최대 24V/4A
  • 모터 제어: step/dir/en, ULN2003 + MODBUS, CANBUS
  • 확장성: 잔여 GPIO 핀 외부로 노출

모터별 마이크로스텝 및 서보제어 특성을 통해 설계 단순화 및 추적 정밀도를 향상함. CANBUS를 통한 마이크로스텝 동적 변경으로 고속 슬루(위치이동) 및 정밀 추적의 균형을 구현함.

PCB 설계 및 문제 극복

  • KiCad로 반원형 PCB 설계, 케이스에 딱 맞는 형태로 구성
  • ESP32-S3 무안테나 모듈로 배치 자유도 확보 및 USB-C 전원 입력 회로(최대 24V) 채택
  • PicoPD 오픈소스 회로 및 AP33772 IC 활용. JST PH 시리즈 커넥터 선정으로 소형/고용량 커넥션 구현
  • 최초 IC 대체 과정에서 I2C 결선 실수 및 오작동 경험, 2차 버전에서 검증 및 테스트포인트 다수 추가로 문제 해결

OnStepX 펌웨어 연동

오픈소스 OnStepX 펌웨어를 적용해 망원경 제어 및 WiFi 통신 지원. 초기 슬루 동작(빠른 포인트 이동) 시 ESP32가 과부하되는 안정성 문제를 겪었으나, 슬루 속도 감소 및 WiFi 클라이언트 모드 전환으로 해결함. OnStepX에 맞는 핀 레이아웃 파일과 마이크로스텝 동적 제어 코드만 추가해 별다른 수정 없이 통합에 성공함.

제조 및 조립 과정

PCB 제작과 CNC 금속 가공 모두 JLCPCB에서 진행. 사전 3D 출력 테스트 없이 CAD 도면만으로 CNC 주문하는 과감한 선택을 통해 만족스러운 부품 정밀도를 얻음. 단, 적도축 캡 설계 미스 발생—스페이서를 활용해 간단히 해결. 모든 부품은 M3/M4 탭 가공 및 나사 결합만으로 조립 가능. 직접 손작업 탭 가공으로 제조비를 절감함.

실전 운용 경험

수많은 극축정렬, 세팅, 소프트웨어(INDI, KStars, Ekos, PHD2) 세팅 시행착오를 거치며 실전 경험을 축적함. 첫 운용 시엔 크고 작은 문제로 촬영 실패도 잦았으나, 안정화 과정에서 1~2 아크초 정밀도까지 기록—600mm 렌즈로 30초 노출에 충분한 결과를 얻음. 사진 합성에는 Siril을 사용하며, 멀티나잇 합성 등 추가적인 목표도 추진 중임.

제작 비용 및 경제성

총비용은 약 1,700유로(=공구, 하드웨어, 예비 연구용 부품 포함). 1대 단가로 환산 시 약 800유로 수준. 상용 GOTO 마운트(1,200~4,000유로) 대비 높은 경제성을 확인했으나, 직접 만드는 경험 자체에 더 큰 의미를 둠.

세부 아이템별 단가(주요 항목 요약)

  • 하모닉 드라이브(2개): 144유로
  • MKS 및 서보모터(각 2개): 73~216유로
  • CNC 부품: 215유로
  • PCB, 커넥터, 나사, 공구 등 기타

결론 및 소감

직접 만든 경험과 문제해결 과정, 설계-제작-검증 전체 사이클에서 얻은 성취감이 상용 제품 구매 이상의 의미를 준다는 점을 강조함. Version 1 PCB 실패를 통해 신중한 검증의 중요성을 배움. FreeCAD, KiCad 숙련도, 오픈소스 활용, 하드웨어 개발 전체 과정에서 다양한 교훈을 얻음. OnStepX 펌웨어 및 커뮤니티 자원 덕분에 DIY 망원경 마운트도 일반인이 가능한 프로젝트임을 입증함.

별을 추적하는 자신만의 마운트를 직접 만들고 완전히 이해할 수 있는—그 성취감이 정말 값진 보람임.

Hacker News 의견
  • USB-C 전원 공급장치에서 나오는 케이블이 인덕터 역할을 하게 됨, 즉 LC 필터 구조로 저역통과필터처럼 동작함, 그래서 온보드 커패시터가 필요함을 설명함, 모터가 순간적으로 큰 전류를 먹을 때 인덕터 특성상 즉시 전류가 흐르지 못하므로 커패시터가 대신 전류를 공급해 주고, 이후엔 인덕터가 슬슬 전류를 전달하게 되는 작동 원리임을 설명함

  • 정말 멋진 프로젝트와 설명임, 타이밍도 기가 막힘, 13살 때부터 아마추어 천문학에 빠져 여러 망원경을 소유했고 가족과 밤하늘을 관찰하며 오랜 시간을 보냄, 최근 10인치 SCT와 4인치 Newtonian을 꺼내 7살 아들에게 달과 토성을 보여줌, 부모님도 같이 볼 수 있어 대단히 뜻깊었음, 10인치 SCT는 GOTO 기능 없는 옛날 포크마운트에 올라가 있음, GOTO의 장점도 탐구해 봤지만, 직접 별찾기 하는 재미 때문에 아직 구매에 이르지 못함, 전용 냉각 카메라 ZWO 585MC는 샀음, 한편 별을 찾느라 엄청난 시간을 잃어버린 경험이 많음, Telrad만으로는 부족해서, 3D 프린터와 전자기기 지식으로 직접 써드파티 마운트를 만들 생각도 함, 모터를 NEMA 17 스테퍼로 바꿀까도 고민함, 그렇게 찾아보다 PiFinder라는 프로젝트를 알게 됨, 오토메이션과 수동 가이드의 완벽한 균형인 것 같음 https://www.pifinder.io/, 3D 프린팅과 PCB 제조 기술 발전으로 곧 많은 문제를 해결할 수 있다는 확신을 느낌

    • GOTO가 재미없다는 의견을 읽으니 정말 다양한 입맛이 있다는 걸 다시 느끼게 됨, 나는 오히려 물체 찾는 과정이 제일 안 맞아서 goto 마운트가 고마움
    • ZWO 카메라를 Kstars/EKOS에 연결하면 소프트웨어로 플레이트 솔빙을 이용해 정확히 어디를 보고 있는지 파악하고, 거기에 맞춰 조정할 수 있음
  • 이 멋진 프로젝트에서 회로 트레이스에 대해 한 가지 언급을 하자면, 24V를 지원하기 위해 트레이스를 너무 넓게 잡았다고 하는데, 실제로는 전압이 높을수록 전류는 낮아져 오히려 좁게 잡아도 무방함, 트레이스 폭은 전류에 따라 결정되고, 트레이스 간 간격이 전압에 따라 신경 써야 할 부분임

  • 블로그에서 인용: "타겟으로 망원경을 움직일 때 모터에 보내는 펄스 수가 많아지고, 작은 ESP32에는 과부하임", 나도 스테퍼 모터를 빠른 속도로 정밀하게 제어하는 일이 있는데, 조금의 펄스 누락이나 글리치도 용납이 안 됨, MCU 코어로는 한계가 있어 타이머+DMA로 제어함, 최종적으로는 STM32G4 MCU의 ACT(Advanced Control Timer) 기능을 활용, DMA만으로 임의파형 생성이 용이해서 코어가 과부하되든 슬립 모드든 타이머는 영향을 안 받음, 요즘은 RP2350의 PIO도 고려함, ESP32에는 MCPWM이 있지만 복잡한 가속·감속 프로파일을 100% 코어 프리로 구현하려면 타이머를 계단식으로 쓰거나 인터럽트를 써야 해서, 그럼 다시 코어에 의존해야 되고 글리치 가능성 있음, ST사의 ACT는 모터 하나당 독립된 타이머라 구현이 단순하고 데이터시트만 잘 보면 됨, 전문 드라이버 IC(Trimanic 등)도 방법이지만 소프트웨어 복잡도가 오히려 내 방식보다 높음

    • OnStepX는 내가 알기로 펄스 기반임, DMA 활용 방식은 아직 접해보지 못함, 양쪽 모두 CANBUS를 통한 위치명령 모드로 펄스 대신 구동하는 게 가능할 거라 봄, OnStepX 코드도 그 가능성을 봤지만, 펄스 모드가 너무 시작하기 쉬워 그냥 선택함
    • rp2040에서 스테퍼 제어 시 PIO도 생각해봤는데, 5비트 카운터와 32명령 한계 때문에 쓰기에 어려웠음, 대신 두 번째 코어를 모션 제어 전용으로 쓰고, 비트뱅 방식으로 step/dir 신호를 내서 단일 축 트라페조이드 프로파일에는 충분히 쓸만했음
    • MCU로 스테퍼 제어를 어디까지 가능한지 궁금하다면, Merlin 3D 프린터 펌웨어를 참고해보길 추천함, 소형 8비트 AVR MCU로도 델타 프린터용 복잡한 연산을 해냄
    • ESP32에도 RMT가 있는 것으로 아는데, 그 방법은 고려하지 않았는지 궁금함
  • freeCAD를 3년째 사용 중임, 이 프로젝트에서 만든 결과물을 보고 정말 감탄함, freeCAD를 좋아하지만 이만큼 집요하게 불편하고 짜증난 경험도 많지 않음

    • FreeCAD에 감사하지만, 프로젝트 복잡도가 올라갈수록 랜덤 크래시 때문에 정말 고생함, 그래도 주로 필요한 기능은 방법만 알면 FreeCAD에서도 구현이 가능함, 다른 CAD를 못 써 본 게 오히려 freeCAD에 정착하게 만든 계기임
    • 7년째 FreeCAD로 취미 모델링하지만, 처음 써보는 기능에선 여전히 사용자 경험이 답답함, FE 개발자라 QA 기준을 아는데 freeCAD는 그런 기준을 못 넘기는 UX가 많음, 오버컨스트레인 오류·경고 차이점을 알아보기 위해 포럼을 찾으니, 퍼포먼스라는 이름으로 의도적인 정책을 옹호하는 글만 많았고 파워유저의 게이트키핑 분위기가 진짜 문제임, 제대로 된 UX 전문가와 커뮤니티 매니저가 절실함
    • OnShape와 FreeCAD를 번갈아 쓰는데, OnShape의 다듬어진 완성도에 감탄함, 다만 구매한 모델 때문에 OnShape 무료 티어엔 올리지 못함, FreeCAD로 되긴 하지만 ‘한 시간에 끝나겠지’ 생각하면 결국 밤새게 됨
    • FreeCAD가 있다는 자체가 멋지고, 앞으로의 성숙을 기대함, 그래도 빠르게 결과를 얻고 싶으면 Autodesk Fusion 무료 티어를 추천함, 원칙적으로 OSS만 쓴다는 사람에게는 안 맞을 수도 있지만, 취미 이용에는 사실상 제약 없이 품질이 좋음, OSS가 아니라고 해서 배척당하는 것 같지만, 기능 중심으로 소프트웨어 선택의 폭이 넓어지면 좋겠음
    • ChatGPT와 Claude가 이런 작업에 큰 도움이 됨, 문서화가 괜찮은 소프트웨어라면 AI가 워크플로 단계별로 친절히 설명해줌, 완전히 전문적이거나 레퍼런스가 부족한 영역은 한계가 있지만, 눈 감고 이리저리 클릭하거나 유튜브를 빠르게 보는 것보다 훨씬 빠름, 기본 개념을 쌓는 스터디가이드도 만들어주길 요청할 수 있음, 단, AI의 환각이나 오류도 있으니 꼭 링크/참고자료 요청할 것
  • 망원경 마운트로 직접 정밀 측정, 예를 들어 자력으로 행성 천문 측정(astrometry)을 해보는 프로젝트에 관심이 큼, 직접 측정만으로 행성 궤도를 풀어보는 것은 Kepler 등의 옛 천문학자들이 했던 길을 다시 밟아보는 것과 같다고 느낌

    • 정말 재미있는 주제임, 예쁜 사진 취미를 넘어서 아마추어 관측데이터를 연구에 쓸 수 있는 시스템을 고안해봄, 단일 프레임 원본과 메타데이터(시간, 좌표, 캘리브레이션프레임 등)를 공유하면 집단적으로 과학 연구나 더 예쁜 사진을 만들 수도 있음, Vera C. Rubin Observatory(미국 천문대)는 며칠만에 남반구 전체를 촬영할 수 있음, 이런 소프트웨어가 글로벌 크라우드소싱 천문 어레이로 발전하면 정말 멋질 것임
    • 사실 행성 위치를 정확히 알기 위해선 망원경 마운트의 위치 보정 보다, 행성을 중심에 두고 찍은 사진을 주변 별들의 고정 좌표와 비교해 위치를 산출하는 것이 훨씬 정확함, 마운트 자체를 완벽하게 교정하는 건 거의 불가능에 가까움, 별 상대좌표 방식이 엄청나게 정확함
    • 다른 재미있는 프로젝트로, 외계행성의 트랜짓 광도곡선 측정도 있음, 가까운 외계행성들은 사진용 렌즈만 있어도 뒷마당에서 관측 가능함, 예시로 ASI178MM-c와 Canon FD 300mm로 한 아마추어의 관측 사례 공유 https://astropolis.pl/topic/…
    • 비록 완전한 퍼스트 프린시플은 아니지만, Seestar S50 roboscope와 분산격자를 써서 별의 방출 스펙트럼을 측정하는 사람도 있음
    • 참고로 Kepler는 망원경 없이 Tycho의 맨눈 관측 데이터로 연구함
  • 정말 멋진 프로젝트임, PCB를 설계할 때 제대로 된 커패시터, 저항 등을 넣지 않은 것 같고, 마이크로컨트롤러 안정성이 떨어짐, 다들 어떻게 필요한 부품(디커플링 커패시터 등)을 결정하는지 궁금함, 데이터시트 읽어서 그대로 다 따라 넣으면 되는지 궁금함

    • 데이터시트 확인이 필수임, 대부분 필수 회로 예제가 들어있어 반드시 참고함, 그 외에 좋은 습관은 칩 핀 근처에 디커플링 커패시터 넣기, 그라운드 안정화, 레퍼런스 레이아웃을 따라가는 것임, 숙련된 엔지니어의 결정 과정 설명(예: https://www.youtube.com/watch?v=aVUqaB0IMh4)도 큰 도움이 됨
    • 거의 모든 부품 데이터시트에 미니멀 회로와 참고 설계가 있음, 그라운드 플레인 사용, 신호선 길이 등은 따로 애플리케이션 노트로 설명하는 경우가 많음
    • 마이크로컨트롤러 회로 설계시, 회로 공개된 개발보드를 참고하면 출발점 잡기가 쉬움
    • 데이터시트 확인과 함께, 모든 전원 핀에 디커플링 커패시터를 최대한 가까이 넣고 PCB 한 면을 그라운드 플레인으로 두면 대부분 문제를 해결할 수 있음
  • CNC 금속 부품을 주문해서 제작한 점이 특히 인상적임, 나도 초보 CAD 설계자인데 배우고 싶음

    • 로컬 메이커스페이스에 등록해서 머신샵을 이용함, CNC 머신을 위한 교육과 인증을 받고, 영화 촬영 장비용 단순 금속 판을 CAD로 설계해봄, 간단한 G코드 생성기가 있었고 시뮬레이터로 충돌도 체크했음, 실제로 제작에 들어갈 때마다 누군가 헤드를 망가뜨려 장비가 꺼져있었고, 결국 수작업으로 만들어서 일부 치수가 완벽하게 맞진 않음, CNC 서비스가 있다는 걸 알았으면 CNC로 직접 맡길걸 후회함
    • 실은 굉장히 간단함, step 파일만 업로드하면 바로 견적과 제작 가능 여부 확인 가능함 https://jlccnc.com/cnc-machining-quote
  • 정말 멋진 프로젝트임, PCB 제작 비용이 어셈블리 때문인지 궁금함, 보드는 JLCPCB 기준 2층, 100mm 이하, HASL 마감 등 기본 옵션이면 저렴한데, USB 커넥터 플레이트 슬롯이 추가비용이 발생하는지, 한 번에 몇 장 조립 주문했는지, 표준/확장 부품 라이브러리 선택 비중은 어땠는지, 커넥터만 따로 납땜하면 얼마나 달라졌을지, 확장 라이브러리 부품이 하나라도 있으면 모든 부품이 개별로 피킹(조립) 비용이 올라가는 구조라 부품 종류를 최소화하는 게 비용절감의 핵심인지 궁금함

    • 실제로 비용의 주된 원인은 어셈블리임, 보드는 JLCPCB 2층에 기본 옵션이고 색상만 검은색으로 변경해서 소폭 상승함, 다섯 개씩 주문했고 이게 최소 수량임, 표준 라이브러리에 최대한 맞추려 했지만 수동소자 외에는 한계 있음, 스루홀은 내가 직접 납땜하면 비용차이를 모르겠지만 신경쓰지 않을 정도임, 부품 종류를 최소화하는 게 맞음, 예를 들어 4k와 6k 저항이 필요하면 2k짜리 다섯 개를 조합하는 게 유리함
  • 정말 인상적인 프로젝트임, 나도 내 스코프에 대형 하모닉드라이브 마운트를 사려 했는데 가격 장벽이 너무 높음, EKOS/Kstars/INDI 툴을 쓰면서도 시행착오가 많았음, 파이썬에서 indi 디바이스를 제어하려면 내가 만든 코드가 있음 https://github.com/dahlend/contindi

    • 어떤 동기로 이 코드를 썼는지 궁금함, EKOS 자체로도 스케줄링 기능이 좋아 보여서임, 나도 MeLE 4C 미니컴퓨터에 INDI 서버 돌리면서 터미널 인터페이스(TUI)를 짜봤음 https://svendewaerhert.com/content/blog/…, GNOME 원격데스크톱의 안정성 문제로 헤드리스/원격 INDI 서버로 전환함, 조만간 TUI 코드도 깔끔히 정리해 Github에 올릴 예정임