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ília | Módulo | Alvos canônicos |
|---|---|---|
| ARM Cortex-M/A | hal::arm | STM32WL55, nRF52840 |
| RISC-V | hal::riscv | ESP32-C3, ESP32-H6 |
| Xtensa | hal::xtensa | ESP32, ESP32-S3 |
| AVR | hal::avr | ATmega328P |
| x86_64 | hal::x86 | Edge 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
StochasticSpikeNeurondo 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/)
| Driver | Chip | Uso |
|---|---|---|
radio::lorawan | Semtech SX1276 / SX1262 | Mesh LPWAN, anúncios de barter |
radio::ble | BLE Mesh | Advertisements 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
PoLValidatordo 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
| Feature | Efeito |
|---|---|
esp32, esp32s3, esp32c3, stm32wl, nrf52840, atmega328p | Ativa registradores HW dedicados |
defmt-log | Logging via defmt (banda baixa) |
std | Habilita std (gateways x86, WASM browser, testes) |
wgpu | Requer 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-haljá implementa os traitsPufReadereTamperAwarePufReader(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.md —
PoLValidator, criptografia PQ. - BIOLOGY.md —
StochasticSpikeNeuron(alvo dohal::neuromorphic). - ECONOMY.md —
BarterEngine, Joule Barter Rate.