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


  1. BulletA screen for choosing songs.

  2. BulletHardware to actually play the songs.

  3. BulletSome sort of mass storage to hold the music.

  4. BulletAn amplifier to drive the speakers.

  5. BulletSpeakers. Well..

  6. BulletEarbuds for now.

  7. BulletA processor to run everything.

  8. BulletA 3D designed and printed case.

  9. BulletFigure out how control SD card.

  10. BulletWrite code for the .mp3 player.

  11. BulletPatch the .mp3 library to start faster.

  12. BulletTry to get some more sleep.

  13. BulletSPI bus that functions correctly.

  14. BulletProcessor mount?

  15. BulletComplete SPI rewrite.

  16. BulletComplete redesign of the Development system.

  17. Bullet3D print finish quality issues.

  18. BulletNeed simple case to demo. problem.

  19. BulletWrite 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!


<< Crossing ‘T’s     GUI time! >>

 

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.