설치 없이 바로 쓰는
포터블 시리얼 터미널
다운로드 → 더블클릭 → 끝. 약 8.25 MB 단일 .exe 한 개로 시리얼 모니터링, HEX 송수신, ASCII↔HEX 변환까지 다 됩니다. 설치 프로그램·런타임·관리자 권한 전부 필요 없음. Arduino, ESP32, 모뎀, 산업용 센서 디버깅에 바로.
Windows 10 / 11 (64-bit) · 별도 런타임 불필요 · 단일 .exe · 압축 해제 후 더블클릭. 전체 릴리스
▶ 인터랙티브 데모 — 시리얼 모니터링·HEX 송수신
아래는 실제 앱의 사용 흐름을 그대로 재현한 브라우저 데모입니다. 포트 연결 → 텍스트 송수신 → HEX 모드 전환 → 로그 저장 까지 한 화면에서 둘러볼 수 있어요. 다운로드 전에 한 번 보시면 감이 옵니다.
실제 실행 화면

상단 PORT/BAUD 선택, 좌측 콘솔, 우측 송신 패널, 둘째 줄 HEX·DTR 토글이 한 화면에 모여 있어 처음 켜자마자 1분 안에 첫 송수신이 가능합니다.
왜 만들었나 — PuTTY · Arduino IDE 의 빈틈
기존 도구들은 각각의 한계가 있었습니다. PuTTY 는 매번 설정 창을 다시 손봐야 하고 HEX 송수신이 불편하고, Arduino IDE의 시리얼 모니터는 스케치 컴파일 중에는 못 쓰고 HEX 도 안 됩니다. Tera Term 은 설치가 필요하고, 전문 시리얼 분석기는 대부분 유료입니다.
CNTerminal 은 Rust + egui 로 만든 단일 .exe 입니다. 압축만 풀면 끝, USB 메모리에 넣어 다니다가 어느 PC에서든 더블클릭 한 번. 모든 설정과 로그는 .exe 옆 파일로 보관돼 PC 를 옮겨도 그대로 살아납니다.
누구에게 좋은가
- 임베디드 개발자 — Arduino · ESP32 · STM32 · 마이크로컨트롤러 디버깅. HEX 프로토콜·체크섬 검증
- 메이커 · 학생 — 첫 시리얼 통신 학습부터 작품 전시까지. 학교 PC에 설치 권한 없어도 USB로 들고 다니며 사용
- 자동화·테스트 엔지니어 — RS-232/485 산업 장비, PLC, 측정기 명령 검증. 로그 저장으로 회귀 테스트
- 현장 엔지니어 — 노트북에 USB 만 꽂으면 동작. 고객 PC·산업 PC에서 관리자 권한 없이 즉시 디버깅
- 팀 공유용 — 사내 공유폴더에 .exe 하나 두면 온 팀이 동일 환경에서 작업
다운로드 & 첫 실행
위 다운로드 버튼 또는 GitHub Releases 에서 CNTerminal_v0.1.0.exe 한 개만 받으면 됩니다. 약 8.25 MB. 폴더에 두고 더블클릭이 끝입니다.
- Windows 10 / 11 (64-bit)
- 관리자 권한 불필요 — 사용자 폴더·USB 어디서나 실행
- .NET / VC++ 런타임·WebView2 전부 불필요 — Rust 정적 링크 빌드
- USB-시리얼 칩셋 드라이버 (CH340 / CP210x / FTDI 등)는 Windows 자동 인식. 안 보이면 칩 제조사 드라이버 먼저 설치
Windows SmartScreen 이 “PC를 보호했습니다” 경고를 띄울 수 있습니다. 코드 서명 안 된 무료 .exe 라서 정상입니다. 추가 정보 → 실행 으로 넘어가시면 됩니다.
SHA-256 무결성 검증: 32cb1469db828f115d64ffe3c0d88042df31787804e7368cfdd4e364a49e9f5c
PowerShell: Get-FileHash CNTerminal_v0.1.0.exe
5분 워크스루 — 첫 송수신
1단계 — 포트 · 보레이트 선택
상단 PORT 드롭다운에서 디바이스 포트 선택 (↻ 로 새로고침). BAUD 는 프리셋(9600~921600) 클릭 또는 비표준 값(예: 500000) 직접 타이핑. Connect 클릭하면 좌측 LED 가 초록으로 바뀌고 RX 가 실시간 출력됩니다.
2단계 — 송신 + WILL SEND 미리보기
우측 SEND 패널 멀티라인 박스에 명령 입력 후 Enter (줄바꿈은 Shift+Enter). ENDING 콤보로 줄끝 선택 (None / LF / CR / CRLF). 입력 박스 바로 아래 WILL SEND 미리보기로 실제 와이어로 나가는 바이트를 송신 전 에 확인 가능:
WILL SEND (5 B) ASCII A00\r\n HEX 41 30 30 0D 0A
3단계 — HEX 모드 · RX SPLIT
상단 둘째 줄 HEX 토글 → 콘솔이 hex 덤프 표시로 전환. RX SPLIT 에 ms 값(예: 2) 입력 → 그 시간 동안 새 바이트가 없으면 자동으로 줄 끊음 (STX/ETX 같은 자연 구분자 없는 바이너리 프레임 디버깅 필수).
4단계 — 로그 저장 & 송신 이력
Save Log 로 현재 콘솔을 타임스탬프 prefix 가 붙은 .txt 로 저장. 상단의 ↑↓ History 로 송신 이력 50개 순환 호출 (반복 명령 빠르게 재전송).
💡 ESP32 자동 리셋 회피: 둘째 줄 DTR 토글을 한 번 눌러 OFF(회색)로 두면 연결/해제 때 DTR 라인이 가만히 있어 보드가 리셋되지 않습니다.
활용 예시
아두이노 시리얼 모니터링
Serial.println("temp=25.3") 같이 보낸 데이터가 타임스탬프와 함께 한 줄씩 표시. AUTO-SCROLL 토글로 최신 위치 추적, Save Log 로 .txt 백업. Arduino IDE 시리얼 모니터의 한계(컴파일 중 못 쓰는 것) 없음.
HEX 프로토콜 디버깅 (STX/ETX·체크섬)
산업용 센서·PLC 가 0x02 ... 0x03 같은 STX/ETX 바이너리 프레임을 쓸 때, HEX 모드 + RX SPLIT 2ms 조합이 정답. 송신도 HEX 입력란에 02 41 35 30 30 03 처럼 raw 바이트로.
ESP32 / WiFi 모듈 펌웨어 디버깅
ESP32 의 AT 명령·로그 분석 시 DTR OFF 로 두면 연결 변경에도 보드 리셋이 안 일어나서 부팅 로그·디버그 출력을 끊김 없이 추적 가능.
현장·고객사 USB 디버깅
노트북 가져가기도 부담스러운 상황 — USB 메모리에 .exe 한 개. 고객 PC에 꽂아 더블클릭 → 끝. 관리자 권한 협조 요청·설치 승인 절차 없음.
내부 동작 — Rust + egui · 정적 링크 단일 .exe
CNTerminal 은 Rust + egui 로 만든 네이티브 데스크탑 앱입니다. serialport 크레이트로 시리얼 I/O, mpsc 채널로 UI 스레드와 reader 스레드를 분리해 빠른 RX도 끊김 없이 처리합니다.
[UI 스레드 (egui)]
└─ 송신: tx → channel
▼
[송신 채널 (mpsc)]
└─ writer 스레드: serialport.write()
▼
[시리얼 포트]
▲
[reader 스레드 (50ms timeout)]
└─ serialport.read() → channel
▼
[UI 스레드 (egui)]
└─ 콘솔 갱신 (20ms batch)전체 소스코드는 GitHub 에 공개돼 있어 직접 빌드·수정·재배포 모두 자유롭게 가능합니다.
핵심 기능
| 기능 | 설명 |
|---|---|
| ASCII ↔ HEX 변환기 | 내장 팝업. 양방향 즉시 변환, escape 시퀀스(\n, \r, \t, \xNN) 지원 |
| WILL SEND 미리보기 | 송신 전 ASCII + HEX 동시 표시 — 와이어로 나가는 정확한 바이트 확인 |
| DTR 토글 | ESP32/Arduino 자동 리셋 회피, 디버그 중 부팅 로그 끊김 방지 |
| 송신 이력 50개 | ↑↓ 키로 순환 호출, 반복 명령 빠른 재전송 |
| 5000줄 자동 트림 | 장시간 모니터링도 메모리 폭주 없음 |
| 설정 자동 저장 | cnterminal.cfg — 평문 key=value, USB 메모리째 이동 가능 |
| Save Log | 타임스탬프(HH:MM:SS.mmm) 포함 .txt 저장 — 회귀 테스트·QA 리포트 |
자주 묻는 질문
Q. 왜 설치 프로그램이 없나요?
단일 .exe 라 압축만 풀면 끝입니다. 설정·로그도 .exe 옆에 텍스트로 저장돼 USB 메모리째 옮겨도 그대로 동작 합니다. 회사 PC에서 관리자 권한 없이 쓰거나 사내 공유 폴더에 두고 팀원이 같이 쓰기 좋습니다.
Q. SmartScreen / 백신이 차단합니다.
코드 서명 안 된 무료 .exe 라서 정상입니다. 추가 정보 → 실행 으로 넘기시거나, 공개 소스코드 에서 직접 빌드 가능합니다. Rust 표준 빌드라 한 줄로 끝납니다.
Q. ESP32 가 연결할 때마다 리셋됩니다.
ESP32/Arduino 는 DTR 라인 변화로 자동 리셋됩니다. 디버깅 중 의도치 않은 리셋을 막으려면 둘째 줄의 DTR 토글을 한 번 눌러 OFF(회색) 로 두세요. 연결/해제와 무관하게 보드가 가만히 있습니다.
Q. 한글이 깨져서 보입니다.
장치가 EUC-KR 로 보내고 있다면 깨질 수 있습니다. UTF-8 로 출력하도록 펌웨어를 수정하시거나, 콘솔을 HEX 모드로 두고 직접 확인하시는 게 빠릅니다.
Q. 로그는 어떤 형식으로 저장되나요?
Save Log 버튼을 누르면 현재 콘솔 내용이 .txt 로 저장됩니다. 타임스탬프 prefix(HH:MM:SS.mmm) 가 함께 들어가 디버깅 후에도 시계열 분석이 가능합니다.
Q. 라이선스가 어떻게 되나요?
소스코드는 GitHub 에 공개되어 있어 직접 빌드·수정·배포 모두 자유롭게 가능합니다. 개인·상업 사용 모두 별도 비용 없음. 라이선스 파일은 저장소 LICENSE 를 참고하세요.
📟 무료 · 오픈소스 · 광고 없음
매번 시리얼 디버깅마다 설치 화면을 다시 보지 않도록, USB 한 개로 어디서나 통할 수 있게 만들었습니다. Arduino 부터 산업 PLC 까지 — 압축만 풀면 끝입니다.
소스 코드 · 이슈 제보: github.com/cflab2017/tool_serial_terminal_Rust
도움이 되셨다면 ❤️ 응원해 주세요
작은 금액도 큰 힘이 됩니다. 광고·결제 수수료 없이 직접 전달돼요.