Smart Internet Radio Based on the Intel Edison!
by NikilH in Circuits > Gadgets
2748 Views, 30 Favorites, 0 Comments
Smart Internet Radio Based on the Intel Edison!
Annoyed with Battery Draining and Buggy Internet Radio apps, my music lust made me search for an alternative, finally decided to make one that looks futuristic with sophisticated design and fits on my side desk as a light lamp or mood lamp with Aux to play from devices at times.
Material Required
Hardware Requirement
Intel Edison with Arduino Breakout Board
USB Sound Card
Speakers, I use an Used USB Powered 6W RMS Speaker here, You can use anything you want.
Grove Base Shield
Grove I2C 16x2 RGB LCD
Grove Encoder 2Nos
Arduino Nano
5 Pin Stereo Socket
WS2812B Addressable LED Strips
AC IN Dual out 12VDC/1A and 5VDC/1A Power Supply from ebay
Power Chord and Socket
Screw Terminals
Wires
Basic Tools
- Soldering Iron
- Glue Gun
- Screw Driver
- Nipper
- Wire Stripper
- Heat Shrink Tube
- Calipers
- Paper and Pencil
Software Requirement
Putty
Arduino IDE
Adobe Illustrator or any Vector Software
Fusion 360
Internet Download Manager
Web Browser
and obviously
Time, Patience and Friends...
Planning and Design
Why Intel Edison?
Simple, We got around 5 Edisons and breakout boards with us Since Intel has discontinued the Edison I thought its just perfect to put inside a box and close it forever.
Why the Arduino Nano?
The Intel Edison is a powerful one, one of my favorite but its GPIO's aren't fast enough to drive the Addressable LED used in this Instructable. So we are using the Arduino Nano.
Where to Start?
Making something from the scratch is a hard task, so what to do? Think, Imagine, Take Inspirations and Talk about it with people and have patience Ideas don't popup just like that. Once you got an Idea make use of the pencil and paper, Sketch it! (I was doing about 5 pages of ugly sketches before finalizing with this design)
Once done with the sketch, put your caliper to use measure for clearance and cutouts for things and finalize your dimension, leave no room for assumptions make things precise it saves a lot of time,money and material.
Designing the box
Designing a Box is little pain, but the Laser Cutting Class taught a easy way to do it.
Visit Makercase.com enter the dimension and type of the edge joints, I'm using Finger type and download the plans as vector files.
Open up the file in Illustrator and Do the required,like making cutouts and designs to be cut over the Acrylic sheet.
Thankfully I have a professional Vector Artist friend who helped with the design.
Although the Easiest way would be making a box and sticking a black sticker for the desired effect but I wanted to Give a much more detailing, the base will be a 3mm Black Sheet and the Circuit tracks will be from a 4mm Transparent Sheet which will add a little depth.
Before Sending for a Laser Cutting take a real size print out and check if all the things fit in.
Just to visualize what your box might look like use the Fusion 360 to Import your file, Extrude and Join the Pieces so you know how its gonna look like also you can check it the design is perfect. I've also done three rings in the transparent file attached, the reason for the small ring is to support the stereo socket and the larger ones gives space for the speaker to vibrate and also illuminate them ;)
Wiring
Solder the Screw Terminals to the Power Supply Board. This makes easy when there is a need to disassemble.
Solder some wire to the AC Input Terminal
Cut the Speakers Wire,the USB Power and the Stereo Jack, Leave some wire, say a feet with the Jack we gonna use them the jack goes into the USB Sound Card and the other end goes to the Stereo Socket and from there to the amplifier board of the speakers. If an external Jack is plugged in, the Input from the USB receiver will be disconnected. I'm using a transparent 3.5mm socket so it was easier to identify the terminals.
Solder the LED Strip and Encoder to Arduino. Applied some hot glue for stability for both Arduino and the Amplifier board wires.
Have also attached the overall wiring with description. Let me know if any clarity is needed.
Coding
Before Starting with the code we need to decide what our Radio would function like, all I need is a Clock with a Weather stats and some 20 Radio stations with some fancy lighting works and AUX(The Aux Option doesn't need a code).
Coding the Edison
Open up your putty and SSH into your Edison.
run the following
opkg update
opkg install mraa upm
*This installs mraa and upm libraries we need them to run rgb lcd from python.
Plug in your USB sound card and check if its detected using lsusb command,
Create a file under the /etc directory and add the following line in the file
vi /etc/asound.conf, add the following
pcm.!default sysdefault:Device
save and exit.
For streaming the music we need mpg123 which doesn't available on Yocto's default repo, so we need to AlexT's Edison Repo, please follow the steps in attached pics.
Next we need the Weather updates, I'm using pyowm, a python wrap around for Open Weather Map.
You need API key which you can get for free signup here.
Copy your generated API key and replace it in the watch.py.
Copy the watch.py to /home/root.
Next will be the Arduino Code for the Edison, just upload the Cipher.ino to the Edison (this script looks for Encoder Interrupt and passes shell commands to the Linux part of the Edison)
If you need to add your favourite channels, Install IDM or Internet download Manager, and go the webpage where you listen, I'm using TuneIn here and play the Station you need, an IDM button will appear asking to download the Audio click it.
On the Download File Dialog box the URL: shows the Streaming address.
Next we need to automate this to run on Startup, we gonna create a shell script for it.
cd /etc/init.d
vi startup.sh
#!/bin/sh /sketch/sketch.elf /dev/pts/0&
*save and exit
root@edison:/etc/init.d# chmod +x startup.sh
root@edison:/etc/init.d# update-rc.d startup.sh defaults
Coding the Arduino
Just upload the Nano__Light.ino to the Arduino Nano, you might need Grove LCD Library and FastLED library.
Modify the code to your favorite colors or you can even add custom effects.
Assembly
The Laser cut parts have arrived, check if all pieces are there and see if it fits perfectly and look for flaws.
Now its time for puzzle solving its gonna take a while so hold your patience, after three hours of putting the pieces we had our complete sides of the casing, now time to install the hardware inside, I started with the Speakers and Stereo socket.
Follow the photos they are much better than words explaining. I just placed all the Electronics one after the other.
Finally close the box from top
We also made a 3D printed know for the Encoder but friend suggested, the raw look is fine, the silver color matches with the speakers so I left it flat.
Tune Up the Radio
Time to off, check out the pictures to see what it looks like, Actually its more detailed and resplendent just my camera couldn't capture, those beautiful shadows it casts around my room and those dull light underneath is amazing, what else the music is amazing those speakers have nice frequency response and deep bass, Love listening to A.R.Rahman in it, what else fits perfectly on my side table, book shelf, even tried the aux with my Xbox. Its cool guys, if you want go ahead and add features like voice control, Bluetooth.... I already made one for Bluetooth Singing cloud so I didn't add it into this box.