Posts

LoRa 모듈 E22-900T22S Breakout Board 설계 2

Image
지난번 설계 에서 두 가지 업데이트 사항이 있다. 첫 번째로 3.3V 로 로직 컨버터를 거치지 않고 직접 통신할수 있는 포트를 구성하였다.  이 포트를 통해 3.3V 동작의 MCU를 사용할때 좀 더 빠르게 회로를 구성  할수 있을것으로 기대한다. 두 번째로 동작 전압 레벨이 서로 다른 MCU 와 Lora 모듈이 통신할때 사용할 기준전압을 직접 인가 할 수 있도록 하였다. 보드에는 위 와같은 점퍼가 주어지는데 3.3V 나 5V 로 점프 시키지 않을 경우 VREF 핀에 사용할 소스전압을 직접 인가해 주어야한다. 특수한 경우가 아니라면 Vref를 사용하는일은 없을것 같다. 위사 진들은 이번에 제작한 테스트 모듈이다.  왼쪽은 E22-900T22S 모듈이고 오른쪽은 ATmega328P/PB 3.3V 8Mhz 보드를 준비했다. 오른쪽의 보드는 ATmega328P/PB 를 모두 장착하여 사용할 수 있도록 설계했다. E22-900T22S 보드의 전체 회로는 다음과 같다. 동작 전압 레벨이 서로 다른 장치와 통신 할 수 있도록 레벨 컨버터를 추가 하였고, 핀 헤더를 장착하여 다른 MCU 보드와 통신하거나 점퍼를 수정해서 USB 시리얼 통신을 할수 있도록 했다. 모듈의 테스트는 mischianti의 E22 라이브러리 를 사용했다. 정리가 아주 잘 되어있는 라이브러리로 생각된다. 아래 코드는 라이브러리에 포함된 시리얼 입력을 LoRa 통신으로 전송하는 예제이다. Lora ATmega328p AUX D3 RX D4 TX D5 M1 D6/GND M0 D7/GND 송신측 코드 #include "Arduino.h" #include "LoRa_E22.h" LoRa_E22 e22ttl(4, 5, 3, 7, 6); void setup() { Serial.begin(9600); delay(500); // Startup all pins and UART e22ttl.begin(); Serial.println(&q

짱구개미 사육장에 위치한 브리기테 동상

Image
  지난주 부터 흙 사육을 시작했다. 짱구개미 군체의 성장은 어느순간부터 가속도가 붙은 것 처럼 불어나기 시작했다.  사육장을 계속 만들어서 붙여주었지만 먹이탐사장 까지 넘어온 개미들은 새로 붙어준 사육장으로 좀 처럼 들어가려 하지 않았다. 사용 패턴으로 보니 이미 점령한 먹이 탐사장을 확장된 집의 일부로 여기고 새로 붙여준 사육장을 쓰레기장 정도로 여기는것 같았다. 첫 사육장은 초경 석고를 사용해서 만들었다. 만드는 방법은 어렵지 않다. 먼저 적당한 틀을 구해서 내부에 지점토로 개미굴 모양을 잡고 그위로 잘 배합한 초경 석고 반죽 물을 부어주면 된다. 아무리 초경 석고라해도 물이 많이들어가면 물러지니 주의가 필요하다. 석고 사육장이 회색인 이유는 따로 색칠을 한건 아니고 만들때 약간의 숯 가루 파우더를 섞어서 시멘트 느낌을 주려고 했다. 숯 가루가 제대로 섞이지 않아서 얼룩이 좀 생겼지만 나름대로 멋이라고 생각했다. 취향으로 넣은거니 반드시 넣을 필요는 없다. 그러나 이 집은 곳 폐기하였다. 사육장을 담은 틀이 내구성이 약한것도 있었지만 석고가 굳을 때 팽창해서 그런지 깨진부분이 있었던것 같고 짱구 개미들이 조금씩 그 틈에 씨앗을 쑤셔 넣으면서 조금씩 벌려가며 깨진 틈을 공략해 탈출을 하기 시작한것이다. 그리고 작년 초 두 번째 사육장을 만들어주었다. 이 사육장은 튼튼하고 신뢰도가 높아 가장 오랜기간 사용한 석고 사육장이며, 흙 사육장을 사용하기 전까지 동일한 방식으로 여러번 만들어서 집을 확장 할 때 사용하였다. 위 사진은 개미들이 가득하지만 처음에 이 사육장으로 이사 할 때 까지만 해도 이렇게 많지는 않았다. 마찬가지록 초경 석고와 참 숯 가루를 섞어서 만든 사육장으로 락앤락 반찬통을 틀로 이용해 만들었다. 사진에 보면 적색 투명 아크릴 판을 나사로 고정 했는데 석고에 나사를 직접 체결한건 아니고 안에 육각 스페이서를 먼저 넣고 석고를 부어서 고정 시켰기 때문에 아크릴이 튼튼하게 빈틈없이 고정이 되었다. 측면에는 10mm 드릴 비트를 사용해 출입구를 만들

마음에 안드는 Logitech G604 고무 커버 3D 프린트

Image
  마우스에 문제가 생기면 스트레스다. 3년전 보조 마우스로 G604을 구매했다. 보조 마우스로 구매한 이유는 7년정도 사용했던 MX Master의 배터리 사용시간이 너무 짧아졌기 때문이다. G604의 문제는 사용한지 2년정도 부터 발생했는데 오른쪽 버튼이 더블클릭 증세를 보이기 시작했고 고무 부분이 지우개 처럼 밀려서 가루가 되어 떨어져 나가기 시작했다.  문제는 그립감을 저해하는 고무부분이다. 요즘은 G502 X LIGHTSPEED를 사용하고 있는데 블루투스 연결이 없는것은 생각보다 큰 단점이 되었다.  전용 USB 동글을 옮겨가면 사용하는건 생각보다 불편했다. MX Master 가 후속 제품도 많이 나왔던데 그거나 살걸 왜 이런걸 샀는지 모르겠다. MX Master는 세월의 흔적이 고스란히 남아있다.  반자동 휠에있던 커버는 닳아 없어졌고 엄지 버튼의 커버도 구멍이 생겼지만 동작은 잘 된다. USB 충전단자가 micro 5핀 배터리 수명이 거의 다 된 것 만 빼면 기능적으로 크게 고장인 부분은 없다.  놀랍게도 지금까지 로지텍 제품을 여럿 사용해봤지만 이렇게 까지 잔 고장없이 터프하게 사용한 제품은 MX Master가 처음이다. 수명이 다 된 배터리를 교체 해주면 지금도 현역처럼 쓸 수 있겠지만 문제는 USB 단자 타입이다.  작년까지만 해도 직장에서 사용하고 있었지만 주변기기중에 micro 5핀 케이블을 사용하는 제품은 MX Master만  남아서 그런지 케이블을 자꾸만 잃어버리고 새로 구매하고 반복하게 되면서 이제는 더 이상 사용하지 않고있다. 다시 G604 이야기로 돌아와서 아무튼 G604의 경우 빠른 블루투스 연결 전환도 가능하고 고무부분만 어떻게 해주면 아직은 쓸만 한 녀석이다. 이 고무 커버부분을 3D 프린터로 해결 할 수 없을까 하고 싱기버스에 검색을 해봤더니 의외로 자료가 있었다. 자료를 받아서 확인해보니 G604를 3D 스캐너로 카피해서 만든 자료이고 기대한 것 보다 괜찮았다. 실제로 프린트해 보면 결과가 어떨지 모르겠지만 일단 집에있는

RP2040 개발보드 설계 3

Image
RP2040 개발보드 설계 하면서 모듈형식으로 사용할 수 있는 리튬 충방전 모듈을 디자인 해보았다. 모듈의 설계는 위 이미지에서도 알 수 있겠지만 18650/21700 사이즈의 리튬 이온 배터리를 사용하는 것을 고려하고 있다. 설계 목표는 개발보드가 USB 로 PC 와 연결된 상태에서 리튬 배터리 모듈이 연결/제거 되어도 동작을 유지하는것이고, 아두이노 보드의 쉴드처럼 쓸 수 있도록 하는것이 목적이다. 전원소스 동작은 개발보드에 연결시 Power Path 선택 회로에 의해 배터리 전원 입력시 USB 입력전원은 리튬 배터리의 충전 전압으로 사용되고 리튬 방전회로의 출력전압 소스를 개발보드의 주 전원 소스로 사용하도록 설계하였다. 아래 회로도는 개발보드의 각 부분을 가독성 있게 계층도로 구분하여 작성하였다. 계층도를 사용하여 설계하면 각 기능의 모듈화도 편하고 제품의 기능 파악도 빨라진다. 간단한 회로에서 시작한 제품이라도 여러 기능들이 붙기 시작하면 거대해 지기 마련인데 그렇게 복잡해진 회로도를 다른사람이 보고 분석해서 리뷰하기란 쉽지 않은 일이다.  프로젝트에 계층 구조를 적용하면 디자인이 거대한 회로도에서 큰 효과를 발휘 할 수 있지만 단순한 디자인 일 지라도 여러 시트에 나누어 디자인 할 경우 더 쉽게 이해할 수 있게되는건 마찬가지다. 무슨 말이하고 싶은 것이냐 하면 디자인이 특별히 복잡하지 않더라도 여러 시트에 걸쳐 구성하면 이점이 있을 수 있다는말이다. KiCad 에서는 회로설계에 사용된 모든 시트목록은 왼쪽의 계층구조 목록에서 확인할 수 있고 시트를 더블클릭하게 되면 해당 시트로 이동하게 되며 구체적인 설계를 확인 할 수 있다. 개념적으로 간단한 기능일지라도 실제 설계를 해보면 어려울때가 때가 있다.  그럴때 계층 구조를 적용해 필요한 부분만 놓고 보면 생각보다 쉽게 풀어나갈 수 있는 경우도 있다.

7년차 장성한 씨발아 레몬나무

Image
2017년 6월  에 싹을 틔운 레몬 나무가 7년간 아주 많이 자랐다. 이걸 심는다고 자랄까 하는 호기심으로 시작한것이 어쩌다 보니 계속 키우게 되었다.  그러다 최근에 너무 커진 레몬 나무를 배란다로 옮겨주었다.  사진으로 봐서는 실감이 날지 모르겠지만 170cm 를 넘어 왠만한 여성의 키보다 커졌다. 알고있는 사람들도 있겠지만 씨앗을 발아하여 심은 레몬나무는 꽃과 열매를 볼수 없다고 생각해야한다. 씨앗으로 꽃과 열매를 보겠다는건 너무나 막연하다못해 환상에 가까운걸지도 모른다. 이 나무는 유주나무라고 하는데 꽃과 열매가 자주 열리는 편이다.  열매 크기는 금귤이랑 비슷하고 맛은 많이 시다.  꽃이 피면 그 주변에 꽃 향기가 은은하게 퍼진다. 꽃과 열매를 보려는 목적이면 이런 나무를 구매해서 기르는 것이 맞다. 레몬 나무는 한번 고비가 있었다. 4년전 겨울이였는데 아마 너무 추웠던걸지도 모른다. 그 해 여름이 지나고 점점 성장이 더뎌지고 벌레도 많이 생기고 잎도 많이 떨어졌다. 드디어 죽는구나 생각하고 치울 준비를 했지만 작년 여름에 보니 부활을 해버렸다.  나무의 줄기도 기둥이라고 불러도 될정도로 호스 둘레 만큼 두꺼워 졌다.  자란지 얼마 안된 개체면 몰라도 어느정도 크기까지 자란 식물은 쉽게 죽지 않는다는걸 알게되었다.  나무의 생명력은 생각보다 강했다. 오랜만에 샤워좀 시켜줄까 하는 마음에 살펴보던 중 나뭇가지 마디마다 자라난 거대한 가시들을 발견했다.  이 가시들은 자칫하면 치명상을 입을 정도로 뾰족하고 무시무시한 사이즈를 자랑한다. 원래 이정도로 크게 자라지는 않았는데 잎의 사이즈도 그렇고 모든 부분이 거대해 지고 있다.  갑자기 이 녀석 장래가 기대가 되기 시작했다. 혹시나 화분 주변에 뿌리파리나 기타 잡 벌레로 고민이 있다면 대유 총진싹 제품을 추천한다. 뿌리 파리 덕분에 다양한 살충 제품들을 사용해봤지만 대유 총진싹이 가장 확실한 효과를 보여주었다.  화분에 대유 총진싹 몇 스쿱 떠주고 물만 충분히 주고 기다리면 벌레들의 대가 끊기게된다. 

LoRa 모듈 E22-900T22S Breakout Board 설계 1

Image
E22-900T22S 제품을 위한 Breakout Board 를 설계해 보았다.  한국의 경우 LoRa 모듈을 사용 하려면 제품이 LBT 기능을 사용할 수 있어야하며 주파수 대역은 920.9 ~ 923.3MHz 을 사용하도록 되어있고 Tx Power 최대 값의 경우 End-Device는 10dBm(10mW), Gateway 의 경우 23dBm(200mW) 까지 허용하는 것을 알수있다. 별도 신고 없이 개설하여 사용할 수 있는 무선 통신 기술이라도 국가별로 사용가능한 주파수나 송신 출력이 상이하기 때문에 모듈 구매 및 사용시 전파법을 위반하지 않도록 주의가 필요하다. 사용가능한 주파수 채널 정보는 아래링크에서 확인가능하다. KR920 - LoRaWAN LoRa Regional Parameter 1.0.4   회로부분은 나에게 필요한 부분을 중점으로 설계하였다. 이 모듈의 IO 들은 3.3V 의 동작 레벨을 갖고 있기 때문에 다른 동작 전압 레벨의 MCU와 호환성을 위해 레벨 시프터 회로가 요구되었다. 기본적으로 모든 핀은 3.3V 로 풀업 하였으며, 사용 환경에 따라 UART 통신과 LoRa 모듈의 동작 모드를 점퍼로 수정할 수 있도록하였다. USB 의 경우 C 타입을 사용하였고 CC 저항기를 배치하였다. 안테나는 함께 판매되는 U.FL 안테나를 사용할 것이다.  만약 남는 SMA 규격의 안테나가 있다면 SMA 단자를 구성해서 사용하는 방법도 있다. LoRa 모듈의 동작모드는 M0, M1 점퍼를 사용해 변경이 가능하다. 물론 MCU 로 제어하는 것도 가능하다. AUX 는 LoRa 모듈의 상태를 알려주는 핀이다. 모듈의 스탠바이 상태나 송신, 수신의 동작 상태를 피드백 받을수 있다. 제조사에서 권장하는 회로 설계는 다음과 같다. NRST 핀은 모듈을 리셋할 수 있는 핀으로 3.3V 풀업을 권장하고 있다. 라즈베리 파이 Hat으로 나온 모듈이나 기타 모듈용 쉴드에서는 아무것도 연결하지 않고 놔두는 설계가 대부분으로 확인되었다. E22-900T22S의 데이터 시트에서

Lenovo ThinkPad OneLink Pro 알아보기

Image
10년전 Lenovo ThinkPad 에 사용하던 전용 Dock 이다. 몇년 전 ThinkPad 노트북이 고장나면서 애물단지가 되었다. 호환되는 제품도 없고 중고 판매도 쉽지 않을거라 생각한다.  다음은 이제품의 I/O 구성이다.  이 당시만 해도 USB C 나 Thunderbolt 는 대중적이지 않았고 다음과 같은 독특한 규격의 제품이 아직 많이 남아있던 시절이다. 이 부분을 USB C 로 변경하는 것이 가능할지 알아보려고 한다. 이 커넥터의 핀맵에 대한 자료는 아래 링크에서 찾을수 있었다. Lenovo ThinkPad OneLink docking port pinout diagram @ pinoutguide.com 위 사진에서 빨간 색 동그라미 부분의 핀맵은 다음과 같을것으로 생각된다. 핀맵을 보면 ML_Lane 이라는 부분을 찾아 볼수 있다.  이 핀들은 DisplayPort 를 위한것으로 보통의 경우라면 4개 레인 구성이지만 이 제품은 2개 레인 으로 구성되어있다.  USB 의 경우 총 3개의 USB 컨트롤러 칩셋이 사용되었다. 두 개의 USB3.0(VL812-Q7) 칩셋과 한 개의 USB2.0(FE1.1s) 칩셋이 사용되었으며 이더넷 컨트롤러, 사운드 컨트롤러가 USB 3.0 으로 로 연결되어있다. 첫 번째 USB 3.0 컨트롤러에는 두 개의 USB3.0 포트와 전면 오디오 잭을 위한 사운드 컨트롤러 그리고 두 번째 USB3.0 컨트롤러 칩셋이 연결되어있다. 두 번째 USB 3.0 컨트롤러에는 후면 두 개의 USB3.0 포트 와 이더넷 컨트롤러와 USB 2.0 허브가 연결되어있다. USB 2.0 컨트롤러의 USB2.0 포트는 두 개 까지만 구현되어있다. 비디오 출력을 제외한 기능은 모두 USB 를 사용하여 연결됨을 알 수 있었다. 남은 부분은 DVI 출력인데 이 부분은 캔 쉴드를 열어봐야 알 수 있었다. 캔 쉴드의 내부는 다음과같다. 회로를 보면 OneLink Pro 는 핀맵을 통해 알 수 있었던 데로 DisplayPort 신호를 2개 레인으로 입력받아