[00:00:00.000]boot:*** Booting nRF Connect SDK v2.6.0-7f27b264e949 ***
[00:00:00.001]boot:*** Using Zephyr OS v3.7.99-17075dce2342 ***
[00:00:00.002]boot:Reset reason: PIN_RESET
[00:00:00.003]flash:SPI NOR flash: W25Q128JV (16 MB) on SPI1, CS=P0.17
[00:00:00.004]flash: JEDEC ID: EF 40 18 — Winbond W25Q128JV confirmed
[00:00:00.005]flash: Data log partition: sector 0x100–0x7FF (7 MB), 892 records stored
[00:00:00.010]wdt:Watchdog timer configured: timeout=4000ms, mode=reset
[00:00:00.012]pwr:DCDC regulator enabled (REG1 3.3V → 1.8V)
[00:00:00.013]pwr:Voltage: VDDH=3.28V, VDD=1.80V (brownout threshold: 1.7V)
[00:00:00.020]i2c0:TWI0 initialized: 400 kHz, SDA=P0.26, SCL=P0.27, pull-up=internal
[00:00:00.021]i2c0:Bus scan: 0x68 (MPU-6050) 0x76 (BME280) — 2 devices
[00:00:00.025]mpu6050:WHO_AM_I [0x75] = 0x68 ✓
[00:00:00.026]mpu6050:PWR_MGMT_1 [0x6B] = 0x01 (PLL w/ X-axis gyro ref)
[00:00:00.027]mpu6050:CONFIG [0x1A] = 0x03 (DLPF bandwidth=44Hz, Fs=1kHz)
[00:00:00.028]mpu6050:SMPLRT_DIV [0x19] = 0x09 (sample rate=100Hz)
[00:00:00.029]mpu6050:ACCEL_CONFIG [0x1C] = 0x08 (±4g, sensitivity=8192 LSB/g)
[00:00:00.030]mpu6050:GYRO_CONFIG [0x1B] = 0x08 (±500°/s, sensitivity=65.5 LSB/°/s)
[00:00:00.031]mpu6050:INT_ENABLE [0x38] = 0x01 (data-ready interrupt on INT pin)
[00:00:00.035]bme280:CHIP_ID [0xD0] = 0x60 ✓ (BME280)
[00:00:00.036]bme280:Calibration loaded: dig_T1=27504 dig_T2=26435 dig_T3=-1000
[00:00:00.037]bme280:CTRL_HUM [0xF2] = 0x01 (humidity ×1 oversampling)
[00:00:00.038]bme280:CTRL_MEAS [0xF4] = 0x25 (temp ×1, press ×1, forced mode)
[00:00:00.040]spi1:DMA configured: TX→CH0, RX→CH1, priority=high
[00:00:00.041]spi1:Flash ring buffer: head=0x38C00, tail=0x37E00, capacity=7,340,032 B
[00:00:00.050]pwm:PWM0 initialized: CH0=P0.13 (LED1), CH1=P0.14 (LED2)
[00:00:00.051]pwm:Base frequency: 1 MHz, TOP=1000 (1 kHz PWM output)
[00:00:00.060]bt_sdc:SoftDevice Controller build revision:
[00:00:00.061] 26 79 a1 c8 5a 48 07 3c f6 74 f0 8b 23 d3 c4 88
[00:00:00.062]bt_hci:HW Platform: Nordic Semiconductor (0x0002)
[00:00:00.063]bt_hci:Firmware: Standard BT controller (0x00) v45.41339
[00:00:00.064]bt_hci:Identity: F8:AC:C3:B1:E1:26 (random)
[00:00:00.070]bt:Bluetooth initialized — max_conn=2, tx_pwr=4 dBm
[00:00:00.071]bt:GATT services registered:
[00:00:00.072]bt: Environmental Sensing (0x181A) — temp, humidity, pressure
[00:00:00.073]bt: Motion (custom UUID) — accel[3], gyro[3], quaternion[4]
[00:00:00.074]bt: Device Info (0x180A) — fw_rev, hw_rev, serial_no
[00:00:00.075]bt: Data Transfer (custom UUID) — flash log bulk download
[00:00:00.080]bt:Advertising started: connectable, name="nRF52-SensorHub"
[00:00:00.090]app:=== Sensor Hub ready ==================
[00:00:00.091]app: Sensors: MPU-6050 (100Hz) + BME280 (1Hz)
[00:00:00.092]app: Storage: W25Q128JV SPI flash, 892 existing records
[00:00:00.093]app: Power: DCDC on, System ON idle, WDT=4s
[00:00:01.000]bme280:Env: T=22.41°C P=1013.25hPa H=44.8% → logged to flash @0x38C00
[00:00:01.010]mpu6050:IMU 100Hz: accel=(+0.012,-0.008,+9.807)g gyro=(+0.32,-0.11,+0.04)°/s
[00:00:01.520]bt:Connection from 4A:B3:22:1F:90:DC (iPhone), conn_interval=30ms
[00:00:01.525]bt:MTU exchange: 247 bytes, DLE enabled (251 B packets)
[00:00:01.530]bt:PHY updated: 2M PHY (TX+RX), throughput ≈ 1.4 Mbit/s
[00:00:01.540]bt:Client subscribed: env_notify, motion_notify
[00:00:02.000]bme280:Env: T=22.43°C P=1013.24hPa H=44.9% → notified + logged
[00:00:02.010]mpu6050:IMU 100Hz: accel=(+0.015,-0.003,+9.812)g gyro=(+0.28,-0.09,+0.02)°/s
[00:00:02.500]mpu6050:FIFO overflow — 512B lost, resetting FIFO (USER_CTRL[0x6A]=0x44)
[00:00:02.501]mpu6050:FIFO re-enabled, DMA transfer resumed
[00:00:03.000]bme280:Env: T=22.45°C P=1013.22hPa H=45.1% → notified + logged
[00:00:03.010]pwr:Entering System ON idle (WFE)... wake sources: GPIOTE, RTC1, RADIO
[00:00:03.040]pwr:Wake: GPIOTE (MPU-6050 INT pin P0.11 → data ready)