-5
\$\begingroup\$

I am not an electronic person and found this site in a my quest for the perfect calculator. I use both a phone and calculator for calculations and find the back and forth to cause me to make errors due to the keypad reversal. Where would I go to find a simple handheld calculator (+,_,*./,% and =) with a keypad that looks like a phone setup. I can't bring my phone into exams and I make less errors with it since I use the phone keypad on a daily basis. A calculator with a phone keypad layout seems like a practical way to cut down on human error.

In the event my dream calculator is not in existence - is it possible to take an existing calculator and move the keys and reprogram it?

Thanks Tara

\$\endgroup\$
2
  • 3
    \$\begingroup\$ This question is unanswerable in addition to being unrelated to the site topic. Where can you go to find a calculator that looks like your (unknown) phone application? Try a shopping site or the mall. \$\endgroup\$ Jul 25, 2013 at 7:52
  • \$\begingroup\$ Personally, I find calculators and 10-key keypads to be "correct" and phones to be "backwards." It's the phone that should be changed, not the calculator! \$\endgroup\$
    – JYelton
    Jul 25, 2013 at 18:19

2 Answers 2

1
\$\begingroup\$

You may be able to do this - but you may have to experiment with a few cheap calculators. You'll need to open the case of course and the cheapest calculators may be glued together rather than joined with screws. It may be necessary to cut up a membrane keypad overlay and reassemble it and you may need to do some fine soldering work to cut and reconnect the wiring between keypad and PCB COB/chip/blob. You'll need a fine-tip soldering iron and a voltmeter at minimum.

See Easy Calculator Hack

\$\endgroup\$
4
  • \$\begingroup\$ Aren't the keys usually placed directly on the PCB and routed to the MCU on the PCB? That's the cheapest solution isn't it? \$\endgroup\$ Jul 25, 2013 at 8:50
  • \$\begingroup\$ @trav1s: I'm sure you're right. I don't have any cheap disposable calculators to hand. Tara may be able to cut tracks, there may be room to add bodge-wires ... I didn't want to kill all hope and discourage creative destruction. I think it's a fun project and even if hopeless, instructive. \$\endgroup\$ Jul 25, 2013 at 8:53
  • \$\begingroup\$ Sounds like an insanely difficult circuit surgery from the deepest depths of hell. If you put the tools necessary in front of a layperson, I think the probability of them hurting themselves ≈ 1, while the probability of success ≈ 0. \$\endgroup\$ Jul 25, 2013 at 9:01
  • \$\begingroup\$ But to hell with it, +1 for creative destruction instruction! \$\endgroup\$ Jul 25, 2013 at 9:04
1
\$\begingroup\$

Another approach is to buy a microprocessor based calculator kit such as this nice Arduino-compatible calculator kit rearrange the buttons and reprogram the chip accordingly.

enter image description here enter image description here

Assembling this kit and reprogramming an Arduino-compatible calculator is certainly not rocket science and ought to be within the capabilities of someone with elementary soldering and programming skills.

The code is here ready to be hacked.

void decodeKeyPress()
{
  tempINT = 0;                                                        // New Dec 20th

  // KeyPad Layout
  //
  // Columns      Rows
  //   3 2 1 0
  //  
  //   7 8 9 /    0
  //   4 5 6 *    1
  //   1 2 3 -    2
  //   . 0 = +    3

  // Value mapping for decoding
  //     12  8  4  0
  //     13  9  5  1
  //     14  10 6  2
  //     15  11 7  3

  // commandType => 1="+", 2="-", 3="/", 4="*", 5="=", 6="Clear"

  for (i=0; i < 4; i++)                                                // This decodes the Rows
  {
    if(bitRead(rawKeys, i))
      //if(bitRead(rawKeyArray[column], i))   
    {
      tempINT = i;
      break;
    }
  } 

  currentKey = (column*4)+tempINT;

  if(KeyDown[currentKey] == false)
  {

    KeyOK = true;
    KeyDown[currentKey] = true;

    switch (currentKey) 
    {
    case 0:    
      KeyValue =  3;
      commandFlag = true;
      break;

    case 1:    
      KeyValue =  4;
      commandFlag = true;
      break;

    case 2:    
      KeyValue =  2;
      commandFlag = true;
      break;

    case 3:    
      KeyValue =  1;
      commandFlag = true;
      break;

    case 4:    
      KeyValue =  9;
      break;

    case 5:    
      KeyValue =  6;
      break;

    case 6:    
      KeyValue =  3;
      break;

    case 7:    
      KeyValue =  5;
      commandFlag = true;
      break;

    case 8:    
      KeyValue =  8;
      break;

    case 9:    
      KeyValue =  5;
      break; 

    case 10:    
      KeyValue =  2;
      break;

    case 11:    
      KeyValue =  11;
      decimalFlag = true;     
      break;  

    case 12:    
      KeyValue =  7;
      break;

    case 13:    
      KeyValue =  4;
      break; 

    case 14:    
      KeyValue =  1;
      break;

    case 15:    
      KeyValue =  0;
      break;  

      //    case 16:                                              // Clear
      //      KeyValue =  6;
      //      commandFlag = true;
      //      break; 
    default:                                                      // Should never get here
      KeyOK = false;
      KeyValue =  0;
      ErrorFlag = true;
      ErrorCode = 4; 
      //  KeyDown[currentKey] = false;
    }
  }
  else
  {
    KeyOK = false;                                                // Not a new key being pressed
  }
}
\$\endgroup\$
2
  • \$\begingroup\$ Not sure if the OP will be able to hire some one with elementary soldering and programming skills, but a great solution! \$\endgroup\$ Jul 25, 2013 at 9:33
  • 1
    \$\begingroup\$ @trav1s: You're right of course, Tara says "I am not an electronic person" but perhaps Tara can become one or knows one. And anyway, the Q may be read by other people who are or want to be. Otherwise I'm wasting my time (wouldn't be the first time) :-) \$\endgroup\$ Jul 25, 2013 at 9:44

Not the answer you're looking for? Browse other questions tagged or ask your own question.