Different Types of power drills explained

Buying a drill is easy right? Yeah, nah. Do you need to smash through concrete? Drive screws in? hang a picture? Choose the wrong drill for the task, and it is going to take a long time. I’m going to explain the different types of drills and their uses.

Quick Reference

First, here’s a quick reference chart of which drill you should use for each material.

Material Type of Drill
Driver Drill
Hammer Drill Rotary Hammer
Fixing Screws
Sheet Metal
Demolition Chisel
Key: good     great

Driver / Drill

Your most basic drill is the driver/drill. It can drill a hole into wood or metal (the drill part of the name), or drive a screw in (the driver part of the name).

If you’ve ever been using a drill to drive a screw in and found the drill starts vigorously clicking - that is the driver action. The idea is that the clicking action will use a sideways hammer action to drive the screw in. In a regular drill this action is not particularly strong. Don’t rely on it to drive screws into anything more than softwood.


  • A mains powered drill will have a lot more power than a cordless model
  • Most driver/drills have a 2 speed gear box (slow for wood, fast for metal)
  • has a (poor) rotary driver action



A dedicated driver is one of those tools you don’t realise you need until you own one. It has a quick connect socket (rather than a chuck) for swapping attachments. Normal drill bits do not fit. The advantage of a driver is that it has ungodly amounts of torque and can drive a screw into hardwood without ‘camming out’ (slipping). This allows a screw to be driven in to hardwood without being stripped.


  • uses quick release attachments
  • has a rotary driver action

drill driver

Hammer Drill

Now we’re talking. A hammer drill has a hammering action that moves from the front to back of the drill. If you want to drill into masonry or concrete, this is your drill. A cordless version is a good multipurpose, tackle anything drill.


  • hammer action can be turned off so you can use it like a regular drill/Driver

hammer drill

Rotary Hammer Drill

This is like a hammer drill that has been snorting PCP. It is double the size of the other drills here, and makes over 100db of noise. You will need ear protection. It has a much more powerful hammer action than a regular hammer drill.

This drill is not only good at drilling holes in concrete, it can also be used as a small jackhammer. I’ve used one to chisel a trench in a concrete slab.

Ozito hammer drills are great. Cheap Aldi drills are not. I managed to catch two on fire.

These sorts of drills need special drill bits (SDS or SDS+). These bits can take the hammer action without breaking. That said, I have snapped cheap SDS chisel attachments! (from Aldi, surprise!) You also need to do maintenance on these drills. The gearbox needs to be re-greased from time to time (easy enough), and the bits need grease put on them before locking them into the chuck.

Word of advice: cheap Ozito hammer drills are great. Cheap Aldi drills are not. I managed to catch two on fire. I took the first back and swapped it, then the replacement caught fire too. The Ozito handdled the same work like a champ.


  • you need special drill bits
  • you need hearing protection
  • can be used as a jackhammer
  • if you are having trouble getting SDS bits in and out, you have probably forgotten to put a dab of grease on the end of the drill bit (the end that goes in the drill)

rotary hammer


Add Ethernet to your ChromeCast for 12 bucks

ChromeCast’s are great… as long as your wifi is. I upgraded my router firmware, and my ChromeCast started dropping out. Rather than fixing that problem, I figured “why not just hardwire the damn thing?”.

Google offer a ChromeCast ethernet adaptor, which is great except…

  1. It is never in stock
  2. It isn’t available in Australia

I’m sure it will become available in Australia sooner or later, but because we’re a country full of suckers surrounded by a huge fucking shark filled moat - it will probably sell for $40. I’m cheap and impatient, so here is my $12 DIY ChromeCast ethernet setup.

Things you will need

  • OTG adaptor with power feed
  • USB Network adaptor
  • A network point
  • Ethernet cable

OTG Adaptor

OTG means “USB-On-The-Go”, which means “you can plug normal USB things into micro-usb devices.” This means you can plug your USB drive into your Galaxy Edge, or your gaming mouse into your Motorola Moto-G, or ethernet into your ChromeCast.

There is a catch. Most OTG cables do not provide any way to get power, as they expect the device to provide power. This is no good for a ChromeCast, as a ChromeCast is USB powered. What you need is a “OTG Y-Cable”.

I used this one - $5.99.

USB Network Adaptor

The next thing you need is a USB Network adaptor.

I used this model - $6.85.

It works fine and it lights up blue to indicate network activity. It also works with a Macbook Pro, which is nice.

The nice folk on the Whirlpool forums have been discussing alternative network adaptors that may work - Whirlpool Thread.

Connecting it together

You won’t need your existing ChromeCast micro-USB cable any more. Connect everything else as follows:

  1. The OTG micro-USB plug should connect to the ChromeCast.
  2. Connect the Ethernet adaptor to the OTG USB female end.
  3. Connect the USB plug to either a powered USB port on your TV, or the ChromeCast power brick.
  4. Plug the ChromeCast HDMI plug into your TV.
  5. Plug your ethernet cable into the network adaptor.

how to connect stuff

Note that you still need to use WiFi to configure your ChromeCast initially. If your ChromeCast is already configured, it will work over ethernet without any changes.

Everything should now work.

activity indicator Look at the neat activity indicator!


For the tech minded readers, if you jump on your router configuration page you should notice a new device. The ChromeCast will have two IP addresses allocated, one for wifi, and one for ethernet.

If you fire up NMap, and run a port scan, you will get something similar to this:

$ sudo nmap -sV

Starting Nmap 6.49BETA3 ( https://nmap.org ) at 2015-08-31 20:29 AEST
Nmap scan report for
Host is up (0.0030s latency).
Not shown: 998 closed ports

8008/tcp open  http       Google ChromeCast httpd
8009/tcp open  ssl/castv2 Ninja Sphere ChromeCast driver

MAC Address: 00:E0:4C:36:00:00 (Realtek Semiconductor)
Service Info: Device: media device


If you’re Australian, and running a VPN or DNS redirect (for delicious international netflix), don’t forget to block the Google DNS servers ( and for your ChromeCast IP address.

Time to fire up Netflix and relax.


How to replace your exhaust fan

Is your old exhaust fan too noisy? does it let cold air through from your ceiling cavity? Exhaust fans are easy to replace. I’ll show you how.

Ensure the power is off to the exhaust fan before you do any work on it. Go to your electrical box and turn off the circuit the fan is on. It may be on the light circuit or one of your power circuits. If you are in doubt, don't do any work. If you're Australian, all electrical work involving wiring must be performed by a licenced electrician.

So, can you do the work yourself? It depends what sort of power cable you have. Climb into your ceiling and have a look. If you can see a single thick cable in the ceiling, and it is connected to an outlet - you can do the work yourself. If you can see a cable that appears to be 3 separate cables joined together, then what you have is “twin and earth”. That means the fan is hard wired, and you should call an electrician.

How to Replace it

Step 1. Measure

Grab a ruler and measure the diameter of your existing fan opening (take the cover off first). Now go to the store and buy a new exhaust fan the same diameter. Note that some come with ducting and some don’t. In my state, it is legal (and usual) to vent straight into the ceiling cavity - so I haven’t bothered installing a duct. Make sure you get an exhaust fan with a “draft stopper” built in.

A draft stopper is a small, spring-loaded flap that starts off closed, but when the fan is on the flap opens and allows air to pass through. This stops ceiling drafts coming back down during winter and freezing you.

original fan

Step 2. Unscrew the old fan

Before you do this, get up in the ceiling and unplug the exhaust fan. Now you can safely remove the fan.

There will be a series of screws around the rim of the fan. These screws are connected to small clamps/brackets. Support the fan with one hand, and work your way around the fan, unscrewing as you go.

original fan with cover off

Step 3. Remove the old fan

Now you should be able to lift the old fan out.

original fan with cover off

Step 4. Install the new fan

Have a look at the new fan before you install it. Pay special attention to the clips that secure the fan to the ceiling. They should all be tucked in. As soon as you start turning the screws, they will pop out to clamp the fan in place.

Lift the power cord through first. If you can safely plug the fan in, do it now - then lift the fan into place and tighten all of the screws around the rim.

Make sure the fan is secure before you move your hands away.

original fan with cover off

Step 5. Install new cover

If you couldn’t plug the fan in during installation, get in the ceiling now and plug it in.

Now you can turn the power circuits back on. Once on, go test the fan. If it doesn’t work, turn the power back off and check the connections. If the connections are fine, you might have a dead fan (you will need to return it to the store).

If everything is working, push the new cover into place, turning as you push to lock it into place.

original fan with cover off

Enjoy your new fan.


Nestable knockout web components

Web Components are the Next-Big-Thing™, the second-coming, etc etc etc. Yeah, so we’ve all been hearing about web components. How can we use them in a nestable, compatible way?


A few years back the Javascript community discovered databinding. KnockoutJS (a pretty great data binding library) was the in thing. Then AngularJS came onto the scene and I stopped hearing about Knockout. Recently, people have been talking about web components. Web Components are a great way to make your code modular, more readable, and solve all your problems. Unfortunately Chrome is the only browser with a native implementation.

A search for “Web Components” takes you to Google’s Polymer framework, which isn’t a framework - but does give you Web Components. Unfortunately you need IE10 or better. Those of us working for large corporations or government departments generally have to support IE9. What to do?

Well, good news! Knockout implements Web Components - but we can’t call them web components, they are “web component inspired” components that happen to behave indistinguishably from web components, and they also happen to work in IE9. Great!

Why do I want web components?

Simply put, you can write code that looks like this:

    <todo-list params="color: green;">
      <checkable-item>Write blog post</checkable-item>
      <checkable-item>De-clutter house</checkable-item>

Nice, readable code - with nestable custom HTML elements.

How to do it

checkable-item web component

This is the view for our checkable list web-component, which will be displayed in our to-do list web component.

<!-- checkable-item-view.html -->
<div style="border:1px solid blue; margin: 5px; padding: 5px;">
  <label data-bind="text: labelText"></label>
  <input data-bind="checked: checkbox" type="checkbox" />
  <input data-bind="value: textField" type="text" />

// checkable-item-viewmodel.js
define(['knockout'], function(ko) {
    function CheckableItemViewModel(params) {
        this.labelText = params.labelText;
        this.textField = ko.observable();
        this.checkbox = ko.observable();
    return CheckableItemViewModel;

todo-list web component

Here is our ‘container’ web component. Notice that knockout template binding in the viewmodel? That allows us to pass through HTML elements. It allows for the nesting of HTML within components. The $componentTemplateNodes contains the DOM nodes nested in the markup.

<!-- todo-list-view.html -->
<div style="border:1px solid red; margin: 5px; padding: 5px;">
    <div data-bind="text: componentText">
  <!-- The line below this is where the magic happens -->
  <!-- ko template: { nodes: $componentTemplateNodes } --><!-- /ko -->

// todo-list-viewmodel.js
define(['knockout'], function(ko) {
    function ToDoListViewModel(params) {
        this.componentText = params.componentText;
    return ToDoListViewModel;

Host Page

Here is our HTML page. Note that for it to work, it depends on requireJS, textJS, and KnockoutJS. I’ve placed my web components under a “/Components/” folder. I’ve omitted the dependencies and requireJS configuration from the example below, to keep things brief.

The important part is the component registration.


    <h1>How to create knockout nested components</h1>

    <checkable-item params='labelText:"component that isnt nested"'></checkable-item>

    <todo-list params='componentText:"text passed to component"'>
      <checkable-item params='labelText:"nested component"'></checkable-item>

    // this is how we register components
    ko.components.register('todo-list', {
      viewModel: { require: 'components/todo-list/viewmodel' },
      template: { require: 'text!components/todo-list/view.html' }
    ko.components.register('checkable-item', {
      viewModel: { require: 'components/checkable-item/viewmodel' },
      template: { require: 'text!components/checkable-item/view.html' }

There you have it. Go forth and create Web Components.



Danny Frencham is a software developer, based in Brisbane Australia.