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.

The 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.

I 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.

