New LCD user interface and face plate

I have been known for my phi-panel family of LCD keypad panels. Recently I have been modifying my firmware, PCB, and face plates to support a lot of different key arrangements.
Here is some rendering (with screws conveniently omitted):

The first set of two panels have rotary encoder as up/down control, encoder shaft switch as enter and up to 5 more buttons at any of the 6 indicated locations.

The second set of two panels have 4 buttons forming arrows up/down/left/right and 4 more optional keys for enter and other functions.

You can decide to use less keys and glue or tape the laser cut hole pads in place. You can also decide which button is going to be enter or 1,2,3 by wiring the button pins to different pins on the LCD panel.
The LCD panels are the most sophisticated kind you can get for arduino, including almost all ASCII control characters such as \n \r \b etc and escape characters to do positioning. It also integrates the best menu system you can get on board so all you need to do is sending a plain text such as Serial.print(""\eFMenu:\nItem 1\nItem2\n~); it will render the menu and interact with user via the keypad and return to arduino the selected item.
When in normal mode, you will receive characters representing a key pressed so the processing is super easy.
With the different firmwares, you can go between matrix keypad and rotary keypad layout or directional keypad. I may even add a navigation keypad with a digital stick on it and additional locations for keys.

Any suggestions, comments?

FYI, this is the matrix keypad version:

Hi Liudr,

Still busy optimizing to the ultimate Phi panel?

I like layout 1 and 2 the most. The layouts 3 & 4 are too messy, more chance on errors imho.

idea:
Have you ever thought about rotating a 4 x 16 by 90°? to make a (virtual) 16 x 4 LCD, which includes a rotated font?
It would need a wrapper class around the normal LCD class to get addressing right (student project?)
Call it the VLCD() class for the Verti panel with VertiFont?

Just thinking out loud,

Big fan of the rotary control, was planning to add a pot as a rotary control on my lap timer project - using a button to scroll through 500 laps you start seriously thinking of alternatives by about lap 80.

Duane B

rcarduino.blogspot.com

robtillaart:
Hi Liudr,

Still busy optimizing to the ultimate Phi panel?

I like layout 1 and 2 the most. The layouts 3 & 4 are too messy, more chance on errors imho.

idea:
Have you ever thought about rotating a 4 x 16 by 90°? to make a (virtual) 16 x 4 LCD, which includes a rotated font?
It would need a wrapper class around the normal LCD class to get addressing right (student project?)
Call it the VLCD() class for the Verti panel with VertiFont?

Just thinking out loud,

Thanks Rob. You don't have to use all the keys / holes on the layout 3 and 4. Say if you want u/d/l/r/enter, you can just keep the laser cut piece in the other holes so you only see 5 keys. Also you can decide which location you want your enter key to sit and wire accordingly :slight_smile: I've ordered parts for all layouts so in a few weeks there will be actual pictures.

About the vertical fonts, it will be hard for the character displays. There are only 8 custom character memory for the display so there won't be enough to make out the vertical display plus the 4*8 matrix can't be broken. I'll have to use a graphic display (next step!).

DuaneB:
Big fan of the rotary control, was planning to add a pot as a rotary control on my lap timer project - using a button to scroll through 500 laps you start seriously thinking of alternatives by about lap 80.

Duane B

rcarduino.blogspot.com

You are right Duane B. A rotary encoder is digital but the speed you turn it is analog. If you want to get to a number quickly, you turn faster. You can't do that with a button. You have to wait for it to bounce back before pushing it another time. I used to have a buttons lib that does repeat after holding and dash after holding for too long but you always over or under shoot and the pain :slight_smile:

The rotary encoder is the way to go. BTW, even without the face plate, one can still use the circuit and the LCD backpack to form their own arrangement.

So where do you shop for your rotary encoder knobs? I have a hard time finding one with no mark on it. Most of them always have a line mark that ruins the rotary encoder's nature as "turn all you want you're not getting anything if it's not powered".

About the vertical fonts, it will be hard for the character displays. There are only 8 custom character memory for the display so there won't be enough to make out the vertical display plus the 4*8 matrix can't be broken. I'll have to use a graphic display (next step!).

maybe just for digits ?

robtillaart:

About the vertical fonts, it will be hard for the character displays. There are only 8 custom character memory for the display so there won't be enough to make out the vertical display plus the 4*8 matrix can't be broken. I'll have to use a graphic display (next step!).

maybe just for digits ?

Any applications for this potential display? I suppose with the character display capability and 20X4 display, I can push it up to 4X10.

if I have 10 temperatures to display I can do one per line on a 10x4 display (assume a 2.1 layout) using all 40 positions with info
on a 4x10 display I need at least separators between the temp, so I can only display 8 values

instead of 10 temperature it can also be other weather data, or other counters in the range -999..9999 or equiv. (lap counters?)

That might be useful. I'll have that on my list. May not be doable with only 8 custom characters.

Hey everyone, take a look here. I just got everything back, laser cut face plate, PCB, parts. Just didn't have time to assemble all 4 versions or take videos yet but I really love the rotary versions. It's very quick to go through long menus or change numbers. Too bad I can't find nice big knobs without a line on the top to go with the kits so buyers will have to get their own knobs.

1.jpg

2.jpg

3.jpg

My next post will be using the matte side of the panel. The glossy side is so shiny and easy to get smudge on.

They look great, now if you offer a version of the rotary encoder model pre loaded with this you will make a lot of people happy -

What do you sell them for ? are they pre-assembled and will you be including the rotary encoder ?

If its yes, yes and yes I might convert the lap timer to run on them, less soldering and sourcing of parts will open the project up to more users

Duane B

DuaneB:
They look great, now if you offer a version of the rotary encoder model pre loaded with this you will make a lot of people happy -

RCArduino: Lap Timer Build Along Part 3 - Timer Based Transponder

What do you sell them for ? are they pre-assembled and will you be including the rotary encoder ?

If its yes, yes and yes I might convert the lap timer to run on them, less soldering and sourcing of parts will open the project up to more users

Duane B

Duane B,

The kit is this item:

http://www.inmojo.com/store/liudr-arduino-and-physics-gadgets/item/rotary-encoder-keypad-kit-20x4-lcd/

or this item:

http://www.inmojo.com/store/liudr-arduino-and-physics-gadgets/item/rotary-encoder-keypad-kit-16x2-lcd/

If you want to use your own LCD, you just need to get one of these kits. The kits don't include LCDs. They both include rotary encoder and everything else except I don't have knobs yet. You can turn the shaft pretty easily without a knob. There will minimal amount of PCB soldering, very easy to do. In the pictures I used white connectors but that took forever to do. I was doing that so I can share one rotary encoder between the 20X4 kit and 16X2 kit between picture shots. The best way to do these connections is to do wire wrapping. Very easy with the male pins.

If you want to get the phi-panel LCD backpack too, featured on the diagram, here is a link:

http://www.inmojo.com/store/liudr-arduino-and-physics-gadgets/item/serial-lcd-back-pack---phi-panel/

This will give your main circuit the ease of mind. You don't have to keep checking key input with loops or interrupts. You can do a while loop with serial.available() which takes very little time. Then you can focus on your lap time with the sensors.

BTW, outstanding handling around the bends. I don't have RC cars but I felt it was amazing to control something this small this quickly with a high center of gravity yet rounding the bend so fast that it doesn't roll over or slide.

BTW, If I can get this line of products rolling, I will be able to order larger quantity of laser cutting face plates and more of those expensive buttons with caps. That will reduce the cost of the kit in the future. If you want, I can also make some custom back plates so you will have a top and bottom plate, where you can mount your circuit on the bottom plate and display+rotary encoder+ keys on the top.

My 2c worth.

It's hard to hide the screws on this sort of thing so I would make them countersunk Alan-key set screws so they are flush with the surface and actually look reasonably professional and industrial. You can get them in black as well.


Rob

Rob,

I wish I could countersink but laser cut is 2D only. Any suggestions?

Drill press and a counter sink bit :slight_smile:

Is this to be a product you sell 1000s of? If so get a machine shop to do it.

What's the material, just black ABS?


Rob

Graynomad:
Drill press and a counter sink bit :slight_smile:

Is this to be a product you sell 1000s of? If so get a machine shop to do it.

What's the material, just black ABS?


Rob

Thanks. I wish I could have my own workshop to do this myself. I'm thinking of 100s not 1,000s. The material is 3mm thick glossy/matte black acrylic.

I'm thinking of 100s not 1,000s.

Then a $50 drill press and a table is all you need. You already have the holes so set the depth on the press, get a cup of coffee, put your brain in neutral and go for it.


Rob

Great! I'm making this mental list of what to have in my workshop when I get a house: drill press, countsink tool, reamer, etc.

What do you live in now, a shoe box :slight_smile:


Rob