Posts

Showing posts from April, 2024

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

HC-05 모듈을 사용한 아두이노 스케치 무선 업로드 (블루투스 SPP)

Image
지금부터 소개하는 방법은 상당히 오래된 방법이지만 아직도 유용하게 사용할수 있는 방법으로 ArduinoIDE 스케치 업로드 버튼을 누르고 사용자가 직접 하드리셋을 시켜줄 필요도 없다.  HC-05 와 같은 저렴한 블루투스 클래식 모듈은 SPP 통신을 지원한다.   HC-05에 적절한 펌웨어 설정과 적절한 회로구성만 있다면 마치 USB 를 통해 스케치를 업로드하는것 처럼 사용할수 있다. 위 이미지 처럼 온보드 형태로 PCB 로 만들고자 할때 모듈을 잘 골라야하는데 펌웨어 버전이 다른거나 HC-05 와 비슷한 BC04 라는 제품이 있다.  좀 더 다양한 테스트를 받았고 상위 호환의 제품으로 보이지만 이 모듈은 사용하면 안된다.  비슷한 제품인 BC04은 HC-05 제품과 비교하여 AT 명령어 셋의 일부가 누락되어 있으며 핀 아웃 마저 다르다.  따라서 온보드 형태의 PCB 를 만들어야하는 경우 HC-05 그대로 사용하거나 모듈 부분만 떼어내서 사용하는 방법이 확실하다. 먼저 아두이노와 HC-05의 하드웨어 결선 방법이다. HC-05 의 핀아웃을 보자면 정변 기준 왼쪽부터 STATE, RxD, TxD, GND, VCC, EN 이 있다. 핀 들의 순서를 기준으로 필요한 회로도를 작성하면 다음과 같다. HC-05 는 3.3V 로 동작하는 모듈로 이보다 높은 전압에 노출되면 회로가 손상되거나 오작동 할 가능성이 높아진다. 때문에 이렇게 전압이 다른 두 컨트롤러를 통신할때는 전압 레벨을 맞춰줄수 있는 레벨 컨버터 를 사용하는것이 좋다. 레벨 컨버터의 경우 모스펫을 사용하는방법 저항을 사용하는 방법 다이오드를 사용하는 방법 등 여러가지가 있지만 가장 빠르고 안정적이며 범용적으로 사용할수 있는 모스펫을 사용하는 방법을 추천한다. 보통은 RX TX 에 모두 설계를 적용하지만 HC-05 기준 RX 만 모스펫을 적용하였다 아래 회로는 모스펫을 이용한 로직 레벨 컨버터 설계로 안정적으로 신호를 변환할 수 있는 방법중 하나이다.  풀업 저항은 범용적으로 10K 이 많이 사용되지만 1K

ATmega 시리즈를 위한 Standalone AVR Programmer

Image
예전에 제품 설계에 ATmega328PB 를 사용해야 했었는데 아쉽게도 사용하던 펌웨어 다운로드 장비에서 PB 제품군을 지원하지 않았다. 업체에 문의도 넣었지만 업무가 많은지 업데이트는 없었다. 이미 스탠드얼론 프로그래머에 익숙해졌기 때문에 일반적인 AVR ISP 프로그래머는 불편해서 사용할 수 없는 노릇이었다. 사실 AVR 에 적용 가능한 스탠드얼론 프로그래머 프로젝트는 많기 때문에 만드는 건 어렵지 않다. 문제는 성능인데 기존에 사용하던 제품은 MCU에 매우 빠른 속도로 펌웨어를 다운 받을 수 있었기 때문이다. 지금 소개하는 장치는 그렇게 빠른 속도는 낼 수 없지만 저렴하게 만들 수 있다는 것에 감사한다. IC 는 ATmega328P 를 사용하였고 microSD 통신에 로직 컨버터로 74HC4050 을 사용하였다. ATmega328P 의 D2 에 연결된 택트 버튼을 누르면 프로그래밍이 시작되고 SD 카드로 부터 데이터를 읽어올 때 택트 버튼에 있는 LED 로 표시하도록 하였다. 타겟 장치로 연결되는 ISP 포트의 경우 리산테크의 10 to 6 케이블을 사용할 것 이기 때문에 그대로 만들어준다. 타겟 장치로의 ISP 연결은 D5~D8을 사용하도록 했다.  그리고 칩셋의 ISP 를 다른 기능으로 사용하는 설계는 ISP 프로그래머 기기에서 에러를 출력하는 경우가 있기 때문에 가능하다면 임시로 회로를 비활성 할 수 있는 기능을 넣거나 사전에 프로그램을 다운받는 것이 좋다. 자! 40mm x 50mm 라는 매우 컴팩트한 사이즈의 AVR 프로그래머 가 만들어졌다. SD 카드에 저장된 데이터를 원 버튼으로 타겟 장치의 전원이나 USB 로 입력된 전원 소스로 펌웨어를 쓸 수 있다. 위 영상은 간단한 동작 시연 영상으로 디지털 핀의 LED를 하나씩 깜빡이는 간단한 예제를 업로드 하는 영상이다. 펌웨어 기록 프로세스에서 검증 단계를 제외하면 다운로드 프로세스 시간을 단축 할 수 있다. AnnaJinK/AVR_FLASHER (github.com)

V-USB 를 활용한 ATmega328/168P기반의 USB 키보드 1

Image
키보드나 마우스 혹은 조이스틱과 같은 장치를 만들어보려고 할 때 HID 프로파일을 지원하는 제품을 찾게 된다. 이러한 제품의 경우 개발이 간편하고 고급 기능을 지원하지만 단가가 높은 편이다.  반면 ATmega AVR 에  V-USB를 사용하면 ATmega8 과 같은 비교적 저렴한 가격의 IC 로도 USB 1.1 규격의 키보드나 마우스, 조이스틱과 같은 다양한 USB 장치들을 만들 수 있다. V-USB 관련하여 아래 웹사이트에 재미있는 프로젝트들이 많이 있다. V-USB - A Firmware-Only USB Driver for Atmel(r) AVR(r) Microcontrollers (obdev.at) 이번에 ATmega328/168P와 V-USB를 사용해서 5V 로 동작하는 작은 테스트용 키보드를 만들어 보려고 한다. V-USB 를 사용한 장치는 호스트 장치와 연결시 ATmega328/168P에 있는 UART 포트인 PD0 와 PD1으로 통신하지 않고 PD2 와 PD4 를 사용하게 된다. 여기서ATmega328/168P의 경우 5V 전원 공급에서 디지털 포트도 5V 까지 동작하게 되는데 이 부분을 주의해야 한다. 일반적으로 USB는 전원 공급에 5V를 사용하지만, 양쪽 데이터 라인은 HIGH 에서 2.8V~3.6V, LOW 에서 0.0V~0.3V  전압으로 정격화된다. 이는 호스트 측으로 입력이 3.6V 보다 높아지지 않도록 주의해야 함을 의미한다. 만약 5V 신호를 그대로 USB 데이터 라인에 입력하게 되면 호스트 장치의 입력 회로를 손상시킬 수 있다. USB 데이터 라인의 회로 손상을 방지하기 위해 일반적으로 사용되는 방법으로 왼쪽 회로처럼 데이터 라인에 3.6V 제너 다이오드를 병렬로 사용해서 전압을 조정하는 방법이 있다. 만약 이 방법이 마음에 들지 않는다면 ATmega328/168P 에 3.3V 전원을 공급하는 방법도 있다. 오른쪽 회로는 아두이노 호환 보드에서 흔하게 볼 수 있는 CH340C를 사용한 USB 시리얼 통신 포트이다. ATmega3

Raspberry Pi Zero W/2W - 게임보이 만들기 4 - 샘플 테스트

Image
샘플을 주문하여 PCB 납땜을 하면서 설계하면서 발견하지 아쉬운 점들이 하나 둘 발견되었다.  첫 번째로 원활한 테스트에 필요한 테스트 포인트 설계를 누락 했다.  이게 없어서 PCB 도 너무 지저분해졌고 회로 찾아가며 테스트 하는데 너무 많은 시간을 소비했다.  두 번째로는 디스플레이 백라이트 설계가 완전히 잘못되었다. 지금 생각하면 너무 바보 같은데 회로도 설계시 심볼을 회전하면서 결선이 틀어진 모양이다. 일단 테스트는 백라이트 컨트롤 없이 항상 켜져있도록 만들어두고 테스트를 하였다    전원부의 경우 예상했던 5.15V 보다 높은 5.18V을 얻게 되었다.  이 정도의 전압도 사용에 큰 문제가 되지는 않지만 정확한 값을 얻기 위해서는 가변저항을 사용하는 것이 좋아 보인다. 큰 문제는 USB 에 특정 장치들을 연결할 때 발견되었다. 충전이 가능한 제품 중에서 연결하면 무조건 5W 이상을 끌어가도록 설계된 제품들이 있는데 이런 제품들이 문제였다. TPS61230의 최대 출력은 2.1A 이기 때문에 저방전 배터리를 사용하면 1.2A 이상 끌어가는 상황이 오면 시스템이 불안정해지면서 전원부가 셧다운된다.  가장 먼저 Raspberry Pi OS 를 설치해보았다. USB 장치와 microSD 카드도 잘 인식되고 컨트롤러도 잘 인식이 되었다. 구현된 모든 인터페이스는 잘 작동됨을 확인하였다. 사용자의 손길이 필요한 부분은 디스플레이와 오디오 출력 말고는 없어 보인다. RetroPie 의 경우 Wi-Fi 드라이버를 직접 넣어줘야 하지만 그 외에는 Raspberry Pi OS 와 동일하다. RecalBox는 Raspberry Pi OS 와 많이 다르기도 하고 화면 출력과 네트워크 드라이버 부분에 좀 더 연구가 필요하다. 디스플레이는 2.8 인치 ili9341 TFT 를 사용했으며, RetroPie 와Raspberry Pi OS에서 fbcp-ili9341 드라이버를 사용하여 구동 시킬 수 있었다. fbcp-ili9341 드라이버를 빌드 과정은 다음과 같은 과정이 필요하

Raspberry Pi Zero W/2W - RetroPie 에서 Wi-Fi 스캔이 안될때

Image
Raspberry Pi Zero W/2W 에 RetroPie를 설치해보면 너무나 당연한 것처럼 Wi-Fi가 되질 않는다. 아마 이것 저건 만져보면서 결국 포기하는 사람들도 있으리라 생각한다. Wi-Fi가 안되는 이유에 는 보통 다음과 같은 내용이 가장 많이 보인다.  첫 번째 국가 설정을 한국으로 하면 안된다. 두 번째 공유기에 사용된 칩셋과 호환성 문제다.  세 번째 구형 커널 및 운영체제가 설치되었다.  그러나 라즈베리 커뮤니티 포럼에 올라오는 글들을 보면 이건 비단 한국 지역만의 문제는 아니며, 요즘은 보통 구형 OS를 사용하는 환경에서 주로 발생한다.  사실 Wi-Fi 관련하여 제기되는 문제는 최신 브로드컴 펌웨어로 해결이 가능하다. 실제로 최신 Raspberry Pi OS 이미지를 설치하면 별다른 설정 없이 바로 Wi-Fi 에 연결하여 사용할 수 있으며, 지역 설정 또한 한국이어도 상관 없다. 이런 사실은 Raspberry Pi Imager 소프트웨어에서 각 OS 의 릴리즈 날짜 만으로도 짐작 할 수 있는데, RetroPie도 구형 Raspberry Pi OS 를 기준으로 만들어진 것으로 보인다. 해결 방법은 간단하다.  Raspberry Pi OS의 브로드컴 드라이버를 받아서 RetroPie가 설치된 Raspberry Pi의 /lib/firmware/brcm/ 경로에 카피 해주면 거짓말처럼 Wi-Fi 가 스캔도 잘 되고 연결도 잘된다.  RetroPie 의 업데이트가 아직 없는 이유는 알 수 없지만 테스트가 더 필요한 부분이 있는지도 모른다. 1. Pi OS의 /lib/firmware/brcm/ 경로에 있는 모든 파일을 다운 받는다. 2. RetroPie의 /boot 영역에 다운 받은 brcm 폴더를 넣어준다. 3. RetroPie F4 로 터미널로 이동하여 "sudo cp -r /boot/brcm /lib/firmware/" 입력한다. 4. "sudo reboot" 로 재부팅  유선 랜이나 다른 네트워크를 통해

Raspberry Pi Zero W/2W - 게임보이 만들기 3 - 오디오 설계

Image
이번에 설계할 부분은 오디오 출력 부분이다.  Raspberry Pi Zero의 경우는 별도의 오디오 출력 포트가 존재하지 않는다. 그 대신 PWM 을 지원하는 GPIO18, GPIO13 또는 GPIO19 를 오디오 출력 에 사용할 수 있다. 예전에는 사용자가 오디오 출력에 사용할 포트를 직접 커널 파일로 구성하여 시스템에 추가 해주어야 했는데, 이제는 audremap.dtbo 파일이 OS 에 내장되기 때문에 그럴 필요가 없다. 오디오 출력을 하기 위해서는 하드웨어 회로 구성과 config.txt 파일 마지막 줄에 dtoverlay=audremap,pins_12,13 를 추가해주면 된다.  참고로 PWM0 는 12,18 번이 PWM1은 13,19 번이 채널을 공유하기 때문에 오디오 포트로 오버레이 설정시 주의가 필요하다. 예를 들어 동일 채널의 포트에 오디오 출력을 하고 있는 중에 LED 제어 같은 다른 용도로도 사용하게 되면 오디오 출력에 문제가 발생할 수 있다. 오디오 회로는 위와 같이 설계하였다. 필요한 경우 필터 회로를 구성할 수 있도록 FB와 MLCC를 두었다. 사용하지 않을 가능성이 높지만 재미 요소 중 하나가 될지도 모른다. XPT9971와 같은 형태의 오디오 앰프는 MODE 의 상태에 때라 동작 방식이 다르다. LOW 에서는 AB Class 로 HIGH 에서는 D Class 앰프로 동작한다. 내가 알기로 XPT9971 의 경우 MODE 는 내부 풀업으로 기본 세팅되어 있다. 따라서 AB Class 로 사용하고 싶다면 LOW 로 세팅해주면 된다. D Class 는 효율 중심이고 AB Class 는 음질이 괜찮다고 하지만 솔직히 이렇게 저렴한 앰프는 그런 차이는 느끼기 힘들다고 생각한다. 실제로 소리가 달라지긴 하는데 둘 다 구리다. SD 의 경우 앰프를 켜고 끄는데 사용할 수 있는데 HIGH 일 때 꺼지고 LOW 일 때 켜진다고 보면 된다. 그리고 퍽 소리가 신경 쓰일 수 있는데 별도 스위치 회로를 구성해 앰프가 확실하게 켜진 다음 스피커 회로가

Raspberry Pi Zero W/2W - USB OTG + mini HDMI 어댑터 만들기 2

Image
이번 프로젝트는 Raspberry Pi Zero 2W와 위 사진과 같이 결합되도록 만드는 것이 목표다. 라우팅 작업하기 전에 확인차 CAD프로그램으로 조립을 해보았다. 언뜻 보면 치수가 잘 맞는 것 같지만 사실 그렇지는 않았다. Mini HDMI 의 경우 치수가 명확하게 나와있지 않아서 보드에 물릴 부분은 1mm 로 잡고 설계하였다. 그리고 제공된 데이터 상에는 위 사진처럼 접점이 왼쪽이 비워져 있지만 판매자가 올린 상세 페이지에는 빈 공간이 오른쪽인 제품과 왼쪽인 쪽인 제품이 같이 나와있다. 주문해도 판매자의 재고량에 따라 설계에 맞지 않는 제품이 올 수 도 있겠다는 생각도 든다. 데이터를 올렸으면 사진 도 동일한 제품으로 올려줘야지 이러면 곤란하다. Micro USB 는 그나마 괜찮았다. 접점이 이렇게 아주 약간  붕 떠있는데, 측정해보니 0.15mm 정도였다. 그래도 이 정도로는 큰 문제가 되진 않는다고 생각한다. 문제점은 부품을 배치하면서 발견하였다. Raspberry Pi Zero의 USB 와 HDMI 단자에 맞춤 설계를 하고 라우팅 작업을 하려 던 찰나 3D 뷰어로 이리저리 돌려보면서 뿌듯해 하다가 정면을 보게 되었는데, USB와 HDMI 의 수평이 맞지 않는 것을 발견하였다. 실제로 CAD 프로그램으로 측정해보니 단차가 0.3mm 정도 있었다. 큰 문제가 될 것 같지는 않지만 사실 이런 단차는 최소화 하는 것이 맞다. PCB 두께를 0.8mm 정도로 줄이고 HDMI 를 납땜 할 때 어느 정도 조절이 가능하다. 두께가 얇아 질수록 사용하면서 PCB가 휘어질 가능성은 높아지지만 있지만 올려질 부품이 별로 없기 때문에 큰 문제가 될 것 같지는 않다.

Raspberry Pi Zero W/2W - USB OTG + mini HDMI 어댑터 만들기 1

Image
사진은 Waveshare의 제품이다. Aliexpress에서도 이와 같은 제품을 많이 찾아 볼 수 있다. 이번에는 요 녀석을 만들어볼 생각이다. 잘만 활용하면 여러모로 쓸모가 있을 듯 하다. USB 부분만 좀 더 튼튼하게 결합될 수 있는 부품을 사용하려고 한다. 미니 HDMI Male 플러그 제품을 10개, 50 묶음 판매자를 찾았다. 대부분 PCB 형태로만 판매를 해서 찾는데 시간이 좀 걸렸다. 이런 건 꼭 내가 사고 난 후에 더 좋은 조건에 판매하는 판매자가 노출 되는 것 같다 . Micro USB Male 제품의 경우는 판매자가 많아서 골라서 쓰면 될 것 같다. PCB 와 좀더 튼튼하게 결합되려면 별도의 마운트 핀이 있는 제품을 사용하면 도움이 될 것이다. 가장 먼저 할 것은 두 제품의 3D 모델 제작이다. 만약 사용하지 않게 되더라도 라이브러리를 늘려서 나쁠건 없다. 두 제품 모두 디멘션 자료가 있어 모델 구현이 가능하다.  두 제품 다 모든 부분에 대한 치수가 나와있지는 않았기 때문에 설계에 시간이 오래 걸렸고 상당 부분 상상력을 발휘하였다. 그래도 설계에 필요한 치수는 대부분 나와있기 때문에 큰 문제는 없으리라 생각한다. 실제로는 제품을 구매해서 확인 해봐야겠지만 비슷하게 나온 것 같다.  PCB 의 edge에 실장 하려면 PCB의 두께는 1mm 를 사용해야 한다.

Raspberry Pi Zero W/2W - 게임보이 만들기 2 - 전원부 설계

Image
새로운 IC 를 헌팅 하면서 데이터시트를 보고 하는 회로도 작성은 재미있지만 아트워크 만큼은 지루함의 연속이다. 기구설계와 함께 해야 하는 아트워크는 많은 시간이 소요되는데, 가능하면 PCB 에 각 부품을 배치하면서 사이즈를 가늠한 다음 3D CAD 프로그램으로 하우징 설계를 먼저 하는 것을 선호한다.  아트워크 작업은 인테리어와 같다고 볼 수 있다. 효율이냐, 안전이냐, 깔끔하냐, 개판이냐, 둘 다 전문성이 높을수록 안전하고 효율적으로 깔끔한 작업이 가능한 것 같다.  그러나 개판인지는 누가 개판이라고 하기 전까진 스스로 깨닫기 힘들다.  마치 나는 내 방이 정리 정돈이 잘 되어 있다고 생각하지만 항상 엄마는 개판이라고 하는 것 처럼 말이다.  개판처럼 보여도 그 안에도 철학과 질서가 있다고 생각한다. 아래 사진은 이번에 새로 만들고 있는 게임보이의 PCB의 전원부이다.  수동 소자의 경우 현미경이 없기 때문에 가능한 큰 부품들을 사용했다. 작은 부품들은 현미경 없이 작업하면 하루만에 시력 저하를 느낄 수 있다. 전반적인 설계를 보자면 U4 가 배터리 충전 관리를 하고 U3 가 U4가 보내는 DC 전압을 승압 시켜준다. PCB 레이아웃은 가능한 권장 설계를 따라서 만들어서 그런지 큰 고민 없이 금방 끝난 부분 같다.  IC 동작에 대한 부분은 데이터시트에서 제공하는 방정식을 통해 IC 의 동작이나 출력 전압, 충전 전압 등을 프로그래밍 할 수 있는데 R11, R12, R17~ R19 저항이 해당 부분을 담당한다. 그 외에도 샘플을 테스트를 하는 동안 예상치 못한 결과나 너무 높은 온도 등으로 인해 원하는 결과를 얻지 못할 경우를 대비하여 R7~R10에 0옴 저항을 사용해 회로를 단락 시켜 IC의 동작을 변경할 수 있도록 하였다. 다음은 배터리 관리 부분 회로이다. 배터리 관리 IC BQ24072를 거친 출력은 Vbat+225mV 로 출력 된다고 한다. 만약 부스트 회로를 별도로 구성하고 싶지 않다면, BQ24075 를 사용하여 얻은 5.5V 를 필요한 만큼

Raspberry Pi Zero W/2W - 게임보이 만들기 1 - 디자인 설계

Image
Raspberry Pi Zero 2W 를 사용한 세로 형 게임기 설계가 어느 정도 마무리 되었다. 상단에는 아날로그 볼륨 조절기와 USB C 충전 포트가 있으며, 정면에는 디스플레이와 조작 버튼과 2개의 LED 가 디스플레이 우측에 있다.  후면에는 5개의 나사 홈이 위치하며 토글 방식의 전원 스위치와 스피커 홈이 있다. 하단에는 왼쪽부터 microSD 카드, USB OTG, 컨트롤러 USB 가 있다. 컨트롤러 USB는 기본적으로 아무런 기능을 하지 않으며, 사용자가 내장 컨트롤러의 펌웨어를 업데이트 하는 용도로만 사용된다. Raspberry Pi Zero의 코어가 위치한 곳은 시원하게 열어주었다. 버튼은 첫 번째 줄은 왼쪽부터 L, M, P, R 이 위치한다. M 은 마이너스, P 는 플러스를 뜻 한다. 닌텐도의 -,+ 키를 의식하여 만들었다. ABXY 는 XBOX 배열을 사용하였다. 우측 하단의 두개의 작은 버튼 두 개는 OS의 reset 과 power 버튼이다. 기본적으로 뒷면의 전원 토글 스위치가 On 에 위치하면 전원이 켜지지만, 이 두 버튼으로도 시스템의 전원을 켜고 끌 수 있다. power 버튼의 경우 짧게 누르면 현재 열려있는 에뮬레이터를 끄거나 메인 메뉴로 돌아가고 길게 누르면 전원 끌 수 있다. reset 버튼의 경우 게임을 초기화 시키며, 길게 누르면 시스템을 재부팅한다. 버튼의 경우 이런식으로 회전하지 않고, 고정되도록 하였다. D-Pad의 중앙의 구멍에는 적당한 길이의 기둥을 꼽아서 상하 좌우키가 동시에 눌리지 않도록 되어있다. 기둥을 3D 프린터 출력물을 사용할 경우 잘 부러질 수 있기 때문에 적당한 길이의 나사를 이용하는 것도 좋은 방법이다. 배터리는 1500mAh를 사용하려고 한다. 뚫려있는 부분은 방열판을 설치하려고 하는데, 아직 적당한 사이즈의 방열판을 찾지 못했다.