Phi-panel 20X4 kit available again

Sorry the Phi-panel 20X4 panel kit was unavailable for a while. I’ve made some updates to the board. Here is a picture of the board:

This is the back side:
2017-02-28-20-42-57Notice that the push buttons are all surface mount buttons. The have low profile and are a bit different from the old buttons with a thicker profile and black plunger.

Also most other components are surface-mounted.

The kit will have all surface-mounted components pre-assembled but the following parts still need your assembly:

LCD’s pins, 6-pin female header on back side, and the speaker. You also have to adjust the potentiometer to get proper contrast.

Laser cut primer


phi-panel backpack 20X4 rotary encoder keypad front angle held

This may be too simple for anyone that has done laser cutting but for anyone not knowing about it or just learned the term, it will hopefully lead you to actually making some some with laser cut. I have been using service for about 2 years and can recommend them to anyone just doing small batches of laser cut. All my phi-panel face plates have been cut at by the way. Take a look at them in my store on or at

Here is the primer:

Laser cutting front panels

Using OLED displays on phi-panel

I got a request from Kenny G. that he wants to run OLED displays on phi-panels and got interested in modifying the software and hardware to work. Thanks to Kenny, who loaned me an OLED display from adafruit (wintech 1602AB), I was able to tinker with it last night and today. I eventually made it to work:

Here is some photos:

One of the photos is a diagram on how to modify the backpack PCB. Please check out the google code page regarding the firmware.

Long story short, the adafruit OLED library is only half-baked. Here is my post on their forum:

Pretty bad, basically clear() blink() cursor() display() and their counterparts are not working. I confirmed most of these with the simplest setup. On the other hand, home() works so I can limp on with home() and writing a lot of blanks to clear but can’t show cursor or blink anymore.

So I commented out these functions and modified clear() to write 80 spaces and do a home(). It works as it should. With other software this would have flicker on the screen but with phi-panel’s display buffer, it does not flicker.

In the future, if there is enough interest, I will make some special backpack PCBs that don’t need modification to work with OLEDs.

Meanwhile Kenny is testing other OLEDs he has regarding adafruit library usability. I felt that adafruit didn’t go all the way to provide a reliable library for us this time but without spec sheet, what more than this can they do? Maybe being a bit more upfront with their limitations?!

Directional keypad for phi-panel

This is a directional keypad I developed for phi-panel, together with the rotary encoder keypad.

There are two sizes, 20X4 and 16X2.


  • Laser-cut 3mm-thick glossy/matte black acrylic face plate with window to mount a 20X4 or 16X2 character LCD and a 8 push buttons. You choose which side to use, glassy or matte. Brown/white color is removable protective layer on both sides.
  • 4 push buttons are arranged in up/down/left/right
  • 2 buttons above the directional buttons and 2 above.
  • 8 short standoffs for LCD and keypad circuit board, 4 long standoffs for the face plate, 12 screws and 12 nuts, all M3 in size
  • 6 button covers in case you want to cover up the button holes you don’t use
  • PCB for the keypad and 8 buttons

Currently the 20X4 version is out of stock. I only made 2 in a batch of 4 new keypad face plates. If you want the 20X4 kit please respond with a comment.

Initial tests are all positive with phi-panel functions with new firmware. The directional keypad is very nice if you don’t need the 0-9 numbers provided by the matrix keypad. There is no more setup menu you can call up with the escape key.

It took me forever to make those white connectors. The female crimp end was so hard to make that if you add just a bit too much solder the spring is soldered on and can’t accept pins. These are not the best ways to connect the keypad to phi-panels. I did it only because I want to switch between keypads between photos and videos so I don’t have to tie up two assembled panels with keypads.

In the kit, I included regular male headers. You can simply solder wires to the pins or use male headers and wire wrap to the pins for connection, much easier than the white wafer connectors.

I am writing documents for these keypads but you can already purchase these kits and tinker with them. It’s pretty easy to hook them up to phi-panels or your arduino in case you don’t want a phi-panel.

Videos (20X4 version):

Still shots:

OLED displays

There are several popular character OLED (organic light-emitting diode) displays among Arduino fans. These displays have a lot better contrast than LCDs, needs no contrast adjustment, and are brighter, but more expensive. The wiring of these character OLED displays seems to be compatible with HD44780 LCDs but there might be some timing issues with the ones Adafruit sells:

They need modified LCD library supplied by Adafruit and also need the R/W line to be controlled by Arduino instead of simply grounded. A phi-panel backpack user has recently purchased their displays and other ones from Newhaven. There might be a need for the backpack to support these displays, with a modification of the existing PCB and or firmware, or even a new PCB design. I am wondering if there is enough demand for this modification. Just write me a comment if you are interested in the phi-panel backpacks supporting these display. I will also update this post when I receive word from that phi-panel backpack user regarding their test with these OLEDs.

Phi-panel firmware erase

I have developed a simple firmware erase program that phi-panel users may use to erase original firmware and load new firmware. Before this, you CANNOT upload the same firmware version your panel contains and expect it to reset all the settings that a user may have messed up. Now with this program, you may erase the firmware and the firmware version stored in EEPROM so after loading a new firmware, the firmware will rewrite EEPROM with default settings. I wonder why I have not done this earlier 😉

Here is a direct link:

New Phi-panel backpack PCB design and temporary price drop

Since its introduction, the phi-panel backpack has sold over 100 units. The sales has gone up especially recently. To meet the demands, I recently purchased/printed in large quantity ATMEGA328 chips and PCBs so I was able to adjust down the prices of various kits a few dollars each. I am hoping the price stays at this level from now on although I am saying “temporary”. The biggest challenges for this product are:

1) Finding LCDs that are low cost and good enough quality. I still can’t just order 100 LCDs at a time. That will last for a year 🙂

2) Competing against dummy “serial LCDs” with I2C port extenders. Those circuit components only cost dimes and the circuits are as dumb as a rock.

It is hard to show phi-panel’s quality with just the look or even a video. But I’m glad that almost everyone that purchased these backpacks are happy with their purchase and some said some very positive things about it. So to those happy customers, please tell your friends about this product. The more the demands, the lower the unit price may go, and the more features I will add to this line of product.

This new batch of PCBs feature a how row of ground connections. This will come in handy if you are using the 8-key firmware and laying out your own control panel. Each button will connect a button pin and one of the grounds. So I added a row of 8 grounds to cope with this. You don’t need to jam or twist 8 wires in one ground connection.

The various keypad layouts and face plates are arriving in a few days. It will be exciting!—phi-panel/

New phi-panel face plates are on their ways

Recently I have been contacted by various individuals regarding using the phi-panel LCD back pack with rotary encoders and buttons instead of matrix keypad. So I thought about it, and made the firmware change to accommodate that. It was covered in a previous post. Now that I have these different firmwares that support different key layouts, I felt that I should complete the circle by adding these layouts to new face plates.

These two layouts are for 20X4 and 16X2 phi-panel LCD backpacks. I designed new PCBs to accommodate a rotary encoder with a switch on the shaft (press down) and up to 6 additional buttons. Now you can use a rotary encoder, and up to 5 buttons at any of the 6 locations.

Why having 6 locations but only allowing up to 5 buttons? There are 8 connections on the phi-panel. These are originally intended for the 4*4 matrix keypad. Now with the above new key layouts, these buttons are used as the following:

Encoder channel A, encoder channel B, encoder switch, button 1, button 2, button 3, button 4, button 5. After the encoder, there are only 5 connections left anyway. But to give you the freedom to arrange keys, I have 6 locations. For the locations that you don’t want a key, simply tape it. The laser cut face plate contains 6 discs each at a button hole. Just tape those discs in the back and that hole is covered! I like the layout to be symmetric so you can flip the face plate and use the other side, because one side is glossy, and the other side is matte! Didn’t I think of everything?! Of course I conveniently neglected all the screw holes in the above rendering but they are included on the actual panels. Use black screws if you want for the look.

At the moment, I looked up and down a few US suppliers and ebay for rotary encoder knobs but I can’t seem to find the single most attractive ones with no lines or marks on them so I will not include knobs and let you choose any size up to 1.25 inch diameter or 31.5mm in diameter. There are lots of them.

Next are two layouts with directional keys:

There are 4 holes arranged in u/d/l/r and there are 2 additional holes on the top and 2 on the bottom. You can do your u/d/l/r/ and pick any of the free holes for enter or use all 8 holes for 8 buttons. The key arrangement of the corresponding firmware will be:


Once I get these face plates, I will give a demonstration of each one of them, how to wire them up and how to flash different firmware to go between these configurations.

New phi-panels documentation

I have been procrastinating but there is no shame to release a documentation with one or two things not yet documented, out of hundreds that have. So here we go. This documentation matches firmware version 1.6.2 documentation 20121029.pdf

New functions are added to family of phi-panels

Arend requested some new features that I thought was useful to everyone:

1) Have up to 32 items on a menu/list

2) Have a way to set which item is high lighted so the user will not have to go through the entire list from item 1.

This resulted in quite a bit of work and time (I have about 3,000 lines of code that I have not touched for a while). Anyway now let’s welcome firmeware 1.6.2 with the following additions:

Dennis also requested some discrete button options but that will not be released to everyone (unless you all want that).


1) Added support for 8 discrete buttons with back_pack version. Firmware will be uploaded in a separate file

2) Updated EEPROM key to 0x61 for back_pack_8_keys and 0x62 for this version

3) Added support for up to 32 items on a list.

4) Added support for up to 660 characters for long messages or menus.

5) Added option to preset highlighted menu item with menu_highlighted_item. It updates with each selection.

6) Added a serial command to set this menu_highlighted_item value with “\eWn~”. Eg. “\eW3~” highlights item 3 (1 based) for the next menu phi-panel receives.

Download the firmware here if you want to get the update and MAKE SURE YOU DOWNLOAD THE RIGHT ONE FOR YOUR PANEL OR BACKPACK SIZE.

First read the wiki about how to upload firmware then download the correct 1.6.2 version for your hardware 🙂

%d bloggers like this: