12/05/2014 at 05:09 •
I have had the idea for some time now and just never got around to actually making this product. Thanks to HaD for pushing me to start this project.
The initial plan is to use the Trinket to drive an OLED screen to display currently playing track meta data. This data will be pushed over Bluetooth from an Android smartphone running an app. The Trinket will also have the capability to send Bluetooth messages to the Android smartphone to control the media player, push workout data (TBD but primarily counters), and request data from the Android Smartphone. The actions to send may be automatic or be driven by user input. I will providing a 6 button interface (Up, Down, Left, Right, 2x <TBD | Start | Select | Mode | BTN1 | BTN2>) that will be hardware debounced.
This will be an entry for the Trinket contest (Ending Jan 3rd) so I have about a month to complete the first rev of the device. This being said, I don't think I will have time to design a PCB and fab it in this time frame. So the end product for rev0.1 will mostlikely be perfboard and an Altoids Tin.
The device will be powered by a USB battery pack (possibly velcroed to the back of the Altoids Tin).
1) I have never used a Trinket Pro before. I have already uploaded a few sample sketches but I am worried about code store and ram on the 328p. The OLED Library takes up 1K of ram alone. This is one reason I went for the hardware debounce. I would like to add addtional sensors and external memory, but I will have to see what I have room for.
2) No serial debugging on the trinket without providing FTDI. I may attempt to use the Bluetooth serial link for debugging.
3) I've never had to program for an OLED screen. I have used a few in the past, but I have used the supplied libs. I may have to dig into the lib to free up ram usage.
4) I have dove very little Android development in the past and will need to figure out how to interface with the Media Player as well other components on the Android smartphone. This will take some time.
5) Music Player of choice.. Spotify. I will have to see what is available in terms of developer API's or generic system info on Android to get the currently playing track. This is a limiting factor. I would like to support multiple Media Players.. But from what I have been reading online there is no standard way to control media playback in Android.
6) Time. Time. Time. I have very little time to work on projects (Yay for a full time job).
7) The holidays! Very much so related to Challenge 6.
8) I'm sure there are others... oh yes.. sleep is one. Goodnight!
Hardware Prototype: I have a prototype on a breadboard and everything appears to work. I need to write a basic Arduino testing application to verify the components are wired correctly.
Have a picture!