I have been experimenting with the KeyPad Component in the latest V3 Demo, as part of my evaluation to buy FlowCode.
I created a program to retrieve the value (in ascii) from the KeyPad and then display it on an LCD. The KeyPad is assigned to Port B, and the LCD is assigned to Port D on a PIC16F877a. When I run this under simulation everything works just fine (I also incorporated a new key vs. old key comparison to eliminate key bounce). However when I load this into hardware and run it, most of the keys do absolutely nothing, and the bottom row (*,0,#) places multiple random characters on the LCD. I took an Oscope reading of the column pins, and I am seeing a +5V signal, but not one that is being sequentially clocked as I would assume it would need to be in order to scan the KeyPad.
I tried reassigning the KeyPad to the C port, but it yielded similar results. I also have 100K pull-downs to ground on the RowA - RowD lines.
Anybody have any ideas? Is it a problem with the Demo version?
Is there a problem with the KeyPad Component in V3?
- mytekcontrols
- Posts: 95
- Joined: Sun Aug 19, 2007 6:38 pm
- Location: Santa Rosa, California
- Has thanked: 4 times
- Been thanked: 7 times
- Contact:
Is there a problem with the KeyPad Component in V3?
Michael St. Pierre
FlowCode V3&V4 Pro Registered User
Manufacture: Heat Load Controllers,
and a variety of other widgets.
FlowCode V3&V4 Pro Registered User
Manufacture: Heat Load Controllers,
and a variety of other widgets.
- mytekcontrols
- Posts: 95
- Joined: Sun Aug 19, 2007 6:38 pm
- Location: Santa Rosa, California
- Has thanked: 4 times
- Been thanked: 7 times
- Contact:
Correction on the voltages (when not pressing any key):
RowA = 0V
RowB = 0V
RowC = 1.87V (steady - not clocking)
RowD = 4.9V (steady - not clocking)
Col1 = 0V
Col2 = 0V
Col3 = 0V
I have since added the series connected 10K resistors for the Column lines (same as Eblock KeyPad). I still have the 100K pull-downs on all the Rows. With this configuration I get no response from any key.
I have also tried 2 other brand new PIC16F877a chips with the same results.
Really beginning to look like the problem lies with the FlowCode V3 Demo KeyPad Component, or perhaps the FCD file.
RowA = 0V
RowB = 0V
RowC = 1.87V (steady - not clocking)
RowD = 4.9V (steady - not clocking)
Col1 = 0V
Col2 = 0V
Col3 = 0V
I have since added the series connected 10K resistors for the Column lines (same as Eblock KeyPad). I still have the 100K pull-downs on all the Rows. With this configuration I get no response from any key.
I have also tried 2 other brand new PIC16F877a chips with the same results.
Really beginning to look like the problem lies with the FlowCode V3 Demo KeyPad Component, or perhaps the FCD file.
Michael St. Pierre
FlowCode V3&V4 Pro Registered User
Manufacture: Heat Load Controllers,
and a variety of other widgets.
FlowCode V3&V4 Pro Registered User
Manufacture: Heat Load Controllers,
and a variety of other widgets.
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Hello
If you email sean@matrixmultimedia.co.uk then he should be able to give you an updated component.
If you email sean@matrixmultimedia.co.uk then he should be able to give you an updated component.
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
- mytekcontrols
- Posts: 95
- Joined: Sun Aug 19, 2007 6:38 pm
- Location: Santa Rosa, California
- Has thanked: 4 times
- Been thanked: 7 times
- Contact:
I discovered what the problem was. Actually there were 2 problems.
Problem #1
I had modeled my original KeyPad circuit off of the E-Blocks schematic diagram EB-014-00-1 which shows 100K pull-down resistors for the ROWS, and 10K series resistors for the COLUMNS. Apparently this only works for short well shielded key pad connections (my connections are unshielded at 8 inches long). The solution is to reduce the values of the resistors as I have shown in my diagram below.

Problem #2
I had originally re-specified the COLUMNS to be Bits 1-3 instead of the default Bits 0-2. It appears that at least in my version of the KeyPad component, this reassignment was not recognized (it still looks for the COLUMNS to be on Bits 0-2). As to why this is so, I am presently unsure.
Problem #1
I had modeled my original KeyPad circuit off of the E-Blocks schematic diagram EB-014-00-1 which shows 100K pull-down resistors for the ROWS, and 10K series resistors for the COLUMNS. Apparently this only works for short well shielded key pad connections (my connections are unshielded at 8 inches long). The solution is to reduce the values of the resistors as I have shown in my diagram below.

Problem #2
I had originally re-specified the COLUMNS to be Bits 1-3 instead of the default Bits 0-2. It appears that at least in my version of the KeyPad component, this reassignment was not recognized (it still looks for the COLUMNS to be on Bits 0-2). As to why this is so, I am presently unsure.
Michael St. Pierre
FlowCode V3&V4 Pro Registered User
Manufacture: Heat Load Controllers,
and a variety of other widgets.
FlowCode V3&V4 Pro Registered User
Manufacture: Heat Load Controllers,
and a variety of other widgets.
- Steve
- Matrix Staff
- Posts: 3433
- Joined: Tue Jan 03, 2006 3:59 pm
- Has thanked: 114 times
- Been thanked: 422 times
Hello Michael,
Thanks for letting us know about this.
We did notice this problem with re-assignment of pins a couple of months ago and have produced a new version of the component to solve this. We will release this new component with a future update of Flowcode.
In the meantime, if anyone *desparately* wants a version of the keypad component which correctly allows pin re-assignment, please contact me directly.
Thanks for letting us know about this.
We did notice this problem with re-assignment of pins a couple of months ago and have produced a new version of the component to solve this. We will release this new component with a future update of Flowcode.
In the meantime, if anyone *desparately* wants a version of the keypad component which correctly allows pin re-assignment, please contact me directly.
- mytekcontrols
- Posts: 95
- Joined: Sun Aug 19, 2007 6:38 pm
- Location: Santa Rosa, California
- Has thanked: 4 times
- Been thanked: 7 times
- Contact:
Not to pressure you, but how soon can we expect this? Else...We did notice this problem with re-assignment of pins a couple of months ago and have produced a new version of the component to solve this. We will release this new component with a future update of Flowcode.
I may have to take you up on this, since the project I am working on will need to have the INT0 line (RB0) free to use, and I still want the keypad mapped to the B Port.In the meantime, if anyone *desparately* wants a version of the keypad component which correctly allows pin re-assignment, please contact me directly.
Michael St. Pierre
FlowCode V3&V4 Pro Registered User
Manufacture: Heat Load Controllers,
and a variety of other widgets.
FlowCode V3&V4 Pro Registered User
Manufacture: Heat Load Controllers,
and a variety of other widgets.
- mytekcontrols
- Posts: 95
- Joined: Sun Aug 19, 2007 6:38 pm
- Location: Santa Rosa, California
- Has thanked: 4 times
- Been thanked: 7 times
- Contact:
Hi Steve,
I just updated to the latest version of FlowCode today, and am happy to report that the new KeyPad Component (V1.4) is working great. I now have it reassigned to use bits RB1 - RB7 for the key scan, and leave RB0/INT available for other uses.
In fact I gave it a complete test, and ran an interrupt routine for the INT input at the same time I was using the remaining bits for the KeyPad Component. Everything worked as expected
Good job!
I just updated to the latest version of FlowCode today, and am happy to report that the new KeyPad Component (V1.4) is working great. I now have it reassigned to use bits RB1 - RB7 for the key scan, and leave RB0/INT available for other uses.
In fact I gave it a complete test, and ran an interrupt routine for the INT input at the same time I was using the remaining bits for the KeyPad Component. Everything worked as expected

Good job!
Michael St. Pierre
FlowCode V3&V4 Pro Registered User
Manufacture: Heat Load Controllers,
and a variety of other widgets.
FlowCode V3&V4 Pro Registered User
Manufacture: Heat Load Controllers,
and a variety of other widgets.