ブログ
Kochab Grid: A Board So You Never Lose Track of Claude Code
A Windows desktop app that lays up to 16 Claude Code sessions out on one screen, colors each by status, and notifies you the moment a session starts waiting for a reply.
作成: 2026-07-20I2C vs SPI vs UART: Wiring, Speed, and How to Choose
A side-by-side comparison of the three serial buses every microcontroller project runs into — I2C, SPI and UART — across four axes: number of signal lines, speed, how many devices you can hang off them, and wiring distance. Includes a decision flow and what to look for on a scope.
作成: 2026-07-20STM32 Series #12: Optimization and Assembly in C
The compiler transforms code while preserving meaning — but forget volatile and it changes the meaning too. See how assembly changes between -O0 and -O2 with objdump, and close out 12 episodes with the ‘conditions for embedded mastery.’
作成: 2026-05-08STM32 Linker Script and Map File: Find What Eats Flash/RAM
“RAM is full!” “A variable is changing on its own…” The answer is in the map file. This episode covers what .text/.data/.bss really are, how to read a linker script, how to stop stack overflows — and what the 512,000-line Claude Code leak teaches us about map file hygiene.
作成: 2026-05-02 ・ 更新: 2026-08-18STM32 Series #10: DMA — Transfers That Free the CPU
Stop having the CPU send bytes one at a time — let DMA handle everything. By DMA-ifying UART transmission, the CPU is freed to do real work. Episode 10 builds intuition for throughput, latency, and bus contention.
作成: 2026-04-30STM32 Series #9: Interrupt Design Anti-Patterns
printf in ISR, missing volatile, heavy processing, forgotten flag clear — we deliberately trigger every classic embedded landmine and watch them fail. Applies to Arduino, ESP32, Renesas, PIC — every MCU with interrupts.
作成: 2026-04-26STM32 Series #8: Interrupts — Vector Table, NVIC, Context
Why does polling fail when you need to ‘do something every 1ms’? Understand the vector table, NVIC, and context saving — then implement a 1ms periodic event with TIM2 interrupts.
作成: 2026-04-17STM32 Series #7: The Weight of a Single Clock Cycle
How many CPU cycles does ‘wait 1 second’ actually consume? Learn to measure execution time in µs using DWT CYCCNT, and internalize the embedded engineer’s iron rule: ‘you can’t discuss it without measuring it.’
作成: 2026-04-08STM32 Series #6: The Complete Pointer Accident Handbook
NULL dereference, dangling pointers, out-of-bounds array access, undefined behavior — we deliberately trigger the classic pointer land mines of embedded development and observe them under the debugger. Knowing how things break is the most powerful way to learn.
作成: 2026-03-28STM32 Series #5: Pointers as Typed Addresses
Demystify C’s most feared concept — pointers — from the core principle of ’typed addresses.’ What casts mean, how memory-mapped I/O connects to pointers, and what CMSIS headers are actually doing. Stop fearing pointers and start using them as a weapon.
作成: 2026-03-25 ・ 更新: 2026-03-29KiCad 10.0 New Features: Importers, Variants, Graphical DRC
KiCad 10.0 (March 2026): Allegro/PADS/gEDA importers, Design Variants, graphical DRC editor, time-domain track tuning, PCB Design Blocks, and more. Complete feature breakdown with V9 migration guide and the 10.0.1–10.0.5 patch history.
作成: 2026-03-20 ・ 更新: 2026-07-26STM32 Series #4: The World of Bits — Register Ops and BSRR
From mask/shift basics to the RMW problem to STM32’s elegant BSRR design. Learn to read registers as bit collections, practice register-direct LED blinking through GPIO, and measure the speed difference between HAL and direct register access.
作成: 2026-03-14STM32 Series #3: Struct Padding and Alignment in Memory
Use the STM32 debugger Memory view to observe struct padding and alignment in C. See why sizeof() doesn’t always equal the sum of member sizes, learn how to reduce RAM usage by reordering members, and understand volatile through actual byte-level inspection.
作成: 2026-03-06 ・ 更新: 2026-03-12STM32 Series #2: Where Variables Live — Flash, RAM, and the Stack
C variable declarations (const, global, local) determine which memory region data lands in. Use the debugger to verify actual addresses and understand the difference and purpose of Flash, SRAM, and the Stack.
作成: 2026-03-01STM32 Series #1: The Microcontroller as an Address World
Use the STM32CubeIDE debugger to observe the microcontroller’s internal state as your program runs. Understand the physical ‘address’ coordinates underlying C code — program counter, memory map, register writes — and experience the embedded address world through real measurements.
作成: 2026-02-23RTX PRO 4000 Blackwell Benchmark: 5.47× AI, 166 FPS Gaming
Measured on one desk, swapping an RTX A4000 for an RTX PRO 4000 Blackwell: 5.47× on AI prompt processing, 2.29× in Blender, 1.65× in Stable Diffusion, and 166 fps average in FF14. What the 24 GB of GDDR7 changes, plus the 145 W vs 70 W SFF decision.
作成: 2026-02-22 ・ 更新: 2026-08-17STM32 Series #0: Why Embedded Programming Looks Hard — Place and Time
Embedded programming looks hard because it requires awareness of ‘place’ (memory) and ’time’ (execution timing). What does it mean to operate hardware directly without an OS protecting you? This article explains the core mental model.
作成: 2026-02-1713-Part Series: The Embedded World Beyond Pointers
The next step after Arduino! Serious embedded programming with the STM32 microcontroller. Addresses, bits, and time — understand the essence of embedded systems step by step, building a solid mental model that applies to any platform.
作成: 2026-02-12 ・ 更新: 2026-04-0874HC595 Complete Guide (2026): Wiring and Arduino Code
A thorough guide to using the 74HC595 with Arduino. Expand your GPIO without limit using just three signal lines — from shiftOut() to hardware SPI, with schematics, KiCad design files, and sample code. Fully compatible with the Arduino UNO R4.
作成: 2026-02-11 ・ 更新: 2026-07-20Arduino UNO R4 Software PWM on Every Digital Pin
Digital pins can normally only output HIGH or LOW. Using the Arduino UNO R4’s fast clock, we drive all 20 pins with Software PWM to render three different waves of light — complete with gamma correction and full source code.
作成: 2026-01-22 ・ 更新: 2026-07-20MCP23017 with ESP32: Pinout, I2C Address (0x20-0x27), Code
A complete guide to the MCP23017 I/O expander with schematics. Add 16 GPIO pins to an ESP32 over I2C, set the address with A0–A2, and drive 8 LEDs and 3 switches with the Adafruit_MCP23X17 library. Step by step, with full sample code.
作成: 2021-09-30 ・ 更新: 2026-08-18ESP32 Network Clock (1): PCB Design with KiCad and JLCPCB
Part 1 of building a network-connected digital clock with an ESP32. Six large LCD panels driven through three MCP23017 I/O expanders, NTP time sync backed by an RTC, the whole thing laid out as a PCB in KiCad 8.x and ordered from JLCPCB.
作成: 2021-09-04 ・ 更新: 2026-07-20Arduino IR Remote: Receive and Decode with IRremote
Receive and decode IR remote control signals with Arduino, then use them to control 6 LEDs. Complete guide covering IR communication principles, hex signal decoding with IRremote, and step-by-step dimmer implementation — with circuit diagrams and full sample code.
作成: 2020-07-23 ・ 更新: 2026-07-20Arduino RGB LED PWM Control: 8 Colors to 16.7 Million
A complete guide to controlling full-color RGB LEDs with Arduino PWM. From basic 8-color digital output to smooth 16.7 million color gradients using three-phase sine waves — with circuit diagrams and ready-to-use sample code.
作成: 2020-07-13 ・ 更新: 2026-07-20Arduino ADC Explained: Analog Input and Resolution (R3/R4)
Read sensor voltages with the Arduino ADC and stream them to the serial monitor in real time. Covers 10-bit vs. 14-bit resolution, the voltage conversion formula, and PWM output — with code that runs on both R3 and R4.
作成: 2020-07-12 ・ 更新: 2026-07-20Arduino tone() and Piezo Buzzer: Notes, Wiring, Full Code
Build a playable electronic piano with an Arduino UNO R4 and a passive piezo buzzer. Complete with a note-to-frequency table, circuit diagram, annotated code, demo videos, and an FAQ covering the usual pitfalls — finished in about an hour.
作成: 2020-06-27 ・ 更新: 2026-08-18Ohm's Law LED Resistor Calculation for Arduino Beginners
Learn how to safely light up an LED using Ohm’s Law. Calculate the correct resistor value, wire a breadboard circuit, and avoid common mistakes — a complete beginner’s guide.
作成: 2020-06-15 ・ 更新: 2026-08-18