---
# System prepended metadata

title: Science Behind the Golf Kinematics
tags: [Upwork]

---

<style>
    :root {
        --primary-color: #2563eb;
        --primary-dark: #1d4ed8;
        --background-color: #ffffff;
        --text-primary: #1e293b;
        --text-secondary: #475569;
        --card-background: #ffffff;
        --shadow-color: rgba(0, 0, 0, 0.1);
    }

    @media (prefers-color-scheme: dark) {
        :root {
            --primary-color: #3b82f6;
            --primary-dark: #2563eb;
            --background-color: #1e293b;
            --text-primary: #f8fafc;
            --text-secondary: #cbd5e1;
            --card-background: #334155;
            --shadow-color: rgba(0, 0, 0, 0.3);
        }
    }
</style>

<div style="max-width: 1000px; margin: 0 auto; font-family: 'Arial', sans-serif;">
<!-- Combined Header and Logo Section -->
<div style="
    background: var(--primary-color);
    padding: 40px 40px 60px 40px; 
    border-radius: 12px; 
    margin-bottom: 40px; 
    box-shadow: 0 4px 15px var(--shadow-color);
">
   <h1 style="
       color: #FFFFFF; 
       font-size: 36px; 
       margin: 0 0 40px 0; 
       letter-spacing: 1px; 
       font-weight: 500; 
       text-align: center;
   ">Research and Project Proposal</h1>
   
   <!-- Logo Container with Flexbox -->
   <div style="
       display: flex; 
       justify-content: center; 
       align-items: center; 
       gap: 60px; 
       max-width: 800px; 
       margin: 0 auto;
   ">
       <!-- Playard Logo -->
       <div style="
           flex: 0 1 300px;
           padding: 25px;
           background: var(--card-background);
           border-radius: 12px;
           box-shadow: 0 4px 6px var(--shadow-color);
           transition: transform 0.3s ease, box-shadow 0.3s ease;
       " onmouseover="this.style.transform='translateY(-5px)';this.style.boxShadow='0 6px 12px var(--shadow-color)';" 
          onmouseout="this.style.transform='translateY(0)';this.style.boxShadow='0 4px 6px var(--shadow-color)';">
           <img src="https://hackmd.io/_uploads/rkWlrcjZ1g.svg" alt="Playard Logo" style="width: 100%; height: auto;"/>
       </div>
       <!-- Customer Logo -->
       <div style="
           flex: 0 1 300px;
           padding: 25px;
           background: var(--card-background);
           border-radius: 12px;
           box-shadow: 0 4px 6px var(--shadow-color);
           transition: transform 0.3s ease, box-shadow 0.3s ease;
       " onmouseover="this.style.transform='translateY(-5px)';this.style.boxShadow='0 6px 12px var(--shadow-color)';" 
          onmouseout="this.style.transform='translateY(0)';this.style.boxShadow='0 4px 6px var(--shadow-color)';">
           <img src="https://hackmd.io/_uploads/r1cQ-vibkx.png" alt="Customer Logo" style="width: 100%; height: auto;"/>
       </div>
   </div>
</div>

<!-- Project Title Section -->
<div style="text-align: center; padding: 20px 40px; margin-bottom: 40px;">
   <h2 style="
       color: var(--primary-color); 
       font-size: 42px; 
       margin-bottom: 15px; 
       font-weight: 600;
   ">Relentless Golf</h2>
   <h3 style="
       color: var(--text-secondary); 
       font-size: 24px; 
       font-weight: 400; 
       margin-top: 0;
   ">Golf Kinematic Sequence Analyzer</h3>
</div>

<!-- Year -->
<div style="text-align: center; margin-bottom: 40px;">
   <p style="
       color: var(--text-secondary); 
       font-size: 20px; 
       font-weight: 500;
   ">2024</p>
</div>

<!-- Bottom Bar -->
<div style="
    height: 6px; 
    background: var(--primary-color);
    border-radius: 3px; 
    margin-bottom: 40px;
    box-shadow: 0 2px 4px var(--shadow-color);
"></div>
</div>





# Science Behind the Golf Kinematics

## Understanding Different Swing Patterns

### Simulation

### 1. Professional Swing Pattern
![golf_swing_professional_swing](https://hackmd.io/_uploads/rJPB0ujbJe.gif)
*Perfect sequence with ideal timing: Notice how the hips initiate the movement, followed by the torso, and finally the arms. This creates maximum power with minimum effort.*

### 2. Over The Top Pattern
![golf_swing_over_the_top](https://hackmd.io/_uploads/S1vrAOjZJx.gif)
*Common fault where arms move too early: This pattern often leads to slicing and loss of power. Compare the arm movement timing with the professional pattern above.*

### 3. Early Extension Pattern
![golf_swing_early_extension](https://hackmd.io/_uploads/ByIHCdsWkx.gif)
*Hip thrust pattern: Notice how the hip rotation differs from the professional pattern, causing loss of spine angle and inconsistent contact.*

### 4. Slow Transition Pattern
![golf_swing_slow_transition](https://hackmd.io/_uploads/rJvBROoZJl.gif)
*Delayed downswing initiation: Observe how the transition from backswing to downswing is slower, reducing potential power generation.*

### 5. Fast Hips Pattern
![golf_swing_fast_hip_rotation](https://hackmd.io/_uploads/B1DB0OoZJx.gif)
*Overly aggressive hip rotation: The hips rotate too quickly, not allowing proper sequence development and power transfer.*

## Key Points to Observe in Each Pattern:
1. **Hip Movement** (Blue Segment)
   - Initiates the downswing
   - Sets the sequence timing
   - Controls rotation speed

2. **Torso Rotation** (Green Segment)
   - Follows hip movement
   - Creates torque multiplication
   - Maintains spine angle

3. **Arms/Club Path** (Red Segment)
   - Responds to body rotation
   - Shows lag and release
   - Indicates swing efficiency


### 1. Real-Time Motion Capture
Just like in our simulation, we'll track three key body segments:
- 🔵 Hips (Blue sensor)
- 🟢 Upper Body/Torso (Green sensor)
- 🔴 Arms/Club (Red sensor)

But instead of computer animation, we'll use real IMU sensors (BNO085) attached to your body that can detect:
- Exact rotation angles
- Movement speed
- Acceleration
- Position changes


### 2. Pattern Recognition

```mermaid
flowchart LR
    classDef sensorNode fill:#2E86C1,stroke:#000,stroke-width:2px,color:#fff
    classDef processNode fill:#27AE60,stroke:#000,stroke-width:2px,color:#fff
    classDef feedbackNode fill:#E74C3C,stroke:#000,stroke-width:2px,color:#fff

    S1["Sensor Data"]:::sensorNode --> P1["Compare with\nIdeal Pattern"]:::processNode
    P1 --> P2["Calculate\nDeviations"]:::processNode
    P2 --> F1["Real-time\nAudio Feedback"]:::feedbackNode
    
```

### What is an IMU?
An IMU (Inertial Measurement Unit) is a sophisticated electronic device that combines multiple sensors to measure motion, orientation, and environmental conditions. Think of it as your smartphone's ability to know when you rotate it or move it, but with much higher precision and speed.

### BNO085: Our Chosen IMU

![bno_085](https://hackmd.io/_uploads/HyBxRFob1l.jpg)

*The BNO085 is a high-precision smart sensor with built-in processing capabilities*

#### Key Features:
1. **9-Axis Sensing**
   - 3-axis Accelerometer: Measures linear movement
   - 3-axis Gyroscope: Detects rotation
   - 3-axis Magnetometer: Determines orientation

2. **Built-in Processing**
   - Automatic sensor fusion
   - Self-calibration
   - Error correction
   - Low latency (fast response)


### Motion Capture System

#### 1. Sensor Placement
We'll track three key body segments with precision sensors:
- 🔵 **Hips (Base Sensor)**
  * Measures core rotation
  * Tracks power initiation
  * Monitors hip sway and thrust

- 🟢 **Upper Body/Torso (Mid Sensor)**
  * Analyzes spine angle
  * Measures shoulder rotation
  * Tracks torso-hip differential

- 🔴 **Arms/Club (Lead Sensor)**
  * Monitors swing path
  * Measures club head speed
  * Tracks lag and release

#### 2. What We Measure

```mermaid
flowchart TB
    classDef measureNode fill:#2E86C1,stroke:#000,stroke-width:2px,color:#fff
    classDef dataNode fill:#27AE60,stroke:#000,stroke-width:2px,color:#fff

    subgraph Measurements["Key Measurements"]
        direction TB
        
        M1["Rotation"]:::measureNode
        M2["Acceleration"]:::measureNode
        M3["Angular Velocity"]:::measureNode
        M4["Orientation"]:::measureNode

        D1["0-360° angles\n±2000°/sec"]:::dataNode
        D2["±16g force\n0.01g resolution"]:::dataNode
        D3["Real-time speed\n1000Hz sampling"]:::dataNode
        D4["3D positioning\n0.1° accuracy"]:::dataNode

        M1 --> D1
        M2 --> D2
        M3 --> D3
        M4 --> D4
    end
```



# Golf Training System

## System Architecture

```mermaid
flowchart TB
    classDef nodeHW fill:#2E86C1,stroke:#000,stroke-width:2px,color:#fff
    classDef audioNode fill:#27AE60,stroke:#000,stroke-width:2px,color:#fff
    classDef powerNode fill:#E74C3C,stroke:#000,stroke-width:2px,color:#fff
    classDef appNode fill:#8E44AD,stroke:#000,stroke-width:2px,color:#fff
    classDef networkNode fill:#F39C12,stroke:#000,stroke-width:2px,color:#fff

    subgraph Nodes["Smart Audio Sensor Nodes"]
        direction TB
        
        subgraph Node1["Node 1 - Pelvis"]
            direction LR
            N1_IMU["BNO085\nOrientation"]:::nodeHW
            N1_NRF["nRF52\n- Local Analysis\n- Audio Gen\n- BLE Mesh"]:::nodeHW
            N1_AUD["Buzzer\n- Timing\n- Speed"]:::audioNode
            N1_BAT["🔋 LiPo\n130mAh"]:::powerNode
        end

        subgraph Node2["Node 2 - Thorax"]
            direction LR
            N2_IMU["BNO085\nOrientation"]:::nodeHW
            N2_NRF["nRF52\n- Local Analysis\n- Audio Gen\n- BLE Mesh"]:::nodeHW
            N2_AUD["Buzzer\n- Rotation\n- Sequence"]:::audioNode
            N2_BAT["🔋 LiPo\n130mAh"]:::powerNode
        end

        subgraph Node3["Node 3 - Club"]
            direction LR
            N3_IMU["BNO085\nOrientation"]:::nodeHW
            N3_NRF["nRF52\n- Local Analysis\n- Audio Gen\n- BLE Mesh"]:::nodeHW
            N3_AUD["Buzzer\n- Speed\n- Impact"]:::audioNode
            N3_BAT["🔋 LiPo\n130mAh"]:::powerNode
        end
    end

    subgraph Mobile["📱 Mobile Application"]
        direction TB
        APP["Mobile App\n- Configuration\n- Data Analysis\n- Training History"]:::appNode
        CLOUD["Cloud Storage"]:::networkNode
    end

    %% Node internal connections
    N1_IMU --> N1_NRF --> N1_AUD
    N2_IMU --> N2_NRF --> N2_AUD
    N3_IMU --> N3_NRF --> N3_AUD

    %% Wireless connections
    N1_NRF <--> |"BLE Mesh\nSync & Timing"| N2_NRF
    N2_NRF <--> |"BLE Mesh\nSync & Timing"| N3_NRF
    N1_NRF & N2_NRF & N3_NRF --> |"Data"| APP
    APP --> CLOUD
    
```



### Audio Generation

```mermaid
flowchart TB
    classDef pelvisNode fill:#2E86C1,stroke:#000,stroke-width:2px,color:#fff
    classDef thoraxNode fill:#27AE60,stroke:#000,stroke-width:2px,color:#fff
    classDef clubNode fill:#E74C3C,stroke:#000,stroke-width:2px,color:#fff
    classDef patternNode fill:#F39C12,stroke:#000,stroke-width:2px,color:#fff

    subgraph Patterns["Audio Pattern Specifications"]
        direction TB
        
        subgraph Pelvis["Pelvis Node Patterns (200-400Hz)"]
            direction LR
            P1["Early Rotation\n⚠️ 3 quick beeps\n200Hz, 100ms each"]:::pelvisNode
            P2["Perfect Timing\n✅ Single long beep\n300Hz, 500ms"]:::pelvisNode
            P3["Late Rotation\n⚠️ 2 slow beeps\n400Hz, 250ms each"]:::pelvisNode
        end

        subgraph Thorax["Thorax Node Patterns (500-800Hz)"]
            direction LR
            T1["Wrong Sequence\n⚠️ Descending tones\n800→500Hz, 200ms"]:::thoraxNode
            T2["Good Sequence\n✅ Ascending tones\n500→800Hz, 200ms"]:::thoraxNode
            T3["Over Rotation\n⚠️ Continuous tone\n600Hz, 300ms"]:::thoraxNode
        end

        subgraph Club["Club Node Patterns (900-1200Hz)"]
            direction LR
            C1["Slow Speed\n⚠️ Low pitch pulse\n900Hz, 150ms"]:::clubNode
            C2["Ideal Speed\n✅ High pitch tone\n1100Hz, 200ms"]:::clubNode
            C3["Too Fast\n⚠️ High-Low warble\n1200-900Hz, 100ms"]:::clubNode
        end

        subgraph Sync["Combined Patterns"]
            direction TB
            S1["Perfect Swing\n✅ Harmonious ascending\nAll nodes sequential"]:::patternNode
            S2["Timing Error\n⚠️ Dissonant pattern\nError node emphasized"]:::patternNode
        end
    end
```


### Audio System Timing Diagram

```mermaid
sequenceDiagram
    participant IMU as BNO085
    participant MCU as nRF52
    participant Hub as Mobile App
    participant Audio as Audio System
    
    Note over IMU,Audio: Initialization Phase
    IMU->>MCU: Config Ready
    MCU->>Hub: Node Connected
    
    Note over IMU,Audio: Calibration Phase
    Hub->>MCU: Request Calibration
    MCU->>IMU: Start Calibration
    IMU-->>MCU: Calibration Status
    MCU-->>Hub: Calibration Complete
    
    Note over IMU,Audio: Data Collection (100Hz)
    loop Every 10ms
        IMU->>MCU: Sensor Data
        MCU->>MCU: Process Data
        MCU->>Hub: Send Packet
    end
    
    Note over IMU,Audio: Swing Detection
    Hub->>Hub: Detect Swing Start
    
    Note over IMU,Audio: Real-time Processing
    loop During Swing
        IMU->>MCU: High-Speed Data
        MCU->>Hub: Processed Data
        Hub->>Hub: Analyze Sequence
        Hub->>Audio: Generate Feedback
    end
    
    Note over IMU,Audio: Post-Swing Analysis
    Hub->>Hub: Complete Analysis
    Hub->>Audio: Final Feedback
    Hub->>MCU: Reset for Next Swing
```

### Node Software Flow

```mermaid
stateDiagram-v2
    [*] --> Initialization
    
    state Initialization {
        [*] --> SensorConfig
        SensorConfig --> CalibrationCheck
        CalibrationCheck --> Ready
    }
    
    state DataCollection {
        [*] --> CollectIMUData
        CollectIMUData --> ProcessData
        ProcessData --> DetectMovement
        DetectMovement --> SendData
    }
    
    state AudioGeneration {
        [*] --> AnalyzeSpeed
        AnalyzeSpeed --> TimingCheck
        TimingCheck --> GenerateSound
    }
    
    Ready --> DataCollection : Start Recording
    DataCollection --> AudioGeneration : Movement Detected
    AudioGeneration --> DataCollection : Complete
    
    state "Sensor Configuration" as SensorConfig {
        BNO085_Config
        RadioConfig
        BuzzerConfig
    }
    
    state "Movement Analysis" as DetectMovement {
        CheckRotationalSpeed
        CheckLinearSpeed
        PatternMatching
    }
    
    state "Sound Generation" as GenerateSound {
        SpeedToVolume
        TimingToDuration
        PlayFeedback
    }

```

## What Are We Matching?

Think of a golf swing like a musical symphony - every part needs to move in perfect harmony. We're creating a system that listens to this "body symphony" and tells you when you're hitting the right notes at the right time.

```mermaid
flowchart TB
    classDef perfectNode fill:#27AE60,stroke:#000,stroke-width:2px,color:#fff
    classDef errorNode fill:#E74C3C,stroke:#000,stroke-width:2px,color:#fff
    classDef infoNode fill:#3498DB,stroke:#000,stroke-width:2px,color:#fff

    subgraph IDEAL["Ideal Swing Sequence"]
        I1["1. Pelvis Start\n22-25 mph"]:::perfectNode
        I2["2. Thorax Follow\n45-50 mph"]:::perfectNode
        I3["3. Arms Speed\n70-75 mph"]:::perfectNode
        I4["4. Club Impact\n90-100 mph"]:::perfectNode
        
        I1 --> I2 --> I3 --> I4
    end

    subgraph SYSTEM["Real-time Analysis"]
        S1["Sensor\nMeasurements"]:::infoNode
        S2["Pattern\nComparison"]:::infoNode
        S3["Audio\nFeedback"]:::infoNode
        
        S1 --> S2 --> S3
    end

    subgraph FEEDBACK["Feedback Types"]
        F1["Perfect: Ascending Tone"]:::perfectNode
        F2["Early: Warning Beep"]:::errorNode
        F3["Slow: Low Tone"]:::errorNode
    end

    IDEAL --> SYSTEM --> FEEDBACK
    
```

# Development Roadmap

## Fast Prototyping Approach

### Why Fast Prototyping?
Before diving into full-scale hardware development, we need to validate our system design and gather real-world insights. This approach allows us to:
- Test our core functionality quickly
- Identify potential issues early
- Refine our system requirements
- Begin software development in parallel
- Save time and resources

## Two-Phase Prototype Development

### Phase 1: Quick Assembly Test System
In this phase, we'll create working prototypes using off-the-shelf development boards. Think of it as building with "electronic LEGO" - quick to assemble and easy to modify.

#### Components Needed:
- **5x nRF52840 Development Boards** ([Adafruit nRF52840 Express](https://www.digikey.com/en/products/detail/adafruit-industries-llc/4062/9843410))
  - Bluetooth connectivity
  - Built-in USB charging
  - Easy programming interface

- **5x BNO085 IMU Sensors** ([Adafruit BNO085](https://www.adafruit.com/product/4754))
  - 9-axis motion sensing
  - Built-in sensor fusion
  - Perfect for tracking body movement

#### Assembly Plan:
1. Connect BNO085 to nRF52 boards
2. Add LiPo batteries for portability
3. 3D print simple protective cases
4. Create mounting straps for body attachment


This setup will let us:
- Start software development immediately
- Test sensor placement on the body
- Validate our audio feedback system
- Experiment with different configurations

### Phase 2: Custom PCB Development
While Phase 1 is ongoing, we'll move to creating our first custom PCB. This isn't the final product, but rather a refined prototype that will:
- Be smaller and lighter
- Use less power
- Be more reliable for extended testing
- Help us optimize component placement

#### Custom PCB Features:
- Integrated nRF52 and BNO085
- Optimized power management
- Smaller form factor
- Better durability for testing

## What This Achieves
This two-phase approach gives us several advantages:
1. **Quick Start**: We can begin testing within days of receiving components
2. **Risk Reduction**: Major issues can be identified before custom PCB design
3. **Parallel Development**: Software work can progress while hardware is being refined
4. **User Feedback**: Early testing with real golfers can guide development
5. **Cost Effective**: Changes are cheaper at the prototype stage

### Phase 3: Web Application Prototype (Cross Platform)

```mermaid
flowchart TD
    classDef userNode fill:#3498DB,stroke:#000,stroke-width:2px,color:#fff
    classDef deviceNode fill:#2ECC71,stroke:#000,stroke-width:2px,color:#fff
    classDef featureNode fill:#9B59B6,stroke:#000,stroke-width:2px,color:#fff
    classDef dataNode fill:#E74C3C,stroke:#000,stroke-width:2px,color:#fff
    classDef storageNode fill:#F1C40F,stroke:#000,stroke-width:2px,color:#fff

    subgraph User["User Interface Layer"]
        direction TB
        UI1["Device Connection\n& Management"]:::userNode
        UI2["Real-time\nVisualization"]:::userNode
        UI3["Analysis\nDashboard"]:::userNode
    end

    subgraph Devices["Sensor Layer"]
        direction TB
        D1["Hip Sensor\nBLE Device"]:::deviceNode
        D2["Torso Sensor\nBLE Device"]:::deviceNode
        D3["Club Sensor\nBLE Device"]:::deviceNode
    end

    subgraph Features["Processing Layer"]
        direction TB
        F1["Pattern\nRecognition"]:::featureNode
        F2["Data\nAnalysis"]:::featureNode
        F3["Performance\nMetrics"]:::featureNode
    end

    subgraph Storage["Data Storage"]
        direction TB
        S1["Session\nHistory"]:::storageNode
        S2["User\nPreferences"]:::storageNode
        S3["Pattern\nTemplates"]:::storageNode
    end

    %% Connections
    Devices --> UI1
    UI1 --> Features
    Features --> UI2
    Features --> UI3
    Features <--> Storage

    %% Add notes
    style User fill:#fff,stroke:#000
    style Devices fill:#fff,stroke:#000
    style Features fill:#fff,stroke:#000
    style Storage fill:#fff,stroke:#000
```

For rapid development and quick validation of our golf swing analysis system, we'll create a web-based prototype application that allows us to demonstrate core functionalities and gather user feedback efficiently.

### 1. Device Connection Interface
- Simple device scanning and connection
- Device configuration options

### 2. Real-Time Data Visualization
- Live swing data display from sensors
- Visual representation of body positions
- Simple 2D animation of swing sequence
- Basic metrics display (speed, angles, timing)

### 3. Basic Analysis Features
- Swing pattern comparison
- Simple performance metrics
- Session history view
- Basic data export

## Technology Stack
We'll use modern web technologies for rapid development:
- React for user interface
- Web Bluetooth API for sensor connection
- Canvas/SVG for visualizations
- Local storage for session data

### Planned output of the first 3 phases
Below are photos of a similar product currently in our workshop. At the end of the first 3 phases, a product similar to this product will emerge.

<div style="display: flex;">
  <img src="https://hackmd.io/_uploads/rkGGoYjWJe.jpg" alt="Photo 1" style="width: 33%;">
  <img src="https://hackmd.io/_uploads/rkzfsYoWJx.jpg" alt="Photo 2" style="width: 33%;">
  <img src="https://hackmd.io/_uploads/HJMMsto-kx.jpg" alt="Photo 3" style="width: 33%;">
</div>


# Technical Challenges

### Placement Challenges
- Different body types require flexible mounting solutions
- Optimal sensor positions may vary by user
- Movement artifacts from loose attachments
- Need for robust yet comfortable mounting system
- Node count can be vary




# Project Timeline and Budget Estimation

## Timeline Breakdown

| Phase | Duration | Hours/Week | Total Hours | Activities |
|-------|----------|------------|-------------|------------|
| **Phase 1: Quick Assembly** | 2-3 weeks | 35 | 70-105 | - Hardware assembly<br>- Initial firmware development<br>- Basic sensor integration<br>- Testing connections |
| **Phase 2: Custom PCB** | 2-3 weeks | 35 | 70-105 | - PCB design<br>- Component optimization<br>- Power management<br>- Testing and validation |
| **Phase 3: Web Application** | 2 weeks | 35 | 70 | - UI development<br>- BLE integration<br>- Data visualization<br>- Basic analysis features |
| **Total** | 6-8 weeks | 35 | 210-280 | |

## Budget Estimation

### Hardware Costs (Phase 1)
| Component | Quantity | Unit Price ($) | Total ($) |
|-----------|----------|----------------|-----------|
| nRF52840 Dev Board | 5 | 25.95 | 129.75 |
| BNO085 Sensors | 5 | 20.95 | 104.75 |
| LiPo Batteries | 5 | 9.95 | 49.75 |
| 3D Printing Materials | - | 50.00 | 50.00 |
| Misc. Components | - | 100.00 | 100.00 |
| **Total Hardware** | | | **434.25** |

### Development Labor
| Phase | Hours | Rate ($/hr) | Total ($) |
|-------|-------|-------------|-----------|
| Phase 1 | 70-105 | 40 | Hours × Rate |
| Phase 2 | 70-105 | 40 | Hours × Rate |
| Phase 3 | 70 | 40 | Hours × Rate |
| **Total Hours** | 210-280 | | |



## Next Steps (to Kickstart our Project)
After getting your approval, we can:
1. Order the development boards and sensors
2. Begin assembly of the first test unit
3. Start basic software development
4. Design the first 3D printed cases
5. Begin preliminary PCB design


### Product Links

-> nRF52840 Development Boards (https://www.digikey.com/en/products/detail/adafruit-industries-llc/4062/9843410)
-> BNO085 ->  (https://www.adafruit.com/product/4754)
