개발자들은 잘 모르는 하드웨어 이야기 #1 도구와 구성요소

jkd1·2020년 4월 7일
27
post-thumbnail

소프트웨어가 있기 이전에 하드웨어가 있었고 태초의 프로그래머들은 하드웨어에 대한 기반지식이 선행되어야만 했다.
아니, 하드웨어가 곧 소프트웨어였던 시절이 있었다.

나는 누군가가 직업이 무엇이냐 하면 대충 하드웨어 엔지니어라고 대답하는 경향이 있는데
이유를 들자면

  • 내 업무는 PCB 아트웍과 펌웨어를 다루는 쪽이며, 간단한 기구설계와 렌더링 등등등등등등
    • 원래 할 줄 아는게 적고 재능이 없는 사람은 다재다능한걸 택하는 법이다.
  • 소프트웨어 용어가 비교적 잘 알려진 요즈음에 비해 하드웨어 분야는 아직 그렇게까지 오픈되어 있지는 않다.
    • 요즘은 블록체인이다 머신러닝이다 일반인도 소프트웨어 단어 한두개정도는 알고다니는 세상이지만 하드웨어는 그렇지 않다.
  • 당연하지만, 귀찮아서 그렇다.

소프트웨어 업계는 근로 수명이 짧다지만, 하드웨어는 통틀어 본다면 내 관점에서 근로수명이 굉장히 긴 산업이다.
그만큼 스펙트럼이 넓어서, 60대 이상인 엔지니어를 찾을수도 있고, 10대 엔지니어를 만날수도 있다.
일반적인 하드웨어 컨퍼런스에서는 젊은 사람 찾기가 오히려 어려울때도 많다.
이게 소프트웨어와 다르다면 다른 점이다.



프로그래머가 자신이 사용하는 언어를 마스터하는걸 중요시 한다면, 하드웨어 엔지니어는 자신의 칩셋 family를 혹은 칩 하나를 마스터를 한다면 먹고 살 수 있다는 이야기가 있을 정도로 메이저한 칩을 중요시한다.

많은 하드웨어 개발자들이 이루 말할 수 없을만큼 다양한 부품들을 다루지만, 실무자들은 개발자들이 그렇듯 자신의 메이저 분야들을 찾아 정착하는 편이다.

프로그래머와 자꾸 비교하는 이유는 이해하기 쉬우라는 점과, 의외로 비슷하기 때문이다.

프로그래머가 C로 개발을 시작하냐, java냐 python이냐 이렇게 싸우는것도 비슷한게
avr로 시작하냐, 아두이노다 뭐다... 쉬운 플랫폼은 쉽다고 까이고, 어려운 플랫폼은 어렵다고 까이고...

다른 칩을 새로 배우기보다 손에 익은 칩셋을 활용하는것이 편하니, 입문을 결정하기 어렵기도 하고


내가 입문을 할때 고려한 칩셋은 4개인데 고려한 이유와 함께 정리해보겠다.
물론 더 다양한 칩들이 있다. 그냥 썰풀이 글인데 내가 고른것만 따져보는게 맞지. 그치?

Atmel Atmega328p가 들어간 영롱한 청록색의 arduino uno

  • AVR
    • Atmel이라는 회사의 8비트 칩셋군으로 아두이노를 미리 접해본 나로썬 가장 익숙했다.
    • 아두이노는 uno와 nano에서 Atmega328, mega에서 Atmega1280, leonardo와 micro에서 Atmega32u4, Attiny는 공식보드에서는 안쓰지만 digispark의 호환보드가 attiny85를 사용하고 있다.
    • 늘 손에 익숙한게 짱이고 가격도 개당 1달러대, 자료량도 엄청나게 많다.
    • 8051세대(8~90년대의 대학 전자과는 8051을 활용했다.)이후 2000년 초 세대(지금도 사용하겠지만, atmega128을 교구로 활용했었다.)는 AVR을 사용했으므로 자료량도 많았다.

PIC의 PIC16F877A MCU

  • PIC
    • 마이크로칩 테크놀로지의 제품으로 장점은...잘 모르겠다. 싼가?
    • 몇번 다른 제품을 뜯어보면서 마주쳤지만, 그닥 접근성이 좋다는 이미지는 아니였다.

IoT는 얘네가 만들었다 해도 과언이 아니다.

  • ESP
    • espressif가 주도한 현 IoT붐의 주역, 장점은 가격이고 단점은 신제품이라 버그가 있거나, 플랫폼이 좀 불안정하다.
    • 자료들이 무척 많고, 개발도 아주아주 활발하다.
    • 성능도 짱짱하고, 최근 나온 esp32-s2제품은 usb host탑재나 비콘 등등... 매력적인 점이 많다.
    • 8266은 1달러 32도 3달러? 가격 정말 착하다.

STM 개발보드 NUCLEO (이름에 핵 붙이는게 좀 구리단 생각이 든다.)

  • STM or ARM
    • 대애충 arm의 아키텍쳐로 묶었다.
    • STM은 AVR을 활용하던 사람들에게 현타를 주던 칩중 하나인데, 32비트 주제에 가격은 2달러대에 머물기 때문에 굳이 AVR을 써야하나? 하는 의문을 들게 했다.
    • 물론 esp32가 비슷한 고민을 다시 하게 했고, 사람들은 그냥 편한거 찾아서 썻다.
    • ARM 코어는 라즈베리파이로 유명하지만, 난 그냥 잘 모르겠어서 안썻다.
    • 쉽고, 손에 익은게 최고다.

결과적으로 난 AVR(그중에서도 Attiny85와 Atmega128)과 ESP32를 택했고, 아직까지는 꽤 잘 먹힌것같다.


나는 PCB를 좋아한다.
좀 기괴한 말이긴 한데, 내가 좋아하는 물건들은 대부분 기괴하니까 괜찮다고 본다.

PCB란 Printed Circuit Board라는 친구인데 한국어로는 인쇄회로기판이다.
내가 알기론 1940년대에 미국에서 군용으로 개발되어 일본의 양산체계에 의해 현대 제품에 본격적으로 도입된 기술이다.
아마도 그러함.

난 저때 안태어나서 다행이라고 생각한다.

이전까지는 point to point construction을 사용해서 만들었고, 이게 뭐냐하면 그냥 선으로 대충 짜는거다.
설계 난이도도 낮고, 뭐... 이것저것 장점이 있었겠다는 생각은 한다.
최근엔 free form이라는 장르로 메이커들의 취미활동이 되기도 했다.

어쨋든

PCB를 만들려면 EDA툴이 필요한데, 하드웨어의 찐 진입장벽은 여기서 나온다.

영구 라이센스 3995달러, 월정액 약 200달러 티코 5대 혹은 월 1/4티코

대략 2000만원? 월정액 없고 심지어 +alpha의 가능성 있음 티코 25대

ㄹㅇ 진입장벽 여기서 다 나온다.
하지만 우리는 답을 찾을것이다.
저거 살 사람은 또 산다. 우리는 안살거니까 거들떠보지 말자
회사에서 준다면 아이코 감사합니다 행님 굽신굽신굽시니스트하고 받는게 상책

orCAD는 한국에서 특히나 많이 쓰는 툴이라 대학, 공고, 자격증 시험 등에서 많이 마주치게 된다.
납득하기 쉬운 설명으론 "대학에서 쓰던 포토샵 사실 비싼거야 비슷하게 얘네도 비싸"
prometheus나 다른 산업용 툴들 가격을 보면 정말 정신 혼미해져서 세뱃돈은 돈으로도 안보인다.
빌게이츠가 5달러 안줍는 기분을 체험하며 설명해본다.

대안으로 낼 3개의 EDA툴은 다음과 같다.

  • EagleCAD (fusion360)
  • KiCAD
  • EasyEDA

와! 오늘도 fusion360빠인 필자는 설계툴을 굳이 여기에 우겨넣었다.
콜라 사이에 닥터페퍼 한캔 섞여있는 기분이지만, 닥터페퍼도 존맛탱이니 괜찮다는 느낌이다.

각각 설명하자면

EagleCAD(fusion 360)

오늘도 선방하는 자동책상은 2020년 올해 자사의 혜자 프로그램 fusion 360에 eagle cad를 넣었다.

툴을 여러개 두는걸 선호하지 않는 사람이라면(하드웨어하는 이상 이건 불가능하다.) 한 툴에서 모든걸 처리하고, 심지어 제품 설계를 하면서 수치해석과 바로 제품에 보드가 들어간채로 렌더링되는 이 환상적인 조합을 보고 소름끼쳐서 팬티벗고 소리지르지 않을 수 없다.

제품을 만드는 사람이라면 탐날수밖에 없는 가격, 기능, 구성 "자동책상"

독수리 캐드로 짜여진 아두이노 우노의 회로도

초기 오픈소스 하드웨어는 많이들 eaglecad로 만들어졌었다.
대표적으로 아두이노가 있다.

무료버전에서 100*100(mm)의 보드를 2layer까지 다룰 수 있다. 내가 기억하는게 맞다면

fusion360으로 연결되면서 그 효율이 극대화 되는데, 이전부터 독수리와 퓨전은 연동이 잘 되었었지만 지금은 연동 수준이 아니라 그냥 같은 툴에 들어가있다는 점이 매력적이다.

제품을 만들고싶다면 한번정도는 꼭 사용해보도록 하자.
여러개 경험해서 나쁠거 없다.

Kicad

현 오픈소스 전자캐드툴의 선두주자이자. 명실상부한 일짱이다.
이름 읽는 방법은 키캐드 카이캐드 케이아이캐드 뭐...엄...
익숙해지자 네이밍 통일 안되는게 대학생 코드 변수만큼 자주 발생하는 동네다

콘닥터, 콘택터, 콘택타, 컨택터, 콘닥타, 콘댁터, 계전기, 전자접촉기, 산업용 릴레이, 접촉기, 교류전자 개폐기 이게 다 한 부품을 이르는 말이다.

좋은점은 부품 라이브러리(원래는 직접 만드는게 정석이지만...)가 매우 지원이 잘되며
공짜, 장난이나 뭐 없이 그냥 무료라는 점이다.

외국어뿐인 자료도 요즘은 한국어 자료도 많이 나오는 중이다.
내 멘토분의 주력툴이 kicad기 때문에 최근엔 나도 사용하는 중이다.

easy EDA

로고에서 볼 수 있듯이 클라우드 전자캐드툴이며, lcsc라는 부품회사나 JLCPCB와 같은 샘플 PCB업체와 손잡고 있는 툴이다.

이 툴을 난 한동안 매우 애용했으며 장점을 꼽자면

  • 클라우드 툴
    • 난 내 노트북을 외장그래픽 없는 휴대용 씽크패드로 고르면서 모든 작업을 가벼운 클라우드툴로 작업하기 시작했다.
    • 가볍고, 인터넷만 있으면 어디서든 작업 가능하다.
    • GIT 스타일의 프로젝트 정리...인가? 하는게 적용되어있긴 하다.
  • 편리함
    • 부품회사와 협력하며 easyeda는 부품샵에 들어가있는 부품들의 정보와 라이브러리를 실시간으로 사용할 수 있게 되어있으며 제작을 할때도 클릭 몇번이면 똻하고 보드와 부품들이 주문된다. 그것도 겁나 싸게
    • 라이브러리의 제약에서 벗어나 쉽게 디자인하고, 회로와 배치, 배선에만 신경쓰면 되는 환경이 조성되어있으므로 초심자들에게 매우 추천한다.
  • 어쨋든 쉬움
    • PCB 좆밥 아니네 ㅋㅋ 하고 떠낫던 메이커들도 이거 만나면 발병나서 돌아온다.
    • 회로만 조금 볼 줄 알거나 쉬운 회로를 짜서 보드로 만들고 싶다? 써봐 한번

하드웨어 장비

나는 개좆밥이라 비싼 하드웨어 장비는 두지 않았다.
계측장비 가진거라곤 3만원짜리 멀티미터와 멘토님한테 빌린 비싼 오실로스코프 한대뿐이고

개발장비는 usb케이블 몇개와 업로더, 프로그래머 두세개?
인두기는 만원 좀 넘는 권총형.. 장비만 따지면 지금 다시 사라해도 30~40만원이면 다 세팅될거라 생각한다.

내 기준 이거면 충분하다고 봄

다음편에서 프로그래머에게 있는 장비병이 진짜 장비를 쓰는 사람들한테선 어떻게 심각해지는지 보여주도록 하겠다.
진심임. 왜 하드웨어 개발비용이 그 많은 오픈소스들을 껴안고도 비쌀수밖에 없는가?
다음편 보면 나옴

profile
JKDLAB. 글솜씨도 쓰다보면 나아지겠지 하고 있습니다.

12개의 댓글

comment-user-thumbnail
2020년 4월 7일

하드웨어 문외한에겐 너무 재밌어요!!
하드웨어 관련해서 많이 써주세요!!!

1개의 답글
comment-user-thumbnail
2020년 4월 10일

와... 굉장히 흥미롭네요!! 잘 읽고 갑니다 :))

1개의 답글
comment-user-thumbnail
2020년 4월 16일

하드웨어 세계도 재밌을 것 같네요!
더 올려 주십시오 ㅜㅜ 현기증 납니다 흑흐..

1개의 답글
comment-user-thumbnail
2020년 4월 21일

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 작성자 필력잌ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

1개의 답글
comment-user-thumbnail
2020년 5월 5일

맨 처음에 C언어를 배우고 아두이노를 시작했다가 소프트웨어 대학 온 학생입니다
이 글 읽고 다시 하드웨어에 관심이 생겼어요ㅠㅠ
하드웨어 입문 글 올려주시면 재밌게 읽겠습니다~!

1개의 답글
comment-user-thumbnail
2020년 5월 7일

MCU를설계하는쪽에서 일하고 있습니다.
너무 재밋게 읽었습니다.
ESP는자주못들었는데 참고해보겠습니다ㅎㅎㅎ
kicad읽는방식은.... 누가 좀 정착화 시켜줬으면... 저희 회사에선 케이아이캐드라고 명명중입니다 ㅎㅎ

1개의 답글