>

Flipper Zero Calculator App


Github Project

What is a “Flipper Zero?"

Inspiration


I know I learn best by jumping into the deep end first. Yea I could learn C by first dabbling into it on the normal x86 architecture, and I probably could have played arround with my raspberry pi a little too for embedded systems. But why not do it all at once: code an application in C on a embedded device that has buggy undocumented firmware. This is kind of like trying to lift a 100 pound dumbell instead of building up to 100 pounds. But again, this forces you to swim, and this strategy is usually what works for me.

Troubles

memory

The nice thing about comming off rust was that I was already somewhat thinking about whats going on with the memory. Though unlike rust, C lets you make mistakes; so as you could probably guess the amount of issues I had with a project like this.


debugging

Conventional methods of debugging were to impractical to use on this embedded device. Even the classic “just put print statements everywhere” was unbelievably annoying on this platform. Minicom is helpful though.



Conclusion

Notes

 Even though C is not an “object oriented” programming language, I found myself basically making my application “object oriented.” And this got me thinking, how do functional programming languages get anything done? I know very little about functional programming but this makes me interested in learning a new way of programming. Maybe I will try Haskell .

Ideally, I would want to do this in rust, though embedded rust is not there yet unfortunetly. Update: rust on flipper zero has been “figured out”/formalized a little better.

Zane F. Salti

Find me here


2023-06-03