Due to the impacts of the coronavirus outbreak, we are experiencing longer than normal lead times on certain products. We encourage back-ordering out-of-stock items to receive them as soon as possible.
Track My Order
Frequently Asked Questions
International Shipping Info
Mon-Fri, 9am to 12pm and
1pm to 5pm U.S. Mountain Time:
Chat With Us
June 30, 2011
about 9 years ago
Had this working in a few hours, but ran into an issue where holding two more more buttons would cause unusual behavior. For some combinations, it would register the wrong button, other combinations it would do nothing. Undefined behavior is never desirable, so debugged it for a few hours and found the solution.
If you set all the columns to be "INPUTS", and use pull-down resistors, then set all the rows to be "OUTPUTS", with switching diodes, allowing those pins to transmit high, but not ground a low signal, then it is possible to identify the state of each individual button, even if more then one button is pushed at a time. Then the algorithm is basically to set all the rows LOW, then one by one, set each one HIGH and then back down to LOW. While its HIGH, check each of the column pins to see which button in that column is registering a HIGH (that button is pushed).
A few interesting notes:
* Depending on the pressure you put on the button, the resistance between the two connected pins will change. In other words, the less you push the button, the higher the resistance. I was not able to get a solid resistance free connection, even with tons of pressure (but it is very low resistance)
* When you push a button, it will fluctuate between connected and not connected for a few nanoseconds. As such, you will need to time the button and make sure its been depressed for somewhere around 30ms before you register it as a push. Otherwise you end up seeing the button get pushed a few times for every individual push.
about 9 years ago
This component may come loaded with one of two firmware packages. Either the GFX, or SGC versions. If its GFX, it will startup with a splash screen of tiny green text in the upper left corner. If its the SGC version, it will start up with a colorful splash screen that scrolls.
Serial communication with the display will NOT work unless the display is running the SGC version. So if you get this display, and it starts up with green text, you will need to connect a USB-to-Serial converter and run the 4d systems display firmware loader to reprogram the display to SGC before you can send it any information (including the auto baud rate detection byte).
No public wish lists :(