Monday, February 19, 2018

Lobot A-Star Micro

Lobot on the A-Star Micro and Arduino Micro

The Lobot can also be used as an ISP programmer for the A-Star Micro from Pololu and the Arduino Micro clone.

The A-Star Micro is used in the Atreus. I replaced the bootloader on the Atreus I built with the LUFA Mass Storage bootloader. It would have been a lot easier to flash the bootloader with the Lobot.

The A-Star Micro is similar to the Pro Micro, but much smaller. It comes with the same Caterina type bootloader.

The only change is that the pogo pins are installed in the 6 pin ISP header location. I took apart a pin header and built a support. I doubled up the plastic shrouds to make it taller and soldered the pins on the ends to hold it in place.

 The Arduino Micro clone has the same ISP header.

Side view of the double stacked headers used as a support for the A-Star Micro when being programmed.

The ISP header pinout is fairly standard. It can probably be used to program other small AVR boards as well.

More info on the Lobot here.

Tuesday, February 13, 2018


Red and White Gherkin

Red PCB top and bottom plates. White PCB and white nylon standoffs and screws.

Monday, February 12, 2018


32 Key Macropad

Two 4x4x4x4x4 PCBs assembled into a 4x8 macropad.

This is running the same firmware as the 4x4x4x4x4, using only the left 8 columns. I also have a JSON file for use with

A single board 16 key version is here.

 Gateron clear PCB mount switches. Grab bag SA profile keycaps

 Arduino Micro clone attached to the bottom of the PCB.

 M2 spacers and screws hold the PCBs to the aluminum plate.

Sanded down the aluminum plate with 220 grit sandpaper to smooth the sharp edges and the burs on the drilled holes.

The solder bridges creating the electrical connections between the two boards. More info on how the boards are connected here.

Thursday, February 8, 2018

End Game

Nyquist Game Pad

This is one half of a Nyquist split keyboard made as a game pad. Keebio sold off some sets of incorrect PCBs at a discount. There is a problem with the circuit to connect the two halves. It can be fixed with some rewiring, but I left it alone and just made a big macropad.

There is white soldermask on only one side of the plate/bottom PCBs. This often happens if there is no copper on one side of the board. The PCB fabricator will omit the solder mask, since there is nothing to be soldered on that side. Since this is a split design that can be flipped over it would look odd to have one side with soldermask and the other would be bare fiberglass.

Monday, February 5, 2018

PCB plate

PCB plate on a formed metal bottom

This is a Planck built from a OLKB Rev 2 PCB and a custom 1.6mm thick PCB plate on a formed metal tub style bottom. SA keycaps from a PMK grab bag. The bottom was from a group buy on /r/mechmarket.

The plate has 19mm spacing to be compatible with the Planck PCB. Most other keyboards use 19.05mm spacing (0.75inch). The switch cutouts have notches for switch top removal with compatible Cherry and Gateron switches.

The PCB is connected to a micro USB breakout board with 30 AWG wire. It is possible to place the keyboard rotated 180 degrees to have the LEDs on the top of the switches instead of the bottom. You would just reverse the order of the row and column pins in the firmware.

The spacers are 9mm M2. They fit perfectly. You can see the measurements I used to create the PCB plate.

Closeup of the connection to the USB header pins on the PCB. The Planck PCB is very easy to connect a different USB connector to.

The USB breakout board. There are many different styles. I got this one from eBay. It is held in place with 3M VHB heavy duty double sided tape.

View of the USB connector cutout.

Bottom of the tub style chassis. I wish OLKB still made their formed metal chassis. It was much sturdier (thicker sheet metal) than this and was compatible with the OLKB plates. It was also 10mm deep instead of 9mm. There was space to install some modifications under the PCB.

I used an OLKB formed metal bottom on the 40% Edward.

SA keycaps.

Tuesday, January 30, 2018

Pro Micros

Various Pro Micros

Several different "Pro Micros".

I use Pro Micros in many of my projects. Most have been the cheap blue clones, but lately some other variations have been showing up on eBay and Aliexpress. They are mostly all compatible with the original opensource design from Sparkfun. Some have electrical or physical differences.

 From left to right:
The Sparkfun Pro Micro was purchased directly from Sparkfun. The others were from eBay or Aliexpress.

They all have the Arduino compatible Caterina bootloader.

The Green Pro Micro has a different power circuit that makes it incompatible with some split keyboards.

The Black one uses the larger AtMega32U4 package.

The one with the Mini USB connector has the same pinout, but is taller, wider, and thicker (the USB connector is the thickest part.) I use it on the Tomato.

The genuine Sparkfun Pro Micro PCB is 0.8mm thick. You can find cheap Pro Micro's that are 1.2mm thick (second one). Most are 1.6mm thick.

Two different styles of micro USB connectors. Some are flat (black and green) and some have a flange. What you get with clones is totally random.

Not Pro Micros.

These can often be used in place of a Pro Micro, but changes to code and wiring would be required. The AtMega328p based boards would require V-USB to create a software USB HID interface with additional hardware components.
Some other controllers are compared here.

Monday, January 29, 2018


Single 4x4 PCB 16 Key macropad

Assembled a single board version of the 4x4x4x4x4 PCB. A 1/16th thick aluminum plate was used as the bottom. This can run the same firmware as the 4x4x4x4x4 using just the 4 left most columns. I also used to create a hex using this json file.

Gateron clear PCB mount switches.

Arduino Micro clone socketed to the bottom.

The aluminum was easy to drill through with a cordless hand drill. A PCB was used as a template to locate the screw holes. 5/64th inch drill bits are the perfect size for M2 screw holes. The aluminum is 5052 that was purchased on eBay. There are sellers that will do custom cuts. The accuracy isn't exact, but is close enough for this use.

Assembled with M2 spacers and screws.

Wednesday, January 24, 2018

Monday, January 22, 2018


Pro Micro Lobotomizer

The Lobot is my third version of a Pro Micro ISP programmer. The first version used a Pro Micro running the Arduino ISP sketch. The second version was a Raspberry Pi 0 using it's GPIO pins. I use these to replace the Arduino caterina bootloader with the standard Atmel DFU bootloader.

The caterina bootloader works fine when used with the Arduino IDE. It is automatic. However when being programmed outside of Arduino you have to manually deal with the reset timing which many people have problems with. The DFU bootloader is much simpler, once reset into bootloader mode it will stay in bootloader until power cycled or given the run command from the flashing software.

This version makes it easier to align the victim Pro Micro against the pogo pins. It also uses either an Arduino Nano or a TinyUSB programmer. Both are very cheap. There are many TinyUSB variants, these purple ones are easy to find on eBay or Aliexpress.

The Arduino Nano is programmed with the Arduino ISP sketch. The TinyUSB comes pre-programmed, but you may need to install a driver if you are running windows. The Arduino Nano shows up as a serial device, the TinyUSB is a LibUSB device.

The Arduino Nano has TX/RX lights so you can see when it is transmitting data. The TinyUSB has no activity lights, but it is faster. You can see the programming progress on screen so you don't lose much not having flashing LEDs.

You can create your own bootloader using LUFA or flash the stock DFU bootloader. Atmel was purchased by Microchip and their website is a mess. You can download the stock DFU bootloader via a Wayback snapshot. The FLIP utility for Windows is also available there.

Programming is through avrdude. To flash stock DFU with the Arduino Nano the commands are:

avrdude -p m32u4 -c avrisp -P comXX -b 19200 -U lfuse:w:0x5e:m -U hfuse:w:0x99:m -U efuse:w:0xf3:m -v

avrdude -p m32u4 -c avrisp -P comXX -b 19200 -B 4 -U flash:w:"ATMega32U4-usbdevice_dfu-1_0_0.hex" -v

Replace XX in comXX with the COM port number of the Arduino Nano. The first line sets the fuses. It will give a warning about changing them back, answer No. The second line flashes the bootloader.

With the USBtiny the commands are the same but with a different programmer and no serial port/speed.

avrdude -p m32u4 -c usbtiny -U lfuse:w:0x5e:m -U hfuse:w:0x99:m -U efuse:w:0xf3:m -v

avrdude -p m32u4 -c usbtiny -B 4 -U flash:w:"ATMega32U4-usbdevice_dfu-1_0_0.hex" -v

It takes about 10-15 seconds to program. The TinyUSB is faster than the Arduino Nano.

Gerber files on github.

Only the 6 pogo pins on the bottom row are really necessary for ISP flashing. GND, Reset, VCC, SCK, MISO, MOSI. The other pogo pins are there to support the Pro Micro when you press down.

The Pro Micro placed on the pogo pins. You press down to make solid electrical contact with the spring loaded pins during the programming process.

Arduino Nano on the left, TinyUSB on the right. You can see the TX/RX LEDs on the Nano. The TinyUSB just has a power LED.

Bottom view. A second PCB is used as the base. M2 Spacers and screws. The length of the spacers matters due to the length of the pogo pins. 6mm spacers are used, slightly longer would also work.

Side view. The pogo pins are only soldered to the top PCB. The bottom of the pogo pins are sitting in the holes of the bottom PCB. I used some tape on the bottom PCB to keep the pins from falling through during soldering. Be careful not to get flux on any of the moving parts of the pogo pins, they will stick in place.

I used two different types of pogo pins. The faceted one on the left and the smooth conical one on the right. I got them on eBay, look for P75 for the size of the pins. The different style heads all have different codes. The faceted one is T2 and the conical one is E2. There are many other styles that may work.

There is a problem with the conical E2 pins. Some Pro Micros have really large holes and they will fall right through. The T2 pin heads are large enough for these holes.

Blue, Black and Green Pro Micros. The Blue has very large holes, not all I have seen are as large as this one. The Black and Green have smaller holes.

Monday, January 15, 2018

I am Groot

Groot at the Hawaii Emergency Management Agency

New restrictions on potted plants at the HEMA.

 It should probably be made more difficult to send emergency alerts.