Other

Usuário:Gwiethaus/QMK/Programando Keyboard com Atmega32u4

🇧🇷 · Garoa Hacker Clube · Gwiethaus

← Edição anterior Edição das 14h02min de 21 de junho de 2026 (5 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) Linha 1: Linha 1: =Programando Keyboard com Atmega32u4= =Programando Keyboard com Atmega32u4= Este é um pequeno guia de como isntalar e gerar o firmware para teclado. Este artigo trará uma base inicial do que é necessário para utilizar o QMK. Procuro trazer os aspectos basicos de isntalação, programação, geração do código hexadecimal e pro final a gravação do firmware na flash da sua MCU preferida. O QMK suporta uma variadade grande de microcontroladora (MCU) da linha AVR, Raspberry, STM32, entre muitas outras. Irei mostrar aqui principalmente a programaçãoi utilziando o QMK MSYS que é uma ferramenta de terminal de comandos que possui todos os recursos para criar a estrutrua de configuração do firmware, compilação e envio do arquivo .hex para a flash da MCU. Preferi este método ao invés de utilizar o [https://qmk.fm/ QMK Firmware], [https://config.qmk.fm/#/mechlovin/infinity88/LAYOUT_all QMK Configurator] e [https://qmk.fm/toolbox QMK Toolbox], pois me dá maior controle e autonomia sobre os recursos e o que se deseja fazer no keyboard. Além disso, construir o layout do teclado seja um já existente ou um novo, permite programar outros recursos mais aprimorados como acender um LED, controlar outros dispositivos seja via SPI, UART, I2C ou através de seus pinos GPIO da MCU. Desta forma pode-se ser incluído outros códigos no controlador de teclado que possibilitem, por exemplo, um teclado para máquinas industriais com conexão wi-fi ou BLE (Bluetooth). Irei mostrar um pouco do passo-a-passo de como construir do Zero ao Carateca faixa branca um código de teclado para acender um LED sempre que pressionar alguma tecla escolhida do teclado ou envair alguma informação a otura MCU via porta UART (pinos TX/RX). Nesse artigo não será focado na cosntrução do teclado em sí, mas dos apssos da programação, compilação e escrita da flash. ==Instalando o QMK MSYS== Para começar, é preciso antes baixar a versão do QMK MSYS disponível em e então instalar ele. recomendo instalar o QMF MSYS na sua pasta padrão "c:\QMK_MSYS" para facilidades de acesso rápido e eventuais problemas. =Referências= ⚫ # QMK Breaking Changes - 2024 February 25 Changelog (https://docs.qmk.fm/ChangeLog/20240225) ⚫ # Adding Your Keyboard to QMK ( https://docs.qmk.fm/porting_your_keyboard_to_qmk ) ⚫ # UART Driver ( https://docs.qmk.fm/drivers/uart ) ⚫ # GPIO Control ( https://docs.qmk.fm/drivers/gpio ) ⚫ # Config QMK Web ( https://config.qmk.fm/#/planck/rev1/LAYOUT_ortho_4x12 ) ⚫ # Adding Underglow to DZ65RGB and QMK ( https://halogenica.net/hardware/adding-underglow-to-dz65rgb-and-qmk/ ) ⚫ # IO expanders with RP2040 ( https://deskthority.net/viewtopic.php?t=27708 ) Linha 9: Linha 32: 1) Instalar o QMF MSYS. Instale da pasta padrão "c:\QMK_MSYS" para facilidades e eventuais problemas. 2) Durante a instalação marque a opção "Add QMK SYS profile to Windows Terminal", Figura 1. Isso irá faciltiar a chamada do terminal de comando do MSYS. 2) Durante a instalação marque a opção "Add QMK SYS profile to Windows Terminal", Figura 1. Isso irá faciltiar a chamada do terminal de comando do MSYS. Linha 154: Linha 176: UART Driver: https://docs.qmk.fm/drivers/uart UART Driver: https://docs.qmk.fm/drivers/uart 'serial' Driver: https://docs.qmk.fm/drivers/serial 'serial' Driver: https://docs.qmk.fm/drivers/serial Referencias: ------------ 1. Adding Your Keyboard to QMK ⚫ https://docs.qmk.fm/porting_your_keyboard_to_qmk 2. UART Driver ⚫ https://docs.qmk.fm/drivers/uart ⚫ 3. QMK Breaking Changes - 2024 February 25 Changelog https://docs.qmk.fm/ChangeLog/20240225 4. GPIO Control ⚫ https://docs.qmk.fm/drivers/gpio 5. Adding Underglow to DZ65RGB and QMK ⚫ https://halogenica.net/hardware/adding-underglow-to-dz65rgb-and-qmk/ 6. IO expanders with RP2040 ⚫ https://deskthority.net/viewtopic.php?t=27708 7. Config QMK Web ⚫ https://config.qmk.fm/#/planck/rev1/LAYOUT_ortho_4x12

Usuário:Gwiethaus/QMK

🇧🇷 · Garoa Hacker Clube · Gwiethaus

Criou página com '=Kicad= * Caminho de Arquivo Facil * Problema do Footprint Associado ao Symbol ' Página nova =Kicad= * [[/Programando Keyboard com uso do QMK MSYS|Caminho de Arquivo Facil]] * [[/Problema do Footprint Associado ao Symbol|Problema do Footprint Associado ao Symbol]]

Arquivo:Footprint 007.png

🇧🇷 · Garoa Hacker Clube · Gwiethaus

Gwiethaus carregou Arquivo:Footprint 007.png Alterando o arquivo .kicad_sym para associar o Footprint correspondente ao símbolo Página nova == Descrição do arquivo == Alterando o arquivo .kicad_sym para associar o Footprint correspondente ao símbolo

Arquivo:Footprint 005.png

🇧🇷 · Garoa Hacker Clube · Gwiethaus

Gwiethaus carregou Arquivo:Footprint 005.png Footprint associado ao símbolo de componente Página nova == Descrição do arquivo == Footprint associado ao símbolo de componente

Usuário:Gwiethaus

🇧🇷 · Garoa Hacker Clube · Gwiethaus

← Edição anterior Edição das 12h43min de 21 de junho de 2026 Linha 4: Linha 4: [[File:IMG_20221106_155809_2.png|200px]] [[File:IMG_20221106_155809_2.png|200px]] <br> <br> <br> <br> [[File:Under-construction-symbol-sign-free-vector.png|none|frame|5px|Ainda em construção caso não saiba...ou eu preciso desenhar]] <br> <br> Linha 76: Linha 73: # Formatação do Mediawiki (https://www.mediawiki.org/wiki/Help:Formatti/pt-br) # Formatação do Mediawiki (https://www.mediawiki.org/wiki/Help:Formatti/pt-br) # Como Editar Textos em Wiki (https://garoa.net.br/wiki/Como_Editar_Textos_em_Wiki) # Como Editar Textos em Wiki (https://garoa.net.br/wiki/Como_Editar_Textos_em_Wiki) # Lista de Arquivos Enviados do Garoa (https://garoa.net.br/wiki/Especial:Lista_de_arquivos)

Usuário:Gwiethaus/QMK/Programando Keyboard com Atmega32u4

🇧🇷 · Garoa Hacker Clube · Gwiethaus

Criou página com '=Programando Keyboard com Atmega32u4= 1) Instalar o QMF MSYS. Instale da pasta padrão "c:\QMK_MSYS" para facilidades e eventuais problemas. 2) Durante a instalação marque a opção "Add QMK SYS profile to Windows Terminal", Figura 1. Isso irá faciltiar a chamada do terminal de comando do MSYS. Figura 1 - "001 - Instalacao QMK MSYS.png" Figura 2 - "002 - QMK MSYS Command Profile.png" 3) ao executar o icone da Figura 2 a tela de trminal comandos irá ser...' Página nova =Programando Keyboard com Atmega32u4= 1) Instalar o QMF MSYS. Instale da pasta padrão "c:\QMK_MSYS" para facilidades e eventuais problemas. 2) Durante a instalação marque a opção "Add QMK SYS profile to Windows Terminal", Figura 1. Isso irá faciltiar a chamada do terminal de comando do MSYS. Figura 1 - "001 - Instalacao QMK MSYS.png" Figura 2 - "002 - QMK MSYS Command Profile.png" 3) ao executar o icone da Figura 2 a tela de trminal comandos irá ser executda como mostrado na Figura 3. Figura 3 - "003 - QMK MSYS Command.png" 4) Para criar um firmware precisamos antes a partir do terminal de comnado QMK MSYS executar o comando “qmk setup” caso não existir ainda o firmware na pasta do atual usuário, por exemplo, “c/Users/Wiethaus/qmk_firmware” 5) O QMK CLI irá baixar e configura a estrutura básica de firmware. 6) Após concluído, podemos executar o comando "qmk new-keyboard" que irá criar um novo teclado ao bel prazer. Ele irá fazer algumas perguntas fundamentais - Keyboard name: keyboard_delwie - your githubusername? [gwiethaus] - Your Real Name? [gwiethaus] - Default Layout? 41 --> Layout orto_4x12 - Using Development Board? [y/n] y - Development Board? 13 --> na segunda tela [atmega32u4] Pronto ele criou os arquivos necessarios na pasta com a seguinte mensagem na tela: Created a new keyboard called keyboard_delwie Build command: qmk compile -kb keyboard_delwie -km default Project location C:/Users/Wiethaus/qmk_firmware/keyboards/keyboard_delwie Now update the config files to match the hardware! Figura 4 - "004 - Aviso Comando Keyboard Criado.png" Aqui houve um pequenino problema, na última etapa eu apertei demais a tecla enter, pois acabei não escoilhendo o hardware que será usado, no caso seria o "atmega32u4". Mas não criemos pânicos, basta ir ao arquivo de configuração e inserir este. Abra o arquivo keyboard.json e verifique se está tudo em ordem, caso a linha não estiver com a microcontroladora correta troque para a que voce está utilizando no projeto. Procure e altere a linha da tag "processor" para a microcontroladora correta como "processor": "atmega32u4". Isso deve ficar algo parecido como o código abaixo. ... "matrix_pins": { "cols": ["C2", "C2", "C2", "C2", "C2", "C2", "C2", "C2", "C2", "C2", "C2", "C2"], "rows": ["D1", "D1", "D1", "D1"] }, "processor": "atmega32u4", "url": "", ... Como a matriz é 12 colunas por 4 linhas veja que no código json acima está representado corretamente. se estiver presente no arquivo rules.mk MOUSEKEY_ENABLE = no # Mouse keys AUDIO_ENABLE = no # Audio output BOOTMAGIC_ENABLE = no MOUSEKEY_ENABLE = no EXTRAKEY_ENABLE = no NKRO_ENABLE = no entao remova do arquivo keyboard.json: "features": { "bootmagic": false, "extrakey": false, "mousekey": false, "nkro": false }, se estiver presente nos dois lugares, ocorrerá uma mensagem na compilação de "WARNING" Mudanças da API do QMK ---------------------- Leia a documentacao, para codigos e artigos na web. A nova versão houve alterações drásticas nas funcoes do QMK. Perceba na Figura 10 que ocorre alguns erros de compilação devido a nao existencia de funcoes. figura: "010 - Erro de Compilacao - Funcao nao Existe.png" Segundo link https://docs.qmk.fm/ChangeLog/20240225 mostra algumas mudanças na versão do QMK Notable core changes Renaming Arduino-style GPIO pin functions (#23085, #23093) QMK has long used Arduino-style GPIO naming conventions. This has been confusing for users, as over time they've had new variations added, as well as users mistakenly thinking that QMK supports the rest of the Arduino ecosystem. The decision was made to rename the GPIO manipulation functions with ones matching QMK Firmware's code styling. Old New setPinInput(pin) gpio_set_pin_input(pin) setPinInputHigh(pin) gpio_set_pin_input_high(pin) setPinInputLow(pin) gpio_set_pin_input_low(pin) setPinOutput(pin) gpio_set_pin_output(pin) setPinOutputPushPull(pin) gpio_set_pin_output_push_pull(pin) setPinOutputOpenDrain(pin) gpio_set_pin_output_open_drain(pin) writePinHigh(pin) gpio_write_pin_high(pin) writePinLow(pin) gpio_write_pin_low(pin) writePin(pin, level) gpio_write_pin(pin, level) readPin(pin) gpio_read_pin(pin) togglePin(pin) gpio_toggle_pin(pin) I2C driver API Changes (#22905) Much like the GPIO refactoring, I2C APIs were also updated to conform to QMK naming standards. This is largely irrelevant to people using subsystem abstractions such as touchpads or RGB lighting, and only affects people manually communicating with other peripherals. Old API New API i2c_readReg() i2c_read_register() i2c_readReg16() i2c_read_register16() i2c_writeReg() i2c_write_register() i2c_writeReg16() i2c_write_register16() Erro na compilação ------------------ Realmente quando parece que tudo estava certo .... Murphis age incasavelmente para dar tudo errado bem no finalzinho da compilação. Quando tentei compilar diversas vezes nao entendia que significava as mensagens, possivelmente é indicativo que alguma sintaxe estava incorreta (Figura 15), principalemten no arquivo de include ou comentarios do arquivo rules.mk que ele poderia estar itnerpretando como uma constante. Removi todas as linhas de comentarios e compoilou coretamente sem erros. Figura 15: "015 - Erro de sintaxe.png" Nome do Layout -------------- O nome do layout deve seguir o seguinte formato "LAYOUT_", por exemplo "LAYOUT_delwie". Este deve estar presente no arquivo keyboard.json e keymap.c Escrevendo a Flash ------------------ Apesar do QMK Toolbox não ter para linux, pode-se enviar o arquivo .hex pelo próprio QMK MSYS o que na minha opinião é tão fácil quanto usar o QMK Toolbox. Figura 20: "020 - Transferencia arquivo hex para flash.png" Comando para enviar para a flash se encontra abaixo. Quando aparecer a mensagem "Waiting for USB serial port - reset your controller now (Ctrl+C to cancel)....." pressione o botão de reset da MCU para iniciar a gravação do arquivo hexadecimal para a flash (Figura 20). Ele automaticamente reconhece a USB conectada a placa embarcada ou dispositivo USB (controladora). bash: qmk flash -kb keyboard_delwie -km default UART Driver x Serial Driver --------------------------- O UART Driver é usado para a comuncicao entre dispositivos MCU usando porta serial. Já o Serial Driver é apra a comucnicao entre teclado split (quebrado em duas partes) onde um lado da MCU que controla uma parte do teclado se comunica com o outro lado da MCU. Isso pdoe ser esclaredido nestes dois documentos oficiais: UART Driver: https://docs.qmk.fm/drivers/uart 'serial' Driver: https://docs.qmk.fm/drivers/serial Referencias: ------------ 1. Adding Your Keyboard to QMK https://docs.qmk.fm/porting_your_keyboard_to_qmk 2. UART Driver https://docs.qmk.fm/drivers/uart 3. QMK Breaking Changes - 2024 February 25 Changelog https://docs.qmk.fm/ChangeLog/20240225 4. GPIO Control https://docs.qmk.fm/drivers/gpio 5. Adding Underglow to DZ65RGB and QMK https://halogenica.net/hardware/adding-underglow-to-dz65rgb-and-qmk/ 6. IO expanders with RP2040 https://deskthority.net/viewtopic.php?t=27708 7. Config QMK Web https://config.qmk.fm/#/planck/rev1/LAYOUT_ortho_4x12

Usuário:Gwiethaus

🇧🇷 · Garoa Hacker Clube · Gwiethaus

← Edição anterior Edição das 13h11min de 21 de junho de 2026 (Uma revisão intermediária pelo mesmo usuário não está sendo mostrada) Linha 24: Linha 24: * Desenho e modelagem intermediário em Solidworks e Solidworks CAM * Desenho e modelagem intermediário em Solidworks e Solidworks CAM =Artigos= = Categoria dos Artigos= <br> <br> * [[/KiCad|Kicad]] * [[/KiCad|Kicad]] * [[/QMK|Keyboard com QMK Firmware]] =Hobbies e Projetos Atuais= =Hobbies e Projetos Atuais=

Arquivo:Footprint 006.png

🇧🇷 · Garoa Hacker Clube · Gwiethaus

Gwiethaus carregou Arquivo:Footprint 006.png Escolhendo o Footprint através de pesquisa Página nova == Descrição do arquivo == Escolhendo o Footprint através de pesquisa

Arquivo:Footprint 004.png

🇧🇷 · Garoa Hacker Clube · Gwiethaus

Gwiethaus carregou Arquivo:Footprint 004.png Ajustando a propriedade do componente footprint Página nova == Descrição do arquivo == Ajustando a propriedade do componente footprint

Usuário:Gwiethaus/KiCad/Problema do Footprint Associado ao Symbol

🇧🇷 · Garoa Hacker Clube · Gwiethaus

← Edição anterior Edição das 12h31min de 21 de junho de 2026 Linha 19: Linha 19: <br> <br> Aparentemente o nome do footprint "CAPC3216X180N" está correto e associado ao símbolo, mas isso não é bem verdade. Eu não sei se isso é devido a versão atual com algum bug e se nas versões anteriores funcionava corretamente. Para solucionar o problema pode-se fazer de duas forma, a mais rápida é apresentada na '''Figura 3'''. Aparentemente o nome do footprint "CAPC3216X180N" está correto e associado ao símbolo, mas isso não é bem verdade. Eu não sei se isso é devido a versão atual com algum bug e se nas versões anteriores funcionava corretamente. Pode verificar ao clicar no botão ao lado do campo footprint (inocne de livros) ainda não aparece a imagem do foot print correspondente ao símbolo ( '''Figura 3''' ) . <br> <br> <br> <br> [[File:Footprint_003.png|none|thumb|800px|'''Figura 3''' - Ajustando a propriedade footprint do símbolo de componente]] [[File:Footprint_003.png|none|thumb|800px|'''Figura 3''' - Footprint do símbolo de componente não está sendo exibido ]] <br> <br> Para solucionar o problema pode-se fazer de duas forma, a mais rápida é apresentada na '''Figura 4'''. ⚫ Edite o campo footprint colocando o nome do objeto símbolo a que o footprint pertence, exatamente como mostra a '''Figura 3 ''' como esta forma "GRM31CR71E475KA88L:CAPC3216X180N" ⚫ Edite o campo footprint colocando o nome do objeto símbolo a que o footprint pertence, exatamente como mostra a '''Figura 4 ''' como esta forma "GRM31CR71E475KA88L:CAPC3216X180N" <br> [[File:Footprint_004.png|none|thumb|800px|'''Figura 4''' - Ajustando a propriedade footprint do símbolo de componente]] <br> Após editado, clique novamente no botão ao lado do campo footprint (icone de livros) e abrirá a caixa de dialógo na '''Figura 4'''. Note que agora o footprint correspondente está associado ao símbolo ('''Figura 5'''). <br> <br> [[File:Footprint_005.png|none|thumb|800px|'''Figura 5''' - Footprint agora associado ao símbolo de componente]] <br> <br>

Usuário:Gwiethaus/QMK

🇧🇷 · Garoa Hacker Clube · Gwiethaus

← Edição anterior Edição das 13h19min de 21 de junho de 2026 Linha 1: Linha 1: =Programação de Keyboard Utilizando QMK= =Kicad= * [[/Programando Keyboard com uso do QMK MSYS | Caminho de Arquivo Facil ]] * [[/Programando Keyboard com Atmega32u4 | Programando Keyboard com Atmega32u4 ]] * [[/Problema do Footprint Associado ao Symbol|Problema do Footprint Associado ao Symbol]]

Usuário:Gwiethaus/KiCad/Problema do Footprint Associado ao Symbol

🇧🇷 · Garoa Hacker Clube · Gwiethaus

← Edição anterior Edição das 13h07min de 21 de junho de 2026 Linha 12: Linha 12: Note que na '''Figura 1''' não aparece o footprint correspondente ao componente, mas está associado o nome do footprint apenas "CAPC3216X180N". Aparece uma mensagem '''"foi definido um footprint inválido"''' Note que na '''Figura 1''' não aparece o footprint correspondente ao componente, mas está associado o nome do footprint apenas "CAPC3216X180N". Aparece uma mensagem '''"foi definido um footprint inválido"''' Para resolver isso podemos fazer de duas formas. Uma é ir no arquivo correspondente do símbolos e editar o que falta e a outra, acho mais fácil é abrir as propriedades do símbolo após ter sido inserido no esquemático e ajustar uma determinada propriedade do símbolo como mostra na ''' figura 2'''. Para Acessar as propriedades do símbolo basta clicar duas vezes sobre o símbolo após ter colocado ele no esquemático. Para resolver isso podemos fazer de duas formas. Uma é ir no arquivo correspondente do símbolos e editar o que falta e a outra, acho mais fácil é abrir as propriedades do símbolo após ter sido inserido no esquemático e ajustar uma determinada propriedade do símbolo como mostra na ''' Figura 2'''. Para Acessar as propriedades do símbolo basta clicar duas vezes sobre o símbolo após ter colocado ele no esquemático. <br> <br> <br> <br>

Usuário:Gwiethaus/KiCad/Problema do Footprint Associado ao Symbol

🇧🇷 · Garoa Hacker Clube · Gwiethaus

← Edição anterior Edição das 13h04min de 21 de junho de 2026 Linha 39: Linha 39: [[File:Footprint_005.png|none|thumb|800px|'''Figura 5''' - Footprint agora associado ao símbolo de componente]] [[File:Footprint_005.png|none|thumb|800px|'''Figura 5''' - Footprint agora associado ao símbolo de componente]] <br> Outra maneira de se associar é escolher na lista do componente o footprint correspondente, desde que saiba o nome do footprint. basta pesquisar ele no campo de pesquisa ('''Figura 6'''), selecionar ele e clicar em OK. <br> <br> [[File:Footprint_006.png|none|thumb|800px|'''Figura 6''' - Escolhendo o Footprint através de pesquisa]] <br> E por fim a última maneira mais dificil, mas vale colocar aqui como curiosidade é editando o arquivo do kicad .kicad_sym alterando a linha marcada na '''Figura 7'''. <br> <br> [[File:Footprint_007.png|none|thumb|800px|'''Figura 7''' - Alterando o arquivo .kicad_sym para associar o Footprint correspondente ao símbolo]] <br> <br>

Arquivo:Footprint 003.png

🇧🇷 · Garoa Hacker Clube · Gwiethaus

Gwiethaus carregada uma nova versão de Arquivo:Footprint 003.png Página nova == Descrição do arquivo == Ajustando a propriedade do componente footprint