Skip to main content

Crate feagi_hal

Crate feagi_hal 

Source
Expand description

§FEAGI HAL

Hardware Abstraction Layer (HAL) for FEAGI embedded neural networks. Platform abstraction and implementations for embedded systems.

This crate provides:

  • HAL traits (hal module) - Platform-agnostic hardware abstractions
  • Platform implementations (platforms module) - Concrete implementations for ESP32, Arduino, STM32, etc.

§Usage

§Advanced Users (Direct HAL Usage)

use feagi_hal::prelude::*;
use feagi_npu_runtime::embedded::{NeuronArray, SynapseArray};
use feagi_npu_neural::types::INT8Value;

fn main() -> ! {
    let platform = Esp32Platform::init().expect("Failed to init");
    let mut neurons = NeuronArray::<INT8Value, 1000>::new();
    let mut synapses = SynapseArray::<5000>::new();

    // Custom network topology
    // Custom burst loop
    loop {
        neurons.process_burst(&synapses);
    }
}

§SDK Users

See feagi-nano crate for high-level SDK with NetworkBuilder, templates, etc.

§Feature Flags

Platforms are selected via feature flags:

  • esp32 - ESP32, ESP32-S3, ESP32-C3 support
  • arduino-due - Arduino Due support (future)
  • stm32f4 - STM32F4 series support (future)
  • hailo - Hailo-8 neural accelerator support (future)

Re-exports§

pub use hal::AcceleratorCapabilities;
pub use hal::BluetoothProvider;
pub use hal::ConnectionStatus;
pub use hal::GpioProvider;
pub use hal::LogLevel;
pub use hal::Logger;
pub use hal::NeuralAccelerator;
pub use hal::Platform;
pub use hal::SerialIO;
pub use hal::TimeProvider;
pub use hal::UsbCdcProvider;
pub use hal::UsbConnectionStatus;
pub use transports::Command;
pub use transports::PacketCommand;
pub use transports::Protocol;

Modules§

bluetooth
Bluetooth Low Energy protocol and abstractions Bluetooth Low Energy (BLE) support for FEAGI embedded systems
hal
Hardware abstraction traits shared by all platforms.
platforms
Concrete platform implementations (ESP32, STM32, etc.).
prelude
Prelude module for convenient imports
transports
Transport layer (protocol that works with BLE, USB CDC, UART, etc.) Transport Layer for FEAGI Communication

Structs§

INT8Value
INT8 quantized value for neural computations
NeuronArray
Fixed-size neuron array for embedded systems
SynapseArray
Fixed-size synapse array for embedded systems

Constants§

VERSION
Version information

Traits§

NeuralValue
Trait for neural computation values

Functions§

version
Get library version