# Bergsonne Labs > Bergsonne Tiles are millimeter-scale, fully-encapsulated microelectronic modules — each a complete subsystem behind a standard pad interface. Composable across processing, sensing, actuation, power, memory, and communication, Tiles bring embedded intelligence to physical AI, from ideation to benchtop prototype to mass production. Bergsonne Studio is the browser IDE that composes and programs them. A tile solders onto your board like any other surface-mount component — it is not a breakout board or a dev kit. A breakout board is tens of times the area of the chip it carries; a tile is barely larger than the chip inside, so one design carries from benchtop prototype to mass production without being redrawn. Tiles are identified as `Family.Name` (for example `Sense.BP`, `Drive.H`, `Power.L.1N`), optionally with a revision (`Sense.BP` rev `a`). That identifier is stable across the catalog, the driver docs, Studio, and the datasheets — use it when referring to a part. Every page below marked (.md) has a plain-markdown twin at the same URL with a `.md` suffix — the same content without the page furniture. Prefer it when reading programmatically. Twins exist for the pages generated from our manifests (driver reference, SDK reference, the lookup tables); everything else is HTML only. ## Tile driver reference One page per driver, generated from the driver headers. Each lists the exposed C API and — unusually — the chip capabilities the driver does NOT expose, so you can tell a hardware limit from an unimplemented feature. - [Tile drivers](https://bergsonne.io/docs/tiles): Every tile ships with a platform-agnostic C driver. The conventions they share, generated from the driver headers. - [Writing a tile driver](https://bergsonne.io/docs/tiles/development): How to author a tile driver: the header/impl shape, the conventions, the @studio annotations, testing across Cores, and how publishing auto-derives the docs. - [Platform Abstraction Layer](https://bergsonne.io/docs/tiles/pal): The PAL (tiles_pal_t) is the thin bus interface every tile driver is written against — so one driver runs on any Core, over I²C or SPI, unchanged. ### Sense - [Sense.ACP](https://bergsonne.io/docs/tiles/sense/acp) (.md): TMD3725 ambient-light, RGB colour & proximity sensor. — 14 functions (3 documented driver gaps) - [Sense.BP](https://bergsonne.io/docs/tiles/sense/bp) (.md): ILPS22QS barometric pressure & temperature sensor. — 35 functions (2 documented driver gaps) - [Sense.CAM.P](https://bergsonne.io/docs/tiles/sense/camp) (.md): Ultra-low-power global-shutter camera driver for Sense.CAM.P (rev a). — 9 functions (8 documented driver gaps) - [Sense.CAP](https://bergsonne.io/docs/tiles/sense/cap) (.md): Capacitive trackpad driver for the Sense.CAP tile (IQS7211A). — 62 functions (7 documented driver gaps) - [Sense.I.6P6](https://bergsonne.io/docs/tiles/sense/i6p6) (.md): Complete driver for the Sense.I.6P6 tile (ICM-42686-P). Supports both I2C and SPI bus access via tiles_pal_t. — 70 functions (6 documented driver gaps) - [Sense.I.9](https://bergsonne.io/docs/tiles/sense/i9) (.md): 9-DOF IMU driver for the Sense.I.9 tile (rev c). — 47 functions (5 documented driver gaps) - [Sense.M.3G](https://bergsonne.io/docs/tiles/sense/m3g) (.md): Triaxial geomagnetic magnetometer driver for Sense.M.3G (BMM350). — 30 functions (4 documented driver gaps) - [Sense.MIC](https://bergsonne.io/docs/tiles/sense/mic) (.md): Complete driver for the Sense.MIC tile (analog MEMS mic + amp + ADC). I2C-only, command-based protocol via tiles_pal_t raw I2C. — 25 functions (1 documented dr… - [Sense.T.C](https://bergsonne.io/docs/tiles/sense/tc) (.md): Capacitive touch/proximity driver for the Sense.T.C tile (IQS323). — 34 functions (2 documented driver gaps) - [Sense.TOF](https://bergsonne.io/docs/tiles/sense/tof) (.md): TMF8806 time-of-flight distance sensor. — 37 functions (2 documented driver gaps) ### Drive - [Drive.A.2](https://bergsonne.io/docs/tiles/drive/a2) (.md): Dual-channel audio output driver for the Drive.A.2 tile (DAC63202W smart DAC + 2x TPA2028D1 Class-D amplifiers). Supports I2C and SPI bus access via tiles_pal_… - [Drive.DC.H](https://bergsonne.io/docs/tiles/drive/dch) (.md): H-bridge DC motor driver for the Drive.DC.H tile (rev a). — 32 functions (2 documented driver gaps) - [Drive.H](https://bergsonne.io/docs/tiles/drive/h) (.md): LRA/ERM haptic driver for the Drive.H tile (rev a). — 40 functions (1 documented driver gap) - [Drive.P](https://bergsonne.io/docs/tiles/drive/p) (.md): Piezoelectric haptic driver for the Drive.P tile (rev a). — 27 functions (2 documented driver gaps) ### Power - [Power.L.1N](https://bergsonne.io/docs/tiles/power/l1n) (.md): Power.L.1N tile driver — Nordic nPM1300 PMIC. — 18 functions (6 documented driver gaps) - [Power.L.1T](https://bergsonne.io/docs/tiles/power/l1t) (.md): Li-Ion charge controller driver for the Power.L.1T tile (rev a). — 38 functions (1 documented driver gap) ### Display - [Display.RGBW](https://bergsonne.io/docs/tiles/display/rgbw) (.md): RGBW LED driver for the Display.RGBW tile (LP5811). — 31 functions (1 documented driver gap) ### Store - [Store.O.128](https://bergsonne.io/docs/tiles/store/o128) (.md): Store.O.128 tile driver — Renesas/Adesto AT25QL128A 128 Mbit QSPI NOR flash. — 17 functions (1 documented driver gap) ## Overview - [Home](https://bergsonne.io/) ## SDK reference The core_ / hal_ / ll_ APIs, by subsystem. - [Analog (ADC / DAC)](https://bergsonne.io/docs/sdk/adc) (.md): Read analog inputs and drive an analog output: ADC raw/millivolt/temperature reads and DAC output — at the core, hal, or ll layer. - [API summary](https://bergsonne.io/docs/sdk/api): Every core_ / hal_ / ll_ function in the SDK, grouped by subsystem in the same order as the guides — switch the Core / HAL / LL toggle to view a layer. Derived… - [Audio (PDM mic)](https://bergsonne.io/docs/sdk/audio) (.md): Capture a digital PDM microphone: the SAI clocks the mic and DMAs its 1-bit bitstream, then a software CIC decimator turns it into PCM — at the core, hal, or l… - [BLE](https://bergsonne.io/docs/sdk/ble) (.md): Bluetooth Low Energy on Core.ST.W5: advertise, define a GATT server with read/write/notify characteristics, and handle connections — a Core-layer API over the… - [Clocks](https://bergsonne.io/docs/sdk/clocks) (.md): How the system clock is set up: core_init() brings it to the Core's rated max, the HSI / HSE / MSI / PLL sources, and how clocking differs across architectures. - [GPIO](https://bergsonne.io/docs/sdk/gpio) (.md): Drive and read tile pads as digital I/O at the layer you want: core_pad by pad number, hal_pad one tier down, or ll_gpio in raw MCU port + pin. - [I2C](https://bergsonne.io/docs/sdk/i2c) (.md): I2C master on every Core: probe and scan the bus, read and write device registers at 100 kHz / 400 kHz / 1 MHz — at the core_i2c, hal_i2c, or ll_i2c layer. - [Onboard LED](https://bergsonne.io/docs/sdk/led) (.md): Drive every Core's onboard status LED at the layer you want — the core_* helpers, or the raw ll_gpio writes underneath. - [Power](https://bergsonne.io/docs/sdk/power) (.md): Low-power modes and wakeup on every Core: sleep, stop, and standby; RTC / pin / EXTI wakeup; and backup registers that survive reset — at the core_power or ll_… - [Security](https://bergsonne.io/docs/sdk/security): The hardware RNG and the crypto accelerators: a true random source via core_rng / ll_rng, plus the AES / HASH / PKA engines and where they stand across the Cor… - [SPI](https://bergsonne.io/docs/sdk/spi) (.md): SPI master on the Cores that have it: full-duplex byte transfers with software chip-select, plus non-blocking DMA — at the core_spi, hal_spi, or ll_spi layer. - [Implementation status](https://bergsonne.io/docs/sdk/status): Which firmware features are implemented on which Core today — the feature × Core support matrix, framed by vendor and architecture. - [System](https://bergsonne.io/docs/sdk/system): Core-level firmware services available on every Core: delays and timekeeping, the independent watchdog, and the built-in fault handlers — at the Core, HAL, or… - [Timers & PWM](https://bergsonne.io/docs/sdk/timers) (.md): Hardware timers on every Core: PWM output, input capture, and periodic callbacks — at the core_timer / core_pwm, hal_timer, or ll_tim layer. - [UART](https://bergsonne.io/docs/sdk/uart) (.md): Serial UART on every Core: blocking TX with printf, polled or ring-buffered RX, and non-blocking DMA transmit — at the core_serial, hal_uart, or ll_uart layer. - [USB](https://bergsonne.io/docs/sdk/usb) (.md): USB device on the Cores that have it: a CDC virtual serial port with printf and buffered RX, plus vendor HID reports — at the core_usb or hal_usb_cdc layer. ## Worked examples - [Examples](https://bergsonne.io/docs/examples): Complete, working example projects that demonstrate the Bergsonne SDK end-to-end — firmware source, host-side tools, and a walkthrough of every part. - [Blink](https://bergsonne.io/docs/examples/blink): The simplest possible SDK project: initialize the Core, bring up USB, and blink the onboard LED at 5 Hz. The canonical first build. - [Sense.MIC Audio Stream](https://bergsonne.io/docs/examples/sense-mic-stream): Stream 12-bit microphone samples over USB with a sync-framed binary protocol and visualize the waveform live with a Python/matplotlib plotter. - [USB HID Reports](https://bergsonne.io/docs/examples/usb-hid): A composite USB device that streams structured sensor data as vendor-defined HID reports while serving a CDC debug console — with a Python host reader on hidap… - [USB Raw Streaming](https://bergsonne.io/docs/examples/usb-stream): Stream packed binary packets from a Core to a host over USB CDC with single-byte start/stop control, plus a Python reader with live throughput. - [WASM Blink](https://bergsonne.io/docs/examples/wasm-blink): Run a precompiled WebAssembly module on a Core. The blink logic lives in WASM bytecode and drives the LED through host imports via the WAMR interpreter — with… ## Getting started - [What is the tile platform?](https://bergsonne.io/docs/start): A five-minute orientation: tiles, Cores, drivers, the PAL, and how Studio and the C SDK fit together. - [SDK layers & API tiers](https://bergsonne.io/docs/start/api-tiers): How the Cores SDK is built up from registers to the core_* API (LL → HAL → TAL → Core), and the two tiers of the user-facing API — handle-based vs default-inst… - [Cores, tiles & the PAL](https://bergsonne.io/docs/start/architecture): How a tile system is put together: the Core, the peripheral tiles on shared buses, the drivers that speak to them, and the PAL that ports those drivers to any… - [Bootloading & flashing](https://bergsonne.io/docs/start/bootloading): How firmware gets onto a Core: SWD for debugging, touchless USB DFU for the edit-flash loop, the ROM bootloader for recovery, and how to keep a board recoverab… - [Coregen](https://bergsonne.io/docs/start/coregen): Coregen turns a project's declarative config.json into the C headers and init code that wire a Core's pins, clocks, buses, and tiles — so you write application… - [Install & flash](https://bergsonne.io/docs/start/install): Set up the toolchain, build a firmware image, and flash a Core tile over USB. - [Project Config](https://bergsonne.io/docs/start/project-config): config.json is the single source of truth for a project's hardware setup — the Core, clock, pads, buses, and tiles. This is the field-by-field authoring refere… - [Quickstart: your first build](https://bergsonne.io/docs/start/quickstart): Blink an LED on a Core tile — the Studio path or the C SDK path. - [@studio annotations](https://bergsonne.io/docs/start/studio-annotations): The canonical reference for every @studio directive — the tags inside Doxygen comments that turn an SDK module or tile driver into Studio palette blocks, DSL i… - [Studio vs the C SDK](https://bergsonne.io/docs/start/studio-vs-sdk): Two ways to build on the same tile hardware — when to use Studio, when to use the C SDK, and how they relate. ## Documentation - [Documentation](https://bergsonne.io/docs): Build with Bergsonne tiles — from your first blink to production firmware. - [HTTP API & MCP](https://bergsonne.io/docs/api): The public read API over the tile catalog, driver reference and lookup tables — no auth, CORS open, with an OpenAPI description — plus a read-only MCP server f… ## Tile catalog Every publicly available tile, by family. Detail pages carry the pad map, power rails, components, and datasheet. - [Catalog](https://bergsonne.io/catalog): Browse the Bergsonne tile catalog — the full family of plug-and-play modules. - [Core](https://bergsonne.io/catalog/core) - [Sth51](https://bergsonne.io/catalog/core/sth51) (.md) - [Stl01](https://bergsonne.io/catalog/core/stl01) (.md) - [Stl41](https://bergsonne.io/catalog/core/stl41) (.md) - [Stl42](https://bergsonne.io/catalog/core/stl42) (.md) - [Stw5](https://bergsonne.io/catalog/core/stw5) (.md) - [Display](https://bergsonne.io/catalog/display) - [Rgbw](https://bergsonne.io/catalog/display/rgbw) (.md) - [Drive](https://bergsonne.io/catalog/drive) - [A2](https://bergsonne.io/catalog/drive/a2) (.md) - [Dch](https://bergsonne.io/catalog/drive/dch) (.md) - [H](https://bergsonne.io/catalog/drive/h) (.md) - [P](https://bergsonne.io/catalog/drive/p) (.md) - [Flow](https://bergsonne.io/catalog/flow) - [Link](https://bergsonne.io/catalog/link) - [Power](https://bergsonne.io/catalog/power) - [Bb](https://bergsonne.io/catalog/power/bb) (.md) - [L1n](https://bergsonne.io/catalog/power/l1n) (.md) - [L1t](https://bergsonne.io/catalog/power/l1t) (.md) - [Sense](https://bergsonne.io/catalog/sense) - [Acp](https://bergsonne.io/catalog/sense/acp) (.md) - [I6p6](https://bergsonne.io/catalog/sense/i6p6) (.md) - [I9](https://bergsonne.io/catalog/sense/i9) (.md) - [Mic](https://bergsonne.io/catalog/sense/mic) (.md) - [Tc](https://bergsonne.io/catalog/sense/tc) (.md) - [Tof](https://bergsonne.io/catalog/sense/tof) (.md) - [Special](https://bergsonne.io/catalog/special) - [Store](https://bergsonne.io/catalog/store) - [O128](https://bergsonne.io/catalog/store/o128) (.md) ## Reference tables Generated from the canonical tile definitions — I²C addresses and pad assignments. - [Resources](https://bergsonne.io/resources): Reference tables and technical resources for the Bergsonne tile platform. - [I2C Addresses](https://bergsonne.io/resources/i2c-addresses) (.md): Default and alternate I2C addresses for every Bergsonne tile. - [Pad Assignments](https://bergsonne.io/resources/pad-assignments) (.md): The default function of each pad on every Bergsonne tile, with its alternates. ## Studio - [Studio](https://bergsonne.io/studio): Compose, simulate, and build tile systems in the browser. Start from a prompt or remix a community project, then open it in the canvas. ## Blog - [Blog](https://bergsonne.io/blog): News, notes, and deep dives from Bergsonne Labs. - [Saw It](https://bergsonne.io/blog/saw-it) - [The Missing Layer](https://bergsonne.io/blog/the-missing-layer) ## Events - [Events](https://bergsonne.io/events): Where to find Bergsonne Labs — conferences, exhibitions, and talks. - [Cps Iot 2026](https://bergsonne.io/events/cps-iot-2026) ## Lab programs - [Lab](https://bergsonne.io/lab): Reference designs, community projects, and the programs that get you building with tiles. - [Education program](https://bergsonne.io/lab/education): Discounted tile kits and classroom support for educators. - [Pilot program](https://bergsonne.io/lab/pilot): Early access to unreleased tiles for researchers, hackers, and contributors. - [Reference designs](https://bergsonne.io/lab/reference): Fully documented reference designs showcasing complete tile-based systems. - [Project showcase](https://bergsonne.io/lab/showcase): What the community is building with tiles. ## Workshops - [On-site workshops](https://bergsonne.io/workshops): Concept to prototype, with tiles: a half-day, hands-on workshop at your office. Learn the tile platform, then build a working device with your team. ## Concepts - [Concepts](https://bergsonne.io/concepts) ## Platform details - [Tiles](https://bergsonne.io/tiles): The technical reference for tiles: families, mechanical packages, electrical standards, integration workflows, and firmware support. ## About - [About](https://bergsonne.io/about): About Bergsonne Labs — company information and legal. - [Terms of Sale](https://bergsonne.io/about/terms): Terms and conditions for purchasing Bergsonne Labs products. ## Machine-readable - [Sitemap](https://bergsonne.io/sitemap.xml): Every public URL, enumerated from the data behind each page. - [robots.txt](https://bergsonne.io/robots.txt): Crawl policy. AI crawlers are named and explicitly allowed. - [llms.txt](https://bergsonne.io/llms.txt): This document — the machine-readable map of the site. - [OpenAPI 3.1 specification](https://bergsonne.io/api/openapi.json): Machine-readable description of the public read API — tiles, drivers, reference tables, search. Human version at /docs/api. - [Knowledge MCP server](https://bergsonne.io/mcp): Read-only Model Context Protocol server (JSON-RPC over HTTP POST) — tile search, definitions, driver APIs with their declared capability gaps, and the I²C / pa… - [llms-full.txt](https://bergsonne.io/llms-full.txt): Every manifest-generated page inlined as markdown — all tile driver references, the SDK reference, and the pad / I²C lookup tables in one fetch. --- Generated 2026-08-12. 105 public URLs, 18 tile drivers. Driver documentation generated from tiles@842d43e.