# renesas-software-and-digitalization/qcs_silicon_partners architecture

> Architecture diagram of the GitHub repository renesas-software-and-digitalization/qcs_silicon_partners, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/renesas-software-and-digitalization/qcs_silicon_partners
- Repository: https://github.com/renesas-software-and-digitalization/qcs_silicon_partners

## Overview

This repository is a collection of Renesas EK-RA6M4 reference firmware applications for integrating sensors with QC Studio. The intended workflow is to add a sensor driver and Sensor Manager thin layer, configure sensor types, channels, scaling and sampling, then communicate through the UART-based bare-metal application. The tree also includes board- and sensor-specific examples, plus BLE and cloud variants. The README documents the integration workflow, but the sampled source does not show the runtime call chain or sensor registration details, so those connections are omitted or marked unverified.

Main entry points: [`applications/ek_ra6m4_generic_uart_baremetal_serial/src/sensor/i2c.c`](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/sensor/i2c.c) (I2C Interface), [`applications/ek_ra6m4_generic_uart_baremetal_serial/src/qc-middleware/sensor_manager/sm.c`](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/qc-middleware/sensor_manager/sm.c) (Sensor Manager), [`applications/ek_ra6m4_generic_uart_baremetal_serial/src/sensor`](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/tree/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/sensor) (Sensor Thin Layer), [`applications/ek_ra6m4_generic_uart_baremetal_serial/src/uart.c`](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/uart.c) (UART I/O)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["UART Reference Apps"]
  node_template["Bare-Metal Template<br/>[main_application.c]"]
  node_entry["HAL Entry<br/>[hal_entry.c]"]
  node_uart["UART I/O<br/>[uart.c]"]
end

subgraph group_sensing["Sensor Integration"]
  node_thin["Sensor Thin Layer"]
  node_i2c["I2C Interface<br/>[i2c.c]"]
  node_hs3001["HS3001 Example<br/>[hs3001_sensor.c]"]
  node_dummy["Dummy Example<br/>[dummy_sensor.c]"]
  node_fecs43["FECS43 Driver<br/>[rm_fecs43.c]"]
  node_fecs44["FECS44 Driver<br/>[rm_fecs44.c]"]
  node_fecs50["FECS50 Driver<br/>[rm_fecs50.c]"]
  node_tgs5141["TGS5141 Driver<br/>[rm_tgs5141.c]"]
  node_tgs6810["TGS6810 Driver<br/>[rm_tgs6810.c]"]
end

subgraph group_middleware["QC Middleware"]
  node_sm["Sensor Manager<br/>[sm.c]"]
  node_logger["Logging Utilities"]
  node_rtt["SEGGER RTT<br/>[SEGGER_RTT.c]"]
end

subgraph group_connectivity["Partner Variants"]
  node_ble["BLE Custom Apps"]
  node_cloud["Cloud Variants<br/>[mqtt_wrapper.c]"]
end

node_user(("Firmware Integrator"))
node_host(("UART Adapter"))
node_sensorhw(("Sensor Hardware"))

node_user -->|"adds layer"| node_thin
node_user -->|"adds driver"| node_i2c
node_user -->|"configures instances"| node_sm
node_thin -->|"registers as sensor"| node_sm
node_dummy -->|"demonstrates interface"| node_i2c
node_hs3001 -->|"example sensor"| node_sm
node_template -.->|"uses serial I/O"| node_uart
node_host -->|"exchanges serial data"| node_uart
node_sensorhw -->|"connects over I2C"| node_i2c

click node_template "https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/main_application.c"
click node_entry "https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/hal_entry.c"
click node_uart "https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/uart.c"
click node_sm "https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/qc-middleware/sensor_manager/sm.c"
click node_thin "https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/tree/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/sensor"
click node_i2c "https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/sensor/i2c.c"
click node_hs3001 "https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/sensor/hs3001_sensor.c"
click node_dummy "https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/sensor/dummy_sensor.c"
click node_fecs43 "https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_fecs43_generic_uart_baremetal_serial/src/sensor/fecs43/rm_fecs43.c"
click node_fecs44 "https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_fecs44_generic_uart_baremetal_serial/src/sensor/fecs44/rm_fecs44.c"
click node_fecs50 "https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_fecs50_generic_uart_baremetal_serial/src/sensor/fecs50/rm_fecs50.c"
click node_tgs5141 "https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_tgs5141_generic_uart_baremetal_serial/src/sensor/tgs5141/rm_tgs5141.c"
click node_tgs6810 "https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_tgs6810_generic_uart_baremetal_serial/src/sensor/tgs6810/rm_tgs6810.c"
click node_logger "https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/tree/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/qc-middleware/common_utils"
click node_rtt "https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/qc-middleware/SEGGER_RTT/SEGGER_RTT.c"
click node_ble "https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/tree/main/applications/figaro_fecs43/ek_ra6m4_fecs43_da14531_baremetal_custom/src/qe_gen/ble"
click node_cloud "https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/figaro_fecs43/ek_ra6m4_fecs43_da16200_freertos_adafruit_cloud/src/mqtt_wrapper.c"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_template,node_entry,node_uart toneBlue
class node_thin,node_i2c,node_hs3001,node_dummy,node_fecs43,node_fecs44,node_fecs50,node_tgs5141,node_tgs6810 toneAmber
class node_sm,node_logger,node_rtt toneMint
class node_ble,node_cloud toneRose
class node_user,node_host,node_sensorhw toneIndigo
```

## Components

### UART Reference Apps

- [Bare-Metal Template](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/main_application.c): `applications/ek_ra6m4_generic_uart_baremetal_serial/src/main_application.c`
- [HAL Entry](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/hal_entry.c): `applications/ek_ra6m4_generic_uart_baremetal_serial/src/hal_entry.c`
- [UART I/O](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/uart.c): `applications/ek_ra6m4_generic_uart_baremetal_serial/src/uart.c`

### Sensor Integration

- [Sensor Thin Layer](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/tree/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/sensor): `applications/ek_ra6m4_generic_uart_baremetal_serial/src/sensor`
- [I2C Interface](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/sensor/i2c.c): `applications/ek_ra6m4_generic_uart_baremetal_serial/src/sensor/i2c.c`
- [HS3001 Example](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/sensor/hs3001_sensor.c): `applications/ek_ra6m4_generic_uart_baremetal_serial/src/sensor/hs3001_sensor.c`
- [Dummy Example](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/sensor/dummy_sensor.c): `applications/ek_ra6m4_generic_uart_baremetal_serial/src/sensor/dummy_sensor.c`
- [FECS43 Driver](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_fecs43_generic_uart_baremetal_serial/src/sensor/fecs43/rm_fecs43.c): `applications/ek_ra6m4_fecs43_generic_uart_baremetal_serial/src/sensor/fecs43/rm_fecs43.c`
- [FECS44 Driver](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_fecs44_generic_uart_baremetal_serial/src/sensor/fecs44/rm_fecs44.c): `applications/ek_ra6m4_fecs44_generic_uart_baremetal_serial/src/sensor/fecs44/rm_fecs44.c`
- [FECS50 Driver](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_fecs50_generic_uart_baremetal_serial/src/sensor/fecs50/rm_fecs50.c): `applications/ek_ra6m4_fecs50_generic_uart_baremetal_serial/src/sensor/fecs50/rm_fecs50.c`
- [TGS5141 Driver](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_tgs5141_generic_uart_baremetal_serial/src/sensor/tgs5141/rm_tgs5141.c): `applications/ek_ra6m4_tgs5141_generic_uart_baremetal_serial/src/sensor/tgs5141/rm_tgs5141.c`
- [TGS6810 Driver](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_tgs6810_generic_uart_baremetal_serial/src/sensor/tgs6810/rm_tgs6810.c): `applications/ek_ra6m4_tgs6810_generic_uart_baremetal_serial/src/sensor/tgs6810/rm_tgs6810.c`

### QC Middleware

- [Sensor Manager](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/qc-middleware/sensor_manager/sm.c): `applications/ek_ra6m4_generic_uart_baremetal_serial/src/qc-middleware/sensor_manager/sm.c`
- [Logging Utilities](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/tree/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/qc-middleware/common_utils): `applications/ek_ra6m4_generic_uart_baremetal_serial/src/qc-middleware/common_utils`
- [SEGGER RTT](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/ek_ra6m4_generic_uart_baremetal_serial/src/qc-middleware/SEGGER_RTT/SEGGER_RTT.c): `applications/ek_ra6m4_generic_uart_baremetal_serial/src/qc-middleware/SEGGER_RTT/SEGGER_RTT.c`

### Partner Variants

- [BLE Custom Apps](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/tree/main/applications/figaro_fecs43/ek_ra6m4_fecs43_da14531_baremetal_custom/src/qe_gen/ble): `applications/figaro_fecs43/ek_ra6m4_fecs43_da14531_baremetal_custom/src/qe_gen/ble`
- [Cloud Variants](https://github.com/renesas-software-and-digitalization/qcs_silicon_partners/blob/main/applications/figaro_fecs43/ek_ra6m4_fecs43_da16200_freertos_adafruit_cloud/src/mqtt_wrapper.c): `applications/figaro_fecs43/ek_ra6m4_fecs43_da16200_freertos_adafruit_cloud/src/mqtt_wrapper.c`

### Other components

- **Firmware Integrator**
- **UART Adapter**
- **Sensor Hardware**

## Connections

- Firmware Integrator → Sensor Thin Layer: adds layer (evidence: `README.md`)
- Firmware Integrator → I2C Interface: adds driver (evidence: `README.md`)
- Firmware Integrator → Sensor Manager: configures instances (evidence: `README.md`)
- Sensor Thin Layer → Sensor Manager: registers as sensor (evidence: `README.md`)
- Dummy Example → I2C Interface: demonstrates interface (evidence: `README.md`)
- HS3001 Example → Sensor Manager: example sensor (evidence: `README.md`)
- Bare-Metal Template → UART I/O: uses serial I/O
- UART Adapter → UART I/O: exchanges serial data (evidence: `README.md`)
- Sensor Hardware → I2C Interface: connects over I2C (evidence: `README.md`)
