The Dreambox will eventually sit by the side of my bed lulling me to sleep with gentle music (via headphones). But it seemed a shame that it couldn’t do more. So then I started thinking, why not also make it a reading light?
The problem with that is getting enough light out of the damn thing. Having removed the original tuning dial, there is a small, round window. But most of that is going to be filled with a small TFT LCD screen to display information. I’ve mounted that screen in clear acrylic so there’s a little space around it to place LEDs. But not much.
My experience with ‘bright white’ LEDs is that they don’t give as much light output as you might think. And so I temporarily abandoned the reading light idea.
Then I got to thinking about the speaker. This radio has one large speaker mounted behind a grille. And that grille does make it look nicely retro. But because I plan to listen to the music over headphones (and have already mounted an audio jack + USB extension on the front panel to this end) there’s no way in my current plans that I can actually use that speaker. It’s just deadweight.
And without that speaker – well, do we really need that grille?
And so out it came. The speaker was mounted to a fairly tatty piece of hardboard which in turn was screwed to the inside of the box. The grille material was glued to the front side of this hardboard. Without this concoction in place, there’s a lot more space for light to come out of the box.
The next question is: what lights?
I’ve created a circuit board for the Teensy 3.2 (below).
If we start at the Teensy itself and go left, at the top you can see a row of 5 header pins and a ribbon cable. The pins are there just in case I need to experiment. The cable will go to the Raspberry Pi to handle serial comms.
To the left of that is a two-pin header with a potentiometer. This is for the backlight on a momentary switch that will be used to start the music. Underneath the board, one header is connected to a GPIO pin on the Teensy, so the backlight can be controlled programmatically.
Bottom-left of the Teensy is a row of nine header pins that drive the TFT LCD screen. One of these (the LED one) is driven via a transistor (just below the Teensy) controlled by a GPIO pin so I can switch the backlight of the display on or off programmatically.
Further to the left is a row of six headers (four with cables attached) that allow me to connect three switches. Two of these are the momentary switches built into two encoders mounted to the front panel of the box. The other switch is the one I’ve already mentioned – used to start the music.
[As an aside, I mounted the encoders (below) to a small bit of stripboard. But I had trouble screwing this inside the box. The MDF from which the box is made just chewed up without the screws getting a grip. So, in the end, the board is held in place with a small metal bracket plus precisely 1.391 metric shittonnes of hot glue. If the encoders ever go wrong I’m screwed because that board ain’t ever coming out.]
Finally, the small breakout board on the left is the Adafruit TLC59711 12-channel PWM LED driver. I’ve used this before on the HMV1960 project to drive four RGB LEDs, creating swirling colour effects by randomly fading the LEDs up and down while changing colour. I’m planning to do the same here.
There’s not a lot of space on the board for anything to control more LEDs, so I might need another board for that. Here’s my current thinking:
- An MCP23017 port expander chip would allow me to control 16 LEDs via the I2C bus. That means all LEDs would be individually controllable. I still don’t think that will be enough light, though.
- I have a roll of surface-mount LEDs on a self-adhesive strip. I could mount these on a board which would also hold the 16 LEDs mentioned above. That would allow for multiple light levels – including a ‘night light’ effect, should I become concerned about monsters.
The strip-LED approach is attractive, but it adds a complication. Those LEDs would need a 12V supply. So now I’m thinking that I’ll use a 12V power source, use a regulator to create a 5V source for the RPi and Teensy board, and use a Mosfet N-channel transistor to switch the strip-LEDs on and off.
I also need to think about what to do with this nice, if big, speaker that’s going spare.
To be continued…