Categories
Linux

Building a FM Radio Transmitter with Raspberry Pi

DISCLAIMER: Building FM transmitters and transmitting on FM frequency requires government permissions in many countries/regions. I am posting this for educational purposes and I strongly recommend not to use this for any other purposes. I shall not be liable for any use of the contents of this post.


I have owned a Raspberry Pi for a while now but haven’t really done anything significant with it other than installing a LAMP server and running some random Python codes on it. Today, while reading Rasp Pi related articles on the internet, I came across a reddit thread where a guy posted about his home made raspberry pi based FM transmitter which he used to relay random messages from inside his car to the surprise of other people on the street. I’m sure he had so much fun doing that though that was illegal! 😀

It was such an inspiration for me, specially because I needed no extra hardware! The Pi hardware itself is capable of transmitting in really short range (~10cm). I started googling on how I can do the same and soon I found enough resources. In fact I found the source code and a precompiled binary to do this. I couldn’t wait to test! I plugged in my Pi and transferred the source code to the device and turned the radio on with the provided sample clip. Then browsed for the default station on my android phone. Voila, it was working!

It is really really simple!

# Grab the application package – Download.

# Turn on and SSH into your Raspberry Pi. Unzip the package and transfer the directory to the Pi.

# cd into the directory and run:

Please note that you need root access for the transmitter to work. So make sure you used “sudo”. You can replace the sound.wav with any file that is 16 bit 44.1kHz Mono format.

By default the transmitter will transmit on FM 103.3 MHz frequency. You can pass the frequency as an additional parameter to the application. Eg.

The transmitter range can be extended up to ~100m by connecting wires to the GPIO pins. I’m going to try that tomorrow and see how it goes.

The application package also contains a python module that provides an API to programmatically run sounds.

So what’s next? I’m going to look for a decent sound conversion tool to convert my mp3s into mono wav. And I might write a small program to rotate the tracks on it.

Categories
Linux MySQL

Import SQL Script to MySQL using the Command Line

Summary: We have acquired a large databse dump which we need to import into our local system. Since the database size is large, phpmyadmin can’t help. MySQL command line tool comes to our rescue 🙂


Change directory to where our SQL script is:

First login to mysql:

Change database to our target database:

Execute the SQL Script:

Categories
Linux

Configuring Amazon EC2 Instance with Ubuntu: Enabling remote root access

The other day, I was setting up an amazon EC2 instance for Leevio. It is a rare experience since we do not setup a new instance everyday! 😀 So, I am gonna share what I did to do what.

First, Hasin vai gave me a secret email address and a password which I used to login to the Amazon backend. There are quite a number of tabs for different services. I chose the EC2 tab. There was no instance created, so I went ahead and created a new instance. While creating it I was driven through a simple configuration wizard. It asked me to select the instance type, create some tags for the instance and choose a operating system image and finally I created network access permission. I chose Ubuntu 11.10 (the then latest one). The permission set dictates which IPs shall get access to which ports. I opened up port 80 for http connection and port 22 for SSH and SFTP. There are preset settings to open all TCP ports, UDP ports and All ports etc. You can choose the access level manually or pick one of this presets. I did manually since I wanted to learn how it worked.

Then I saved the ssh keys and secured them in a secret place on my HDD 😀 I also noted the public DNS of the instance. I typed in the following command to login to the ubuntu machine running on the instance:

The first problem I got is the “too open permission” for the key file. In fact if your key file has such a permission that other users on the same machine can access it, you can not use the key. Keys are meant to be private and make them private by issuing the following command:

Now I issued the previous command and I got in! Yay! 😀

My default username is “ubuntu”. To configure stuff, I need to be “root”. So I hit:

By default the root username doesn’t have a password. When prompted for a password, just press enter. I logged in as root. But wait, I am using a Linux machine and the root user has no password? I can’t stand that! So I decided to change the password of root account first. The process is simple:

I was asked twice the password and upon confirmation, the root account now had a super secret password which is known to only me in the whole universe 😀

The second issue we still have is that root user still can’t login via ssh. To do so, we have to enable PasswordAuthentication on the server. With my mighty root power, I installed vim on the fly and edited the heart of ssh daemon:

I navigated to the “PasswordAuthentication” section and changed it’s value from “no” to “yes”. Then I reloaded the daemon by typing:

Then I typed in these commands to exit the root shell and logout from the remote shell:

I then assigned an IP address to the instance from the IP management section and reloaded the instance. Now I can login to the server from my laptop using the command:

PS: Using the key pair to login is a more secured and recommended way of doing the stuff. But it’s easier to do stuff using remote root login.