Load-Cell #1 - 매뉴얼이 틀렸다, 그리고 89ms의 진범

로드셀 무게 변환 모듈 P7001-2를 STM32에 붙였는데 읽히는 값이 garbage다. raw 덤프를 떠보니 매뉴얼의 응답 포맷부터 실물과 달랐다. 그리고 갱신 주기 89ms의 진범은 모듈이 아니라 미연결 채널의 타임아웃이었다.

June 12, 2026 · 5 min

Load-Cell #2 - 숫자가 멈췄다, 살아있는 척하는 모듈

부하를 주는 동안 무게값이 멈춘다. CAN, 펌웨어, 모듈을 한 층씩 격리해보니 모듈이 체크섬까지 유효한 프레임으로 옛 값을 14초간 반복하고 있었다. 미문서 ADC raw 명령을 찾아 블랙박스 필터를 통째로 우회한 기록.

June 12, 2026 · 6 min

Load-Cell #3 - 깨진 바이트 스트림, RS-232를 TTL에 직결하면

LC2 채널만 폴 실패가 버스트로 쏟아진다. 원인은 트랜시버 없이 RS-232 출력을 3.3V TTL 핀에 직결한 배선. 깨진 바이트 하나가 펌웨어에서 수백 ms 장애로 증폭되는 straddle 메커니즘과, 헤더 헌트 + FLUSH로 오정렬을 0%로 만든 파서 자기복구 설계.

June 12, 2026 · 4 min

Load-Cell #4 - 안전 계층과 캘리브레이션의 정착

힘 데이터가 끊기면 365ms 안에 비상정지를 거는 신선도 감시를 만들었다. 그리고 껐다. 오탐도 위험이라는 trade-off 분석과, 캘리브레이션을 flash에 영속화하면서 배운 원자성 이야기로 시리즈를 닫는다.

June 12, 2026 · 4 min

Motor Control #2 - STM32 PWM 속도 제어 펌웨어

ESCON 50/5에 STM32로 직접 PWM 명령을 던지고, 아날로그 모니터 출력을 ADC로 받아오는 펌웨어 전체 코드.

May 27, 2026 · 8 min

Motor Control #1 - maxon ESCON 50/5로 국산 BLDC 돌리기

maxon ESCON 50/5에 모터뱅크 BL57101E1K를 물려 돌려본 기록. Startup Wizard, Diagnostics, Auto Tuning까지.

April 24, 2026 · 9 min

STM32 부트로더 개발기 #1 - 왜 커스텀 부트로더인가

ST-Link 없이 현장에서 펌웨어 업데이트하고 싶다.

December 17, 2024 · 1 min

STM32 부트로더 개발기 #10 - Page Erase

Flash에 쓰기 전에 먼저 지워야 한다. 0xFF로.

December 17, 2024 · 2 min

STM32 부트로더 개발기 #11 - Half-Word Program

STM32F103은 2바이트씩만 쓸 수 있다.

December 17, 2024 · 2 min

STM32 부트로더 개발기 #12 - 에러 처리

Flash 작업 실패하면 어떻게 해야 하나.

December 17, 2024 · 2 min