What does a hacker do when he or she wants something but can’t afford it? They hack one together, of course. Or, in the case of [Ramón Calvo], they thoughtfully plan and prototype. [Ramón Calvo] wanted a scientific calculator, but couldn’t afford one, so he designed and built one himself.
[Ramón] started off with Arduino but upgraded initially to Freescale’s Freedom KL25Z development board upgraded to an ARM Cortex-M0+ programmed using mbed. The display is an Electronic Assembly DOGL-128 128×64 pixel LCD. [Ramón] did a couple of iterations on the PCB, going from a large DIY one in order for the Arduino version to work, to the current, smaller version for the ARM chip with hand soldered SMD components. After that, [Ramón] looked into the algorithms needed to parse mathematical input. He settled on the shunting-yard algorithm, which converts the input into Reverse Polish Notation (RPN), which is easier for the software to work with.
[Ramón] has a ton of features working, including your standard add, subtract, multiply and divide operations, square root, nth root and exponentiation, trigonometry, log and log10, and factorial(!) There are a few things still on the to-do list, such as low power and a graphing mode, and there are a couple of bugs still in the system, but the overall system is up and running. [Ramón] has put up the schematic and KiCAD files up on his Hackaday.io project page along with the bill of materials.
We’ve had a few Hackaday prize entries in the form of calculators, such as this one with Nixie tubes and this one that emulates 70’s HP calculators.
He set out to make a graphing calculator, not a scientific calculator. Before diving into his post I was confused as how you couldn’t afford a scientific but could afford to make one.
Agree, Dollar Tree sells a 10 digit Scientific Calculator for $1.
https://www.dollartree.com/Jot-10-Digit-Scientific-Calculators/p339865/index.pro
(currently out of stock)
Press each button through the blister pack before buying. If it works, it works! (Until it fails…)
It also converts HEX, DEC, OCT, BIN
Dollar Tree
Signs on window, and all throughout the store, says “Everything’s $1”
Yet they would not give me ‘everything’ for a dollar.
False advertising – I tell ‘ya!!
There are plenty of used graphic calculators around. He could probably find a 30 year old one at a yard sale for cheap.
I found half a dozen in the trash at my uni. Three of them work without any problems, two have minor problems with their displays, and one went back in the trash.
Great project, and a perfect use case for these rarely used 128×64 monochrome LCDs. Now add graphing, scripting (the RPN engine could be replaced with a Forth interpreter) and maybe some small games like Snake, Tetris, Color Switch (without color of course) or Flappy Bird.
Why not just leave it running RPN, the way God intended? All of this infix notation stuff is the tool of Satan. You can have my HP RPN calculator when you pry it from my cold, dead hands.
+1
As any phool know that should have been 1 +
1+
DUP +
.” Nice project.”
Lol. Properly schooled!
The proper order important is.
FORTH LOVE IF HONK THEN
: HONK 1 ;
HONK EARS !
HaD is becoming Reddit.
[Geriatric Human] They need up/down vote buttons, they can include them when they implement comment editing.
+1
Making an RPN call is reason enough for this project. HP seems to have dropped the ball on new RPN based calculators.
check the https://sourceforge.net/projects/wp34s/ turns the HP 30b/20b to RPN scientific.
The HP 50g is pretty decent (but recently discontinued), and the HP Prime seems awesome, except for the rechargeable battery part — great if you use it a lot and keep it topped up, but sucks for occasional use.
and another +1
Shouldn’t that be ‘cold dead hands, pry it’? :-P
“hands dup temperature cold dead eq if it pry”
hands dup cold dead and if pry then
Well, maybe more like…
hands dup cold swap dead and if pry then
This is why nobody actually USES Forth. Or RPN.
((You, my, HP RPN calculator) can have) (((you, it) pry) (my cold dead hands) from) when
shouldn’t that be an if, then, else command?
B^)
The whole point of RPN is to eliminate parenthesis.
Oops. I mean:
the_point enter
whole =
RPN *
the =
parenthesis enter
to_eliminate = =
Making a calculator is great, but affordability doesn’t sound like a plausible motive. Used TI-83s are $20 on eBay. You can’t buy an LCD, KL25Z, and manufacture a couple of iterations of a PCB for that little.
“[Ramón Calvo] wanted a scientific calculator, but couldn’t afford one, so he designed and built one himself.”
I find that very hard to believe. If you add up the cost of the LCD, the components (discrete switches?) and the cost of multiple iterations for the PCB, it will surpass the cost of a decent scientific calculator which can be had around 10 bucks.
In some places the import fees on anything past first class mail are ridiculous, pretty much excluding used from ebay which then tends to get taxed somewhere around the 20-100% or more of new price. In any case DIY has sweet geek cred in the already dorkified math study areas and at least you are not giving the manufacturer some insane markup on something which should be a few $$ after 30 years if it followed trends, the injection molded plastic and LCD being the most expensive to make components.
Not only that, but he spins the board rather than do some very simple mods (adding a power switch and a reverse protection diode) to the original one. Affordability was obviously not an issue.
Wait, he can’t afford a scientific calculator “but upgraded initially to Freescale’s Freedom KL25Z development board upgraded to an ARM Cortex-M0+ programmed using mbed. The display is an Electronic Assembly DOGL-128 128×64 pixel LCD. [Ramón] did a couple of iterations on the PCB, going from a large DIY one in order for the Arduino version to work, to the current, smaller version for the ARM chip with hand soldered SMD components.”
,,,and manufactured pcbs?
How much are scientific calculators at your region? I can grab one for $15 around the corner.
https://hackaday.io/project/19909-scientific-calculator will shed a little more light on the situation.
add a serial terminal!
And a slot for SD cards to load scripts, play music and view ultra-low-res 128×64 monochrome videos.
And WiFi to stream these monochrome videos from the web (“Does your calculator have YouTube too?”).
And some infrared LEDs to use the huge keypad as a TV remote control (“What does the factorial key do?”).
And an infrared sensor to implement two-way communications between calculators (“Do you want my games?”).
And a microphone to do real-time sound processing (“Can I turn my voice into Darth Vader’s with a calculator?”).
And a black epoxy blob to make it look like off-the-shelf calculators (“Did you buy it from Aliexpress?”).
Forgot the game boy emulator.
Well, I also forgot the telnet client, MOD tracker, Kodi remote, Forth IDE (with debugger), monochrome video editor, Doom clone, SPICE simulator, Minetest client and a WAP web browser (are WAP sites still up?).
This calculator has enough power to beat anything that contains the digit ‘7’ and the lowercase letter ‘i’ (especially Intel and Apple products). Just don’t call it “Calculus 7i”.
Google killed their sweet wap gateway years ago, it was pretty cool to use with the java wap browser when I was rocking an old Linux Sharp Zaurus SL-5500 irda tethered to my nokia 6100 candybar phone but bandwith pinched metered data ~US$10/Mb.
I dont want to believe that money was main reason to build this calculator. few years ago, when I was in first year at university i bought older HP calculator for aprox. 15Eur. and i remember that there was lot of them for sale.
But if author wanted learn something, needs some special functions or special interface, may be some wireless comunication for “coworking” during exams :-D why not. with classmates at university we thinked about integrate bluetooth to calculator, send input from calculator via bluetooth to laptop, from laptop to wolfram alpha and results (for example solution of differential eqotation) back via bluetooth to calculator and show on display, but we never realize this idea.
The (older at least)TIs have serial comm ports, probably easy enough to shoehorn a 433mhz serial comms into the calculator, then 433-serial-usb dongle. Damn, it has been something like 20 years since I was barely competent on TI basic; and real math too I suppose….
Well, believe it or not, many professors won’t let you bring anything more sophisticated than a four-function calculator in to an exam(okay, maybe square root), since anything smarter than that can be use for all manner of cheats. So the REAL challenge is to build something that looks like a crappy four-function, but can do everything else. Kind of hard to stealth the graphic display, but nobody said this would be easy.
I prefer the recursive descent method when parsing infix expressions.
Works very well for both compilers and interpreters.
https://en.wikipedia.org/wiki/Recursive_descent_parser
Am I the only one to notice the lack of a way to turn off this calculator? That coin cell shouldn’t be very happy to power a chip doing nothing. Also,
> There are a few things still on the to-do list, such as low power
The coin cell shouldn’t be happy at all.
Let me ask around the coin cells here, Ill gather them together and get their take on the emotional state of their usage, Then we shall see if a union should be formed to create fair and balanced loads for coin cells everywhere!.
A lot of MCUs can go into such a low-power mode, that they’re essentially off, the current drain starts to become insignificant compared to a battery’s natural shelf life. So if he puts that in, depending on his chip, it might well be fine.
He covers all of this in his hackaday.io page, https://hackaday.io/project/19909-scientific-calculator. Adding a power switch was his stated reason for the second version of the PCB, and his original choice of ports for the keyboard inputs precluded turning it back on with an interrupt from a key. (Putting an MCU into ultra-low-power mode is easy in software. Getting it to wake back up is another thing.)
I do realize the guy is probably pretty young, but putting “low power” on the todo list speaks volumes about his experience level. Low power isn’t something you “add on”.
Only one thing. If I ever for some alternate universe reason, I want to make a TI calculator knockoff, it will have to be 320×240 or more to make graphing half usable. 480 or more preferred. (I had to teach with those fricking calculators). So, why not up the resolution in this project? You will be glad you did.
Ohhh. How about adding good graphics to what is functionally an HP15C? Hmmm….
I beautiful project or kit would be a new board/LCD or e-ink and use the reasonably tough plastic case and maybe the hacked ROM from a used calc.
I wonder if we could get it to work on solar with a modern processor and maybe a supercap and single AAA in the battery bay.
There is the very capable open source firmware calculator WP34s out there, using the HP 30b hardware:
https://sourceforge.net/projects/wp34s/
http://commerce.hpcalc.org/34s.php
And the successor, WP43s, is already in development, based on hardware of the DM-42 from Swiss Micros:
https://sourceforge.net/projects/wp43s/
http://www.hpmuseum.org/forum/thread-7457.html
Why reinvent the wheel? Why not join the development efforts for these projects?
The firmware for the HP48s is available free. Run a Saturn emulator and there you are.
I don’t get it. If you have a cell phone, you have a graphing calculator. I GET the idea of making a physical one for the educational component, but claiming you don’t have money would also mean you don’t even have a cell phone. That’s a little hard to believe.
This is crazy but but if you have a cheap android phone, You won’t believe this, Graphing Calculator APPS, APPs of a Graphing Calculator this is crazy.
Try using a smartphone as a calculator and then compare that to using an actual calculator. Soft buttons just don’t feel the same. That said, any remotely modern smartphone would graph way faster than any graphing calculator I have seen, but I rarely actually use the graphing feature.
Maybe the correct answer is to make a phone case that adds the hard buttons, a second battery, and maybe even a few other features like an IR thermometer.
I was wondering why not a RPI-0 with a display, Li-Po, and a button matrix then just have it run wolfram or a graphing calc emulator on startup. Not convinced the project is about the money saving.
Bottom line–quite a few here don’t like the contrived premise. Just say you wanted to build it. Why? Just because. Hackers, or people with hacker mentalities, can get with that sentiment every time.
#JustBecause
“Couldn’t afford” is very often with a tongue firmly in cheek around here. Which is a little bit of shame, really, because ghetto hacks are THE hacks. Admit it Hackaday visitor, being here, it is quite probable that when you were growing up your favourite fiction heroes were those kids who turned trash into cool tech, those teenage vigilante gangs’ resident nerds. Hacking is supposed to bring back power to powerless through applied knowledge, intelligence, and dare.
Ok, I admit it.
Congrats on the build – I never got past the design stage.
I was looking at a display that goes between a PC and a keyboard, along with pass-through USB connectors.
The idea being: a particular keypress would “activate” calculator mode.
No need for batteries, but keycap labels would be helpful.