
PCB BOARD DESIGN FOR IOT ENABLED WEARABLE HEALTH MONITOR
NITHYAR2005/PCB-BOARD-DESIGN-FOR-IOT-ENABLED-WEARABLE-HEALTH-MONITOR

Real-time skydiver monitoring for instructors and jump teams. The system combines a BLE wearable, an offline-first Expo mobile app, Supabase persistence, and a responsive Next.js dashboard with safety analytics.
Kicad schema is an open-source printed circuit board by RobuGabrie, from the RobuGabrie/skydiver repository on GitHub. It is a 4-layer board with 21 parts on 63 nets, routed with 203 tracks and 0 vias.
It is built around the ESP32-C3, MAX30102 and AP2112K-3.3, with the DS3231MZ+ and MPU-6050 among its other parts. Its parts include 7 ICs, 5 resistors, 3 capacitors and 1 connector. It belongs with the ESP32 and RISC-V boards of this library.
Real-time skydiver monitoring for instructors and jump teams. The system combines a BLE wearable, an offline-first Expo mobile app, Supabase persistence, and a responsive Next.js dashboard with safety analytics.
Project status: active prototype / pilot software. Do not use the current deployment as the sole source of safety-critical decisions. Validate the wearable, alert thresholds, connectivity behavior, and operational procedures before production or field use.
BLE wearable
│ FAST / SLOW packets
▼
Expo mobile app ── SQLite queue ── Supabase
│ GPS │ Realtime
└─────────────────────────────▼
Next.js dashboard| Area | Directory | Responsibility |
|---|---|---|
| Web dashboard | web/ | Live monitoring, maps, alerts, analytics, and AI route |
| Mobile app | mobile/ | BLE connection, GPS, recording, offline queue, sync |
| Shared contracts | packages/shared/ | Types and database DTOs shared by web and mobile |
| Database | supabase/migrations/ | Schema, views, functions, RLS, and Realtime |
| Build orchestration | scripts/build-all.sh | Web and Android/EAS builds |
| Hardware design | Kicad-schema/ | KiCad schematic and PCB files |
The wearable firmware is not included in this repository. The mobile BLE protocol expects the service and characteristic UUIDs documented in DOCUMENTATIE_RO.md.
eas-cli and an authenticated Expo accountClone the repository and install dependencies for each runnable application:
git clone https://github.com/RobuGabrie/skydiver.git
cd skydiver
npm install --prefix web
npm install --prefix mobileConfigure Supabase before starting either app.
Create web/.env.local:
NEXT_PUBLIC_SUPABASE_URL=https://YOUR_PROJECT.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-public-anon-key
# Optional: enables Gemini comparison in /api/ai/gemini
GEMINI_API_KEY=your-server-side-gemini-key
# Optional; the route has a default model
GEMINI_MODEL=your-model-nameOnly the NEXT_PUBLIC_* values are exposed to the browser. Never put a service-role key or other secret in a NEXT_PUBLIC_* variable.
Start the dashboard:
cd web
npm run devOpen http://localhost:3000.
The mobile app reads Supabase credentials from expo.extra in mobile/app.json:
{
"expo": {
"extra": {
"supabaseUrl": "https://YOUR_PROJECT.supabase.co",
"supabaseAnonKey": "your-public-anon-key"
}
}
}Start Expo:
cd mobile
npm startUse a development build or a physical device for BLE testing. Browser and simulator environments do not provide equivalent BLE behavior.
Apply migrations in filename order using the Supabase SQL editor. If the Supabase CLI is configured for this project, link the project and push the migrations:
supabase link --project-ref YOUR_PROJECT_REF
supabase db pushIf using the SQL editor, run:
supabase/migrations/001_schema.sql
supabase/migrations/002_fix_parachute_detection.sql
supabase/migrations/002_rls.sql
supabase/migrations/003_fix_sessions.sqlThe migrations create:
devices, sessions, telemetry_events, and alert_eventsskydiver_profiles and ai_jobscurrent_skydivers for the dashboard's initial stateupsert_device_and_session for idempotent mobile session bootstrapAfter connecting a wearable, populate skydiver_profiles if you want stable display names and avatars in the dashboard.
From the repository root:
npm run build:web # Production Next.js build
npm run build:mobile # Local Android release APK
npm run build # Web build followed by local Android build
npm run build:mobile:eas # EAS Android preview build
npm run build:mobile:eas-prod # EAS Android production buildApplication-specific commands:
cd web
npm run lint
npm run build
npm startcd mobile
npm start
npm run android
npm run ios
npm run webThe local mobile build expects mobile/android/ to exist. Generate native projects once when needed:
cd mobile
npx expo prebuildThe build script writes a local release APK to dist/skydiver-mobile-release.apk. Set SKIP_INSTALL=1 when dependencies are already installed.
current_skydivers, then subscribes to Realtime changes.Alert types currently include abnormal pulse, low oxygen, high stress, low battery, uncontrolled fall, and excessive rotation. Alert cooldowns prevent repeated notifications for the same condition.
The repository includes vercel.json configured for the web/ Next.js application. Configure the following Vercel environment variables:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYGEMINI_API_KEY (optional)GEMINI_MODEL (optional)Build and run locally in production mode:
cd web
npm run build
npm startcd mobile
npx eas login
npx eas build --platform android --profile preview
npx eas build --platform android --profile productionThe EAS profiles are defined in mobile/eas.json. Production builds use remote version management and automatic version increments.
The included RLS policies are designed for the current anonymous prototype flow: the public anon role can read telemetry and insert events, while the dashboard can acknowledge alerts. Before a production launch, add authenticated users, restrict rows by team/device ownership, protect profile administration, rotate exposed credentials, and review Realtime access.
For field operation, test at minimum:
DOCUMENTATIE_RO.md contains the detailed Romanian architecture and BLE protocol notes.dist/ may contain a locally generated APK; release artifacts should be produced by CI or EAS..env.local, private API keys, service-role keys, signing credentials, or device secrets.No open-source license is currently declared. Treat the repository as proprietary unless the project owners provide written permission otherwise.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | 10kohm | Resistor_SMD:R_0402_1005Metric | R1, R2, R5 |
| 2 | 4.7kohm | Resistor_SMD:R_0402_1005Metric | R3, R4 |
| 1 | 100nF | Capacitor_SMD:C_0402_1005Metric | C3 |
| 1 | 100nf | Capacitor_SMD:C_0402_1005Metric | C1 |
| 1 | 10uf | Capacitor_SMD:C_0402_1005Metric | C2 |
| 1 | AP2112K-3.3 | Package_TO_SOT_SMD:SOT-23-5 | U7 |
| 1 | DS3231M | Package_SO:SOIC-16W_7.5x10.3mm_P1.27mm | U4 |
| 1 | ER_OLEDM0.91_1x-I2C | Display:ER_OLEDM0.91_1x-I2C | U3 |
| 1 | ESP32-C3 | Package_DFN_QFN:QFN-32-1EP_5x5mm_P0.5mm_EP3.45x3.45mm | U1 |
| 1 | INA219AxD | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U6 |
| 1 | MAX30102 | OptoDevice:Maxim_OLGA-14_3.3x5.6mm_P0.8mm | U5 |
| 1 | MPU-6050 | Sensor_Motion:InvenSense_QFN-24_4x4mm_P0.5mm | U2 |
| 1 | Thermistor_NTC | Resistor_SMD:R_0402_1005Metric | TH1 |
| 1 | USB_C_Plug_USB2.0 | Capacitor_SMD:C_0402_1005Metric | P1 |
The 17 most common of 21 parts.
21 parts, built around the ESP32-C3, MAX30102, AP2112K-3.3 and DS3231MZ+. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the RobuGabrie/skydiver repository on GitHub, at the commit this page was made from: the board is Kicad-schema/Kicad-schema.kicad_pcb and its schematic Kicad-schema/Kicad-schema.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask RobuGabrie before reusing the design.

NITHYAR2005/PCB-BOARD-DESIGN-FOR-IOT-ENABLED-WEARABLE-HEALTH-MONITOR

KIIT-Robotic-Society/Dharma_RoboFest4.0
Dharma Bot is a quadruped robotic dog featuring 12-DOF locomotion, real-time sensing, and a modular subsystem design.

BearsBearsBearsT-T/ESP32-Rocket-Sim-PCB
An MPU and ESP32 powered PCB that tracks motion in real time.

atireksd11/Astra-Companion
This repo holds the carrier PCB, the voice stack on the laptop, and notes for building Astra. Week 1 was the KiCad board.

manushri-d/ece445
This repo is used for our Senior Design class where we put all of our updates for the semester!

dhruv1859/CARVantaBAC
🧬 CARVanta Next-Generation Precision Oncology & AI CAR-T Cell Platform Interactive 3D Biological Digital Twin • 3D Neural Bridge • Sentinel HYDRA Biosensor

SydneyDith/Heartrate-monitor-Smartwatch---Electronics-Club
Led the development of a heartrate monitor smartwatch based on the ATmega328P microcontroller with a group of 4. Utilized several sensors to send/recieve data via I2C communication protocol uising C based Arduino IDE.

abhinav937/RP2040_SOS_band
PCB design files for RP2040 based SmartWatch. It features an accelerometer, a GPS module and a cellular module.