So more recently I have started to make use of Cloud based systems, VPN’s, Web Services / Servers etc. One of the things I have wanted to build for a while is a portable Router / WiFi hub that can support a VPN connection.

There has recently been a lot of published warnings about people being exposed while surfing the internet at cafes or other public WiFi hot spots.

The idea of this project is to make use of a Raspberry PI, a second Ethernet Dongle, a Wifi Dongle and a VPN connection. One of the Raspberry Pi’s Ethernet sockets plugs into the public internet while the other (and soon to come WiFi Access Point) acts as its own private network, tunneling all data to the internet via a VPN connection.

Below are some of my notes about how I have build a Raspberry PI, VPN secured Router:

Raspberry Pi VPN Router Config

eth0 (on the PI) connected to the internal network
eth1 (USB to Ethernet) connected to the internet / network
tun0 The VPN Tunnel created when the PI connects to the VPN server
wlan0 (Usb to Wifi) Not Configured

Start with a NEW blank image of Raspberry ArmHF from http://www.raspberrypi.org/downloads

The first thing you should do is run:

sudo apt-get update && sudo apt-get install ca-certificates

which will update and upgrade your PI’s base image and also install certificates information

Once all the updates and installs have taken place we need to reboot the pi:

Sudo shutdown now -r

From here we need to configure all the network interfaces 1st
Then configure the VPN, test the vpn, and then install all the packages to make the Pi into a VPN’ed Router

To configure the network interfaces we need to edit the following file:

/etc/network/interfaces to do this we will use nano:

sudo nano /etc/network/interfaces

To keep things flexible and easy to manage we will want the INTERNET facing ethernet socket to be a DHCP Client, remember this is the USB to Ethernet port (eth1). We want the INTERNAL facing Ethernet socket (On the Pi, eth0) to be static and issue out IP addresses to connected computers. When the VPN connection goes live we will link the Eth0 to Tun0 so that all data traffic from Eth0 goes via the VPN connection.

Inside /etc/network/interfaces we need to add the following (removing the old data):


# interfaces(5) file used by ifup(8) and ifdown(8)

auto lo
iface lo inet loopback

#Onboard NIC connecting to the Internal Network
auto eth0
iface eth0 inet static
address 192.168.50.1
netmask 255.255.255.0
network 192.168.50.0
broadcast 192.168.50.255
gateway 192.168.50.1
#USB NIC serving as internet gateway
auto eth1
iface eth1 inet dhcp

Save the file and close the editor, as it stands now, your file has been saved but not loaded. You can load the file by either rebooting the PI or rebooting networking interfaces:

sudo /etc/init.d/networking restart

You can either do this now or in my case, wait and install all packages needed and then give the system a reboot to load everything in one go.
From here we need to install the following tools:

bind9 isc-dhcp-server perl libnet-ssleay-perl openssl openvpn libauthen-pam-perl libpam-runtime libio-pty-perl libdigest-md5-perl apt-show-versions libapt-pkg-perl this is done by:

sudo apt-get install bind9 isc-dhcp-server perl libnet-ssleay-perl openssl openvpn libauthen-pam-perl libpam-runtime libio-pty-perl libdigest-md5-perl apt-show-versions libapt-pkg-perl

Installing the VPN Tunnel:
With OpenVPN installed we can load our provided .OVPN file. This will have been generated (or provided from your VPN provider) by your server and needs to be loaded into:

/etc/openvpn/

In my case, i have the file loaded on an internal webserver so I just issue the commands:

cd /etc/openvpn/

sudo wget http://server.local/files/PI_VPN.ovpn

This downloads the .ovpn file to the directory, now we need to edit the file’s name so that OpenVPN picks it up on the next reload.

sudo mv PI_VPN.ovpn openvpn.conf

Now you need to reboot the VPN Server to pick up the new settings:

sudo /etc/init.d/openvpn restart

Installing the Router section:
Now we need to edit the DHCP server config details so that when users connect to the PI it will issue a DHCP address and resolve DNS Queries.

sudo nano /etc/dhcp/dhcpd.conf

As we want this DHCP server to have command of the IP network we need to make it authoritative, so you need to find and remove the # uncommenting out the following line:

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

Now we need to add a new subnet to the network:

subnet 192.168.50.0 netmask 255.255.255.0 {
range 192.168.50.10 192.168.50.250;
option broadcast-address 192.168.50.255;
option routers 192.168.50.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name “local”;
option domain-name-servers 8.8.8.8, 8.8.4.4;
}

This sets the reference IP range from 192.168.50.10 to 192.168.50.250 – more than enough for a small local network.
The networks domain is called ‘local’ you can also change this to anything you want ie home

Ive also appended the DNS Settings for Google’s Domain servers to this note, this means any DNS lookups perfomed by the PI will resolve against Google and not your ISP. If your using a custom DNS Server this is the place to change the information to reflect this.

Now Save the file and exit.

You can reboot the DHCP Service by typing in:

sudo /etc/init.d/isc-dhcp-server restart

You should recieve two OK messages.

If you have more than one device connected to your (new) internal network you should be able to ping them by typing in:

Ping 192.168.50. 55 (assuming your ping’ing device has an IP of 192.168.50.55) but it wont allow you to connect out to the wider world just yet.

Now we need to edit the IP Tables of the PI, to allow the forwarding of traffic from the VPN gateway into the internal network.

To do this type:

sudo echo 1 > /proc/sys/net/ipv4/ip_forward

which will allow the forwarding of IPV4 IP traffic, we also need to edit:

sudo nano /etc/sysctl.conf

and uncomment out (remove the #) around the line:

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

Save the file and exit.

Now we need to edit the IP Tables rules to allow for traffic. Type in:

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Unfortunately, due to the nature of IP Tables if the PI looses power, it will reset it the IP tables back, loosing all your settings (not handy if you plan on moving the PI about) so we need to now backup and save your new settings.
This is done by saving your IP Tables as a rule file:

sudo iptables-save > /etc/iptables.up.rules

You can call the saved file anything you like, but it helps to keep things organised.
Now we need to create and edit a script to load the IP Tables Rule file:

sudo nano /etc/network/if-pre-up.d/iptables

and insert:

#!/bin/sh
#This script restores iptables upon reboot

iptables-restore < /etc/iptables.up.rules

exit 0

Now we need to edit the ownership & permissions of this file so it will run on boot:

sudo chown root:root /etc/network/if-pre-up.d/iptables && sudo chmod +x /etc/network/if-pre-up.d/iptables && sudo chmod 755 /etc/network/if-pre-up.d/iptables

You should now be able to reboot your PI as much as you like and it will retain all your data settings! (YaY).

Its worth giving your PI a reboot now, Given all the things you have now loaded onto the PI you will need to give it a reboot to get it going properly.

So one of the buzzword’s used in 2012 was ‘Big Data’, representing the interconnection of lots of databases from a variety of sources all communicating together.

Why might you want to engage with big data? Well say your website or app wants to make use of a post code search tool to confirm someones address, or allow your visitors to look up a weather report for a holiday destination you are offering without the user leaving your website or app.

This is achieved through the use of some technology known as ‘web services’ or an ‘Application Programming Interface’ (API).

One of my projects for 2013 involves making use of API’s to load data from a web server so I thought I would share how API’s work through this demo:

Lets say you have a database of recipes containing:

  • Recipe ID
  • Title
  • Thumbnail of the Dish
  • Ingredients & Method
  • Author

Next you would need to define what formats you want your data to be presented back, in this case I am going to use JSON and XML formatting.

On your web server create a new folder or appropriate place to store your API data file. In my case I have chosen: domain.com/api_interface/ and add a new file titled ‘API.php’

Inside API.php we can start to add some code:

<?php

//Checking and Getting the two variables format and number of records
if(isset($_GET[‘format’]) and intval($_GET[‘num’])) {

//Set our variables
$format = strtolower($_GET[‘format’]);
$num = intval($_GET[‘num’]);

In this code we open the PHP tags and check that we are getting two variables from the HTTP request – the format (either XML or JSON) and num (number of rows of data).

After this we need to connect to the database and start to query for data:

//Connect to the Database
$con = mysql_connect(“localhost”,”username”,”password”) or die (‘MySQL Connection Error.’);
mysql_select_db(“database_name”, $con) or die(‘MySQL Table Error.’);

//Run the API query
$result = mysql_query(‘SELECT * FROM table ORDER BY `recipe_id` ASC LIMIT ‘ . $num, $con) or die(‘MySQL Query Error.’);

This query will look-up the table ‘table’ from the database ‘database_name’ and return in ASCENDING order rows of data.

Now we have the data we can build an array and begin to present the data we would like.

//Preapre our output
if($format == ‘json’) {

$recipes = array();
while($recipe = mysql_fetch_array($result, MYSQL_ASSOC)) {
$recipes[] = array(‘post’=>$recipe);
}

$output = json_encode(array(‘posts’ => $recipes));

Fortunately for us PHP includes an encoder for JSON so specifying that we want the data in JSON format we can load the data into an array and then write the data directly into the correct format.

If on the other hand we would like our data in XML format we can use a loop inside php to load the array and then fill in the XML tags to present back the XML format required:

elseif($format == ‘xml’) {

header(‘Content-type: text/xml’);
$output .= “<?xml version=\”1.0\”?>\n”;
$output .= “<recipes>\n”;

for ($i = 0 ; $i < mysql_num_rows($result) ; $i++)
{
$row = mysql_fetch_assoc($result);
$output .= “<recipe> \n”;
$output .= “<recipe_id>” . $row[‘recipe_id’] . “</recipe_id> \n”;
$output .= “<recipe_name>” . $row[‘title’] . “</recipe_name> \n”;
$output .= “<recipe_img_small>” . $row[‘thumbnail_photo_url’] . “</recipe_img_small> \n”;
$output .= “<recipe_link>http://www.domain.com/recipes/recipe_detail.php?=” . $row[‘recipe_id’] . “</recipe_link> \n”;
$output .= “</recipe> \n”;
}

$output .= “</recipes>”;

The else if statement is connected to the IF statement above and relates to the users choice of data they would like (JSON Vs XML). As the If statement is run it loops through the statement filling in the blanks with data from the Array creating a complete XML file.

This is what the files look like in their respective outputs.

JSON:

{“posts”:[{“post”:{“recipe_id”:”1″,”title”:”Quick and Easy Rice”,”large_photo_url”:”tbd”,”thumbnail_photo_url”:”tbd”,”ingredients”:”Rice\r\nBoiling Water\r\nSesame Oil – Optional\r\n”,”method”:”Cook some rice”,”Author”:”Mathew”,”thumbs”:”1″}}]}

XML:

<recipes>
<recipe>
<recipe_id>1</recipe_id>
<recipe_name>Quick and Easy Rice</recipe_name>
<recipe_img_small>tbd</recipe_img_small>
<recipe_link>http://www.domain.com/recipes/recipe_detail.php?=1</recipe_link>
</recipe>
</recipes>

Building an API like this gives developers the most amount of flexibility when it comes to interfacing with your information and data.

Its worth noting that this API has got NO limitations attached to it and that should someone get a hold of your the API they would be able to spam your web server countless times bringing it down. I HIGHLY recommend the use of an API Key system such as mashery.com or  3scale.net/

Following on from my previous post (see post), concerning the unboxing of an Android based Mini GPS tracker, I’ve finally cracked how it works and what you need to do, the below is a review and how-to on my successes with the device so far;

For starters the Tracker is tiny:

Operation is relatively simple; I’m using a prepaid SIM card which you simply slot into the SIM card slot, once fully inserted the Tracker activates and a red light illuminates for about 10 seconds.

Initially my tracker did nothing, I spent the morning trying to see if it was a SIM card fault, the number not being activated or the tracker itself. Eventually I came to the conclusion that all things network related were fine and began to lose confidence in the Tracker.

THEN: It sprung into life. Out of no-where the tracker started responding to SMS commands and if I were to ring the device it would answer and I could hear the surrounding – very interesting.

Points to note:

‘GPS’ & ‘DW’ commands appear to do the same thing, but not what I was expecting.

I was expecting a raw output of GPS Lat and Long Co-ordinates from the Tracker, something in a raw easy to use format would have been nice… but alas I was presented with this:

Not being able to read the Chinese I don’t know what it says but a quick copy and paste of the characters into Google Translate reveals ‘View image URL’ so now we know that the device is using some kind of 3rd party mechanism to present the users with a picture of a map centered around the GPS co-ordinates.

It would have been nice to have raw GPS data, particularly as the URL your forwarded too doesn’t seem to work and auto directs to another web server which isn’t currently working.  Given that this device is (hopefully) Android based their might be an option to reprogram the tracker? –don’t hold your breath.

A quick few Google searches reveal a few others are having the same issues – both with the web server as well as the lack of any kind of good quality support from the sellers. Below is a link to a seller who appears to be communicating:

http://club.dx.com/forums/forums.dx/threadid.1261336

A few months back I ordered from a ‘Made in China’ website a small GPS / GSM tracking device, the device sounded pretty interesting – tho not in a stalkerish way!

Devices like this have been speculated about for many years and indeed used by various governments of the world for years. But more recently companies and individuals have taken to using the devices.

From a data perspective devices like this can serve a greater good. The tracking of a elderly loved one serves a useful purpose and backed up by SOS buttons its very easy to see benefit from something like this.

I had previously investigated building something like this in the past as an experiment so I was intrigued to see what an official product did and looked like. Plus being only $15USD inc. shipping it didnt break the bank.

Boxed:

Its clear to see how small the tracker is:

Technologically it features an ARM A8 Processor (hence the name Mini A8) which is one of the chipsets being produced in the millions out in China. This processor is able to run Googles ‘Android’ operating system so being able to program and interact with the tracker should be quite easy..

The instructions on the other hand are a different matter… While the Chinese are very good at many things, technical translation is not one of them.

eg “before using the new machine should be filled with electricity, in order to achieve the best effort”

So this is a ‘rough’ Chinglish to English translation guide on how to operate the A8 Mini Tracker

Mini A8 Android GPS / GSM Tracker English Users Guide.

This product uses the latest technology produced from Taiwan. Small yet mighty, It features a long battery life, simple easy to use, stable operation and easy installation.

While the device has a range of uses, the top uses are: Monitoring and support of elderly / cared for individuals, vehicle and logistics tracking as well as individual location tracking.

Powering ON: The device is powered on, once a SIM card has been inserted into the SIM tray. Turning the device over (Android face down) slide the cover back to reveal the SIM tray.

Once a SIM card has been inserted the system will begin its boot process. You will see a light illuminate for approximately 10 seconds. Once this light has been extinguished replace the cover.

Environmental Monitoring:  You can use the tracker’s onboard Mic to listen to the surrounding environment. To do this simply dial the number connected to the SIM you inserted, the tracker should answer and after approximately 5 seconds you should be able to hear up to approximately 10 meters from the tracker.

Sound Controlled Call Back: One advantage of the A8 that It can ring you when when noise around the device exceeds 45 DB. To configure this, ring from the phone you wish to the A8 to call you, once connected to the tracker wait 3 seconds and then hang up.

This feature can be turned off by sending an SMS text of ‘0000’ to the phone number of the A8. You can also turn this feature back on again by sending an SMS of ‘1111’ to the A8’s number.

GPS Positioning: In CAPITALS send an SMS message of either ‘DW’ or ‘GPS’ to the A8′. After a few minutes the A8 will respond with the GPS co-ordinates.

SOS Emergency Call: From the phone you wish to receive SOS calls from. Send in CAPITALS an SMS with the words ‘SOS’. After 3 seconds press the SOS button on the A8 to test this functionality. The indicator should flash and the phone should ring.

The Mini A8 GPS/ GSM Tracker operates at frequencies of: GSM 850/900/1800/1900MHz

Notices:

Before initial use, please ensure you fully charge the device, A 5.0V Power supply has been supplied however any 5.0VDC power source will work.

If your not able to interact with the A8 Device try removing the SIM card, reinserting and recharging before next use.

and finally my favourite quote of the manual:

“this product is forbidden for illegal purposes, Otherwise your peril.”

Recently I was approached by a a friend of mine who’s PC had been Hi-Jacked by a Virus.

The program was incredibly complex, pretending to be an official warning from the police that this PC had been used for all number of illegal activities such as hacking, malicious photo distribution and had been locked. The program demanded money in the form of a Credit Card or other payment method before it would unlock and function again.

UNDER NO CIRCUMSTANCES GIVE YOUR CREDIT CARD DETAILS

Programs like this, much like email spam are in no way official.

The immediate action to take is to shutdown the PC ASAP. You cant risk the virus infecting more files or any other PC’s on your network. If possible remove the network cable from the PC and also shutdown the Wifi to prevent the spread.

The next step is to boot the PC from an external source like a USB key or CD containing an antivirus application. A few below are the best I have found:

  1. Kaspersky – https://support.kaspersky.com/viruses/rescuedisk
  2. AVG live CD – http://www.avg.com/gb-en/avg-rescue-cd
  3. BitDefender – http://download.bitdefender.com/rescue_cd/

NB – I prefer to use the Kaspersky Live CD so the instructions below will be specific to Kaspersky, however the principe for the others is the same.

Using ANOTHER PC download the ISO file and save it to a suitable location (Desktop for example).

Using Nero or a free ISO burning tool (such as: http://www.freeisoburner.com/) select the ISO image and insert a blank CD.

When the CD is complete, transfer it to the infected PC and boot your PC.

When the POST screen is displayed (Usually the company Logo) it will quickly present a number of options to boot from, select the CD option and press enter.

After a few seconds you will be presented with a few options loaded from the CD.

Load the GUI Option (1st Option) and the system will continue to boot.

After a few minutes (dependent on your PC’s Speed) a desktop environment (similar to windows desktop) will appear. Once this has loaded it will start to run the antivirus scanning tool. Here you have two options:

  1. Let the scan run using the current antivirus database (recommended)
  2. Stop the scan and use your internet connection to update the antivirus database before starting the scan

Given that the CD image you will have downloaded will be relatively up to date, its fair to say that the virus definitions database on the CD will also be up to date. So for the first pass, let the scan run. This may take several hours depending on how many files are on your PC.

Once the scan is complete it will present you with a list of Virus’s on the PC as well as recommended actions to take. At this point you want to click the DELETE  button.

From here select the option to reboot the PC, the computer will now begin to power down, ending with the CD being ejected and you being asked to press ‘Enter’ to confirm that the CD has been removed.

The PC will now reboot and HOPEFULLY all the virus’s that plagued your PC will have been wiped from existance (on your PC). Final steps are to reconnect your network cable (if you havent done so already) and switch your WiFi back on.

If all has gone well your PC should be all better now.

With the free time from the bank holiday, not wanting to spend the whole weekend inside I decide to devote sometime to my BioGas project. Having considered the last run a success, apart from producing a lot of smoke the gas produced did eventually light, leading me to believe that the reactor was working and just needed to continue to warm up to operating temperature.

 I loaded the base full of charcol and get started again. Within minutes the base was hot and I loaded the chamber with wood pellets – sealing the top.

After 5 minutes the colour and quantity of the smoke changed and I used my blow torch to ignite the smoke.  Instantly I was presented with a hot yellow flame, while the flame was not able to maintain itself I believe this is due to the water content and lack of mixed air – a problem soon to be fixed.

Below is a ‘basic’ drawing of the setup

I have installed flare stacks at all the post-process points so that I can check the output of the gas – The last thing I want to do is do all this work and end up with something that doesnt ignite!

So project one complete, I can successfully make flamable gas from waste wood! Next step – Clean, Condense and find a use for the wood gas.

*UPDATE 14th October 2012*

Having now purchased my own air compressor (yay!) I was able to fire up the reactor again and do an extended test. Below is a snippit of video I was able to record:

Wood Gas Reactor

Project 2: Cleaning & Condensing

Fresh from the reactor the gas is still very hot and contains dissolved in the smoke a number of unhelpful substances – water being the biggest. In its highly energised state the gas moclules lack density and compressing them would be very difficult.

From my research I have found several methods of cooling hot gas (the top 2 being):

  • Heat Exchanger / Radiator
  • Water bubble tank

To keep things simple I opted to use a sealed water bubble tank. This is where the end of the outlet from the reactor is fed under water and the gasses are bubbled up through the water, both cooling the gas and seperating the water / water soluable substances at the same time. Keeping the water as cold as possible will hopfully force more of the waste componensts to seperate from the flamable gas cloud.

If needed a further process using hay as a filter medium can be slotted into place to absorb waste if needed – however I do not think this well be required if the ice water filter goes to plan.

 So as part of my renewal projects and drive I have been focused and interested in Biogas, in particular gas produced from the breakdown of wood at high temperature with limited oxygen.

After my experiments and success with making a biodiesel reactor and running a car off biodiesel for many years I had felt that this project fitted the natural progression. If I could make a fuel for diesel engines making a fuel for spark based engines was the alternative.

Before starting on this project I did a lot of research online.

YouTube was a fantastic resource that allowed me to see other peoples success but also how their projects have come together and the pitfalls they encountered.

BBC’s Bang goes the theory did an experiment where they used coffee grounds in a similar fashion, the link can be found here.

Another site I made extensive use of was MD Pub’s Gasifier, his research, experiments and documentation became the grounds for my own jumping off points.

So what is a Gasifier?

A Gasifier is a combustion chamber where organic substances (wood, coffee grounds or other organic substances) are burnt at high temperature with limited oxygen, this causes the organic and volatile compounds to separate. In principle it goes like this:

Wood + Limited Oxygen = Carbon Dioxide + Carbon Monoxide + Carbon + Water + Hydrocarbons + Heat

The wood (or organic substance) becomes unstable and breaks down into less complex substances – otherwise known as Pyrolysis (Wikipedia Link).

Once this process has happened the gas is in a raw and almost ‘dirty’ state, at such a high temperature it contains moisture and tars that were not thermally broken down, before it can be used in any combustion engine the gas must be cleaned and impurities removed.

I have broken my project up in to two sections.

  1. Gas production device
  2. Gas cleaning device

This post focuses on Part 1, the manufacture of a BioGas production system.

From the research I did, it seems the most successful projects were ones that used compressed air, injected into the combustion chamber at the hottest point. I chose to make a ‘injection ring’ where 5 copper pipes inject air into a steel cylinder. To get started I needed a base:

Using an old 25 litre chemical drum, I cut the top off, leaving the pressed steel rim intact, This gave me a large working area to easily fit parts and get my hands into areas needed for screwing / working. For my combustion chamber I found compliments of eBay an old fire extinguisher – yes I’m aware of the irony.

I cut the base off the extinguisher:

and removed the razor sharp edge left by the cutting tool:

You can see from the positioning the plan, filling the now top of the chamber with the reaction occurring at the neck with the gas and ash flowing out of the bottom.

The next step was to drill holes and fit the air injection pipes. The drilling of the holes and fitting of the pipes was very simple, with a small jig setup to prevent the drill from travelling on a circular edge. Once I had the pipes fitted I made a ring of copper pipe around the outside and connected all the injection tubes to the ring. This gave me a single point where I could connect an air hose and apply compressed air.

From some of the learning’s from MD Pub’s pages, he had major trouble with gas tar and water escaping from the gaps between the pipe and the cylinder. So I decided before moving on that I would seal the pipes to the cylinder. My original idea was to weld or braze the gap, but after watching numerous videos on how to braze and following the pack instructions to the letter, I was unable to form a solid bond that couldn’t be chipped off with a finger nail – see photo

So my next idea was to use chemical metal. A two part compound that when combined becomes tough and bonds metal together. Fab I thought. After cleaning the remains of brazing rods off the copper and steel I set about trying to glue the gaps up. What a success! The glue set, didn’t shrink and all the gaps were filled. All my problems were solved – or so I thought!

I left the project for a week or so, coming back everything looked good, the glue hadn’t fallen off and holding the base up to the light resulted in no pin pricks of light shining through. Then I dropped it (the fire extinguisher) and the glue shattered. Being so brittle and so inflexible all of the joints immediately failed I needed a better idea, a more flexible idea.. Re-reading MD Pub’s pages he talked about using a flexible high temperature silicon sealer to fill in all the gaps. So a quick trip down the local hardware store saw me back in business.

After sealing all the gaps and joints I moved onto making a lid, making friends with a local metal workshop I had a rummage around the offcuts bin and found a sheet of metal that would be perfect. Cutting a doughnut shaped ring out from the metal and fitting it too the inverted fire extinguisher with a little silicone seal in place around the gaps:

Fab! So now I have fitted my chamber up, secured a constant stream of compressed air for the reaction to occur. All that was next was to test my Gasifier.

Loading up my reaction chamber with wood and charcoal I sealed the chamber (with the now lid, ex base of the fire extinguisher). Once the airline was attached and a constant stream of air was being forced into the chamber I felt the Gasifier immediately heat up, plenty of smoke was being product from the exit port but nothing flammable. This went on for 20 minutes and as the temperature increased so did the quantity of non-flammable gas being produced. Sadly the seal of the combustion chamber failed soon after, resulting in a small fireball about the size of a football coming out from the combustion chamber. This has shown me two things, One: Gas was being produced, Two: I need a better seal on my gas chamber.

My plan for the rest of this project is to find / design a better heat proof seal for the combustion chamber and to replicate the experiment. I believe I’m on the cusp of making this project work, so a few more steps particularly in the name of safety shouldn’t be a problem.

So I’ve discovered that after formatting some SD Cards for use with some ARM based devices means that the card is left unformattable and unable to be read or reused. Whenever I went too format the card using Windows Disk Utiltity or Mac Disk Utility it would fail and tell me the media was not ready. Futher investigation let me to discovered that some of the images I was using start writing the image to the file at 8 or 16 bytes, leaving the 1st sector unformatted with the uboot image.

So I found on the SD card Association website a tool that formats SD Cards to make them useable again.
The link to the page is:
SD Card Formatter
SD Card Formatter For Windows
SD Card Formatter for Mac OS