2026년 6월 29일 월요일

글소담이란 ?



 글소담은 2006년, (주)크레딕스의 작은 아이디어에서 출발한 실험적인 프로젝트였습니다.

손글씨에 담긴 정성을, 기계가 되살릴 수는 없을까 — 이 한 가지 물음에서 출발해 세 차례의 개발 단계를 거쳐, 마침내 세상에 선보이는 서비스가 되었습니다.

​

​

2006

하나의 물음에서 시작되다 The Beginning

"사람이 직접 쓴 글씨의 정성을, 기계로도 전할 수 있을까." 이 물음에서 출발한 실험적인 프로젝트가 (주)크레딕스에서 시작되었습니다. 감성 마케팅과 자필 다이렉트 메일(DM)의 가능성을 내다본 첫걸음이었습니다.

2008 – 2009

국민대학교 산학협력 · 김태우 교수 연구팀

​

​

1세대 — 손글씨 모사 시스템의 기틀 Foundation

손글씨 자동 모사 시스템(Simulator for Human Hand Writing)의 토대를 세운 단계입니다. 개인의 필체를 인식해 고유의 폰트로 만들고, 3축(X·Y·Z) 플로터가 실제 필기구로 사람의 글씨 속도에 가깝게 재현하는 구조를 처음으로 구현했습니다.

  • 3D 플로팅 엔진, 실시간 펄스 생성기, 폰트 변형기, 경로(Routing Path) 엔진 개발

  • A4·엽서 자동 급지 및 펜 자동 교체 메커니즘 설계

  • 출력 처리 최적화 — 초기 출력 시간 50분 → 20분, 파일 크기 1/4로 단축

  • 우수 산학협력 과제로 선정

  • 2013년 한국생산제조학회 논문 발표 — 「3차원 방식의 수기 모사 연구」

  • Study of 3D Simulator for Human Hand Writing

2020 – 2021

강원대학교 산학협력 · 강태원 교수 연구팀

​

​

2세대 — 32비트 실시간 제어로의 도약 Precision

제어 정밀도와 정숙성을 동시에 끌어올린 도약의 단계입니다. 32비트 ARM 코어를 적용해 400 MHz 실시간 모션 제어를 구현하고, 소음의 가장 큰 원인이던 구동부 헤드의 베어링을 덜어낸 새로운 설계로 정밀함과 조용함을 함께 갖추었습니다.

  • 32비트 ARM 코어 기반 400 MHz 실시간 제어 구현

  • 전체 작동 소음 60.6 dB → 47.7 dB 저감 (1 kHz 대역 6 dB 이상 감소)

  • 베어링을 제거한 경량·고강성 헤드 설계 및 시제품 제작

  • 글씨 종류·크기별 속도 프로파일 최적화, 관련 특허 출원 및 헤드 설계 기술이전

  • 2020년 한국생산제조학회 논문 발표 — 「손글씨 프린터의 부품 개선에 따른 소음 저감 연구」

  • Noise Reduction for the Components of a Handwriting Printer

2024

(주)크레딕스 자체 개발

​

​

AI 엔진 도입 — 더 깊어진 손글씨 Intelligence

오랜 시간 쌓아 온 하드웨어·제어 기술 위에 자체 개발 AI 엔진을 더했습니다. 글씨 인식부터 폰트 생성, 렌더링에 이르는 과정을 한층 정교하게 다듬어, 손글씨의 자연스러움과 필체의 재현 정밀도, 그리고 연속 사용의 안정성까지 끌어올렸습니다.

2026

Geulsodam · glsodam.com

글소담, 마침내 세상에 Launch

2006년의 작은 아이디어가 세 차례의 개발 단계와 AI 전환을 지나, 마침내 정식 서비스로 세상에 모습을 드러냅니다.

글에 소중한 마음을 담다 — 글소담이 손글씨로 전하려는 마음입니다.

2016년 5월 31일 화요일

ESP8266 and STM32F4


Original Article : http://blog.naver.com/simonsayz/220724527073

​
ESP8266  -  The Wrong Solution or Good...
요즘 많이 사용하는 ESP8266을 고속 통신이 필요해서 테스트를 해보았습니다.
​
인터넷 상에서, 너무 좋은 정보들이 많이 있기는 한데, 개인적으로 정말 필요했던, ESP8266 (ESP12, WROOM02)의 물리적인 속도는 어디까지 나오는가에 대한 정보를 찾을 수가 없었습니다.


그래서 직접 TCP/IP 성능을 직접 확인하기로 하고, 각종 테스트를 진행해보았습니다.


상황 , 전제조건
 - 개인 프로젝트용으로 초당 1MB/s ​속도로 스트리밍이 되어야 함.
 - STM32F4의 통신 모듈로 사용해야 함.
 - 인터넷에 있는 내용은 전체가 그런것은 아니지만, 주객전도된 내용이 많음.
   (16Mhz Atmega가 80,160Mhz ESP8266을 통신 모듈로 사용해서,  배보다 배꼽이 더 큼. 

     Atmega가 나쁘다는 것이 아니고, ESP8266 성능이 상대적으로 너무 뛰어남. 접근성에서 Atmega가 좋은 것은 인정)
​
주의
  bps = bit / sec ,   Bps = byte /sec


실험 결과
 - AT Command 방식으로는 해결 않됨. (성능을 향상하기 위해서, Firmware 직접 작성 필수)
 - ESP8266ex는 160Mhz 클럭사용해야 함.
 - 전체 시스템 통합을 위해서, PC를 사용할 경우,
 - STM32F4 (168Mhz) 사용할 경우, UART는 10.5Mbps까지 가능 (USART1,6사용시), 나머지 Uart,Usart는 5.25Mbps까지 가능
 - ESP8266 Uart는 9Mbps까지는 가능
    ( PC로 테스트하기 위해서는 PL2303HXD를 사용해야 함, FT232BM 사용시 장비 최고 속도 미만인 관계로, 테스트 불가)
 -  ESP8266 단독 실행시 1.4MB/s 정도까지 전송속도가 보장됨 (잘 작성했을 경우)
 - STM32F4의 경우, USART를 사용해도 연동시 7Mbps정도만 가능 (보드에 따라서 성능차이 발생함)
     Resampling x8 사용시, x16 사용시 5Mbps까지 가능
 - 연동을 위해서는 SPI를 사용해야함.
     SPI 통신의 문제점을 해결하기 위해서, Uart도 사용해야 함.  (Master : ESP8266 / Slave : STM32F4 )
     잘 작성을 한다면, SPI만으로도 가능하지만, 응답을 받는 ESP8266 CPU 낭비를 없애기 위해서
​
     기본 구성도는 ...​
     PC(Mobile) -> Wifi -> ESP8266 -> SPI -> STM32 (Receive)
                                                           Uart <- span="" stm32=""> (Send)


 - ESP8266 코드 작성시, 프로토콜의 특성상, TCP<->Uart Transparent Bridge 예제와 같이 작성하면 망함.
    (TCP/IP Nagle때문에, 비대칭 송수신 통신일 경우, 패킷을 모아주어야 함, 특히 무선인터넷에서는 잘못 작성할 경우, 10배정도 차이가
     발생할 수도 있음.  응답은 한개의 패킷으로  / 개인 프로젝트에서 비대칭 (PC->Embedded System (패킷多),
     Embedded System->PC(패킷小) )
   
​
최종 결론 (/w STM32F4)
 - 1MBps가 요즘 장비(예. 단말기 - 휴대폰)에서는 저속이나, Embedded 장비에서는 매우 고속임 (bit로 환산할 경우, 10Mbps)
    (cf. 115200bps ~= 11520Bps =  11.5KBps)
 - 고속 통신을 하려면, Interrupt 방식은 Cortex M4라도 절대 사용하면 않됨
    (모두 DMA방식을 사용해야함)
 - SDIO는 DMA Stream,Channel이 고정되어 있으므로, DMA 매핑을 할때 0순위로 선정되어야 함.
 - DMA 방식으로 적당히 작성시, 100KBps정도까지 가능
 - Optimized State Machine으로 작성할 경우, 500KB까지 가능
    (손발이 오그라질때까지 최적화를 할 경우, 900KB까지 가능할 것으로 예상)
​
​
​
느낌점
 - 하드웨어가 $2이라도, $1000 소프트웨어가 붙어서, $10000 제품이 될 수도 있음.
   정말 공개 소프트웨어 개발자분들을 존경해야 함.
 - 최근 초등학생을 위한 미국에서 진행하는 S/W 캠프도 있다고 듣고, 엄청 놀랐음.
    (어렸을때 좋은 경험은 될수 있겠지만, 금액이 너무 어마 어마 해서... 손발이 곱계 정도로 짜면서 고민해야 이해할 수 있는 부분을

     금전으로 해결하는 것 같아서, 슬퍼졌음)
    ​     
참고. 하드웨어 통신 속도
 // ---------------------------------------------------------------------------
 //                      Speed    Over16      Over8
 //                               ----------- -----------
 //                               42Mhz 84Mhz 42Mhz 84Mhz
 //                               APB1  APB2  APB1  APB2   FPS    Limit
 //  --------------------------------------------------------------------------
 //  115200 x 8 x 1    =   921600  O     O     O     O      3.75
 //  115200 x 8 x 2    =  1843200  O     O     O     O      7.50
 //  115200 x 8 x 2.8  =  2580480  -     O     O     O     10.50
 //                       2625000  -     O     O     O     10.68
 //  115200 x 8 x 3    =  2764800  -     O     O     O     11.25
 //                       3000000  -     O     O     O     12.20   FT232BM
 //  115200 x 8 x 4    =  3686400  -     O     O     O     15.00
 //  115200 x 8 x 5    =  4608000  -     -           O     18.75   ESP8266 80Mhz(DataSheet p19)
 //                       5250000  -     -           O     21.36
 //  115200 x 8 x 6    =  5529600  -     -           O     22.50
 //  115200 x 8 x 7    =  6451200  -     -           O     26.25
 //  115200 x 8 x 8    =  7372800  -     -           O     30.00
 //  ###################  8000000  -     -                         ESP8266 160Mhz
 //  115200 x 8 x 9    =  8294400  -     -           O     33.75
 //  115200 x 8 x 9.55 =  8801280  -     -           O     35.81   LPix V1.3b
 //  115200 x 8 x 10   =  9216000  -     -           O x   37.50
 //                      10000000  -     -           O x   40.69
 //  115200 x 8 x 11   = 10137600  -     -           O x   41.25
 //                      10500000  -     -           O     42.7    STM32F4
 //  115200 x 8 x 12   = 11059200  -     -
 //  115200 x 8 x 13   = 11980800  -     -
 //                      12000000                                  PL2303HXD



 



2015년 12월 26일 토요일

Five shades of gpio (Story of the bare matal) / GPIO 의 다섯개의 그레이

This is the short story related GPIO in STM32F4X , Story of the bare metal

요즘 전세계적으로 하드웨어에 대한 관심(Maker Movement)이 다시 일어나고 있는데, 주변에 물어볼 수 있는 사람이 없어서 (제가 질문한게 그게 아닌데, 당최 무신 소린지 다들 자신이 이해한 정도로만 설명해서)  저는 전공이 삽질이라서, 또 뻘짓을 해보았습니다.


개발 시간이 짧은 상업 프로젝트에서는 FPGA가 정답이라고 생각을 하지만, 똑깥은 뻘짓을 호기심에 하는 개발자들이 있을 것 같아서, 글을 남깁니다. 자고 일어나면 세상이 변하기에, 동일한 시행착오를 하지 않았으면 하는 마음에...


CPU           : STM32F405, STM32F415
Test Board  : MINI-M4 for STM32  ( http://www.mikroe.com/mini/stm32/ )
Compiler     : MikroE Pascal 4.7.0  


 
Fig 1. Test Board
        1. Mini-M4 STM32F4 / Ref. http://www.mikroe.com/mini/stm32/
        2. MaxPaper LPix v1.1 /Ref. http://www.maxpaer.com
​
 
Fig2. Toggling 84Mhz using GPIO Register ( Fully piped line processing )

 
Fig 3. Toggling 83Mhz using BSRR
​
​
 
Fig 4. Toggling 21Mhz using Bit-Band

 
Fig 5. Toggling 19Mhz using DMA (M2M, No Burst Mode, 16bit)

  
Fig 6. Toggling 17Mhz using Pascal