π HardFOC Internal Interface Wrapper
π― Multi-MCU Hardware Abstraction Layer
Universal interface wrapper supporting multiple MCU platforms - ESP32 first implementation
π Table of Contents
π― Overview
The HardFOC Internal Interface Wrapper is a multi-MCU hardware abstraction layer designed to
provide unified APIs across different microcontroller platforms.
Currently supporting the ESP32 family (ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6,
ESP32-H2) as the first implementation,
with STM32 and additional MCUs planned for future releases.
π― Multi-MCU Architecture Goals
π MCU Portability - Write once, run on multiple MCU platforms
π― Unified APIs - Consistent interface across all peripheral types
β‘ Performance - Zero-cost abstractions with compile-time optimization
π‘οΈ Type Safety - Strong typing with project-specific type system
π Extensible - Easy to add new MCUs and peripheral drivers
π Complete Coverage - 14+ peripheral interfaces for comprehensive hardware control
ποΈ Multi-MCU Architecture
The wrapper follows a multi-layered architecture supporting multiple MCU platforms:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π― Application Layer β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β Motor β β IoT β β Industrial β β Custom β β
β β Control β β Integration β β Systems β β Applicationsβ β
β β Apps β β Apps β β Apps β β Apps β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β β β β β
β βββββββββββββββββββΌββββββββββββββββββΌββββββββββββββββββ β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β π Thread-Safe Layer (Optional) β β
β β β β
β β βββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββ β β
β β β Thread-Safe β β Concurrent β β Mutex β β Lock-Free β β β
β β β Wrappers β β Access β β Protection β β Operations β β β
β β β β β Control β β β β β β β
β β βββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββ β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ποΈ Base Interface Layer (MCU-Agnostic) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββ ββββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β Core β β Communicationβ β Wireless β β System β β
β β Interfaces β β Interfaces β β Interfaces β β Interfaces β β
β β β β β β β β β β
β β GPIO β β I2C β β WiFi β β NVS β β
β β ADC β β SPI β β Bluetooth β β Timer β β
β β PWM β β UART β β β β Temperature β β
β β PIO β β CAN β β β β Logger β β
β βββββββββββββββ ββββββββββββββββ βββββββββββββββ βββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β βοΈ MCU Implementation Layer β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β ESP32-C6 β β STM32 β β Future β β External β β
β β (Current) β β (Planned) β β MCUs β β Hardware β β
β β β β β β (Planned) β β Drivers β β
β β EspGpio β β StmGpio β β β β I2C Devices β β
β β EspAdc β β StmAdc β β β β SPI Devices β β
β β EspPwm β β StmPwm β β β β UART Devicesβ β
β β EspI2c β β StmI2c β β β β CAN Devices β β
β β EspSpi β β StmSpi β β β β β β
β β EspUart β β StmUart β β β β β β
β β EspCan β β StmCan β β β β β β
β β EspWifi β β StmWifi β β β β β β
β β EspBluetoothβ β StmBluetoothβ β β β β β
β β EspNvs β β StmNvs β β β β β β
β β EspTimer β β StmTimer β β β β β β
β β EspTemp β β StmTemp β β β β β β
β β EspLogger β β StmLogger β β β β β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π§ Hardware Layer β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β ESP32-C6 β β STM32 β β Future β β External β β
β β Hardware β β Hardware β β MCU β β Components β β
β β (Current) β β (Planned) β β Hardware β β β β
β β β β β β (Planned) β β Sensors β β
β β GPIO Pins β β GPIO Pins β β β β Actuators β β
β β ADC Units β β ADC Units β β β β Displays β β
β β PWM Timers β β PWM Timers β β β β Memory β β
β β I2C Buses β β I2C Buses β β β β Storage β β
β β SPI Buses β β SPI Buses β β β β β β
β β UART Ports β β UART Ports β β β β β β
β β CAN Controllersβ CAN Controllersβ β β β β
β β WiFi Radio β β WiFi Radio β β β β β β
β β BT Radio β β BT Radio β β β β β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Interface Inheritance Pattern
All interfaces follow a consistent inheritance pattern across MCU platforms:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ποΈ Base Interface (Abstract) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β BaseInterface (Pure Virtual) β β
β β β β
β β + EnsureInitialized() β error_t β β
β β + IsInitialized() β bool β β
β β + GetCapabilities() β capabilities_t β β
β β + Reset() β error_t β β
β β + GetLastError() β error_t β β
β β + GetStatistics() β statistics_t β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π§ MCU-Specific Implementations β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β ESP32 β β STM32 β β Future β β
β β (Current) β β (Planned) β β β β
β β β β β β (Planned) β β
β β EspGpio β β StmGpio β β β β
β β EspAdc β β StmAdc β β β β
β β EspPwm β β StmPwm β β β β
β β ... β β ... β β ... β β
β β β β β β β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π§ Type System
The wrapper uses a comprehensive type system designed for maximum portability and consistency across
multiple MCU platforms:
π― Core Types for Multi-MCU Applications
1
2
3
4
5
6
7
8
9
// Platform-agnostic integer types for all MCU platforms
using hf_u8_t = uint8_t ; // 8-bit unsigned
using hf_u16_t = uint16_t ; // 16-bit unsigned
using hf_u32_t = uint32_t ; // 32-bit unsigned
using hf_u64_t = uint64_t ; // 64-bit unsigned
using hf_i8_t = int8_t ; // 8-bit signed
using hf_i16_t = int16_t ; // 16-bit signed
using hf_i32_t = int32_t ; // 32-bit signed
using hf_i64_t = int64_t ; // 64-bit signed
π Hardware Abstraction Types
1
2
3
4
5
6
7
8
9
10
11
12
// Hardware abstraction types for all MCU platforms
using hf_pin_num_t = hf_i32_t ; // GPIO pin numbers
using hf_channel_id_t = hf_u32_t ; // ADC/PWM/DMA channels
using hf_time_t = hf_u64_t ; // Time values in microseconds
using hf_frequency_hz_t = hf_u32_t ; // Frequency values in Hz
// Application-specific semantic types
using hf_voltage_mv_t = hf_u32_t ; // Voltage in millivolts
using hf_current_ma_t = hf_u32_t ; // Current in milliamps
using hf_temperature_c_t = hf_i32_t ; // Temperature in Celsius (scaled by 100)
using hf_speed_rpm_t = hf_u32_t ; // Motor speed in RPM
using hf_torque_nm_t = hf_u32_t ; // Torque in Newton-meters (scaled)
π Complete Documentation : HardwareTypes API Reference
β¨ Key Features
π Comprehensive Multi-MCU Hardware Support
14 Complete Base Interfaces - From GPIO to wireless communication across all MCU platforms
ESP32 Family Implementation - Full support for all ESP32 variants (ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6, ESP32-H2)
STM32 Implementation - Planned support for STM32 peripherals (future)
External Hardware Integration - I2C/SPI device support for expansion boards
Real-Time Optimized - Designed for critical timing requirements
Lazy Initialization - Resources allocated only when needed
Thread-Safe Options - Optional concurrent access support
Comprehensive Error Handling - Detailed error reporting for reliability
π Modern Connectivity
WiFi Station/AP Modes - Complete networking for IoT integration
Bluetooth Classic & BLE - Mobile and IoT connectivity
Cloud Integration Ready - Built-in features for cloud connectivity
Remote Monitoring - Advanced logging and diagnostics
π Professional Features
Rich Diagnostics - Performance monitoring and system health
Configuration Management - Non-volatile settings storage
Advanced Logging - Multi-level, multi-output logging
Thermal Management - Temperature monitoring and protection
π Supported Hardware
| MCU Platform | GPIO | ADC | PWM | I2C | SPI | UART | CAN | WiFi | BT | Temp | NVS | Timer | PIO | Logger | Status |
|ββββββ|βββ-|βββ|βββ|βββ|βββ|βββ-|βββ|βββ-|βββ|βββ-|βββ|ββββ|βββ|ββββ|ββββ|
ESP32 Family
β
β
β
β
β
β
β
β
β
β
β
β
β
β
Current
STM32
π
π
π
π
π
π
π
π
π
π
π
π
π
π
Planned
Future MCUs
π
π
π
π
π
π
π
π
π
π
π
π
π
π
Planned
ποΈ Design Principles
π― Multi-MCU Design Goals
π Consistency - Uniform APIs across all MCU platforms and peripheral interfaces
β‘ Performance - Optimized for real-time requirements across all MCU platforms
π‘οΈ Reliability - Comprehensive error handling for critical applications
π Scalability - From simple prototypes to complex industrial systems
π§ Simplicity - Easy-to-use APIs for rapid development
π Modern - Built-in IoT connectivity for next-generation applications
ποΈ Architectural Patterns
Abstract Base Classes - Define consistent interfaces for all peripheral types
Platform Implementations - Hardware-specific optimizations for each MCU platform
Optional Thread Safety - Concurrent access support for complex applications
Lazy Resource Management - Efficient memory usage on resource-constrained MCUs
Comprehensive Error Handling - Detailed error reporting for reliability
Semantic Type System - Application domain-specific types for clarity
π API Reference
π Documentation Structure
Our comprehensive documentation is organized into logical sections for easy navigation:
Section
Description
Documentation
|ββββ-|ββββββ|ββββββ-|
π οΈ Utility Classes
Advanced utility classes and helpers
RAII patterns, safety mechanisms, and convenience wrappers
ποΈ Core Interfaces (MCU-Agnostic)
Interface
Key Features
Use Cases
Status
|βββββ|ββββββ|βββββ|ββββ|
BaseGpio
Digital I/O, interrupts, pull resistors
Enable pins, limit switches, indicators
β
Complete
BaseAdc
Multi-channel, calibration, voltage conversion
Current sensing, position feedback
β
Complete
BasePwm
Multi-channel, frequency control, duty cycle
Motor speed control, servo control
β
Complete
BasePio
Custom protocols, precise timing, encoding
Encoder reading, custom protocols
β
Complete
π‘ Communication Interfaces (MCU-Agnostic)
Interface
Key Features
Use Cases
Status
|βββββ|ββββββ|βββββ|ββββ|
BaseI2c
Master mode, device scanning, error recovery
Sensor communication, display control
β
Complete
BaseSpi
Full-duplex, configurable modes, DMA support
High-speed data, SD cards
β
Complete
BaseUart
Async I/O, flow control, configurable parameters
Debug output, external communication
β
Complete
BaseCan
Standard/Extended frames, filtering, error handling
Industrial networking, multi-device coordination
β
Complete
π Wireless Interfaces (MCU-Agnostic)
Interface
Key Features
Use Cases
Status
|βββββ|ββββββ|βββββ|ββββ|
BaseWifi
Station/AP modes, WPA3 security, mesh networking
Cloud connectivity, remote monitoring
β
Complete
BaseBluetooth
Classic & BLE, pairing, service discovery
Mobile apps, wireless configuration
β
Complete
π οΈ System Interfaces (MCU-Agnostic)
Interface
Key Features
Use Cases
Status
|βββββ|ββββββ|βββββ|ββββ|
BaseNvs
Key-value storage, encryption, wear leveling
Configuration storage, calibration data
β
Complete
BasePeriodicTimer
Callback scheduling, high precision, multi-timer
Control loops, sensor sampling
β
Complete
BaseTemperature
Multi-sensor support, calibration, thermal protection
Thermal monitoring, safety protection
β
Complete
BaseLogger
Multi-level logging, thread-safe, network output
System diagnostics, performance monitoring
β
Complete
π§ MCU-Specific Implementations
MCU Platform
Implementation
Base Class
MCU-Specific Features
Documentation
Status
|ββββββ|ββββββ-|βββββ-|βββββββββ|ββββββ-|ββββ|
ESP32 Family
EspGpio
BaseGpio
Drive strength, slew rate control
β
Complete
β
Complete
ESP32 Family
EspAdc
BaseAdc
12-bit resolution, multiple units
β
Complete
β
Complete
ESP32 Family
EspPwm
BasePwm
LEDC controller, fade effects
β
Complete
β
Complete
ESP32 Family
EspI2c
BaseI2c
Clock stretching, multi-master
β
Complete
β
Complete
ESP32 Family
EspSpi
BaseSpi
Full-duplex, DMA support
β
Complete
β
Complete
ESP32 Family
EspUart
BaseUart
Hardware flow control
β
Complete
β
Complete
ESP32 Family
EspCan
BaseCan
TWAI controller, SN65 transceiver
β
Complete
β
Complete
ESP32 Family
EspWifi
BaseWifi
802.11n, WPA3, mesh
β
Complete
β
Complete
ESP32 Family
EspBluetooth
BaseBluetooth
BLE/Classic, NimBLE optimized
β
Complete
β
Complete
ESP32 Family
EspNvs
BaseNvs
Encrypted storage, wear leveling
β
Complete
β
Complete
ESP32 Family
EspPeriodicTimer
BasePeriodicTimer
High precision, multi-timer
β
Complete
β
Complete
ESP32 Family
EspTemperature
BaseTemperature
Internal sensor, I2C/1-Wire
β
Complete
β
Complete
ESP32 Family
EspPio
BasePio
RMT peripheral, custom protocols
β
Complete
β
Complete
ESP32 Family
EspLogger
BaseLogger
Multi-output, network logging
β
Complete
β
Complete
STM32
StmGpio
BaseGpio
STM32-specific GPIO features
π Planned
π Planned
STM32
StmAdc
BaseAdc
STM32-specific ADC features
π Planned
π Planned
STM32
StmPwm
BasePwm
STM32-specific PWM features
π Planned
π Planned
STM32
StmI2c
BaseI2c
STM32-specific I2C features
π Planned
π Planned
STM32
StmSpi
BaseSpi
STM32-specific SPI features
π Planned
π Planned
STM32
StmUart
BaseUart
STM32-specific UART features
π Planned
π Planned
STM32
StmCan
BaseCan
STM32-specific CAN features
π Planned
π Planned
STM32
StmWifi
BaseWifi
STM32-specific WiFi features
π Planned
π Planned
STM32
StmBluetooth
BaseBluetooth
STM32-specific Bluetooth features
π Planned
π Planned
STM32
StmNvs
BaseNvs
STM32-specific NVS features
π Planned
π Planned
STM32
StmPeriodicTimer
BasePeriodicTimer
STM32-specific timer features
π Planned
π Planned
STM32
StmTemperature
BaseTemperature
STM32-specific temperature features
π Planned
π Planned
STM32
StmPio
BasePio
STM32-specific PIO features
π Planned
π Planned
STM32
StmLogger
BaseLogger
STM32-specific logger features
π Planned
π Planned
π ESP32 Family Support Details
The ESP32 implementations support multiple ESP32 variants with conditional compilation:
ESP32 Variant
GPIO
ADC
PWM
I2C
SPI
UART
CAN
WiFi
BT
Temp
NVS
Timer
PIO
Logger
|ββββββ-|βββ-|βββ|βββ|βββ|βββ|βββ-|βββ|βββ-|βββ|βββ-|βββ|ββββ|βββ|ββββ|
ESP32
β
β
β
β
β
β
β
β
β
β
β
β
β
β
ESP32-S2
β
β
β
β
β
β
β
β
β
β
β
β
β
β
ESP32-S3
β
β
β
β
β
β
β
β
β
β
β
β
β
β
ESP32-C3
β
β
β
β
β
β
β
β
β
β
β
β
β
β
ESP32-C6
β
β
β
β
β
β
β
β
β
β
β
β
β
β
ESP32-H2
β
β
β
β
β
β
β
β
β
β
β
β
β
β
π― Type System Reference
Documentation
Description
Status
|ββββββ|ββββββ|ββββ|
π Quick Start
π Prerequisites for Multi-MCU Development
ESP-IDF v5.0+ for ESP32 family development (current)
STM32CubeIDE for STM32 development (planned)
C++17 compatible compiler (GCC 8+ or Clang 7+)
CMake 3.16+ for project management
Target MCU Development Board (ESP32 family, STM32, etc.)
βοΈ Installation for Multi-MCU Projects
1
2
3
4
5
6
7
8
9
10
11
12
13
## Clone the multi-MCU wrapper repository
git clone https://github.com/hardfoc/hf-internal-interface-wrap.git
cd hf-internal-interface-wrap
## For ESP32 projects, add to your CMakeLists.txt
idf_component_register(
SRCS "main.cpp"
INCLUDE_DIRS "."
REQUIRES hf_internal_interface_wrap
)
## For STM32 projects (future)
## Add to your CMakeLists.txt or project configuration
π― Basic Multi-MCU GPIO Example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// ESP32 Family Implementation (Current)
#include "inc/mcu/esp32/EspGpio.h"
// Create output pin for LED control
EspGpio led_pin ( GPIO_NUM_2 , hf_gpio_direction_t :: HF_GPIO_DIRECTION_OUTPUT );
// Create input pin for button
EspGpio button_pin ( GPIO_NUM_0 , hf_gpio_direction_t :: HF_GPIO_DIRECTION_INPUT ,
hf_gpio_active_state_t :: HF_GPIO_ACTIVE_LOW ,
hf_gpio_output_mode_t :: HF_GPIO_OUTPUT_MODE_PUSH_PULL ,
hf_gpio_pull_mode_t :: HF_GPIO_PULL_MODE_UP );
void app_main () {
// Initialize pins
led_pin . EnsureInitialized ();
button_pin . EnsureInitialized ();
while ( true ) {
if ( button_pin . IsActive ()) {
led_pin . SetActive (); // Turn on LED when button pressed
} else {
led_pin . SetInactive (); // Turn off LED when button released
}
vTaskDelay ( pdMS_TO_TICKS ( 10 ));
}
}
// STM32 Implementation (Future)
// #include "inc/mcu/stm32/StmGpio.h"
// StmGpio led_pin(GPIO_PIN_5, hf_gpio_direction_t::HF_GPIO_DIRECTION_OUTPUT);
// ... same API, different implementation
π Basic Multi-MCU ADC Example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// ESP32 Family Implementation (Current)
#include "inc/mcu/esp32/EspAdc.h"
void read_sensors () {
EspAdc adc ( ADC_UNIT_1 , ADC_ATTEN_DB_11 );
// Initialize ADC
if ( ! adc . EnsureInitialized ()) {
printf ( "Failed to initialize ADC \n " );
return ;
}
// Read current sensor (channel 0)
float current_voltage ;
if ( adc . ReadChannelV ( 0 , current_voltage ) == hf_adc_err_t :: ADC_SUCCESS ) {
float current_amps = ( current_voltage - 2.5 f ) / 0.1 f ; // ACS712 conversion
printf ( "Current: %.2f A \n " , current_amps );
}
// Read position sensor (channel 1)
float position_voltage ;
if ( adc . ReadChannelV ( 1 , position_voltage ) == hf_adc_err_t :: ADC_SUCCESS ) {
float position_degrees = ( position_voltage / 3.3 f ) * 360.0 f ;
printf ( "Position: %.1f degrees \n " , position_degrees );
}
}
// STM32 Implementation (Future)
// #include "inc/mcu/stm32/StmAdc.h"
// StmAdc adc(ADC1, ADC_CHANNEL_0);
// ... same API, different implementation
π Examples
π― Basic Interface Examples (Multi-MCU)
GPIO Control - LED and button control across MCU platforms
ADC Monitoring - Sensor data acquisition for all MCUs
PWM Generation - Motor speed control for all MCUs
Temperature Sensing - Thermal monitoring across platforms
π Wireless Examples (Multi-MCU)
WiFi Station - Internet connectivity for IoT applications
WiFi Access Point - Local network creation for all MCUs
Bluetooth BLE - Mobile app integration across platforms
Bluetooth Classic - Serial communication for all MCUs
π Advanced Integration Examples (Multi-MCU)
Complete Motor Controller - Full-featured motor control with TMC-style controllers
IoT Gateway - WiFi bridge with monitoring across MCUs
Multi-Sensor Logger - Data collection system for all platforms
Secure Communication - Encrypted data transfer across MCUs
π§ͺ Production-Ready Examples (Multi-MCU)
Industrial Control System - Complete industrial solution
Automotive Interface - CAN bus integration across platforms
Remote Monitoring - Cloud-connected system for all MCUs
Diagnostic System - Advanced diagnostics across platforms
βοΈ Multi-MCU Project Configuration
Configure specific features for your target MCU platform:
Interface Selection - Enable only the interfaces your MCU uses
Performance Tuning - Optimize for real-time requirements
Memory Configuration - Configure buffers for your application
Wireless Settings - WiFi and Bluetooth configuration for IoT
Debug Options - Logging levels for development
π€ Contributing
We welcome contributions to improve multi-MCU support!
Please see our Contributing Guidelines .
π― Areas for Multi-MCU Development
New MCU Support - Additional MCU platform implementations (STM32, etc.)
Performance Optimization - Real-time improvements for all MCU platforms
Example Applications - More use case demonstrations across MCUs
Documentation - Enhanced guides for multi-MCU development
Testing - Hardware validation across all supported MCUs
π License
This project is licensed under the GNU General Public License v3.0 - see the
LICENSE file for details.
The GPL-3.0 license ensures that improvements to the multi-MCU wrapper remain open source and
benefit the entire community.
π Multi-MCU Interface Wrapper
Universal hardware abstraction layer supporting multiple MCU platforms
π Quick Links
π Quick Start | π API Reference | π Examples | π€
Contributing
π Documentation Navigation
π Support
π¬ GitHub Discussions | π Issue
Tracker | π§ Multi-MCU
Support
π Table of Contents