I started this project in February of 2016, but it hasn't been a continuous work, here is a summary:
The first problem I
encountered making the calculator was obviously the parsing. Being
unable to come up with a solution, a quick Google search led me to
something called Reverse Polish Notation and a sweet algorithm invented
by Edsger Dijkstra
called shunting-yard algorithm. Explaining all of this in detail is
beyond the scope of this text, but to understand it, RPN gets rid of
every parenthesis and makes it easy to make the calculation (with the
shunting-yard algorithm). More about that here: Shunting-yard algorithm and RPN.
above, combined with the keypad, were the 'funny' thing to program. The
rest was a bit tedious. I also have to say that originally this was an
Arduino project, but I didn't quite liked the result, it needed a 9V
battery, wasn't low power at all and was bigger than my hand. And also
didn't have much precision (32-bit float).
That's why I decided to move to mbed, specifically to the Freescale's
Freedom KL25Z development board. So I ported the code I had and made a
working prototype. Everything went fine but when I tried to get the
voltage doubler of the st7920 LCD driver to work I couldn't (that meant I
couldn't get the needed voltage for contrast out of a 3V coin cell).
That was in July of last year and I gave up. The project had remained in
a shoe box for six months until I decided to bring it to an end.
bought a new LCD and designed the PCB using KiCAD. I got the PCBs
manufactured by Elecrow. It was the first time I ordered any PCB but I
can say they are very good quality. The bad part was the delivery time (about 25 days).
Although I don't own a soldering station I managed to solder the microcontroller with a cheap soldering iron and a thin tip pin by pin (with the help of a magnifier, of course). SMD was something I had a lot of respect before that day. I finally understand those who say it is even easier than through hole (I mean it's not easier but also you don't need that much experience).
I may have skipped some important steps but that's it. This is a big summary of my year-long (and not yet finished) journey.