ecs/pos 네트워크 인쇄 파이썬 스크립트.

텍스트를 입력하면, 이미지로 변환해, 프린터 합니다. 네트워크 IP 주소로 연결합니다. 프린터 폰트, 폰트사이즈, 용지좌우넓이 세팅할 수 있습니다. 폰트는 py 와 같은 파일에 있어야 합니다. 용지좌우넓이는 80mm 용지로 576으로 되어 있는데 글씨가 짤리면 512 로 설정합니다. 실행하려면 아래 라이브러리가 설치되어야 합니다. pip install pillow python-escpos import tkinter as tk from tkinter import messagebox from PIL import Image, ImageDraw, ImageFont from escpos.printer import Network import os class ReceiptPrinterApp :     def __init__ ( self , root ):         self . root = root         self . root .title( "ESC/POS Printer Text to Image" )         self . root .geometry( "450x450" )   # UI 요소가 늘어남에 따라 창 크기 확장         # --- UI 구성 ---         setting_frame = tk . LabelFrame (             root , text = "프린터 및 폰트 설정" , padx = 10 , pady = 10         )         setting_frame . pack ( fill = "x" , padx = 10 , pady = 5 )    ...

ESP32 S3 아두이노 디버깅.

보스 셋팅(보드 옵션, 파티션 등), 라이브러리 로깅 등의 정보가 필요할 때 사용합니다. - 보드 옵션. DebugLevel=verbose  사용한 보드가 DebugLevel 옵션을 지원하는지 체크하는 명령어.  arduino-cli --config-file arduino-cli.yaml board details -b esp32:esp32:esp32s3 esp32:esp32:esp32s3 는 사용할 보드로 변경합니다. 컴파일, sketch.yaml 에 fqbn 부분에 DebugLevel=verbose 을 추가하면 됩니다. fqbn: esp32:esp32:esp32s3:USBMode=hwcdc,CDCOnBoot=cdc,DebugLevel=verbose 아래처럼 상세한 보드 정보가 나오고, 사용하는 라이브러리의 로그도 보입니다. [2025-11-06 20:48:02] =========== Before Setup Start =========== [2025-11-06 20:48:02] Chip Info: [2025-11-06 20:48:02] ------------------------------------------ [2025-11-06 20:48:02]   Model             : ESP32-S3 [2025-11-06 20:48:02]   Package           : 0 [2025-11-06 20:48:02]   Revision          : 0.02 [2025-11-06 20:48:02]   Cores             : 2 [2025-11-06 20:48:02]   CPU Frequency...

Arduino CLI ESP32-S3-WROOM-1 N16N8 ota update 파티션 설정하는 방법.

파티션 설정 방법. 파티션 테이블 확인 방법. ================================== 파티션 설정 방법. ================================== esp32의 오프셋 규칙이 있어, 맞춰서 설정해야 함. ESP32-S3-WROOM-1 N16N8 ota update  app는 5m, nvs는 512KB 로 설정함. 저는 필요성이 있어 nvs를 많이 크게 잡았습니다.  partitions.csv # Name,   Type, SubType, Offset,     Size,       Flags otadata,  data, ota,     0x9000,     0x2000, app0,     app,  ota_0,   0x10000,    0x500000, app1,     app,  ota_1,   0x510000,   0x500000, nvs,      data, nvs,     0xA10000,   0x80000, spiffs,   data, spiffs,  0xA90000,   0x570000, partitions.csv 파일을 프로젝트 폴더의 filename.ino 와 같은 폴더에 위치 합니다. 이러기만 해도 다른 설정을 무시하고 자동으로 적용되는 거 같습니다. 하지만 더 정확히 하기 위해 sketch.yaml 의 설정을 다음과 같이 합니다. fqbn: esp32:esp32:esp32s3:PartitionScheme=custom,FlashSize=16M (예제를 위해 다른 설정을 지웠습니다.)  ...

Arduino CLI 윈도우에서 포터블로 사용하기.

arduino-ide_2.3.6_Windows_64bit 기준으로 작성 했습니다. 이 문서는 다음 항목으로 구성 됩니다. 설치. 자주 사용하는 명령어. 사용법. 명령어. ======================================= 설치. ======================================= - Arduino CLI 다운로드. https://www.arduino.cc/en/software/ 에서 arduino-cli_#.#.#_Windows_64bit.zip 을 다운로드 받아 압축을 풉니다. #는 버전번호로 최신버전을 받으면 됩니다. - 이 다음부터는 아래 폴더구조라고 가정합니다.  폴더는 아래 설정에 따라 설치 중에 자동으로 만들어 집니다.  D:\Tools\ArduinoCLI\   ├─ arduino-cli.exe        ← ZIP에서 꺼낸 실행 파일   ├─ arduino-cli.yaml       ← 포터블 설정 파일(직접 만듦)   ├─ data\                  ← 코어/툴/캐시(Arduino15 대체)   ├─ user\            ← 스케치/라이브러리   └─ libraries\               ← 실행용 배치파일(선택) - arduino-cli.yaml 파일 생성. arduino-cli.exe config init --config-file .\arduino-cli.yaml - arduino-cli.yaml 편집.  아래와 같이 편집해 주세요. 자세한 설명은 URL을 참조하세요. https://docs.arduino.cc/arduino-cli...

c언어 int, unsigned long, int32_t, uint32_t 차이

int 크기(비트)가 플랫폼에 따라 다름. (최소 16비트) ESP32, 윈도우, 리눅스, macOS (32/64비트) 등 대부분의 최신 시스템에서는 32비트 (4바이트)입니다. 부호 지원. int i = -10; unsigned long 크기(비트)가 플랫폼에 따라 다름. (최소 32비트) ESP32 32비트, 윈도우 x64 32비트 (4바이트), 64비트 리눅스/macOS에서는 64비트 (8바이트)입니다. 부호 지원되지 않아 양의 수만 가능. uint32_t u = unsigned, int = integer, 32 = 32 bits, _t = type 크기(비트)가 항상 32비트 (4바이트) 부호 지원되지 않아 양의 수만 가능. 이 타입을 사용하기 위해서는 <stdint.h> (C) 또는 <cstdint> (C++) 헤더 파일을 포함해야 합니다. 크기가 명확해야 할 때 사용함. int32_t uint32_t 와 부호만 다름. 부호 지원. int32_t i = -10;

c언어 const, constexpr 차이

  const 이 변수는 초기화된 후에는 절대 변경할 수 없다. 이 값은 런타임에 결정될 수도 있습니다. 파일에 있는 설정 값을 읽어와 초기화 하는 경우. int getUserInput() {     int input;     std::cin >> input;     return input; } // 런타임에 값을 받아 const 변수 초기화 const int MAX_VALUE = getUserInput();  constexpr 이 변수는 컴파일 타임에 값이 결정되며, 절대 변경할 수 없다. 이 값은 반드시 컴파일 시점에 알아야 합니다. 컴파일 할 때 이미 그 값을 숫자로 대체할 수 있어 최적화에 유리 합니다. constexpr int x = 100;

아두이노 프로젝트 폴더 설명.

 v. Arduino IDE 2.3.6 ------ 추가. 라이브러리를 프로젝트 폴더에 추가하려면 src, libraries 폴더에 있는 라이브러리를 include 하기 위해서는 전체 경로를 써줘야 합니다. #include "src/MyLibrary/src/MyLibrary.h"  뭔가 오락가락 하는거 같습니다. https://github.com/arduino/Arduino/issues/5186 ------ 폴더 이름 주 사용 위치 IDE/빌드 시스템 동작 주 용도 src 스케치 / 라이브러리 컴파일 대상에 포함 핵심 소스 코드 (.h, .cpp) utility 라이브러리 컴파일 대상에 포함 라이브러리 내부 보조 코드. 권장하지 않음. data 스케치 파일 시스템에 업로드 (컴파일 X) 웹페이지, 설정 파일 (.html, .json) examples 라이브러리 IDE '예제' 메뉴에 표시 라이브러리 사용 예제 (.ino) docs 스케치 / 라이브러리 무시 (인식 안 함) 프로젝트 문서 (Markdown, PDF) tests 스케치 / 라이브러리 무시 (인식 안 함) 유닛 테스트 코드 extras 기타 무시 (인식 안 함) 기타 자료 (데이터시트, 3D 모델) schematics 스케치 / 라이브러리 무시 (인식 안 함) 하드웨어 회로도 assets 스케치 / 라이브러리 무시 (상황에 따라 다름) 리소스 파일 (이미지, 폰트 원본) 1. 아두이노 IDE가 특별하게 인식하는 폴더. 이 폴더들은 아두이노 IDE가 컴파일하거나 메뉴에 표시하는 등 특별한 기능을 수행합니다. - src 아두이노의 공식 스펙은 src를 표준으로 권장합니다. 이 폴더 안의 모든 .c, .cpp 파일은 스케치와 함께 자동으로 컴파일됩니다.  .ino 파일이 너무 길어질 때 코드를 기능 별로 분리하거나, 해당 스케치에서만 사용할 라이브러리를 넣을 때 사용합니다. 하위 폴더를 자유롭게 둘 수 있고, 아키텍처별 코드를 src/arch/avr, src/arch/e...

다이소 볼펜 0.7mm 검정색 10개 (품번 1053371)

이미지
제 돈으로 산 볼펜 입니다. 그리고 개인적인 호불호가 많은 글 입니다. 다이소에서 우연히 구매 했는데 많이 좋습니다. 0.7mm 볼펜 입니다.  진열대 옆에 1.0mm 볼펜도 있는데 이건 별로 입니다. - 장점. 부드럽습니다.  제트*트림 정도로 미끄럽고, 빠이*트 보다 더 미끄럽습니다. 사진을 보면 볼 부분이 잘 다듬어져 있습니다. 이래서 매끄럽게 잘 써지는 거 같습니다. 한글 쓰기 좋게 각진 글자 쓰기에 좋습니다. 심 끝 부분이 원뿔이 아니라서 각진 글자 쓰기에 좋습니다. 원뿔형인 제트*트림은 영어 같은 문자 쓰기에 더 적합한 거 같습니다. 가격은 10개 천원으로 볼펜 한 자루에 100원 입니다. 아무 많이 저렴합니다. 가성비도 좋지만, 가격 빼고 생각해도 필기감이 많이 좋습니다. 한 자루에 이천원 하는 일제 펜보다 좋은 거 같네요.  - 단점. 그립이 안 좋습니다. 플라스틱이라 손이 좀 아픕니다. 잉크가 좀 빨리 다는 거 같습니다. - 개조. 손잡이가 불편해 다른 캡 식 볼펜에 심만 넣었습니다. 다 쓴 볼펜심을 잘라서 길이를 맞췄습니다. 상단에 추가한 볼펜 튜브는 흔들림 방지용 입니다. 없는 거보다 흔들림을 많이 잡아줍니다. 그립은 아래에 있습니다. https://www.abel9999.com/2023/10/blog-post_25.html

https://usevia.app 사용법.

https://usevia.app - 기본 사용법. via를 설정하기 위해 Juoya gmk70.json 같은 파일이 필요하며, 키보드의 레이아웃, 지원하는 기능 등 정보가 있어 이를 로딩해 키 기능을 설정할 수 있게 합니다. 키보드 제조사에서 다운 받으세요. http://www.zuoya.top/qdxz 사이트에서 Juoya gmk70.json 파일을 다운로드 받습니다. https://usevia.app/ 을 크롬에서 접속합니다. 상단 settings 탭에 들어갑니다. Show Design tab 항목을 체크하면 상단탭에 design이 추가됩니다. 상단 design탭에 진입해 Juoya gmk70.json 파일을 엽니다. 상단 CONFIGURE 탭에 진입해 Authorize device 버튼을 클릭하고 Juoya gmk70을 연결합니다. - 레이어 키 설명. MO - 임시 전환 (누르는 동안) - 키를 누르고 있는 동안만 레이어 활성화. FN - 임시 전환 (레거시) - MO와 동일하게 작동. TG - 영구 전환 (토글) - 한 번 누르면 켜지고, 다시 누르면 꺼짐. OSL - 일회성 전환 - 다음 한 번의 키 입력에만 레이어 적용. TO - 레이어 이동 - 지정된 레이어로 완전히 이동. DF - 기본 레이어 설정 - 키보드의 기본 레이어를 영구적으로 변경. TT - 탭 토글 / 홀드 임시 전환 - 누르고 있으면 MO, 여러 번 탭하면 TG. - 매크로. 매크로 레코드는 잘 안되서 텍스트로 저장했습니다.  컨트롤 + 쉬프트 + v 매크로는 아래와 같습니다.  {KC_LCTL,KC_LSFT,KC_V}

ZUOYA GMK26 펌웨어 업그레이드 방법

- 다운로드. http://zuoya.top/qdxz 에서 "ZUOYA GMK26 20250329.zip" - 압축 풀기. - QMK Toolbox 설치. 프로그램을 처음 실행할 때 필요한 드라이버 설치를 진행. - QMK Toolbox실행. "Open" 버튼을 클릭하여 다운로드한 .bin 펌웨어 파일을 선택. - GMK26을 DFU(Device Firmware Upgrade) 모드 진입. 키보드에서 USB 케이블을 분리한 후, 볼륨 노브를 누른 상태로 USB 케이블을 다시 연결하면 DFU 모드로 진입. 또는 키보드가 이미 QMK 펌웨어를 사용 중이라면, ESC 키를 누른 상태로 USB 케이블을 연결해도 DFU 모드에 진입할 수 있습니다. - 펌웨어 업그레이드. DFU 모드에 진입하면 QMK Toolbox의 "Flash/Exit DFU" 버튼이 활성화됩니다. "Flash" 버튼을 클릭하여 펌웨어 플래싱 과정을 시작하고, "OK" 메시지가 나타날 때까지 기다립니다. 플래싱이 완료되면 "Exit DFU" 버튼을 클릭하여 DFU 모드를 종료합니다.

샤오신 12.7 2025 글로벌롬 펌웨어 설치 및 업글.

경고 : 글로벌 롬 설치 시도 중 발생한 문제에 대해선 작성자가 책임지지 않음을 알려드립니다. 잘 모르면 반글화로 사용하세요. 이 글은 제가 펌웨어 업그레이드할 때 참고하기 위해 작성했습니다. 처음 하시면 맨 아래 참고에 유튜브 동영상을 참고하세요. 전 유튜브 링크와 아무 관련 없습니다. --------------------------- - 간단 순서. --------------------------- - 펌웨어, MTK Driver, scatter 파일 다운로드. - MTK Driver 설치. - scatter 파일 적용.(<펌웨어 폴더>\image) - 펌웨어 백업. - 샤오신 복구모드로 켜기.(볼륨 상 버튼) - 펌웨어 툴 실행. (SPFlashToolV6.exe) - Download-XML, Authentication 파일 선택.<펌웨어 폴더>\image\download_agent\flash.xml, <펌웨어 폴더>\image\da.auth - lk_a, lk_b, dtbo_a, dtbo_b 체크해제, 업그레이드는 userdata 체크해제. - Auto Reboot 체크 후 Download 버튼 클릭. --------------------------- - 펌웨어 다운로드. --------------------------- 아래 2가지 방법중에 하나를 선택해 다운로드 받으면 됩니다. -- https://mirrors.lolinet.com/firmware/lenowow/2024/Idea_Tab_Pro_2024/TB373FU/ -- lenovo software fix https://pcsupport.lenovo.com/py/ko/rescue-and-smart-assistant 로그인 후 아래 단계로 펌웨어를 다운로드 받으세요. Rescue - Input Serial Number - HAHAHAHA 입력 - Select your model from a list - TB373FU 검색 다운로드 받은 펌웨어 위치. 폴더는 soft...

Juoya gmk70 펌웨어 업데이트 방법.

이미지
- 다운로드. http://zuoya.top/qdxz 에서 "ZUOYA GMK70 QMK固件升级20241216.zip" - 압축 풀기. - QMK Toolbox 설치. 프로그램을 처음 실행할 때 필요한 드라이버 설치를 진행. - QMK Toolbox실행. "Open" 버튼을 클릭하여 다운로드한 .bin 펌웨어 파일을 선택. - GMK26을 DFU(Device Firmware Upgrade) 모드 진입. = 왼쪽 키보드. 키보드 ESC 키를 누른 상태로 usb 케이블을 연결하세요. QMK_TOOLBOX_BETA 에 접속됬다는 메세지가 뜹니다. WB32 DFU device connected (WinUSB): (Undefined Vendor) WB Device in DFU Mode (342D:DFA0:0100) 이후 '플래시' 버튼을 눌러 업데이트를 합니다. =오른쪽 키보드 업데이트. 키보드 usb 케이블을 제거하세요. 좌우 중간 연결 케이블도 제거하세요. 다음 설명은 아래 사진을 참고하세요. 오른쪽 키보드 ALT 키 옆에 있는 토글 스위치를 하단으로 설정합니다. 스페이스바의 좌우 구멍을 클립, 핀셋 등 전도성 도구로 연결합니다. 컴퓨터와 오른쪽 키보드를 연결 합니다. QMK_TOOLBOX_BETA 에 접속됬다는 메세지가 뜹니다. 이후 '플래시' 버튼을 눌러 업데이트를 합니다. 업데이트 후 토글 스위치를 원위치에 놓습니다. - 롬 리셋. 이후 두 키보드를 연결하고 키보드를 컴퓨터에 연결한 후 FN+백 스페이스를 3 초 동안 눌러 EEPROM을 재설정 하세요. 이 과정을 거쳐야 업데이트 된 펌웨어가 안정적으로 작동합니다. 오른쪽 키보드 업데이트 방법은 직접 쇼트를 하는 것으로 번거로울 수 있습니다. 아래는 더 간략한 방법입니다. 제가 해보지는 않았습니다. - VIA를 이용한 방법 (더 쉬운 대안) 쇼트 방법이 어렵다면 VIA 프로그램을 이용해 DFU 모드로 진입할 수 있습니다. 토글 스위치 조작: 우측 ...