-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\$

closed as off-topic by Nick Alexeev, PeterJ, Leon Heller, Andy aka, Dave Tweed Jul 25 '13 at 10:52

This question appears to be off-topic. The users who voted to close gave this specific reason:

If this question can be reworded to fit the rules in the help center, please edit the question.

  • 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\$ – travisbartley Jul 25 '13 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 '13 at 18:19
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\$
  • \$\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\$ – travisbartley Jul 25 '13 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\$ – RedGrittyBrick Jul 25 '13 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\$ – travisbartley Jul 25 '13 at 9:01
  • \$\begingroup\$ But to hell with it, +1 for creative destruction instruction! \$\endgroup\$ – travisbartley Jul 25 '13 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\$
  • \$\begingroup\$ Not sure if the OP will be able to hire some one with elementary soldering and programming skills, but a great solution! \$\endgroup\$ – travisbartley Jul 25 '13 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\$ – RedGrittyBrick Jul 25 '13 at 9:44

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