Back to Home

Custom IoT Device

Aerovit Smartwatch

Purpose-built wearable device based on the ESP32-S3 platform with premium biometric sensors for real-time fitness tracking, heart rate monitoring, and seamless app integration.

Core Specifications

Processor

ESP32-S3

Dual-Core @ 240 MHz

Biometrics

MAX30102

HR + SpO2 Sensor

Motion

QMI8658

6-Axis IMU

Display

1.69" LCD

240x280 Touch

Detailed Specifications

Processing & Memory

ChipESP32-S3-WROOM-1-N16R8
CPUXtensa LX7 Dual-Core @ 240 MHz
Flash16 MB
PSRAM8 MB
SRAM512 KB

Connectivity

BluetoothBLE 5.0
WiFi2.4 GHz 802.11 b/g/n
BLE Latency<100ms
RangeUp to 10m (BLE)
Data Rate115200 baud (UART)

Biometric Sensors

Heart RateMAX30102 PPG Sensor
SpO2Blood Oxygen Saturation
Sampling RateUp to 400 samples/sec
LED WavelengthsRed (660nm) + IR (880nm)
Resolution18-bit ADC

Motion Tracking

SensorQMI8658 6-Axis IMU
Accelerometer±2g to ±16g Range
Gyroscope±16 to ±2048 dps
Output RateUp to 8000 Hz
InterfaceI2C / SPI

Unique Features

Software innovations that make the hardware truly unique.

Implemented

Hardware Wallet Ledger

Secure on-device key storage turns your watch into a crypto hardware wallet for signing AERO transactions.

Implemented

Haptic Feedback

Vibration patterns for rep validation, achievements, and workout cues without looking at screen.

Implemented

Activity Detection

Cadence-based classification using Tudor-Locke research — idle, slow walk, normal walk, brisk walk, jogging, running with MET values.

Planned

OTA Updates

Over-the-air firmware updates for new features and improvements.

Implemented

Animated UI

LVGL-powered animated watch faces and gamified visual feedback.

BLE Data Protocol

Real-time biometric data streaming over Bluetooth Low Energy.

Service & Packet Format

Service UUID: ae0v1t00-1234-5678-abcd-aerovitwatch

28-Byte Biometric Packet

[0]uint8SpO2 (0-100%)
[1]uint8Heart Rate (BPM)
[2]uint8Battery (%)
[3]uint8Status
[12]uint8Activity Type
[13]uint8Cadence (SPM)
[14-15]uint16Calories
[16-19]uint32Steps Today

Performance

Update Rate

Biometric data refresh

10 Hz

Latency

End-to-end delay

<100ms

Connection

Auto-reconnect enabled

Stable

Power

BLE 5.0 optimized

Low

Activity Classification

Cadence-based classification using Tudor-Locke et al. (2018) walking cadence research.

ActivityCadence (SPM)MET Value
Idle/Stationary0 - 141.3
Slow Walk15 - 792.8
Normal Walk80 - 993.5
Brisk Walk100 - 1194.3
Jogging120 - 1497.0
Running150+9.8

// Calorie Estimation (Ainsworth Compendium 2011)

Calories/min = MET × Weight(kg) × 3.5 / 200

Hardware Wallet Architecture

ESP32-S3 acts as a hardware crypto wallet — private keys never leave the device.

Key Management

Key Generation

BIP-39 mnemonic → BIP-32 seed → secp256k1

Address

Public key → Keccak-256 → last 20 bytes

Storage

AES-256-CBC encrypted in ESP32 NVS flash

PIN Protection

PBKDF2 (10K iterations), 5-attempt lockout

Signing

Decrypt key in RAM → sign → immediately wipe

Crypto Primitives

Keccak-256ETH address derivation
secp256k1 ECDSATransaction signing (mbedTLS)
AES-256-CBCPrivate key encryption (PKCS7)
PBKDF2-HMAC-SHA256PIN → encryption key
PBKDF2-HMAC-SHA512Mnemonic → seed
HMAC-SHA512BIP-32 master key derivation

BLE Wallet Protocol

App → Watch Commands

0x01CREATE_WALLET6-byte PIN
0x02UNLOCK_WALLET6-byte PIN
0x03LOCK_WALLETnone
0x04GET_ADDRESSnone
0x05SIGN_TX32-byte TX hash
0x06GET_STATUSnone

Watch → App Responses

0x81CREATED20-byte addr + seed
0x82UNLOCKED1-byte flag
0x83ADDRESS42-byte hex (0x)
0x84SIGNATURE65-byte (r+s+v)
0x85STATUSwallet_status_t
0x86SIGN_REQUESTAwaiting gesture
0x87SIGN_REJECTEDUser rejected

Signing Flow

1. App sends 32-byte TX hash via BLE

2. Watch displays sign request on screen

3. User approves via gesture or button

4. PIN-derived key decrypts private key in RAM

5. ECDSA sign (secp256k1) + compute recovery ID (v=27+recid)

6. Private key wiped from RAM immediately

7. 65-byte signature (r + s + v) sent back via BLE

8. tx_count incremented and persisted

Hardware Implemented

Watch firmware, BLE communication, hardware wallet, and activity detection functional

OTA updates in development