Sunday, June 7, 2015

Initial Concepts

I had the idea for the remote on the back-burner for months. But I didn't really dive in until I saw an ad from Maker Shed for this little gem: The Blend Mirco

It's an arduino-nano-sized micro-controller, with an on-board BLE interface. It also has a micro-USB port for easy programming. "I can work with this," I thought.

I ordered one and it sat on my kitchen table for weeks. Then one weekend I wasn't racing or visiting relatives, and I just decided it was time to start hacking. First, I started by just arranging some components on my desk sorta like tangrams.

I tinkered with this idly for a week or two. Especially while sitting in on conference calls in which I had nothing of value to contribute. Eventually I realized that I wasn't going to be able to get the design right on the first go. Also, there was the question of whether or could I pull off my idea in software. I am a skilled software engineer, but sometimes there are technological limitations that can't be overcome. So, I decided to knock something out so I could get started hacking.

The screen is an Adafruit break-out board for a Nokia 84x48 pixel monochrome graphics LCD. I chose it because:
  • It's cheap ($10)
  • It's a passive LCD that can be seen in direct sunlight.
  • It's small (~1.6 inches diagonal, 1.2 inch by 1.2 inch viewable area).
  • Adafruit wrote a really nice graphics library for it that handles the necessary RAM buffering.
  • I've worked with them before.
  • Only requires 6 pins on the micro.
The encoders also came from Adafruit, because once I'm shopping at one store, I try to get as many things from there as I can in order to save on shipping. The tact switches I had bought a while back and may have come from Spark Fun. They are nice and big (0.5" square), and have a really positive action that can be felt through gloves.

It was easy enough to wire everything up. Adafruit actually has a great little starter guide. I could have figured all this out without it, but I'll take all the help I can get. My background is in software, not hardware.

 I knocked up the input board (seen in the bottom left) on your garden-variety RadioShack proto-board. Initially I thought I was going to put all this into an enclosure in one afternoon, and go for a ride. However, it was all just too damn bulky and the placement of everything was absolutely awkward. Also, I had a lot of coding to get done. The graphics library gives you a decent set of drawing commands, but that's it. You have to handle input and serial communications all on your own.I was anticipating a UI that involved several different screens, in order to get the most out of the tiny display.

I will have to do another post to cover the software end of things. I had to take some time to write a small GUI framework, but once that was done, I had a decent UI after an evening or so of hacking. You can see in this picture (sorry for the orientation) a play/pause indicator, volume indicator, network indicator, and the source / artist / track metatdata. I drew all the icons in binary, in emacs. Oh yeah, I'm having fun now.

No comments:

Post a Comment