I am currently working on a small project, and I am working on getting it functional, but I question when exactly should I make commits. I usually just do it when I am done with working on it, but I know in practical projects often times commits are for one specific thing but given the project does not even work yet what exactly do I do.
Hardware can fail randomly at any time. I would commit and push to a private repo as frequently as you can. You can always squash the commits later when it’s complete. Definitely worth committing whenever you complete a feature, or before you remove any code (change of design, you may change your mind and want the code again).