Tuner desktop conectado ao Garage — sync de tunes funcionando

Pistonix Tuner ganhou simulador de ECU sem hardware, MapEditor com multi-seleção e undo, datalog viewer, e agora sincroniza tunes com o Garage via tokens por dispositivo. Garage por baixo: armazenamento híbrido R2 + MinIO.

Enquanto o firmware da ECU avança em CI sem hardware, o Pistonix Tuner desktop também evoluiu de “esqueleto vazio” pra ferramenta usável de verdade. E o Garage finalmente faz mais que receber email da lista de espera — começou a guardar tunes do usuário com tokens próprios por dispositivo.

Tuner desktop — o que mudou

  • Simulador de ECU embutido — sem precisar de Proteus pra desenvolver UI, o backend Tauri faz papel da ECU: gera RPM, MAP, AFR, ECT, IAT, TPS com ruído determinístico (LCG seedado) e warm-up exponencial de ECT. Live-data flui a 100Hz.
  • MapEditor sério — seleção múltipla de células (click + shift+click), preenchimento em range (Ctrl+Enter), undo/redo via stack local. Quem tunou em FuelTech reconhece o padrão.
  • Basemap I/O completo — schema TOML versionado (schema_version=1), validação Rust-side (axes ascendentes, dimensões coerentes, safety thresholds em ordem), open/save via diálogo nativo do OS.
  • Datalog viewer — abre CSVs de log e mostra os canais em tabela. Plot temporal vem na fase 6 quando integrar com a ECU real.
  • Connection state machine — disconnected → connecting → connected → streaming → connection_lost. Heartbeat conta reads consecutivos: 3 falhas viram “connection_lost”, 8 caem pra “disconnected” com botão de retry.
  • Settings rico — edita engine geometry, injector, cold-start e safety thresholds direto no app, sem ter que abrir o TOML no editor.

Garage — extensões de produção

  • Tokens por dispositivo — cada Tuner install agora se registra com um nome (“Henrique’s MacBook”, “Garage workstation”) e ganha um token próprio. Server guarda só sha256(token). Plaintext aparece uma vez na resposta de registro — caller copia e guarda. Permite múltiplas instalações sem compartilhar o PISTONIX_API_TOKEN mestre.
  • Armazenamento híbrido (ADR-009) — tunes públicos e firmware binários vão pro Cloudflare R2 (egress free, CDN global em cdn.pistonix.com.br); telemetria e datalogs privados ficam no MinIO rodando na mesma VPS (LGPD: dado pessoal não cruza fronteira). Mesmo cliente S3-compat dos dois lados (@aws-sdk/client-s3).
  • Endpoint públicoGET /public/basemaps/by-model/:family lista basemaps is_public = true sem precisar de auth. O site institucional consome em build time pra mostrar “N basemaps disponíveis” por motor na página /compatibilidade.

Sync end-to-end

Settings do Tuner ganhou seção Pistonix Garage: configura API base, registra device (mostra plaintext token uma vez com botão Copy), faz push do tune carregado (POST primeira vez, PUT em saves seguintes), lista tunes remotos, baixa um pra editar, lista devices e revoga quando quiser. CORS já permite tauri://localhost no backend, então não precisou de Rust shim.

O que vem agora

  • Smoke test de R2 em produção (subir um firmware fake, listar via /public/basemaps, baixar via CDN).
  • Migração do token do Tuner pra OS keychain via tauri-plugin-stronghold pré-launch (localStorage é OK pra MVP, mas não é ideal).
  • Push automático de tune ao salvar (debounced) em vez de manual.
  • Versionamento de tune (cada save vira revision com diff visualizável no Garage).
Lista de espera

Quer saber em primeira mão.

Pistonix está em desenvolvimento ativo. Inscreva-se pra receber atualizações de produto, basemaps prévios, convites pra rodar nos eventos do Milwaukee Garage Drag Racing e prioridade na lista de compra do Pistonix Forge.

  • Atualizações mensais de roadmap e firmware
  • Convite para sessões de tuning na pré-venda
  • Prioridade para o lote inicial do Pistonix Forge
  • Acesso antecipado a basemaps por motor

Ao se inscrever você concorda em receber emails do Pistonix. Não compartilhamos seu email. Você pode descadastrar a qualquer momento. (LGPD)