Ever have one of those days when you debug long lists of code, and finally fix a few troubling bugs, only to create a completely new set of bugs?
What's worse, I had some working code, but it used the String object heavily, so in an effort to make it more efficient and reliable, I solved that, but now I have a completely new set of bugs to clean out.
Yes, yesterday while trying to get a timer to work >_< Its so annoying when you sit down for 5 minutes work and it turns into an hour. One of the best tips i got here was to carefully choose descriptive variable names. It definately helps... because when i forget and see that i've labled something "x" i have to read through have my code to figure out what that meant ... so i guess im learning
Well, for the last three days I've been trying to figure out a way to store variables to the due that won't be lost after reset.. No eeprom, so I tried writing to flash.. Couldn't get they working, so spent the next two days brainstorming ways to do it via through F-ram, or since I had an esp8266 attached to it store the variable in the cloud then download them and transfer over i2c, then I had an idea of using the display I'm using's font IC to store the data...
Then I realized I had a perfectly good sd card attached :-/
Qdeathstar:
Then I realized I had a perfectly good sd card attached :-/
I was out walking a few days ago and I had purposefully brought my camera with me in my rucksack. About 3/4 way through my walk - when I was back on familiar ground - saw a fox in the field on the other side of the canal. He had nearly disappeared before I remembered I had my camera.
I have been working on one project for two years now... Once you gain new knowledge then you use ther knowledge to improve your project...
For example in working on LED lights..
Original idea push buttons + character display + hardwire to al the different strips
Then
Push buttons + character display + 433mhz wireless
Today
Full color touchscreen + wifi wireless + remote dimming + weather + two way communication for feedback (make sure what it says on the screen is what's happening at the strips)
But then, I had originally used c3300 wifi module and ra8875 module instead of an esp8266 and coldtears display.... The ra8875 is trash and so is the c3300.... Could never get them to work reliably... Money spent, time wasted, lessons learned.
It's getting close
But, I did have to scrap some code and suffer a hard-drive failure plus spend more money that I should admit on this project.
Don't let anyone fool you, electronics is an expensive hobby.
travis_farmer:
I suppose if I start over, I can simplify the code some. maybe reduce the number of modules. still seems like a waste. like killing off an old friend, and building a new one. I still have to use most of the hardware I soldered up though, so I don't waste any money.
~Travis
It's not a waste...It's a prototype.
Don't be too precious about the cost of the learning curve, otherwise you will never get over it.
I often write a ream of code I have no chance of maintaining, in order to quickly familiarise myself with a new network protocol, algorithm or sensor. I won't hesitate to 'cannibalise' what I have already written, to produce code which is more manageable and reusable.
BTW. Compared to my Summer hobbies electronics is cheap as chips.
Electronics is expensive, but it is so rewarding to be able to make something from a bunch of parts, and have it work. if it doesn't work, and you spend time debugging and improving, then it is even more rewarding if at that point, it works
That is why I stay with it. Despite all the head aches. The simple Knowledge that I made it. There is no greater pride then to point to something and say I did that.
travis_farmer:
I consider a prototype to be on a breadboard. once I solder it to a bored, I figure it is 'safe' hardware. besides, there is nothing wrong with the hardware.
But on the other hand, I do have a few soldered boards that have become 'obsolete', in that the hardware was either wrong, or contained components no longer needed.
A prototype can be anything which is not the finished product. Hardware or software. Usually something you build to learn from the process. But think of it more as an attitude. I am never disappointed when things don't work quite as I planned, because I can improve the next iteration.
I try my best to make my hardware as modular as possible, so that if it doesn't work for this project, maybe it will work for the next project.
My de-solder pump is used almost as much as my soldering iron.
as far as the "cost of the learning curve", I really don't make as much money as some,
Electronics can be a hobby that pays for itself. You can build certain things instead of buying, you can fix things without replacing or paying someone else to jam a meter here and there and replace a component, it can even make money if you do work for other people.
Knowledge is money and knowledge is free so there's free money out there.