GRIN Quern: ergonomic keyboard on center trackpad - Hackster.io

2022-10-08 18:53:08 By : Ms. judy zhu

Add the following snippet to your HTML:

How to make a keyboard in FusionPCB service using Seeeduino XIAO RP2040 module.

Read up about this project on

How to make a keyboard in FusionPCB service using Seeeduino XIAO RP2040 module.

I usually design ergonomic keyboards with curved layout in Japan. I saw the Seeed Fusion DIY XIAO Mechanical Keyboard Contest and decided to design a new keyboard for this contest.

The aim of this contest seems to be to share the experience of developing a mechanical keyboard using Seeed Studio's XIAO module and FusionPCB service. The XIAO module is a good starting point if you need a microcontroller in your project.

I could use it to make a small macro pad, but I wondered what would happen if I built a full-featured keyboard with this little module.

The features I am looking for in a keyboard are

I have never designed a keyboard like this before, but keyboards with a space in the center are now popular in Japan. Examples are Ergotonic49, cocot46, Ambi, etc. My friend calls the center space "Buddha space". It seems to be a place to display something important. Other designs include a numeric keypad, encoder, trackball, and many others.

Many of these keyboards have a column-staggered layout. It's not bad, but I prefer row-staggered, so I decided to go with a layout like CannonKeys' Sagittarius.

In the center is a trackpad, and around it is a rotary encoder that can be used for scrolling.

XIAO MCUs can be chosen from SAMD21, RP2040, nRF52840, and ESP32. When making a keyboard, it depends on how you want to make the firmware. QMK firmware, a common choice, has recently added support for RP2040. In this case, I will use the XIAO RP2040. In any case, the good thing is that you can always try other MCUs since they share the same footprint and pin assignments.

XIAO has 11 usable GPIO pins. Two of those pins are used as I2C for display, two for rotary encoder, and one for serial communication for RGBLED control.OMG! There are only 6 pins left.

With a normal switch matrix, the limit is 3*3=9 keys.In a round-robin matrix, up to 30 keys are possible.

However, what I want to create this time is neither a numeric pad nor a macro pad. I will use an IO expander to add more pins.

The I2C pins are shared with the display, so it is purely an increase in pins.

In this case I used the TCA9555, which is a lower-voltage version of the PCA9555 with fixed errata. The QMK includes a driver for the PCA9555.

I use KiCad for design. The latest version is KiCad6, but I am still using KiCad5 due to usability issues. I think KiCad6 is highly functional, but I have not yet figured out how to adjust the tracing beautifully when placing switches in a curved layout.

I finished the design in 15 days thanks to using a familiar CAD program. Whoa, this is the shortest time I've ever done this while working my day job.

This time, of course, I will be using Seeed Fusion's PCB fabrication and parts mounting services.

Actually, this is the first time for me to use this service. But it was not difficult.

Fusion has a very good Knowledge base. There were also explanations in Japanese, which is my native language.

I placed my order back in September, with only a month of time left! By choosing parts from OPL, I can save the time it takes to secure parts. I further shortened the time by adding the expedite option.

From there to production went really smoothly. I usually get worried when I don't get any response from the factory about the data. However, with Fusion, there is a DFA (Design for Assembly) review and board design review, which gives me a sense of security.

Despite the odd shape of the board, they never requested additional Edge Rails.

The PCB was fabricated and shipped within 6 business days of ordering. Thanks for their excellent work.

In using the component mounting service, I had a difficult request to mount a component in reverse. By attaching an image for explanation, they were able to accommodate my difficult request.

There was one design error in the I2C wiring, but it has been repaired.

I prepared the encoder knob and the case while waiting for the PCB to be manufactured.

The trackpad and rotary encoder needed some work.

As it is, the knob and trackpad are lower than the keys around them, making them less convenient to use.

The solution was to create a base. The knob was also manufactured by 3D printing.

The trackpad is a Cirque TM040040, and since the QMK already includes a driver for the Cirque Pinnacle 1CA027, it can be used simply by connecting it via I2C or SPI. How wonderful!

The case is laser cut from acrylic plate. The logo is also easily made and engraved.

With the Seeeduino XIAO and FusionPCB, I was able to rapidly prototype a keyboard. It is a wonderful experience to see an idea quickly take shape.

In fact, it took only a month and a few days from the start of design until we had the keyboard in my hands.

I would like to continue to improve the perfection of this keyboard so that everyone can use this keyboard.

Because having the trackpad in the center of the keyboard is great!

Hackster.io, an Avnet Community © 2022