Skip to the content
PCBKitNew board
2 layers55 × 27.5 mmPCB Design, the printed circuit board in 3D

AI-powered dog health monitoring system with 4 diagnostic modules (BarkSense, SkinSense, AirSense, MotionSense). ESP32-based collar for real-time health tracking, vet integration, and government stray dog monitoring.

Size
55 × 27.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
25
Nets
29
Pads
90
Tracks, vias
160, 7
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
5 Mar 2026
Updated
20 Oct 2026

Overview

PCB Design is an open-source printed circuit board by adilsukumar, from the adilsukumar/Pawsitive-Diagnostics-V1 repository on GitHub, published under the MIT licence. It is a 2-layer board of 55 × 27.5 mm with 25 parts on 29 nets, routed with 160 tracks and 7 vias.

It is built around the BMI270, TP4056-42-ESOP8 and TP1. Its parts include 9 connectors, 6 resistors, 4 capacitors, 3 ICs and 2 diodes. It belongs with the radio and wireless boards and the ESP32 and RISC-V boards of this library.

Main components

3

README

README.md

Pawsitive Diagnostics V1. A closer look at everyday care. Concept animated mobile interface.

Overview · Sense suite · Data paths · Run locally · Integrations · Source

A PLACE FOR THE WHOLE PICTURE. Pet profiles, sensor views, records and connected-device workflows.

The care workspace

I built this version of Pawsitive Diagnostics as a mobile-first pet-care workspace: pet profiles, Sense module views, collar connection, scan history, breed browsing, a conversational assistant and report exports. The project is developed under Pawsitive Innovators.

This repository is a prototype application with integration paths. Some paths consume device or cloud data; others use demo values, fixed outputs or fallback text. The interface and the presence of a model/helper name do not establish validated veterinary diagnosis, core-temperature measurement or disease detection.

Original project logo · Application routes · Hardware source

NINE VIEWS. ONE INTERFACE.. All original Sense module families remain represented.

The Sense AI suite

All nine original Sense module families, described as interface and integration areas.

ModuleIncluded project area
BarkSense AIAudio capture, feature/classifier helpers, emotion logs and history views
SkinSense AIImage/text analysis helpers, scan history and before/after comparison workflows
MotionSense AIMovement/activity presentation and collar-related interfaces
LocationSense AILocation map, safe-zone and history interfaces
TemperatureSense AITemperature-related presentation and environmental context
VitalSense AIHeart-rate and respiration-related presentation
PressureSense AIPressure-related charts and summaries
LightSense AILight/UV-related presentation
CombineSense AICombined overview, score presentation and PDF-report workflow

These describe the implemented interface families, not independently verified sensor accuracy or diagnostic performance. Input availability, data freshness and the particular helper used matter. A collar surface reading is not established as core temperature by this repository.

FOLLOW THE DATA SOURCE. BLE notifications, cloud records and prototype data are distinct.

How data reaches the screen

Collar data, cloud records and prototype fallback paths.

The dedicated BLE hook connects to a configured GATT service, subscribes to notifications and parses collar JSON fields such as bark spikes, gas values, scratch intensity and timestamps. It stores recent records locally and attempts to insert them into Supabase. Its service and characteristic UUIDs must match the firmware.

The cloud-reading hook fetches recent sensor_readings and subscribes to new inserts. Other hooks also use dog-specific browser storage. Several modules have their own data/helper paths; a connection indicator alone does not prove that every Sense module has a working physical sensor.

Browser permissions, device compatibility, database permissions and a suitable secure context are required for the relevant paths. Inspect both hook implementations when tracing a page: similarly named exports do not all implement the same BLE lifecycle.

BEYOND THE SENSOR CARD. Conversation, breed browsing, scan history and report exports.

Chat, breeds and reports

  • Pet chatbot: the routed page calls Gemini when a key is configured and uses predefined replies when it is absent. A successful fallback display is not proof of a successful provider request.
  • Breed encyclopedia: breed browsing, stored information and provider-backed detail-generation paths. Content and provider availability must be checked separately.
  • Scan history and comparison: stored scan views and image-analysis/comparison helpers.
  • Reports: combined summaries and browser-generated PDFs through jsPDF helpers.
  • Mobile interface: Tailwind/Radix components, Lucide icons, Framer Motion, installation UI and Capacitor configuration.
  • Contact/SOS interface: included in the app layout; configure contact details for the intended deployment.

Generated advice, heuristic labels, mock outputs and presentation scores should remain distinguishable from verified animal measurements. Some AI helpers return predefined assessment text after API errors; inspect the returned path before interpreting an output.

OPEN THE WORKSPACE. Repository-specific setup and the current environment keys.

Run locally

Use Node.js 22 or newer for the repository's Capacitor 8 toolchain; see the Capacitor requirements.

bash
git clone https://github.com/adilsukumar/Pawsitive-Diagnostics-V1.git
cd Pawsitive-Diagnostics-V1
npm install

Create .env in the project root. The current generated Supabase client reads these names:

dotenv
VITE_SUPABASE_URL=https://your-project.supabase.co
VITE_SUPABASE_PUBLISHABLE_KEY=your_client_api_key
VITE_GEMINI_API_KEY=your_optional_gemini_key

Configuration detail: .env.example currently lists VITE_SUPABASE_ANON_KEY, while client.ts reads VITE_SUPABASE_PUBLISHABLE_KEY. Use the name the client actually reads. The example also declares VITE_ML_API_URL; its presence alone does not connect every page to the Python backend.

bash
npm run dev
npm run build
npm run preview
npm run lint
npm test

Vite requests port 8080; follow the URL printed in the terminal. The package also includes build:dev and test:watch. Match the Supabase schema, auth settings, storage and permissions to the application; SQL/migrations are included in supabase/.

VITE_ values are bundled into browser JavaScript. Use client-scoped keys here; privileged server credentials do not belong in that namespace. This documentation update does not alter environment files or secrets.

WHAT IS CONNECTED, WHAT IS A STUB. Provider availability, demo responses and backend limitations.

Integration status

AreaWhat the current source establishes
React frontendReact 18, TypeScript, Vite 5, Tailwind CSS, React Router and Framer Motion
SupabaseAuth/session configuration and database subscription/write paths; project setup and rules are required
BLEGATT parsing and notification code; needs matching firmware and supported browser/device
GeminiHelpers still request gemini-1.5-pro; this model has been retired, so those live requests need a separate integration update
Python backendml_backend/api/main.py exposes fixed mock bark/skin/motion responses and a simulated combined score
TensorFlow/model helpersPresent in the frontend; inspect actual weights, fallback branches and evaluation evidence for the path being used
HardwareKiCad and Gerber files are included; file presence is not a deployed-board validation result

Google records the Gemini 1.5 Pro shutdown in its official model shutdown notes. A key alone will not restore a retired model. The backend's /health response also does not demonstrate that nine trained models are loaded: inspect the implementation rather than treating its fixed response as verification.

No provider key, live model migration, physical-device test or paid API request was performed for this README draft. Application code and model artifacts are unchanged.

THE PROJECT BEHIND THE INTERFACE. Routes, device parsing, cloud access, models and hardware files.

Explore the source

App routes: Sense modules and supporting pages BLE collar: Notification parsing and connection lifecycle Cloud readings: Supabase sensor-reading subscription Pet assistant: Configured provider and mock response paths PDF export: Report-generation implementation Hardware files: KiCad source and Gerber exports

AreaSource
Frontend shell and navigationAppLayout.tsx · Dashboard.tsx
Nine Sense interfacessrc/pages/
AI and fallback helpersgemini.ts · aiServices.ts
Bark processingaudioFeatureExtractor.ts · mlBarkClassifier.ts
Skin processingmlSkinClassifier.ts · tfSkinClassifier.ts
Database setupsupabase/
Mock backend routesmain.py
Mobile wrappercapacitor.config.json

Developed by Pawsitive Innovators. Project maintained by Adil Sukumar. The original project direction—bridging animals and technology—remains, with capabilities described at the level supported by the current source.

Make care visible. Keep the source clear. Pawsitive Innovators and Adil Sukumar.

Parts

25
QtyValueFootprintReferences
2100nCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC2, C4
210uCapacitor_SMD:C_0805_2012MetricC1, C3
21KResistor_SMD:R_0603_1608MetricR1, R3
24.7kResistor_SMD:R_0603_1608MetricR5, R6
2LEDLED_THT:LED_D3.0mmD1, D2
11.2kResistor_SMD:R_0603_1608MetricR4
110kResistor_SMD:R_0603_1608MetricR2
1BATTERYConnector_JST:JST_EH_B2B-EH-A_1x02_P2.50mm_VerticalJ4
1BMI270BMI270:XDCR_BMI270U3
1ESP32-C3_SUPERMINI_THesp32c3 super mini:MODULE_ESP32-C3_SUPERMINI_THU2
1NeopixelConnector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_VerticalJ2
1POGO PINConnector_JST:JST_EH_B2B-EH-A_1x02_P2.50mm_VerticalJ1
1SWConnector_PinHeader_1.00mm:PinHeader_1x02_P1.00mm_VerticalJ3
1TP1Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalJ5
1TP2Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalJ6
1TP3Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalJ7
1TP4Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalJ8
1TP4056-42-ESOP8Package_SO:SOIC-8-1EP_3.9x4.9mm_P1.27mm_EP2.41x3.3mm_ThermalViasU1
1TP5Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalJ9
1Thermistor_NTCVaristor:RV_Disc_D12mm_W4.2mm_P7.5mmTH1

Questions

How big is the PCB Design PCB?

It measures 55 × 27.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the PCB Design use?

25 parts, built around the BMI270, TP4056-42-ESOP8 and TP1. 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.

Where can I download the PCB Design KiCad files?

From the adilsukumar/Pawsitive-Diagnostics-V1 repository on GitHub, at the commit this page was made from: the board is hardware/PCB Design.kicad_pcb and its schematic hardware/Schematic.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the PCB Design design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers47 × 44 mmPro ukkoVBT, the printed circuit board in 3D

    Pro ukkoVBT

    m351351/Velocity-Based-Training

    An ESP32-based device for weightlifting analysis. Processes analog accelerometer data to visualize velocity-displacement curves for athletic performance optimization.

    36 parts3
  • 4 layers96 × 60.1 mmCRASHSENSE, the printed circuit board in 3D

    CRASHSENSE

    ParthDhiman32/CRASHSENSE

    Crashsense is a high level embedded sytems project which senses crashes in vehicles like cars trucks and also drones and records the every bit of data of that crash and gives enough data for the crash to be reoncstructed

    56 partsMIT
  • 2 layers60.1 × 31.8 mmPCB Design, the printed circuit board in 3D

    PCB Design

    SarusanS/Smart-Water-Bottle

    A standalone smart water bottle that tracks daily water consumption using a ToF sensor and IMU-based motion detection.

    51 parts
  • 2 layers114 × 56.6 mmProbeBoardPublicV5, the printed circuit board in 3D

    ProbeBoardPublicV5

    novintic/FlukeEmu-FluCom

    HW/SW solution for Fluke 9010 mainframe emulation

    76 parts27GPL-2.0
  • 2 layers60 × 100 mmEsp gps ntp, the printed circuit board in 3D

    Esp gps ntp

    liebman/esp32-gps-ntp

    This is an esp-idf app using platformio.

    28 parts22MIT
  • 2 layers100 × 120 mmDcc station, the printed circuit board in 3D

    Dcc station

    cc90202/DCC-esp32

    DCC command station for ESP32-C6 — NMRA-compliant model railroad controller in Rust

    82 parts12
  • 4 layers43 × 66 mmWookey, the printed circuit board in 3D

    Wookey

    wookey-project/hard-wookey-motherboard

    WooKey Secure Mass Storage Mainboard PCB

    90 parts10