The Core.ST.W5 now runs Thread and Bluetooth in one firmware image. The SDK provisions a Thread network over Bluetooth and rejoins it on boot, and the UDP receive callback now takes a single packet struct, which changes its signature. Studio follows along: set up Thread networks on a W5, use both radios in one project from the new Wireless block, and reset a board over SWD, USB or Bluetooth, backed by the new core_reset() and core_reset_reason(). Claude in Studio can now program several boards in one request, and it uses prompt caching and Sonnet 5.5. On the driver side, a review of all 16 public drivers fixed four high-priority bugs and brought their docs and twins back in line with the code.
Changelog
What changed in the tiles SDK, the tile drivers and Studio, week by week. Entries come from merged pull requests; SDK and driver changes link to the tiles repository. Follow along with the Atom feed.
Week 42
October 12 to 18, 2026
Thread and Bluetooth together on the W5
SDK
- Improvedcore_reset(), core_reset_reason() and remote reset over USB and BLE tiles#337
- ImprovedFix drift between docs, status table, generators and code tiles#335
- NewBreakingUDP receive callback takes one packet struct tiles#334
- FixAES shared with BLE broke Thread's self-test; visible Thread fatals tiles#332
- NewProvision the Thread network over BLE; Thread joins on boot (milestone 2, step B) tiles#331
- NewBLE + Thread in one Core.ST.W5 image (milestone 2, step A) tiles#330
Drivers
- ImprovedFix four P1s and doc/twin drift across 16 public driversDisplay.RGBW, Drive.A.2, Drive.DC.H, Drive.H, Drive.P, Power.L.1N, Power.L.1T, Sense.CAP, Sense.HR, Sense.I.6P6, Sense.I.9, Sense.M.3G, Sense.MIC, Sense.T.C, Sense.TOF, Store.O.128 tiles#336
Studio
- NewReset the board from RUN, over SWD, USB or Bluetooth web#570
- FixOpening a board drops a selection on another board web#566
- NewPrompt caching for Studio's Claude, and Sonnet 5.5 web#565
- NewClaude programs several boards in one request web#556
- NewThread's packet receive callback, and POWER sees a probe rail already on web#555
- NewBluetooth and Thread together on the W5 web#551
- FixKeep Bluetooth and Thread apart until combined W5 images boot web#548
- NewBoards, a Wireless block, and Bluetooth + Thread together on the W5 web#547
- NewThread networks on the Core.ST.W5 web#542
Week 41
October 5 to 11, 2026
SDK
- NewOpenThread on Core.ST.W5, milestone 1; shared timer fix tiles#329
- ImprovedMove shared radio plumbing from sdk/ble to sdk/wpan; ST license notice tiles#328
- FixRead die temperature and VDD without an ADC pad tiles#327
- Improvedcore_ble.h: set_value notifies by itself; notify() is a documented no-op tiles#325
- ImprovedPeripheral-side ATT MTU exchange; Core.USB.line DSL event tiles#324
- NewFirmware updates over Bluetooth for Core.ST.W5, delta updates, app-last link order tiles#323
- FixCharacteristics are variable-length (Is_Variable was 0 = fixed); zero-initialize them tiles#317
Drivers
- NewPower.L.1T: Output voltage as a Studio setting (3.4.0) tiles#322
- FixSense.M.3G: Init leaves the BMM350 measuring, getters refresh themselves; @studio usage (1.1.0) tiles#321
- NewPower.L.1N: USB-C source detection and opt-in auto VBUS limit (1.3.0) tiles#320
- Fixpower_l_1t LDO comment, pad 10 note now says 100 mA tiles#319
- FixDrive.P: Settle the supply for 100 ms at the end of init (3.6.1) tiles#316
- NewDrive.P: Start in the low range; per-sample voltage limits; hazard-flagged controls (3.6.0) tiles#315
Studio
- FixDevice log as a pane like the Scope; Config tab; quieter scope web#538
- NewThe vibe coder can ask to switch a Core to C web#537
- FixFlash panel back to buttons; Core call headers; log Copy/Clear; dev:bench web#534
- FixAttach a granted USB Core on load and plug-in; USB 5V by default web#533
- ImprovedBLE inspector hint points at the Core's Bluetooth section web#529
- Improvedset_bluetooth_contract tool for Claude; contract in Capabilities web#526
- FixIntent limits from the driver, duplicate bindings, POWER without the declaration web#525
- FixShow a CoreProbe supply that survived a page reload web#524
- FixAn SWD flash replaces a W5 board key Studio doesn't have web#523
- NewBluetooth firmware updates for Core.ST.W5, on-chip SWD compare, flash panel redesign web#518
- NewIdentify serial-update Cores over serial, not the ST bootloader web#517
- NewC mode for the vibe coder: Claude writes the behavior in C against the full driver API web#516
- FixTell Claude how to drive read-then-get tiles (Sense.M.3G never changed) web#511
- NewUSB-C connector CC1/CC2 pins, wired to the Power.L.1N's CC inputs web#509
- FixPower.L.1T V+ rated 100 mA, not 10 mA web#508
- FixThe scope ignores a data frame sent again over BLE web#506
- FixAuto-wire puts I2C on the Core's pull-up bus and switches the pull-ups on web#505
- NewHonor hazard-flagged driver settings web#499
- FixPass an out-buffer to every fixed-buffer host call; Help me fix knows Studio builds web#498
Week 40
September 28 to October 4, 2026
SDK
- FixA serial update starts the next image clean; DBGMCU trace fixes; ITM no longer hangs without a probe tiles#308
Drivers
- ImprovedPromote Sense.CAP to public: its definition, driver, twin and tests return tiles#314
Studio
- ImprovedCatalog: Sense.CAP is public (beta) web#487
- ImprovedStudio palette: only tiles you can build against web#477
Week 39
September 21 to 27, 2026
SDK
- NewI3C controller, tiles_pal bridge and coregen key; Sense.I.6P6 over I3C tiles#302
- FixBus recovery bit-bangs the pins the pads actually use (H5, W5) tiles#301
- FixSWD config writes DBGMCU where it lands; SWD attach test tiles#300
- NewSPI and SPI DMA, circular ADC DMA, core_nvm on EDATA tiles#299
- NewFix the H5 foundation; USB serial, 1200-baud touch and serial update tiles#298
- ImprovedThe Cores are renamed after their silkscreens: Core.ST.L4.1 is now Core.ST.L4, and likewise for the other Cores. Old names keep working. tiles#297
- NewL0 LSI calibration; fixes from the first Core.ST.L0.1 bench tiles#296
- FixDual-bus tiles get their own SPI chip-select (coregen reads bus2) tiles#295
- FixPer-tile SPI chip-select, so several SPI tiles can share a bus tiles#294
- NewSPI master done properly on L4 and W5 (multi-byte, DMA, timeouts) tiles#293
- NewFlash-backed core_nvm on L4 and W5 (1 KB, survives reflash) tiles#291
- FixL4 USB never blocks, survives Stop, and wakes a sleeping Core tiles#285
- ImprovedPublish SDK gaps, fill the API reference, correct status values tiles#284
- FixClock levels, W5 BLE hang, and audit small bugs (L0, L4, W5) tiles#283
- FixSleep, RTC, backup and watchdog on L0, L4, W5 tiles#280
- NewSense.CAM.P: Driver 1.0.0 (datasheet + bench audit), dual-bus core_tiles_pal2, twin registered, definition from the DB tiles#277
- FixWBA ADC4 VREFINT / temperature channels and calibration; W5 status-LED scaling tiles#269
- NewStatus LED brightness holds across VDD tiles#259
- FixL422 FPU enable; Core.ST.L4.1 twin to the datasheet tiles#258
- NewFlash a running L4 over USB serial, no bootloader tiles#254
- FixEnable VREFINT on Core.ST.L0, and never measure VDDA mid-DMA tiles#245
- FixRaise the characteristic table from 16 to 24 tiles#243
- Improvedcore_scope: first-class Scope streaming for hand-written C, USB and BLE tiles#242
Drivers
- NewI3C controller, tiles_pal bridge and coregen key; Sense.I.6P6 over I3C tiles#302
- ImprovedThe Cores are renamed after their silkscreens: Core.ST.L4.1 is now Core.ST.L4, and likewise for the other Cores. Old names keep working.Core.ST.H5, Core.ST.L0, Core.ST.L4.2, Display.RGBW, Drive.A.2, Drive.H, Drive.P, Sense.CAM.P, Sense.CAP tiles#297
- FixDrive.P: Wake from sleep, clicks end at 0 V, FIFO-paced streaming, recovery keeps UPI (3.5.0)Drive.H tiles#288
- FixDrive.A.2: Wake keeps mute, per-channel set_mv reference, limiter on by default (3.3.0) tiles#286
- NewSense.CAP: Driver 1.0.0, general-purpose IQS7211A driver; twin to match tiles#282
- NewSense.CAM.P: Driver 1.0.0 (datasheet + bench audit), dual-bus core_tiles_pal2, twin registered, definition from the DB tiles#277
- NewSense.HR: Driver 1.0.0 (revived from wip/sense-hr, datasheet-audited), Studio palette + twin, definition fixed in the DB tiles#276
- NewSense.M.3G: First reviewed release (1.0.0), Studio palette + twin, definition from the DB tiles#275
- FixSense.MIC: Production signal chain (CMM-2718AT-38164W, AD8605 24x, half-wave), SPL math, read validation, reference wake, sleep; twin to the schematic (2.4.0) tiles#274
- NewModel the last stand-in calls on Sense.TOF and Sense.T.C tiles#273
- FixSense.T.C: Sense the surface on CRx1, configure the chip fully, recover from resets; Vibe controls; twin to match (1.4.0) tiles#271
- FixSense.TOF: Command handshakes, calibration/state handling, short-range reliability; docs and twin to the datasheet (1.6.0) tiles#270
- FixCore.ST.W5 to the datasheet and schematic tiles#268
- FixStore.O.128: Transport guards, report program/erase timeouts, chip-erase to 300 s (1.1.0) tiles#267
- FixDrive.A.2: Per-channel waveform start/stop, AGC write order, sine pitch; gain control (3.2.0) tiles#266
- FixDrive.DC.H: Locked fields were dropped; speed scale 16-128 rad/s with 2π; Vibe controls (4.3.0) tiles#265
- FixPower.L.1N: LED roles were backwards; NTC fully off; charge-current changes apply (1.2.0) tiles#264
- NewDrive.H, Display.RGBW: Vibe controls for the settings that matter most tiles#263
- FixPower.L.1T: 4.20 V in init, is_charging gates, comparator polarity; docs to the schematic (3.3.0) tiles#262
- FixDisplay.RGBW: Blue/white were swapped; animations ran dark (Auto_DC): 2.5.0 tiles#261
- FixDrive.P: Cap output at the rated ±95 V; Studio buffers for samples / sense (3.4.0) tiles#260
- FixL422 FPU enable; Core.ST.L4.1 twin to the datasheet tiles#258
- ImprovedDrive.H: DRV2605 amplitude math, Studio actuator settings; twin to the datasheet tiles#257
- NewRail chains + efficiency in the power contract; Power.BB to the datasheets tiles#256
- FixSense.I.6P6: Datasheet corrections, driver 1.3.0 tiles#255
- NewTile twins live here, next to their drivers tiles#251
- NewSense.TOF: Vibe settings for range, rate, iterations and threshold tiles#249
- NewSense.CAP: v0.4.0: bounded polled latency, burst channel reads tiles#244
- ImprovedPower.L.1N: expose the USB input current limit; first Vibe Settings tiles#241
Studio
- FixRecover from ack WAIT, and wait for a draining target rail web#462
- FixH5 SWD flash log reaches 100 % and drops the BOOT0 note web#461
- FixOffer SWD for USB-DFU Cores (the H5's CoreProbe path was unreachable) web#460
- NewH5 support: SWD flash over the CoreProbe + serial update web#459
- NewThe renamed Cores (Core.ST.L4 / L0 / H5); saved projects migrate on open web#448
- FixAccept the renamed Core stems alongside the old ones web#446
- NewAuto-wire uses the SWD and secondary-edge pads last web#439
- NewDual-bus tiles share an SPI bus with a cs_id (tiles#295) web#438
- FixDistinct chip selects for SPI tiles sharing a bus (tiles#294) web#435
- FixW5 SWD flash refuses images that reach the stored-data and bond pages web#427
- NewCore bus tuning reaches the build; rules for unrunnable I2C speeds web#426
- FixExplain the one-time reconnect after a Core gets its own USB serial (tiles#285) web#425
- NewCore pull-ups reach the build; rules for coregen's new refusals web#414
- NewReturn coregen's warnings and notes from successful builds web#413
- NewWarn when Studio and the build service disagree on the SDK web#409
- NewStop the Claude answer in flight web#406
- FixDraw T24 tiles centred, not as a module stack web#403
- NewTiles on two buses get a dual-bus PAL (core_tiles_pal2) web#391
- NewList Sense.HR as a live driver web#388
- NewList Sense.M.3G as a live driver web#385
- NewPower solver honors rail chains, linear rails and efficiency web#349
- FixKeep dialogs and inputs steady while Claude streams web#345
- NewFlash L4 Cores over USB serial, with DFU as the fallback web#343
- ImprovedDrop the Firmware tab's Vibe view; Vibe is its own interface web#342
- NewLabel every tile short of production with its status web#341
- FixStudio's Log out works; the account level shows live web#340
- NewEach viewer's own tiles in Studio's pickers web#337
- NewLoad the tiles bundle at runtime; redeploy the builder only when it matters web#333
- NewTwins declare what a person can do to them web#329
- NewOne twin per tile, one contract web#326
- NewOne tile-visibility rule, with grants, for every surface web#328
- ImprovedA Capabilities sheet: what a part can do, and what can reach it web#325
- ImprovedLet the assistant change a tile's settings web#324
- NewSense.TOF settings, a distance slider, and datasheet power web#322
- ImprovedWarn when two parts share an I²C address, and make the fix work web#321
- ImprovedScope: always there, sized by hand, and smooth web#320
- NewShow and hide channels, a full-screen view, and plots from the twin web#316
- FixDeleting the selected tile no longer white-screens the editor web#315
- NewVersions, starred states and going back, in Vibe's History tab web#309
- NewSteady auto y-axis, and a per-strip fixed range web#308
- NewLower scope(...) to the SDK's core_scope web#306
- ImprovedOne owner for a tile's spellings; Core lookups fail at compile time web#302
- FixA W5 is told it has a radio web#301
- FixMake the default Power pick deliberate; run workspace tests in CI web#300
- NewThe chat no longer locks while Claude works web#299
- NewPick from the viewer's tier catalog, tag pre-release tiles web#298
- NewStream scope(...) over Bluetooth on a Core with a radio web#297
- ImprovedVibe digital twin, open slots and current limits; simulator + CoreProbe connect fixes web#294
Week 38
September 14 to 20, 2026
SDK
Drivers
- ImprovedVibe Settings: scale= (sub-unit settings) and Sense.MIC loudness thresholds tiles#238
- ImprovedVibe Settings: when= dependencies, and Sense.MIC (with a reference-selection fix)Sense.I.6P6 tiles#237
- FixDisplay.RGBW: @version 2.4.1, and gate the tag against the macros tiles#230
- FixSense.I.9: ACCEL_CONFIG 0x0B: 0x09 selected ±2 g against ±4 g DMP scale constants tiles#236
- ImprovedVibe Settings: driver-defined settings, rules and docs (Sense.I.6P6) tiles#233
Studio
- ImprovedShared-call settings in the story, with codes shown as what they mean, and updated driver manifests web#291
- ImprovedVibe: scaled settings, power in the story, details toggle web#290
- ImprovedVibe: the living story, the inspector, and system power web#288
- ImprovedStudio Vibe interface: one Claude, a living story, driver-defined Vibe Settings web#282
- NewVibe view: describe what the Core should do, the program appears web#280
- NewLive Scope: stream DSL variables over USB and plot them web#279
Week 37
September 7 to 13, 2026
SDK
- Improvedcore_stepper STEP/DIR pulse generator (+ USB printf overflow fix) tiles#231
Week 36
August 31 to September 6, 2026
Drivers
Studio
- ImprovedDisplay.RGBW: mirror driver v2.4.0 safe defaults, re-vendor, repin build SDK web#272

