Launchpad

Created by @honkadonka

Launchpad

A reactive 8x8 capacitive Launchpad

May 24: Research

I'm planning on using an extra ESP32 I have lying around for the MCU on this project. Since I want to use capacitive touch buttons instead of mechanical switches, I did a bit of digging and found that the ESP32 does have 10 capacitive touch GPIOs. However, an 8x8 grid warrants 64 of them.

I looked up some capacitive touch ICs and settled on the MPR121 becuase of the documentation and its availability. Each chip supports up to 12 channels and it can be configured into four different I2C addresses. This only makes 48 channels for capacitive touch, but I'm planning to work around this by adding another I2C bus.

MPR121

image image

Regarding lighting, I'm planning on using WS2812B LEDs because they are addressable and I have experience programming them already (Check out my HonkaCube project!) For WAV/MP3 playback, I have an SD card module (no SD card thoughπŸ˜”).

Next up: Perhaps prototype a 1x1 LED + capacitive sensing (using ESP32's built-in pins) Figure out all the electronics needed + PCB design

Time spent this session: 1 hour

May 25: More Research + KiCad

I'm thinking of using a PCB with copper rings connected to the MPR121s.

Problem: I want to have everything on a single PCB, including the LEDs. This means that I'd have to somehow mount the LEDs so that they're flush with the copper rings.

Solution: After doing a bit of research, instead of using WS2812B LEDs I'm switching to SK6812-Mini-E becuase they have the ability to be reverse-mounted. ]

Also did a bunch of digging for KiCad footprints and other components. At first, I was thinking of buying a 8x8 matrix and having a separate PCB for the capacitive touch, but I think that's unnecessarily complicated.

KiCad Time

I took a look at the MPR121 datasheet and found a good reference on how to hook it up.

image

According to the datasheet, attaching ADDR to other pins changes the I2C address. Apparently it can also control LEDs???

I also created a footprint and a symbol for each tile on the launchpad.

Front: image

Back: image

3D Render: image image

I'm also in the process of learning KiCad (I've only used EasyEDA) and creating the actual schematic for the single PCB.

Time spent this session: 3 hours

May 26: A LOT of KiCad

I did a LOT of digging to find footprints for specific breakout boards I was using. Additionally I had to made sure I had mapped out the pins correctly on the ESP32. One thing I was thinking of was leaving extra pin headers in case I want to add a rotary encoder or something.

In KiCad, I spent a lot of time creating the schematic and laying out the PCB.

image

Inside the heirarchical sheets:

image

What the current PCB looks like:

image

I'm trying to keep the PCB at two layers, but its a little difficult routing the connections becase of the big capacitive touch pads I made on the front layer.

Time spent this session: 4 hours