Início rápido
Use este guia para sair de uma instalação ou clone limpo até uma sessão funcional do Ioruba. A montagem de referência usa Arduino Nano e três potenciômetros.
Linux possui cobertura completa via
pactl. Windows e macOS controlam apenas a saída padrão (master). Serial, perfis, modo demo, telemetria e diagnósticos são multiplataforma.
1. Instalar ou preparar o desenvolvimento
Linux/macOS:
curl -fsSL https://raw.githubusercontent.com/bernardopg/ioruba/main/scripts/install.sh | sh
Windows PowerShell:
irm https://raw.githubusercontent.com/bernardopg/ioruba/main/scripts/install.ps1 | iex
Para desenvolver:
git clone https://github.com/bernardopg/ioruba.git
cd ioruba
npm install
npm run verify
npm run desktop:watch
Use npm run desktop:dev somente para frontend no navegador; integrações nativas exigem desktop:watch.
2. Montar o controlador
| Knob | Pino externo | Centro | Outro externo |
|---|---|---|---|
| 1 | GND |
A0 |
5V |
| 2 | GND |
A1 |
5V |
| 3 | GND |
A2 |
5V |
Use cabo USB de dados. Consulte o guia de hardware para outras placas, mais knobs, botões e encoders.
3. Compilar e gravar
arduino-cli board list
npm run firmware:compile
Nano padrão:
arduino-cli upload \
-p /dev/ttyUSB0 \
--fqbn arduino:avr:nano \
firmware/arduino/ioruba-controller
Clone com bootloader antigo:
arduino-cli upload \
-p /dev/ttyUSB0 \
--fqbn arduino:avr:nano:cpu=atmega328old \
firmware/arduino/ioruba-controller
Troque a porta conforme arduino-cli board list.
4. Permissão serial no Linux
sudo usermod -a -G dialout "$USER"
sudo usermod -a -G uucp "$USER"
Use o grupo da sua distribuição e entre novamente na sessão.
5. Conectar
Confirme:
- porta detectada/selecionada;
- status conectado;
- handshake com placa, firmware, protocolo, knobs, MCU e ADC;
- Watch recebendo
512|768|1023; - knobs atualizando controles e telemetria;
- protocolo 2 compatível no painel Hardware;
- perfil persistindo após reinício.
Contrato atual:
HELLO board=Ioruba Nano; fw=0.6.1; protocol=2; knobs=3; mcu=ATmega328P; adcBits=10; threshold=4; deadzone=7; smooth=75; mins=0,0,0; maxs=1023,1023,1023
512|768|1023
O padrão é 115200 baud. Perfis com o antigo padrão 9600 são migrados.
6. Configurar áudio
Abra Configurações → Editor de perfil. O perfil padrão mapeia master, Spotify/Chrome/Firefox e microfone padrão.
No Linux:
pactl info
pactl list short sink-inputs
pactl list short sinks
pactl list short sources
Mantenha aplicações reproduzindo áudio e clique em Atualizar áudio. Use default_output/default_microphone para perfis resistentes a trocas de dispositivo.
7. Calibração e telemetria
- calibre cada knob na seção Hardware;
- exporte estatísticas de sessão em JSON/CSV;
- filtre/exporte o watch log;
- use o editor visual para bindings de botões/encoders;
- use modo demo para testar UI sem alterar áudio.
8. Janela, tray e dados
Fechar esconde a janela. Restaure pelo tray ou Ctrl+Alt+I; use Sair para encerrar.
Dados:
- Linux:
~/.config/io.ioruba.desktop/; - macOS:
~/Library/Application Support/io.ioruba.desktop/; - Windows:
%APPDATA%\io.ioruba.desktop\.
ioruba-state.json guarda perfis/preferências; ioruba-watch.log é limitado a cerca de 1 MiB. Faça backup e remova apenas o state para restaurar defaults.
Problemas comuns
Sem frames
- confirme 115200 baud;
- feche outros monitores seriais;
- confira cabo e
A0/A1/A2; - rode
fuser -v /dev/ttyUSB0; - tente o perfil old bootloader ao gravar.
Áudio Linux não muda
- confirme
pactl info; - mantenha a aplicação ativa;
- atualize o inventário;
- confira nomes em
pactl list short sink-inputs; - leia o outcome e o Watch.
Windows/macOS não controlam aplicação
Limitação atual explícita: apenas master/saída padrão. Outros tipos retornam não suportado.