Friday, December 18, 2020

Nice oxidation

Applied liver of sulfur to exposed copper

As an experiment I used liver of sulfur to apply a forced patina to the exposed copper layer to highlight the legends on the Feegle XS.

The shiny copper turned almost black. It looks very good against the white soldermask.

The all white PCB is what it looked like originally. I carefully sanded off the raised areas of the solder mask to expose the copper. Laying a piece of 1000+ grit sandpaper on a flat piece of glass is the quickest way to only sand off the raised areas.

The forced patina compared the the naturally occurring oxidation on another Feegle XS.

I will probably spray a layer of clear lacquer over the top to protect the thin oxidized layer.


Rotary encoder soldered directly to a XIAO

Small, with the encoder sitting directly on top the metal shield on the XIAO and soldered directly to the pins.

The encoder is connected to pins 8, 9, 10. The switch is connected to pins 3 and 5.

Pins 9 and 5 are set as output low to behave as ground pins.

The solder lugs were bent and trimmed. I soldered this side to the metal case of the XIAO.

The other lug I soldered to the top of the USB-C connector.

I taped the bottom of the XIAO when soldering the pins so that solder would not flow out the bottom. This left the bottom perfectly flat.

I added heavy duty 3M VHB tape to the bottom. I can now add an encoder anywhere.

It runs a simple Arduino script. It uses the HID-Project and CommonBusEncoders libraries. 

You can get 3 packs of XIAO on Amazon and Digikey sometimes has them in stock.

Pro Micro version

I had to trim off the mounting lugs since they would short out on the components on the Pro Micro. I also used a small square of VHB tape between the encoder and the ATmega32u4.

Same as the XIAO version, but the encoder is connected to pins 15, 18, 19. The switch is connected to 4 and 6. It runs the same Arduino script as the XIAO, with only the pin definitions changed.

Wednesday, December 9, 2020

ORTHOPI rotary encoder

Rotary encoder connected and setup as volume control

I connected the encoder to the GPIO header with the same 30awg wire I used for the other connections.

There are 4 connections, Ground (black), Encoder A (yellow), Encoder B (orange), Switch (blue).The ground connection is shared for the encoder and the switch.

I soldered directly to the GPIO header. I chose GPIO 17, 27, and 22 since they are easy to access.

I followed the instructions and modified the script I found here:

Change the GPIO pin definitions in the script

Also change all references to the "PCM" device to "HDMI".

I had Encoder A and Encoder B swapped so had to swap GPIO 17 and 27 to get the volume to go up when turned clockwise.

Friday, December 4, 2020


Raspberry Pi 400 mechanical keyboard mod

I integrated the ORTHOPI mechanical keyboard PCB with the Raspberry Pi 400 keyboard matrix into the top half of the Raspberry Pi 400 case. The top was gutted, completely removing the old keyboard. The connection between the Raspberry Pi 400 and the keyboard is detailed here.

Works like the original. The power on/off (FN+F10), and the LEDs.

The keyboard is a grid layout. All keys on the original Pi 400 keyboard are represented. The space bar is duplicated as two 2U keys. 4U space bars are uncommon. The Return and Right Shift keys are also 2U.

I also added a rotary encoder. It is a EC12 type. EC11 should also fit.

Since there is no plate, the switches are PCB mount Gateron clears. These are light linear switches. Gateron PCB mount switches fit very snug in these PCB mount holes, other brands are much looser. The 2U PCB mount stabilizers are standard Cherry ones.

Most of the plastic from the center of the top part of the case was removed. Holes were drilled and notches ground to accommodate the switch pins on the top row and the clips on the stabilizers on the bottom row.

Heavy duty, double sided 3M VHB tape was applied to the PCB.

PCB stuck to top plastic case. I ended up removing all the remaining plastic, leaving only the edges.

Assembled. The VHB tape is very strong. It is still easy to separate the top half of the case from the bottom.

The PCB is a little smaller than the case top.

The PCB ended up very slightly crooked on the case. Removing the VHB tape is a major effort and not worth it to do over.

DSA style keycaps from a cheap ortholinear set from Amazon. It had most of the keys needed. There were only one CTRL and ALT keycaps so I used the symbol ones for the right CTRL and right ALT. Also there was only two 2U key caps, one convex (rounded) and one concave top, I used these for the space bars. The 2U Return and right Shift are from the Lepton set I bought a long time ago.

The switches/keycaps double the height of the Pi 400.

You can see the PCB is stuck to the case slightly crooked.

I removed the status LEDs and soldered 30awg wires to the pads. Cathode on the left, anode to the right.

The Capslock, Numlock and Esc key switches have pads for LEDs. I soldered the 30awg wires directly to the LED pins.

The PCB footprint for those LED switches is very slightly off center from the rest of the switches. It does not make a difference with PCB mount switches, but a plate might have slight alignment problems.

Routing the wires is the most tedious part. There is quite a lot of space between the heatsink and PCB, but there are some pinch points that you want to avoid.

LEDs functioning. The Power LED is much brighter than the Capslock and Numlock. It may just be the cheap 3mm LEDs I am using.

The only thing left to do is to connect the rotary encoder to the GPIO pins. These will have to be manually wired like the LEDs.

The PCB should also be grounded like the original one was (conductive foam pad near Ethernet port). The two mounting lugs on the rotary encoder are connected to the ground plane on the PCB. A drain wire from there to a suitable ground point should work.

Gerber on git.

Wednesday, December 2, 2020

Raspberry Pi 400 matrix verified

Tested with prototype PCB

Made a simple PCB layout with all of the same key positions as the original Pi 400 keyboard. The matrix keymap is correct.

As long as you use the available keys in the matrix you can make a replacement keyboard connected to the Holtek controller.

Connections to the Pi 400 PCB were made with 30awg wires. I got these on Amazon, it is a roll of 8 different colors bundled together.

The keyboard end with labeled pads.

The Pi 400 matrix pads. I labeled the pads on some masking tape.

The 8 different wire colors in 3 sets, total of 24 connections.

The completed ORTHOPI is here.