Embedded Projects Blog

Make Your own Raspberry Pi Gameboy Replica

This “Gamegirl” 3D printed Gameboy replica by Adafruit features some seriously upgraded hardware to mark the original’s 25th anniversary. The Raspberry Pi processor allows it to run Gameboy, or even MAME ROMs, and the color touchscreen allows for much better graphics than the original’s grayscale display. Adding to these significant upgrades, the built-in rechargeable battery is a welcome addition. Those that had these devices likely remember buying battery after battery to keep playing Tetris or SolarStriker.
The case is 3D printed, and aside from the varied colors, it could be mistaken for an original Gameboy; at least it appears that way from the video. Aside from the printed parts, the gamepad buttons are recycled from a Super Nintendo controller, so there is some disassembly and cutting involved. Quite a few more components are also needed from Adafruit, but the instructions seem to lay everything out nicely.
If “merely” playing ROMs isn’t good enough for you, this very hackable set of hardware could function as a platform for many other unique programming projects. It will be interesting to see if any interesting modications come out of this build. I’d personally like to see the other two top SNES buttons used for a more versatile control scheme. On the other hand, that would lower the “replica factor,” so maybe that’s missing the point!

Originally posted at http://makezine.com/ 

PIE1 – Raspberry Pi Sends Live Images from Near Space

HAB (High Altitude Ballooning) is a growing hobby where enthusiasts use standard weather balloons to put small payloads typically 100g-1kg into “near space” at altitudes of around 30km or so, carrying a tracking device (so the balloon position is known throughout the flight) and usually some sensors (temperature, pressure etc) and often a video or stills camera storing to an SD card for later retrieval. The job of the tracker is to read the location from the GPS receiver, possibly also read some sensors, and then format and send a telemetry sentence to the ground over a low power radio link. Flights only happen once the predicted path is known to be safe (avoiding airports and densely populated areas for example) and permission has been gained from (in the UK) the CAA. Here the tracking system uses the 70cm radio band (around 434MHz) using RTTY to send the telemetry down to a number of ground stations run by other enthusiasts. Telemetry from all receivers is sent to a central server that then drives a live map which can be viewed by anyone with an internet connection. The system works extremely well and has been used to track payloads at distances of 800km and more even though the transmitter is limited by UK law to 10mW ERP.

PIE1 – Raspberry Pi Sends Live Images from Near Space

In early May I received my first Raspberry Pi computer, and having flown several high altitude balloons before I thought about using one as a flight computer. In almost all of my previous flights I used Arduino Mini Pro boards, and these are ideal – tiny, weigh almost nothing, simple and need very little power. I looked at the Pi and saw none of these desirable features! What I did see though was a USB port offering quick, easy and inexpensive access to a webcam, meaning that for the first time I could have live images (SSDV) sent down by my payload – something that hasn’t been done very often.
“Near Space” is a fairly hostile environment – less than 1% atmosphere, temperatures down to -50C or so – and if anything goes wrong it’s likely to stay wrong. The radio link is one-way so there’s no chance of remotely doing a “sudo reboot” let alone powering off then on again! Descent can be violent, as can the landing, so even things like SD card sockets can represent a potential failure mode. The Pi is a step up in complexity from the usual boards we use, that have no SD cards, or USB, or even an operating system, so the extra power and capability does come at a price, and the first one is an increase in the power requirement from around 60mA to over 500mA, and that of course means much higher power dissipation. People often worry about the low temperatures in near space, but when your payload is generating a few watts of power that is not likely to be a problem! I was much more concerned with how hot it was going to get inside the payload, so I added some heatsinks to the Pi:

Read More

PiPhone: A DIY Raspberry Pi Cellphone

Dave Hunt‘s been at it again. Here’s his latest: a home-made smartphone based around a Raspberry Pi. It’s smaller than many of the phones I’ve owned, and it’s cheaper than the phone that’s currently in my pocket, with a parts list coming in at only $158. The PiPhone is built entirely from off-the-shelf kit, so there’s no soldering required, and no fiddly electronics work. I’ll let Dave introduce it to you.

PiPhone: A DIY Raspberry Pi Cellphone

My Fish Just Sent Me A Text Message

The Internet of Things makes it easy for us to monitor our homes. Today I’m taking that concept one step further—getting our homes to report back to us. 
In early March, I wrote about using Raspberry Pi to quantify my fish tank—in short, I taught the $35 single-board computer to monitor the temperature of my home aquarium no matter where I was in the apartment. Of course, the limitations of this project were clear: I could only keep tabs on the tank while on my home network. What if I want my fish to text me when it needs my assistance? 

The problem, until now, was that getting the Raspberry Pi to initiate communication was hard. I experimented with a Node.jsreceiving application, and contemplated buying a server from which to run it (since my Bluehost server space doesn’t support a Node installation). The other way to get the Raspberry Pi to talk to me was to teach it to text my phone. There are also many ways to achieve SMS support in Python, Pi’s primary language, but they all either involve money or writing programs that are way over my head. 
However, I wouldn’t be writing this article if I didn’t eventually find a way to do it. The answer turned out to be Twilio, a developer-friendly set of tools for creating SMS, voice, and VoIP applications. Twilio charges pennies for calls and text messages to any phone, but it's free to develop programs that text your own phone. That second part might not sound useful at first, but it’s exactly what I needed to complete my fish tank project.
I met with Matthew Makai, Twilio’s DC-based developer evangelist, and he helped me solve the problem. It only took nine lines of code. 
If you’ve already finished the first tutorial, here’s all you need to do. 

Sign Up For Twilio

Don’t worry, it’s free. Signing up for Twilio will give you a phone number to assign to the Raspberry Pi and credentials for using the Twilio API.  
Your phone number will probably begin with the area code of wherever you sign up. 

Read More

My Smart Home Project


Smart home technology has proved to contribute to increased independence and safety. Smart Home Technology is a collective term for information and communication technology in homes, where the components are communicating through a local network. The technology may be used for monitoring, alarming and executing actions, according to the programmed criteria. These project includes a high level security system informs the authorized person and to the police station by a dedicated software using internet. The heart of the project is a Web Server running on an ARM Cortex M4 microcontroller. There are various sensors, devices connected to this device for security system, control and monitoring. Dedicated softwares are there for user (.Net and Android) and police station (.Net). The user software can control the devices in home, view various sensor readings, status of security system, change configuration etc. The application used in the police station use maps of local area to provide the intruder alert. The software used in police station will be communicating with this home server and if an intruder is detected, it will be shown in the software as a location in map and a notification message which makes their duty easily. Same time the house owner will be informed by the user software. The software communicates to the Smart Home Device using UDP protocol. The user software is compatible for future developments like camera interfaces. 


  Demo Videos







More Details


STM32F4 Discovery Tutorial 1 Using NETMF - Setting Up the Environment


STM32F4 Discovery

I received my STM32F4 Discovery board few days ago. During these days I am searching for a good compiler for the STM32 which is free or provide a better code sized free version. I am already working in .Net environment using C#, and I it is pretty good. In Google search I saw STM32F4 programming using  .Net, the below link.

We are using a .net port for STM32F4, it is .Net micro framework. 
I am using Visual Studio Ultimate 2010 (Compatibility of others is not known).
I hope you have an STM32F4 Discovery Board.
Necessary Tools
1.      STM32 ST-LINK Utility            Get It ->
2.      USB Micro and USB Mini cable.
3.      .NET MicroFramework SDK  Get It ->  
4.      Download these files (Evaluation purpose only driver)
                                                              i.      If you are not a member, join
Install all the softwares.
Step 1
            Connect Board to PC using Micro USB
The board will get power and power LED & COM LED will be on, if your board is fresh the demo program will run blinking LEDs.
The computer will look for drivers, ( I installed the drivers included in some software already, so i didn’t seen it)
Install STM32 ST-LINK Utility   you downloaded. The driver will be automatically installed.
Step 2
You need to Erase the program and Configs in the controller.
For these, open the STLink Utility from where you installed it.
            Let’s first erase chip.
From Target select Erase chip ------Target > Erase Chip click Select ALL apply
After doing these you need to erase sector
For these select erase sector from target
Target >Erase sector

After these you have to load bootloader to the Discovery board.
In the stm32f4 Files.zip you will see some files: Open Tinybooter.hex in the STLink Utility
From Targets >Program
After it’s done,
Reset the board.

Step 3

After you have reset your board now plug-in the USB Micro USB and connect to PC(the other USB). Most of the smart phone cables should be Micro USB.  Once you connected the Micro USB, windows will start searching for driver and will fail. Now we got to install the driver we downloaded from the zip file. “STM32_WinUSB_drivers_(for_evaluation_purposes_only)  Folder. From device manager find the USB device then (May be its name is STM32F4 Test or unrecognized)
Double click on it, from DRIVER  tab  click update diver and browse it to the folder mentioned above and update it.

 Doing this you can see a device as shown in pic. Control Panel> Devices and printers

STM32F4 Discovery Programming

Step 4

Find the application Named MFDeploy.exe
Launch MFDeploy.exe (you should be able to find it in C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.2\Tools\MFDeploy.exe) which you should have got when you installed the SDK. To make sure MFDeploy can see the board do as shown below.

If you see the Ping the everything is good till this point. Now download the other 2 .hex ER_Config.hex and ER_Flash.hex files extracted from stm32f4 Files.zip file to the board using the MFDeploy as shown below one by one.   (the Combo-box, you need to change it to USB, the STM Discovey board will be shown in right of it.)

Reset the board.

Step 5
Open Visual C# Express/ Visual Studio  Select the project type as given below

Now we need to change the properties, so that the Visual Express/Studio will deploy to the hardware. So change the project properties as shown below



Add Reference  Right Click On MFTest in Solution Explorer>Add Reference> Select the following sown in the figure>OK



using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;

namespace MFtest
public class Program
public static void Main()

OutputPort led1 = new OutputPort(Microsoft.SPOT.Hardware.STM32.Pins.GPIO_PIN_D_15, false); //LED Pins of Discovery Board

OutputPort led2 = new OutputPort(Microsoft.SPOT.Hardware.STM32.Pins.GPIO_PIN_D_14, false);
OutputPort led3 = new OutputPort(Microsoft.SPOT.Hardware.STM32.Pins.GPIO_PIN_D_13, false);
OutputPort led4 = new OutputPort(Microsoft.SPOT.Hardware.STM32.Pins.GPIO_PIN_D_12, false);

while (true)


ADD files HardwareProvider.cs and CPU.cs to project (step is same as adding reference right click> select Add existing Item)  from the zip file downloaded including the drivers.

Start debugging your code will be written to your Discovery, you can see the status at the bottom. Reset your board.

You Are Successfully Done!!!!!!!!!

Download Full Project Files

STM32F4 Discovery Board