Macropad Workshop by Google developer student club and Innovation space in Eindhoven university of Technology

ZilvinasAleksa 19 views 30 slides May 03, 2024
Slide 1
Slide 1 of 30
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30

About This Presentation

Workshop session


Slide Content

Macropad Workshop Presented by: Ainius Sinickas, Povilas Kazlauskas, Zilvinas Aleksa 

‹#› Partners

‹#› Game plan Group 1 18:30 Hardware presentation + macropad assembly 20:00 Software presentation + programing 17:40 Food 18:20 Introduction Group 2 18:30 Software presentation + programing 20:00 Hardware presentation + macropad assembly

‹#› End product

‹#› Time for work Group 1 hardware presentation Group 2 software presentation

Hardware

‹#› What goes into our macropad? Case Keycaps Microcontroler Mechanical Switches Rotary encoder

‹#› Case 3D printing Laser cutting

‹#› Keycaps

‹#› Mechanical Switches

‹#› Microcontrolers Our microcontroler has to have: Enough digital input pins HID compatibility (be able to send keyboard and mouse commands to the computer) Bluetooth support (optional)

‹#› Digital input pins Used for checking if input is high(1) or low(0) 5V or 3.3V tolerant

‹#› Pull up and Pull down resistors Important in preventing a floating state Some microcontrolers have pull up and pull down resistors built-in

‹#› Rotary encoder, use cases Is used to determine the direction the knob is being rotated and the amount it was rotated Has continuous rotation Incremental input Perfect for manual volume control Scrolling through menu options

‹#› Rotary encoder, how does it work Two pins which are shifted to be out of phase The order in which the pins are triggered determines the direction

‹#› Time to learn how to solder

‹#› 5 steps of soldering Before soldering (and after every 4 th solder joint): Apply solder to the soldering iron tip Clean the soldering iron tip Reapply solder to the soldering iron tip Connecting two wires: Apply solder to the parts you want to connect Heat up the two parts while touching them together

‹#› Differences to soldering wires to a PCB pad Apply solder only to the wire and not to the PCB pad Push the wire through the hole and only then apply solder to the pad

‹#› Lets go solder

Software

‹#› Software Premade options: TMK (replaced by QMK) QMK (wired) ZMK (wireless) KMK (python) Write yourself: MicroPython / CircuitPython C / C++ / Arduino

‹#› We need to learn how to: G et input from switches S imulate Human Interface Devices (HID) G et rotation from the rotary encoder C ombine everything On your own time: A dd control for RGB lights (+5 fps) Shortcuts

‹#› Preparation Flashing CircuitPython firmware to the raspberry pi pico board (done) https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython/circuitpython https://circuitpython.org/board/vcc_gnd_yd_rp2040/ Adding additional Adafruit libraries (done) https://github.com/adafruit/Adafruit_CircuitPython_Bundle?tab=readme-ov-file Setting up Mu Editor (hopefully done) https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython/installing-mu-editor

‹#› Getting input from the switches https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython/blinky-and-a-button

‹#› Simulating HID device https://docs.circuitpython.org/projects/hid/en/latest/

‹#› Getting rotation from the rotary encoder https://learn.adafruit.com/rotary-encoder/circuitpython

‹#› Combining everything

‹#› Layout Keycode documentation https://docs.circuitpython.org/projects/hid/en/latest/api.html#adafruit-hid-keycode-keycode Use Layout with the write() method for more complex text https://docs.circuitpython.org/projects/hid/en/latest/examples.html

‹#› Making shortcuts

‹#› Making shortcuts
Tags