YURUNOX · MCU selection & sourcing

STM32F103C8T6 vs STM32F103CBT6

The main difference is guaranteed Flash capacity: 64 KB for C8T6 and 128 KB for CBT6. Both offer 20 KB SRAM, a Cortex-M3 core running at up to 72 MHz, and the same LQFP48 package and pinout. CB gives your firmware more storage—not more RAM or a faster processor.

For embedded engineers, OEM/EMS teams and component buyers
ST documentation + a public support case · Sources checked 5 September 2026

Blue Pill development board with a centrally mounted STM32F103-family microcontroller and surrounding connectors
STM32F103C8T664 KB Flash
STM32F103CBT6128 KB Flash
A development board is useful for prototyping; it is not evidence of a production lot's identity or guaranteed capacity. Photo: Avandalen, CC BY-SA 4.0. Displayed at reduced size, not cropped.
The buying decision in one minute

Should you choose STM32F103C8T6 or STM32F103CBT6?

Compare the complete memory plan, not just the application file. A custom bootloader, saved parameters and an update image can consume space that a headline firmware-size figure leaves out.

C8 is a sensible candidate when…

All programmed regions, reserved pages and planned growth fit inside 64 KB. Keep a validated C8 design when the approved feature plan needs no extra Flash; compare like-for-like quotations before changing the BOM.

CB is the stronger candidate when…

Your complete budget is above 64 KB but no more than 128 KB, or the approved roadmap justifies more storage. Validate the CB layout and keep the unchanged 20 KB SRAM limit in view.

Neither change solves…

A RAM shortage, insufficient CPU throughput, a missing peripheral or a budget above 128 KB. Those problems need a separate design review, not just an 8-to-B suffix change.

Same platform. Different Flash ceiling.

STM32F103C8T6 vs STM32F103CBT6: specification comparison

The capacity difference is Flash, not SRAM, CPU speed or package. This table compares the exact T6 variants. Do not extend this comparison to a different package or temperature suffix just because the first part of the number looks familiar.

Swipe the table sideways to see all columns →

Guaranteed device specifications; KB values below use 1,024-byte units.
CheckSTM32F103C8T6STM32F103CBT6Practical effect
Main Flash64 KB128 KBCB provides 64 KB more program/data storage.
SRAM20 KB20 KBNo extra stack, heap or live-buffer capacity.
Core / maximum clockArm Cortex-M3 / 72 MHzArm Cortex-M3 / 72 MHzNo clock-speed upgrade.
Package / bodyLQFP48 / 7 × 7 mmLQFP48 / 7 × 7 mmSame package and pinout for these variants.
Operating supply2.0–3.6 V2.0–3.6 VCheck the actual board's supply and I/O conditions.
T6 temperature grade−40 to +85 °C ambient−40 to +85 °C ambientA T7 offer is a separate ordering option.
Main-Flash erase page1 KB1 KBReserve whole pages for independently erased data.
Main-Flash address range0x08000000–0x0800FFFF0x08000000–0x0801FFFFEnd addresses are inclusive.

Sources: ST DS5319 datasheet, device overview and ordering information; PM0075, medium-density Flash organization.

Twice the Flash, not twice the microcontroller
C8T6 Flash
64 KB specifiedNot guaranteed for C8
CBT6 Flash
128 KB specified

Shared Flash scale: 0–128 KB. SRAM is a separate memory: 20 KB on both devices. The striped area is not an approved C8 storage region.

Read the whole order code

What do the C8T6 and CBT6 suffixes mean?

STM32F103C8 / BT6
C
48 pins. This is not the Flash-density field.
8 / B
64 KB / 128 KB Flash, respectively.
T
LQFP package. A U package code is not the same PCB footprint.
6
−40 to +85 °C temperature grade.
TR
An additional tape-and-reel ordering suffix; confirm the complete quoted part number and delivered packing.

ST's ordering scheme in DS5319 defines these fields. Packing requirements belong on the purchase order even when a short BOM description omits them.

Different leaded and leadless IC packages shown with a ruler to illustrate why package codes must be checked separately
Similar-looking IC names can hide very different terminal layouts. These are representative package examples, not samples of C8T6 or CBT6. Photo: NobbiP, CC BY-SA 3.0. Resized, not cropped.
A documented support case

Can you safely use 128 KB on an STM32F103C8T6?

No—not as a guaranteed production capability. C8 is specified for 64 KB; changing a linker limit does not change that rating. The following is a public ST support exchange, not a YURUNOX customer story or an in-house test. Its value is the manufacturer clarification behind a common purchasing mistake.

ST Community · 16 May 2023

What ST clarified about CubeIDE's Flash setting

A developer asked whether changing STM32CubeIDE's linker Flash size from 64 KB to 128 KB was enough for an STM32F103C8T6 project. In the accepted answer, Peter Bensch clarified that the IDE's 64 KB setting matched C8, while the specified 128 KB variant was STM32F103CBT6.

Production lesson: a successful experiment beyond the rated memory boundary does not turn C8 into a guaranteed CB substitute. Specify CB when the released design needs more than 64 KB, and retain the matching build target and purchase record.

Read the original question and accepted ST answer. Later user reports in the thread do not change the datasheet rating.

Do not test this by overwriting a working unit. An exploratory write or erase can destroy firmware or saved settings. Use controlled engineering samples and an approved recovery procedure; do not use an out-of-range write as an incoming-inspection shortcut.
Turn a specification into a decision

How much Flash does your complete firmware need?

Use the complete programmed image, including constants and Flash-resident initialization data—not only the code section. Then account for separate boot, data and update regions without counting the same bytes twice.

Use the linker map and programming addresses. Check code, constants and the Flash load copy of initialized data. Count each stored region once, including padding and image metadata; assess runtime data, stack and heap separately against SRAM. A file-size figure alone does not show where those bytes will be programmed.

8 + 50 + 2 + 0 + 8 = 68 KiBCustom bootloader + application + data pages + staging + growth

Illustrative engineering budget, not a measured customer project: the current 60 KiB layout fits C8 with 4 KiB left. Add an 8 KiB growth allowance and it exceeds C8 by 4 KiB. CB has 60 KiB remaining after that allowance.

Calculate your main-Flash allocation

1 KiB = 1,024 bytes. Enter 0–1,024 per field. This conservative estimate rounds each allocation up to a 1 KiB page and assumes separate, non-overlapping regions. It is a planning rule, not a requirement that every code section occupy its own page. Include headers, signatures and alignment gaps once. Only include update storage kept in internal main Flash. The second-image button copies the application size; adjust it for any different package size or metadata.

Planned allocation: 68 KiB

This budget exceeds C8. It fits within CB's capacity; validate the actual address layout and update process.

C8T6 · 64 KiB4 KiB over capacity
CBT6 · 128 KiB60 KiB remaining

Capacity planning only: this does not check SRAM, linker addresses, image validity, endurance, write protection or power-loss recovery. A factory system-memory bootloader and option bytes are outside the main-Flash budget; a custom bootloader stored in main Flash is not.

Address check, using a separate illustrative example: a 60 KiB application loaded after an 8 KiB bootloader begins at 0x08002000 and ends at 0x08010FFF (inclusive). Although the application is smaller than 64 KiB, it extends beyond C8's 0x0800FFFF limit. Check start address + length in bytes − 1 for every programmed region, and confirm reserved pages neither overlap nor fall outside the device.

A manufacturer implementation example

How much Flash should you reserve for saved settings?

Reserve space for the storage method, not just the value bytes. For ST's two-page EEPROM-emulation example, these devices need at least 2 KiB of Flash allocation; metadata and record handling reduce the usable payload.

ST AN2594 · EEPROM emulation

Why EEPROM emulation reserves two pages

ST's AN2594 describes emulating EEPROM with at least two equal-size Flash pages and a page-status scheme for moving data between them. On these medium-density parts, two 1 KiB pages occupy 2 KiB of main Flash. That is an allocation, not 2 KiB of usable parameter payload.

Record overhead, update frequency, endurance and interrupted-write recovery still need evaluation. AN2594 is a documented design reference, not proof that an unreviewed implementation is ready for your product.

Sources: AN2594, section 2.1 and PM0075, medium-density page organization.

What changes when you move the saved-data pages?

Suppose a C8 product stores calibration in its final two pages. Expanding the linker region for CB can make those old addresses available to application code unless they remain explicitly excluded.

If a new release instead stores data at CB's final two pages, it also needs a migration plan. Define how it recognizes the old format, preserves the values and handles an interrupted transfer. A later downgrade must not assume the old layout still exists.

C8 · final two page starts0x0800F8000x0800FC002 KiB reserved at the 64 KiB boundary
CB · final two page starts0x0801F8000x0801FC002 KiB reserved at the 128 KiB boundary
Illustrative migration scenario: these addresses are derived from the documented memory map. They are not a claim that ST's example or your firmware uses this exact placement. Confirm the application's linker and storage definitions.
Same pins do not finish the approval

Can C8T6 and CBT6 replace each other?

Yes, they are replacement candidates for the same package and pinout, but approval is directional. C8-to-CB can retain a validated smaller-memory layout; CB-to-C8 requires every programmed and reserved region to fit within 64 KB. Neither direction is automatically qualified for your product.

64 KB → 128 KB

Replacing C8T6 with CBT6

A C8 image using only common resources and the original address layout can be a starting point on CB. A different density does not inherently require changing the board.

  • Make the BOM, build target and programming job agree on the approved device; a linker change alone is not a device approval.
  • Review hard-coded Flash ends, erase ranges, boot checks and parameter addresses.
  • When using extra capacity, release the updated linker map and image together.
  • Validate normal operation, updates, recovery and retained data on the offered material.
128 KB → 64 KB

Replacing CBT6 with C8T6

Treat this as a capacity reduction. “The binary is under 64 KB” is not enough if it starts above the Flash base or depends on data at a higher address.

  • Confirm every programmed region and reserved page lies inside 0x08000000–0x0800FFFF, with no overlaps.
  • Rebuild or requalify the complete smaller-memory layout, including bootloader offsets.
  • Check update packages and any rollback image—not only a clean factory install.
  • Do not approve C8 as an alternate while a CB-only firmware release remains in use.
Extra Flash is not a second independent update bank. PM0075 describes Flash accesses stalling during program/erase operations. A second image fitting in CB does not by itself provide read-while-write execution, atomic replacement or safe rollback. Those are update-system design and validation tasks. See PM0075's read/program/erase behavior.
Blue Pill development board showing its micro-USB connector, microcontroller, boot jumpers and pin headers
A USB connector does not tell you which bootloader is installed or supported. This is a development-board illustration, not an approved programming fixture. Photo: Popolon, CC BY-SA 4.0. Resized, not cropped.
One easy-to-miss implementation detail

Can you program these STM32F103 devices over USB?

Not through a factory USB DFU bootloader on these variants. ST's AN2606 lists USART1 for their factory system-memory bootloader. USB firmware loading requires an appropriate custom bootloader; a USB connector alone does not establish that capability.

If your development board accepts firmware over USB, determine which software provides that function. A custom USB bootloader stored in main Flash consumes part of the 64 KB or 128 KB budget and may change the application start address.

For production, record the programming interface, boot-entry conditions, image address, erase policy and recovery access. Changing C8 to CB does not define those choices for you.

Source: AN2606 Rev 70, STM32F10xxx devices, Table 45. Other STM32 subfamilies have different system-bootloader interfaces.

From engineering choice to released material

What should buyers verify before approving a quote?

Do not compare two quotations until the full part number, packing, condition and acceptance requirements match. A lower unit price is not useful if the offered device cannot support the released memory layout.

  1. Freeze the exact requirement

    Record C8T6 or CBT6, quantity, packing format, delivery need and written alternate policy. Keep the original requirement visible when requesting a CB alternative to C8.

  2. Connect evidence to the lot

    Request readable package and original-label photographs, source documentation and the association between supplied quantity and lot. A stock photo or familiar chip marking is not that association.

  3. Review applicable errata

    Both densities fall under ES096. Check the relevant silicon revision and the limitations affecting your functions; do not assume a larger Flash option removes them.

  4. Audit the build and programmer

    Keep the target, linker map, image checksum, programmer configuration and erase boundaries with the release. Check that saved calibration is preserved or deliberately re-provisioned.

  5. Test the field path

    Include an update from the previous release, interrupted-update recovery, retained parameters and any supported downgrade. A clean initial flash is only one operating path.

  6. Release the alternate explicitly

    Document which board and firmware versions accept each device. Link the incoming material record to that approval so a later purchase does not silently reverse the substitution.

Revision reference: ST ES096, medium-density device limitations. Match the marked silicon revision to the relevant errata entries. A revision ID is not a unique full-part-number or authenticity check; keep it connected to the offered device and lot evidence.

A useful RFQ includes more than “STM32F103”

Send: the full manufacturer part number; required quantity and delivery date; tape-and-reel or other agreed packing; condition and traceability requirements; and whether alternates are prohibited or subject to engineering approval.

For a proposed density change: identify the approved original part and proposed replacement separately. Ask for a separate quotation line and retain your engineering acceptance criteria. Share only the technical information needed to resolve the sourcing question.

Make the requested variant unambiguous
Need C8T6, CBT6 or a reviewed alternate?

Send YURUNOX the full part number, quantity and delivery requirement. Include the packing and evidence you need to evaluate an offer. YURUNOX is an independent electronic-component sourcing partner; engineering approval remains specific to your product.

  • Exact manufacturer part number and packing
  • Quantity, destination and required date
  • Traceability and inspection requirements
  • Written rules for any proposed alternate
Discuss your STM32 requirement
Technical sources & scope

This guide combines manufacturer specifications, a public support case and clearly labeled engineering examples. It does not report YURUNOX laboratory measurements or customer shipment outcomes. Sources checked 5 September 2026; use the applicable current documentation for your release and offered lot.

  1. ST DS5319: STM32F103x8 / STM32F103xB datasheetRev 20 · Specifications, package and ordering-code fields.
  2. ST STM32F103C8 product page and STM32F103CB product pageOfficial device-family and orderable-variant references.
  3. ST PM0075: Flash memory programming manualRev 2 · Medium-density memory organization and Flash operations.
  4. ST Community: C8 Flash-size setting in STM32CubeIDE16 May 2023 · Original question and accepted manufacturer clarification.
  5. ST AN2594: EEPROM emulation in STM32F10x microcontrollersRev 3 · A documented two-page storage approach, not a product-specific validation report.
  6. ST AN2606: Introduction to system memory boot modeRev 70 · STM32F10xxx bootloader configuration, Table 45.
  7. ST ES096: Medium-density device limitationsRev 15 · Applicable limitations and revision identification.
Cart (0 items)