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

오랜만에 다시 꺼낸 GameShell 그리고 배터리 교체




이것은 3년간 함께한 나의 GameShell 이다.
최근 배터리가 빨리 방전되는 듯한 느낌을 받았다.
그래서 이번 기회에 배터리를 교체하기로 마음먹었다.

GameShell 을 잠깐 소개 하자면 요즘 나오는 라즈베리 파이처럼 그렇게 고사양은 아니고 Atari, GBA, NES, SNES 같은 콘솔을 에뮬레이션 할 수 있는 정도의 성능이다. 메탈슬러그는 좀 끊기고 포켓몬스터 정도의 게임은 잘 돌아간다.

무선 통신도 가능한데 Bluetooth 와 Wi-Fi 가 모두 탑재 되어있다.
Wi-Fi는 2.4Ghz 만 지원하고, 이걸 통해 펌웨어 업데이트나 바이오스 설치 그리고 TinyCloud를 통해 PC 로 부터 게임 롬 파일 이나 미디어 파일 등을 다운로드 할 수 있다.

블루투스의 경우 문제가 좀 있는데 오디오 출력이 안된다. 
키보드나 마우스 같은 HID 장치는 정상적으로 사용 가능하지만 오디오 장치는 연결도 잘 안되고 출력도 안된다. 
요즘 같은 세상에 무선 이어폰을 쓸 수 없다는 건 큰 단점 중 하나라고 볼 수 있다. 

GameShell의 상단 에 있는 스테레오 3.5 파이 포트와 HDMI를 통한 오디오 출력은 문제가 없다.


페어링을 시도하면 GameShell에서 페어링 되었다고 하더라도 바로 연결이 끊어진다.
연결이 된 것 같은 상태일 때도 있는데 여전히 블루투스로는 오디오 출력이 안된다.
USB 형태의 블루투스 모듈을 이용한 테스트는 별도로 해보지 않았다.
DevTerm 과 uConsole 이라는 두 제품이 더 나온 시점에서 아직도 고쳐지지 않은 걸로 봐서 아마 수정 불가능한 문제가 있는 것이 아닌가 생각해본다.

예전에는 무선 이어폰으로 들었던 기억이 있는 것 같은데 잘못된 기억인지도 모르겠다.
이런 생각을 전에도 했던 것 같은 아련한 느낌 도 든다.
무선 이어폰이 아니라 유선이였던 걸까? 역시 사람의 기억력은 믿을 것이 못 된다.

ClockWorkPi OS 는 깃허브나 커뮤니티를 통해 펌웨어를 받을 수 있다. 
최신 버전이 v0.5 인 걸로 봐서 그동안 업데이트는 딱히 없던 것 같다.
OS 이미지를 쓰려면 라즈베리 파이처럼 Etcher 를 사용하면 된다.

GameShell의 재미 있는 점은 키패드 모듈에도 있는데 모듈에 있는 Atmega328p/168p 를 사용자가 커스텀 할 수 있도록 키보드를 구현했다.


거기다 모듈에 USB 시리얼 인터페이스와 아두이노 부트로더가 내장되어있어 GameShell 메인보드가 아닌 PC에 연결해서 별도의 장비 없이 펌웨어를 수정하는 것도 가능하다. 키패드 모듈하단에 보면 라이트 키패드 말고 별도의 IO 단자가 있는데 여기에 직접 커스텀해서 제작한 키패드를 연결해서 사용할 수 있다.

키패드 회로설계와 펌웨어 설계시 주의할 점은 ClockWorkPi 에서 만든 키패드 설계도 Atmega328p 의 디지털 포트와 아날로그 포트의 포트 라벨링이 잘못되어있으니 주의가 필요하다. 뭔가 다른 의도가 있는 건지 실수인건지는 모르겠다.
펌웨어에는 또 잘 작성되어있다. 회로도만 잘못 기입되어 있다.

다음 문제는 배터리 인데 용량이 너무 적은 것 같아서 사이즈 업을 해줘야겠다고 생각했다.
왜냐면 그동안 사용하면서 1200mAh 로 충분히 즐겼다는 느낌을 받지 못했기 때문이다.

가능하면 배터리 용량을 지금의 두 배 이로 하고 싶어서 적당한 사이즈를 찾았다.
사이즈는 두께 8.5mm 에 세로 51mm 가로 65mm 제품이다.
용량은 3200mAh 으로 기존 배터리보다 배 이상은 많다.

구매한 배터리의 외관은 좀 사연 있어 보였고 충전기에 연결해보니 배터리가 거의 방전 상태였다. 새 제품이 아니거나 오래 방치된 재고 느낌이다.


이 사이즈가 기존 배터리 자리에 딱 맞기도 하고 용량도 적당한 것 같아서 선택했다.
그런데 문제가 발생했다 생각해보니 기존 배터리는 키보드 모듈 뒤쪽에 위치했다.

기존의 배터리는 케이스가 키보드가 눌릴 때 구조적으로 받쳐 주고 있었다.
배터리가 직접 눌리지 않으려면 케이스가 필요한데 사이즈가 생각보다 딱 맞아서 별도의 받침 역할을 할 케이스를 만들어 넣을 수 없었다.

그래서 스피커 모듈 아래 빈 공간을 활용하는 방법을 생각했다.
이렇게 장착하면 여유가 생겨서 케이스를 만들어 넣을 공간이 생긴다.


먼저 3D CAD로 케이스를 만들어보았다.
GameShell에 공간적인 여유가 있었기 때문에 설계에 큰 어려움은 없었다.
몬스터 볼 모양은 재미로 넣어보았다. 
배터리 케이스의 높이는 기존 배터리 케이스와 동일한 수준인 10mm 로 하였다.


물론 이 배터리 케이스를 사용한다고 해도 배터리가 안전하게 고정이 되지 않기 때문에 
배터리는 테사 양면 테이프 같은 제품으로 단단히 고정해 주는 것이 좋다.
그렇게 완성된 배터리 케이스 어느정도 여유도 있고 잘 만들어진 것 같다.


이 배터리를 메인모듈에 연결하기 전에 주의할 사항이 있는데 커넥터의 극성을 반전시켜 주어야 한다. 왜냐면 GameShell 의 배터리 전원 입력 포트의 극성이 반대이기 때문이다.

그리고 GameShell 은 배터리 포트에 JST-ZH 를 사용하고 있다. 보통 Li-Po 배터리에 연결된 커넥터는 Picoblade인 경우가 많다. Picoblade는 여기에 연결하기엔 너무 작기 때문에 안전한 연결을 위해서는 커넥터를 교체해서 사용하는 것이 좋다.


내부가 꽉 찬 뒷 모습이 보기 좋고 만족스럽다.
하지만 무게는 195g 에서 47g 이나 늘어서 243g이 되었다.
이렇게 일주일 정도 사용해봤는데 이틀 정도는 충전 없이도 쓸만한 정도가 되었다.

모델은 싱기버스에 공유했다.

Comments

Popular posts from this blog

[POE] - 패스 오브 엑자일 획득키 F 의 사용법 (Path of Exile)

[Arduino] - HC-06를 이용해 PC 와 Arduino 블루투스 연결

[Python] - 블루투스 모듈 HC-06의 MAC 주소를 이용하여 통신 포트 찾기