Gauss Cannon - written by on 2020-02-27

Gauss Cannon

A futuristic sounding but technically simple device. Let's magnetically propel some scrap metal with this!

This project carries certain risks associated with the use of 230 VAC. These voltages are not a toy, and in the worst case it can lead to death. Take the necessary precautions and measures.

Although the title resembles some kind of futuristic or science fiction weapon, a Gauss cannon is actually a very simple device. It is also called ‘coil gun’. Its operation is based on the linear acceleration of a metallic and ferromagnetic projectile thanks to a magnetic field, due to high voltage and intensity provided by a capacitor. In other words, it is a solenoid.

Solenoid Magnetic field generated by a solenoid

Here is my circuit:

Cannon schematic

Broadly speaking, a diode rectifier is used to charge the capacitor, which converts AC to DC. It is important to note that 230V AC ≠ 230V DC. To calculate the voltage after rectification we can use this simple formula:

Calculating rms 1

RMS means root mean square, or also quadratic mean. To avoid entering long descriptions, click here or here. Applying the formula is:

Still calculating

Finally, VRMS and VAC are added:

Calculations finished

Therefore, we need a capacitor of that voltage or more. The chosen one is 400V. Another important thing to note is the use of a thyristor, instead of a normal switch to discharge the capacitor. This is because, in a very short period of time, the capacitor discharges a very large current, and normal pushbuttons or switches cannot withstand such a load. A thyristor can easily withstand 600V at 25A (as used in this circuit). They consist of 3 pins, one input, one output, and one drive. The latter can be triggered by 5V. In my case I used an old 5V charger, but you can also build a power source like this:

5v psu schematic

Finally, the coil is a simple copper wire wound in an empty tin roll. Ideally, we would have counted the number of turns and the length of the wire, in order to calculate the field strength, but I forgot and did not. In case of having these data, the field strength would be calculated with:

magnetic flux equation

Being μ0 the magnetic permeability, which in the case of air would be 12.56 * 10-7; N the number of turns of the coil, L the length of the copper wire and finally I, the intensity of the current that is passing through the coil. To operate the cannon we will connect it to 230V. The charging time is very short, therefore it is better to put a switch. Once charged, when the second switch is activated, the one coming from the 5V source, the capacitor will discharge very quickly, generating the field in the coil, and also a short noise or zap. The position of the projectile inside the coil is important. The further from the center the projectile is, the faster it will exit and the more space it will travel.

Important note: Never operate the cannon while it is charging, or the diode rectifier will explode. (From own experience)

A good preventive method to avoid operating both at the same time is to put a triple state switch between charger and 5V source. Finishing now, some pictures of the already finished cannon:

finished project photoanother photo of the project

last photo of the project

Tagged in Hardware. 0 comments

Winter is coming! - written by on 2019-10-02

Winter is coming!

Upgrading an old, battery-powered thermostat

Winter is coming, and so does cold. It's time to turn on the heating and to enjoy a hot cuppa. But not without first automating and controlling with our phone our home's heating system.

My current thermostat only allows me to program a 24h schedule, without regarding the temperature at all.

Old thermostat

Wiring is as simple as joining the two wires found inside the thermostat; a relay will be perfect for this. I'll be using a NodeMCU as the controller as it has WiFi, and allows me to quickly set everything up before the tea goes cold.

Choose any digital pin of the NodeMCU, and connect the relay to it. Then, connect the heating cables to the relay. It should look like this:

New thermostat

After closing the case...

New Thermostat closed

It's time to flash the NodeMCU firmware. The code is available here Don't forget to set your WiFi SSID and password!

Now it's time to control it. I'll be using a Telegram bot, that will allow us to turn on or off at any moment the heating. We will also be able to set a basic schedule. Files are available here To spin up the Telegram bot, you'll need an API Key from the Botfather. Also, don't forget to configure the NodeMCU Ip address.

When finished, the bot will be able to control your heating. No more cold cuppas ensured!

There's still a lot of work to be done on the bot, allowing to individually schedule each day or with recurring times. Another nifty improvement would be a temperature sensor, to stop heating when necessary.

If you are having any trouble using this bot drop me a line in the comments and we'll solve it!

Tagged in Hardware. 0 comments

Repurposing an Amazon Dash Button - written by on 2018-01-21

Repurposing an Amazon Dash Button

The most known, cheapest and best IoT button, repurposed.

Amazon's Dash Buttons are quite incredible. For just $5 you can modernize such a common task as shopping. With a single press, you can order from dishwasher to toilet paper, instantly and effortlessly. These buttons connect via WiFi to Amazon servers, and when they're done, they shut themselves off.

Taking advantage of this, we can easily repurpose them for all of our IoT needs, in a cheap way. The process is as follows:

  • When the button is pressed, it connects to the WiFi access point
  • We detect that connection
  • We act accordingly

Simple, isn't it? Let's get it working

First we have to configure the button. For this we'll follow Amazon's instructions, but when prompted to choose a product to order, just quit the app, so no product will be ordered.

We'll also need the button's MAC address. With this code, every device connecting to the network will be displayed. Just run it and click the Dash Button a few times.

from scapy.all import *

def arp_display(packet):
  if packet[ARP].op == 1:
    print('ARP Probe detected: ' + packet[ARP].hwsrc)

sniff(prn = arp_display, filter = 'arp', store = 0, count = 0)

We've got the MAC address. Great! Now, slightly modifying the code, like this:

from scapy.all import *

def arp_display(packet):
  if packet[ARP].op == 1:
    if packet[ARP].hwsrc == '50:f5:da:df:0b:80': # change this
      print('Button has been pressed!')

sniff(prn = arp_display, filter = 'arp', store = 0, count = 0)

Will make the code only react to the Button's address.

Dash 2

With this, now it's just a matter of tailoring the script to suit your personal needs. From sending an email to controlling another IoT appliance, the possibilities are endless.

Tagged in Hardware. 0 comments