Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Embedded — paebiru-hal

Runtime no_std do protocolo PAEBIRU para microcontroladores e dispositivos de borda. Suporta o metabolismo ABAPORU em ambientes restritos (Cortex-M, RISC-V, Xtensa, AVR, x86_64).

Detalhe granular em crates/hal/README.md. Esta página é a visão de referência consolidada para integradores de hardware.

Princípios

  • Sobrevivência — esporulação, criptobiose, MuleTransport off-band. O nó embarcado nunca deve perder estado por falta de energia.
  • Autonomia — opera sem conectividade contínua; sincroniza oportunisticamente.
  • Economia de Energia — energia colhida (harvesting) é lastro econômico no BarterEngine.

Arquiteturas suportadas (HAL PaebiruHal)

FamíliaMóduloAlvos canônicos
ARM Cortex-M/Ahal::armSTM32WL55, nRF52840
RISC-Vhal::riscvESP32-C3, ESP32-H6
Xtensahal::xtensaESP32, ESP32-S3
AVRhal::avrATmega328P
x86_64hal::x86Edge gateways, simulação local

A interface PaebiruHal é agnóstica de vendor — primitivas obrigatórias: rádio, entropia pura, controle de energia, relógio.

Subsistemas

Aceleração ZK (hal::zk)

  • NTT / INTT — Number Theoretic Transform como kernel canônico de Groth16/STARK.
  • MSM — Multi-Scalar Multiplication para curvas elípticas.
  • Backends: software (fallback portável), WebGPU (hal::gpu_ntt, shaders WGSL), CUDA (host de borda), FPGA (Verilog + MMIO).

Plasticidade de Hardware (hal::plasticity) — RFC 036

  • Reconfiguração Dinâmica — Suporte a FPGAs de baixo custo (ex: Lattice iCE40, Gowin) para mutação física do hardware.
  • MMIO Bitstream Loader — Interface para carregar bitstreams parciais ou totais via barramento interno (SPI/Parallel).
  • Aceleração Sob Demanda — O Ator Biológico solicita a síntese de funções críticas (ZK, Reed-Solomon) quando o atrito computacional ultrapassa o limiar de ativação.

Em v1, embedded não verifica STARKs localmente — delega para nó de maior porte na mesma LocalSyncDomain GALS (decisão de §12.2 em theory/workspace_mapping.md).

Neuromórfico (hal::neuromorphic)

  • Simulador SNN (Leaky Integrate-and-Fire) em software.
  • Emulador para Intel Loihi (em incubação).
  • Cooperação com StochasticSpikeNeuron do contexto Biologia (BIOLOGY.md).

DMA Zero-Copy (hal::dma)

Transferências entre rádio ↔ buffer ↔ CPU sem cópia intermediária — reduz custo termodinâmico (menos bits apagados = menos Landauer).

Rádio (radio/)

DriverChipUso
radio::lorawanSemtech SX1276 / SX1262Mesh LPWAN, anúncios de barter
radio::bleBLE MeshAdvertisements de bateria / propostas de escambo

Integrado via embedded-hal (sem dependência de SDK proprietário).

Energia (power/)

Saldo e orçamento em mili-Joules (mJ). Fontes suportadas:

  • Solar — painel pequeno + carga supercap.
  • RF — colheita de RF ambiente (LoRa/WiFi).
  • Peltier — gradiente térmico.
  • Bateria — fallback.

Joule Barter Rate — preço de processamento em µJ/fuel modulado pelo State-of-Charge (SoC):

  • SoC alto → preço barato (incentiva uso de excedente).
  • SoC baixo → preço inflacionado (proteção contra blecaute).

Conecta-se ao BarterEngine do contexto Economia.

Proof-of-Location (pol_phy/)

Validação anti-spoofing em ambiente restrito:

  • Fixed-point (inteiros) — evita FPU em chips sem suporte a f32.
  • RSSI — estimativa de distância via modelo Log-distance.
  • ToA — tempo de chegada baseado em velocidade da luz.
  • Modelo híbrido — mescla estatísticas locais e produz score de confiança que feed-back para o PoLValidator do kernel (KERNEL.md).

Runtime cooperativo (runtime/)

  • Até 8 tarefas simultâneas (estrutura heapless).
  • Tarefas periódicas + eventos do rádio.
  • Trade-off explícito: cooperação > preempção, para previsibilidade em hardware sem MMU.
#![allow(unused)]
fn main() {
use paebiru_embedded::runtime::{NodeRuntime, TaskId, Priority, ExecutionTarget};

let mut runtime = NodeRuntime::new();
runtime.register(TaskId(0), Priority::Normal, 100, ExecutionTarget::Cpu).unwrap();
}

Micro-VMM (vmm/)

Enclausura partições do ConsciousnessManager com cota de memória limitada — protege o agente em hardware compartilhado (gateway com múltiplos plasmídeos).

Entropia (entropy/)

  • HwRng periférico (ESP/STM32) — primária.
  • Jitter LFSR — fallback para chips simples (ATmega328P).
  • Alimenta a stack PQ (KERNEL.md).

Cargo features

FeatureEfeito
esp32, esp32s3, esp32c3, stm32wl, nrf52840, atmega328pAtiva registradores HW dedicados
defmt-logLogging via defmt (banda baixa)
stdHabilita std (gateways x86, WASM browser, testes)
wgpuRequer std; injeta shaders WGSL para NTT-64 acelerada

Default: no_std, sem alvo específico (escolha um para HW real).

Flashing

Use a CLI Forge:

paebiru-cli flash --target esp32-c3 --node-id meu-no-01 --port /dev/ttyUSB0
paebiru-cli flash --target stm32wl55 --node-id meu-no-02
paebiru-cli flash --target rpi-zero2w --node-id meu-no-03

Toolchains: cargo-espflash (ESP), probe-rs (STM32), ssh+rsync (RPi).

Tradeoffs e limites de v1

  • Sem STARK local — esperado v2+ com hardware Loihi-class.
  • TPM/SE / PUF — Suporte a TPM 2.0 em x86; Apple Secure Enclave em macOS gateways. Conforme a RFC 028, o paebiru-hal já implementa os traits PufReader e TamperAwarePufReader (no_std) para suporte a identidades físicas em CNT/papel (v2+).
  • CSAC (chip-scale atomic clock) — não em v1; sincronização atual via PTP/White Rabbit + beacons RF (ver §12.3 de theory/workspace_mapping.md).

Cross-references

  • crates/paebiru-hal/README.md — referência granular por subsistema.
  • reference/CLI.md — comando flash.
  • KERNEL.mdPoLValidator, criptografia PQ.
  • BIOLOGY.mdStochasticSpikeNeuron (alvo do hal::neuromorphic).
  • ECONOMY.mdBarterEngine, Joule Barter Rate.