Finish cleanup.
Finish cleanup.
Jim’s law of projects : No project can be more than 50% complete until its finished.
Make a simple case showing the problem.
Putting everything together..
A screen for choosing songs.
Hardware to actually play the songs.
Some sort of mass storage to hold the music.
An amplifier to drive the speakers.
Speakers. Well..
Earbuds for now.
A processor to run everything.
A 3D designed and printed case.
Figure out how control SD card.
Write code for the .mp3 player.
Patch the .mp3 library to start faster.
Try to get some more sleep.
SPI bus that functions correctly.
Processor mount?
Complete SPI rewrite.
Complete redesign of the Development system.
3D print finish quality issues.
Need simple case to demo. problem.
Write editing GUI for song selection.
During all this readdressing of the sloppiness of my development system, I’d put together a new Teensy with an OLED. The OLED has a built in SD drive so I had all the hardware I needed to show that the SD drive didn’t work with the OLED.
I took the fancy library’s example sketch and put this all together. I was able to get #3. It didn’t work in the most simple case. The SD drive and the OLED would not both run in the same program.
Slight vindication there. At least I didn’t feel like I was crazy anymore.
Now, concurrently with this, 3D modeling, paint finish experiments and what have you, I did a big rewrite of all the SPI code and the libraries I’d written that used it. Everything was brought into one place and standardized. All the “It would be neat if we could do this too.” cases were deleted. Then I made sure the code matched the SPI bus I’d created in the development setup.
In the end I plugged in the original Adafruit OLED library to test my new code rewrite and it seemed to be fine. So, on a whim, I tried it with all the hardware turned on.. And everything worked! I had OLED screen, SD drive & music all running at the same time, happy as can be!
I hate it when this all comes together at 3 AM. Who’s awake I can tell?
So the fancy “Better than theirs” code wouldn’t work with anything but a screen. And the Adafruit code, after being maligned, was the stuff that actually saved the day!
Hardware is running, time to fill out the feature set.
The finished “Development system”. This was an amazing improvement over the old string of hardware. Everything straightened and sorted out inside. Even the code!
Make a simple case for proving problems. This does two to three things for you. First, if it wasn’t really a problem, it saves you the embarrassment of publicly whining about something that was just you not understanding things. Second, if it’s still is a problem, this will go a long way in helping you solve it for yourself. Thirdly, if still you can’t solve it. You can present it to those that are responsible and they can’t worm their way out of it.