Converting a simple calculator into a scientific calculator! - Page 1
Forum section: electronics / projects

author: elskins
author_rank: Newbie
timestamp: April 23, 2019, 12:48:46 pm
content: Hello!!I've been set a test project by a potential employer to convert a simple calculator such as a CASIO FX-82ES so that it has the capabilities of a scientific graphing calculator such as a TI-83. The rules of the project are that I can change anything about the simple calculator (e.g processor, screen etc) however on a quick inspection it must look like there has been no modifications.I would appreciate some advice in how to approach this problem.I was thinking of running a Ti-83 ROM on a Rasperry Pi Zero type device. Would it be possible to connect the buttons from the simple casio calculator to the GPIO on a Rasperry Pi and accept them as input? I'm concerned how I would manage to map these buttons successfully to the Ti software. And then would it be possible to output that to the more primitive screen of the casio?Ultimately I'm not sure what resources in the simple calculator could be reused and what would have to be replaced to allow for the more advanced functionality of the Ti software.Any help would be greatly appreciated, I have found somewhat similar calculator projects to this online but none of them regarding the conversion of the simple to scientific.

author: iMo
author_rank: Super Contributor
timestamp: April 23, 2019, 01:21:29 pm
content: QuoteAs a first step I would kindly ask the potential employer to sign a contract with me on such a services delivery

author: davep238
author_rank: Contributor
timestamp: April 23, 2019, 04:57:24 pm
content: The CASIO FX-82ES is already a scientific graphing calculator. And as far as I know, the TI-83 uses a Z80 CPU, so a TI-83 ROM would not work in a Rpi.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: April 23, 2019, 06:17:59 pm
content: I assumed an emulator was intended...And yeah, the FX-82 doesn't seem like a good example, i.e., it's a trivial solution. Surely a "four banger" was intended as the "simple calculator", and the graphing calculator is the goal?Mind, they're not asking so much fora solution, asa method of solution.For example:- What CPU is in the original calculator?- Can it be programmed at all? Does it use mask ROM? (If so, then no!) Does it have an external ROM chip, or cartridge, or  RAM? Also, how much memory space does it even have? It might not be able to run such a complicated program at all, even if it can be programmed.- If not, you must replace the CPU, or PCB, with one that can.- Once you have a programmable platform, you must write the program. This... would be extremely lengthy to do from scratch, and prone to errors, especially if you don't have any experience with programming of embedded devices, and structured programming in high-level languages.- So what can you do about that? Well, a more likely approach is to find some off-the-shelf libraries, and either port them to your platform, or create an interface (or even an emulator) that runs on your system that can work with the existing libraries (because, maybe you can only find binaries, or libraries, but not the source?).- Somewhere along the way, you need to figure out how to change the numbers and a couple operator keys into a full scientific (and graphing) keypad. There aren't nearly as many keys as a graphing calculator has, so you need to encode operations as key combinations or sequences. (Scientific calculators already have a shortage, hence the "2nd function" key on most of them! You could take the same mechanism, but vastly expand it, to make better -- and, unfortunately, far more cryptic -- use of the few keys you have.)This is probably far too much, far too useful, information than I should provide under the circumstances. Perhaps your employer will at least read the subtext that you are at least able to look up answers online...Also, for your own purposes -- because, remember, an employment is a relationship, and that goes both ways -- if your potential employer is asking about, essentially, hacking and reverse- and forward-engineering embedded devices -- how relevant is that actually to the expected duties of this position?Is the job description itself actually representative of what's going on? For example, you might be responsible for such-and-such technical tasks, but it ends up being a bunch of stupid paperwork and office politics because it's a large and entrenched corporation with that kind of culture. (In which case, that may still be an okay job, at least for a while, but you will soon come to appreciate why the Dilbert comic remains as popular as it is...)Tim

author: SiliconWizard
author_rank: Super Contributor
timestamp: April 24, 2019, 04:47:26 pm
content: Now that's some technical test for a job interview that's largely overkill! Besides what's been said above:If all they wanted to know is for you to describe how you would go about it, then they should probably do that during the interview, face-to-face. Giving you "off" time to think it through is a bit counter-productive as a testing question IMO.Now if they really want you to complete the project before hiring you - then it sounds completely nuts to me. And if this is the case, they should at least give you compensation for this, whether you end up getting hired or not and as long as you provide them with sufficient data on the project.What I would personally do as an interviewer is do the above - ask you during the interview how you would proceed, what potential hard points there would be in your opinion, etc.I don't know about your country, but in many there is a trial period for any employee, so the employer gets to decide whether they want to keep the employee or not. Over here, for engineering positions, it's usually 3 months. If the interview went well, I would give you this project during this trial period rather than beforehand...

author: Kalvin
author_rank: Super Contributor
timestamp: April 24, 2019, 05:05:37 pm
content: It would be much easier and more productive to just learn the required math and calculus instead