Embedded Calculators & Part Finder

Size a value with 64 free calculators, then find the real component that fits — in stock, at the best price. For MCU, power, RF & firmware. No account.

📐
PWM / Timer
Frequency, period, duty cycle
📡
UART Baud Rate
Error rate, PASS/FAIL check
📊
ADC Resolution
LSB voltage, SNR, dynamic range
🐕
Watchdog Timer
STM32 IWDG & WWDG timeouts
🎛
I2C Timing
Bus timing & pull-up values
🚌
CAN Bus Bit Timing
STM32 bxCAN/FDCAN & MCP2515
🔌
SPI Timing
Bit period, frame, throughput
🔗
RS-485 Bus
Cable length, termination, bias
🚗
LIN Bus Timing
Bit, break, frame time
🏭
Modbus RTU Timing
Char & inter-frame gaps
🔁
Ring Buffer / DMA
Buffer sizing
🧩
Register Map → C
Bitfield struct & macros
🧾
CRC → C Code
Lookup table & function
⚙️
Stepper Motor
Steps/rev, microstep, pulse rate
🌀
BLDC / PMSM Speed
Motor electrical freq, pole pairs
🎯
Rotary Encoder
Motor encoder counts/rev
🔧
Motor Torque ↔ Power
N·m, RPM, Watts, hp
🔥
MOSFET Power Loss
Conduction & switching loss
🧲
Transformer Turns
Ratio, Ns, current ratio
🔋
LDO Dropout / Power
Heat dissipation & efficiency
🎵
I2S Audio Clock
BCLK, LRCLK, bit period
USB Data Lines
Bit time, 90Ω, termination
🌐
Ethernet Cable
Bit time, delay, 100m limit
🔲
Bit Field Visualizer
32-bit register breakdown
🔢
Q-Format Converter
Float ↔ fixed-point
🧮
Number Base Converter
Dec, Hex, Bin, Oct converter
🔢
IEEE 754 Visualizer
32-bit Float & 64-bit Double
🔄
Endian Swap
Big/Little/Mid-Endian byte swap
📦
Struct Alignment
C struct padding & visualizer
💾
Memory & Transmission
Bytes, baud rate & sample times
🔠
Glyph Mapper
7-Segment & Character LCD custom font generator
💎
Crystal Load Cap
Oscillator load capacitor sizing
Ohm's Law
V, I, R, P — any 2 → all 4
Voltage Divider
Vout, loaded divider, Thevenin
💡
LED Resistor
Series/parallel configs & E24
🎨
Resistor Code
Color bands & SMD decoder
🔺
Op-Amp Gain
Amp configurations & Schmitt
📐
Instrumentation Amp
3-op-amp in-amp gain & Vout
🔻
Op-Amp Resistor
Inverting/Non-inv → R2,R3,R4
🔀
BJT Bias CE
Q-point & stability factor
NE555 Timer
Astable / monostable
🔋
Capacitor Charge
RC time constant, τ milestones
📉
Buck / Boost
Switching regulator design
🔌
AWG Wire Gauge
Wire gauge & voltage drop
🧮
Series / Parallel
R · C · L equivalent value
🔋
LM317 Regulator
Adjustable Vout & R2 solver
Current Divider
Branch currents in parallel R
LC Resonance
LCR resonant freq, Q-factor
RC Filter
Cutoff frequency, gain & phase
🔊
dB Converter
dB, dBm & mW bidirectional
🔄
CRC Calculator
CRC-8/16/32, 7 polynomials
🔄
Checksum / CRC
XOR, Sum8/16, LRC, CRC
🛣️
PCB Trace Calc
IPC impedance & trace width
🎚
Active Filter
Sallen-Key 2nd-order LPF/HPF
📡
RF Trans. Line
Microstrip impedance (IPC-2141)
📶
VSWR / Return Loss
Γ, return & mismatch loss
🛰️
RF Link Budget
FSPL, Rx power, margin
〰️
Wavelength / Antenna
λ, λ/2 dipole, λ/4 whip
📶
Attenuator Pad
T / Pi resistor values (dB)
🌀
Coil Inductance
Air-core solenoid (Wheeler)
🔋
Battery Life
Estimated system run-time
🌡
Temperature
Units & RTD sensor temps
🌉
Wheatstone Bridge
Bridge Vout & balance
🔥
Junction Temp
Thermal Tj & max power
📦

C Struct Memory Alignment Visualizer

Visualize memory offsets, compiler padding waste, and data boundaries for 32-bit architecture.

C Struct Definition
32-bit Memory Grid Representation
Data
Padding (Waste)
Memory Offset Breakdown Table
Offset (Byte) Type Member Name Size (Bytes)
💡 Struct Alignment & Optimization Guide

In 32-bit embedded systems (like ARM Cortex-M), the compiler aligns member variables to their natural boundaries. This can introduce invisible padding bytes (waste) if members are declared in an inefficient order.

Alignment Rules:

  • char / uint8_t: 1-byte alignment
  • short / uint16_t: 2-byte alignment
  • int / float / pointer: 4-byte alignment

How to Optimize:

Sort your struct members by size in descending order (largest types first). This minimizes padding waste to 0%.

Try This Example (Copy & Paste to Visualizer):

❌ Unoptimized (12 bytes)
uint8_t status;
uint32_t timestamp;
uint8_t mode;
✅ Optimized (8 bytes)
uint32_t timestamp;
uint8_t status;
uint8_t mode;
💡 Usage & Formula

C Struct Alignment represents how compilers lay out variables in memory. 32-bit MCUs (like ARM Cortex-M) align variables to their natural boundaries, inserting padding bytes (waste) if declarations are unoptimized.

Alignment Rules:

  • char / uint8_t: 1-byte alignment
  • short / uint16_t: 2-byte alignment
  • int / float / pointer: 4-byte alignment
  • union: Starts at offset 0, aligned to maximum member alignment
  • bit-field: Packed into base type containers

Optimization: Sort your structure members by size in descending order (largest first) to minimize compiler-introduced padding to 0%.

When you need it: Laying out a C struct for a packet, register block or shared memory, and wondering why sizeof is bigger than the sum of the members — or chasing a hard fault from an unaligned access.

Worked example: struct { char a; int b; char c; } on a 4-byte-align target lays out as a@0, pad@1-3, b@4, c@8, pad@9-11sizeof = 12, not 6. Reorder to { int b; char a; char c; } and it packs to sizeof = 8.

Tips & gotchas:

  • Order members largest-to-smallest to minimise padding without any packing pragma.
  • #pragma pack (or __attribute__((packed))) gives a wire-exact layout, but reading a misaligned member can fault or run slowly on Cortex-M0 and other strict-align cores.
  • Natural alignment usually equals the type's own size; a struct's alignment is that of its widest member.
  • Don't take the address of a packed member and dereference it as an aligned pointer — copy the bytes instead.