Tuesday 29 November 2016

Tool / Drill Bit Demagnetiser

The End Result


The Build
The downside to the magnetic drill bit organiser that I created in the last post is that the drills themselves end up becoming magnetised.

This isn't really a problem for woodwork, but can get a bit annoying for drilling metal, so I started looking at building a demagnetiser.

Research online showed lots of examples (such as this) of powered demagnetisers, often using dismantled power transformers, mains power and over-heating risks, which was a bit off-putting.

However, there are passive (unpowered) demagnetisers available to purchase, so there must be another way.

It's well known that metal can be magnetised by rubbing it against a magnet. There is, of course, a lot of dry and boring scientific explanation about why it happens, but in layman's terms, the punchline is that metal stuff gets magnetised when the electrons in it get aligned. So to demagnetise it, just screw up their alignment. Simple, right?

Yeah, really, it is. If putting a bit of metal near one magnet pulls the electrons into line and magnetises it, sit the metal between two strong magnets, and the electrons can't agree which way to point, so they end up pointing in conflicting directions, and become demagnetised.

The magnets were provided courtesy of an old, broken hard drive. Unfortunately the shape of the drive magnets is a bit awkward to work with. To overcome this I took photos of the magnets, imported the photo into Inkscape and drew around them, exporting the resulting SVG into blender to turn into a 3D model for printing (a similar process that I used in this post)

The HDD magnet, and the shape drawn around it in Inkscape, ready for extrusion into Blender.

A photo posted by Anthony (@darkmidnight_diy) on

A bit of hot glue was used to fix the magnets in place, and they were covered with Sugru to avoid tools just sticking straight to them.

To join the halves together, I would typically just glue them together, but this time I wanted to test a technique I've not tried before - plastic friction welding. It sounds fancy, but can be done with a Dremel and a bit of 3D printer filament - see the clip below for an example. I used orange filament against the black used for the printed body of the demagnetiser - it's not the most aesthetic choice, but it does help highlight the plastic weld technique a bit more easily.


The resulting join is plenty strong enough - as evidenced by several spontaneous shock tests, and totally not by accidental dropping.

The demagnetiser works simply by waving a magnetised tool through the gap in the gadget, as seen in the video at the top. It won't necessarily remove magnetism entirely, but as you can see, it significantly reduces it.

Wednesday 16 November 2016

Magnetic Drill Bit Organiser

I'm forever losing drill bits, particularly the smaller ones in my workshop. While it's very much a "first world problem", the delay it causes to a project's schedule can be a huge pain, so this project uses some magnets from old dismantled hard disk drives.

Be warned - these magnets are very strong - putting them near your bank cards or anything else that's sensitive to magnetic fields is probably a really bad idea.
The plan is to magnetise a steel bar with the old hard disk magnets, mount it to the wall near my drill press so that I can keep drill bits and other small metal objects nearby and secured, and hopefully not lose as many.

The build
I started with a pine slat reclaimed from an old bed frame.

I didn't have a specific size in mind for this project, but the steel I purchased came in 1 metre lengths, which seemed a bit much, so I halved it and decided to base it around a 500mm steel bar.

The wood was cut to 55cm (allowing a 2.5cm margin) each side of the steel for mounting holes.

I measured out where the steel would sit, and drilled out a 3 grooves in the wood equally along where the steel would sit (so that the steel would cover the grooves).

In order to make the hard disk magnets fit within the boundaries of the steels measurements, some parts had to be cut down, which I did by using a grinder disk.

In hindsight this might not have been the smartest move, as the magnets would get hot from the friction and heat affects the magnetism of metal, and so this might have altered the effectiveness of the magnets.

In reality though, there was not a noticeable difference in their strength before and after trimming them.

The magnets were screwed into the wood so that they would sit in the drilled grooves, but the magnets themselves would sit in contact with the steel bar.
A photo posted by Anthony (@darkmidnight_diy) on

A slight groove is cut into the wood along the length of the steel bar, so that the bar will sit flush with the wood, and attach the bar to the wood with a bit of glue. The magnets will hold it in place while the glue sets.

The bar will be magnetized by the underlying magnets, although wiping the bar with another magnet can strengthen the field, it will always be strongest nearest to the magnets themselves.

Finally a bit of wood stain, mount it to the wall, and done.
A photo posted by Anthony (@darkmidnight_diy) on

Monday 24 October 2016

Oak Desk with Embedded TV/Monitor part 3 : Fitting the TV

This is a continuation of my build of an oak and glass desk with a 32" TV & computer built into it. The previous parts of the build can be found below.
Step 5: Fitting the TV

The TV that was volunteered for the project is a Samsung 32" LCD.

Removing the bezel revealed the actual dimensions of the panel and the frame which would need to be incorporated into the desk. To allow this whilst keeping the panel near to the glass I had to rout a border into the underside of the desktop - as mentioned in part 2.

Fortunately the frame of the TV included mounting holes. Less fortunately, they were in line with the thinner ledge that held the glass. It didn't seem wise to mount screw the TV to that thin ledge - it had enough weight to support with the glass alone, therefore I created small plywood mounts to go between the TVs mounting holes and the main body of the desktop.

A photo posted by Anthony (@darkmidnight_diy) on

In order to protect the user and the electronics from each other, I decided to keep the plastic back of the TV. This was simply held in place by several "mechanical retention blocks" (a fancy name for small offcuts of wood that wedged the back in place). This held the back securely, while also allowing access should it be required for maintenance/upgrades.

A photo posted by Anthony (@darkmidnight_diy) on

Step 6: Fitting the CHIP

Rather than have cables trailing to the TV from an input device, I decided to add a small single-board computer. The system I've opted for is the CHIP - a $9 dollar board. I backed their Kickstarter for a couple of CHIP systems and a VGA adapter board. The spare CHIP will surely find it's way to another project, but one of them and the VGA board are being used here.

After setting up the board and configuring it using a spare monitor, it was time to transfer it to the TV. I removed the back of the TV, and sat the CHIP there - there was sufficient space for the board, but I had to cut out a bit of plastic for the cables to run through (the VGA cable into the back of the TV, the power, which went to a phone charger in the desk's extension lead, and a USB extension lead which just runs out to the back of the TV so that I could connect peripherals if needed.)

Once the back was replaced on the TV, there's not really much to indicate it's anything more than a standard TV.

A photo posted by Anthony (@darkmidnight_diy) on

A photo posted by Anthony (@darkmidnight_diy) on

The next (and hopefully final step) will be to get some software on there.

Friday 7 October 2016

Oak Desk with Embedded TV/Monitor part 2

This is a continuation of my build of an oak and glass desk with a 32" TV & computer built into it. The first part of the build is here.

Step 3: Routing the back to fit the TV

Even with the plastic bezel removed from around the front of the TV, there's still a metal frame supporting the screen, which can't be removed.

Just sitting the TV against the back of the desktop would leave a gap of 28mm between the glass and the screen, which is enough to look a bit weird.

I routed the back of the desk to allow the TV to be positioned closer to the glass. This meant removing another 10mm from the desktop thickness, leaving the 'ledge' that the glass sits of at 18mm.

Step 4: Creating the legs

It made sense to use the section that had been removed from the middle of the desktop for the legs. However, I didn't want to just use the flat board, as it would just look lazy and reminiscent of flat-pack furniture, even when cut into 4 for the legs.

I also needed to give consideration to the cabling for the screen, which led me to the idea of splitting the wood into 8 pieces, and pairing them together to create the four legs. This would allow for the cabling to be integrated, and give a more solid leg aesthetic which better suited the style I was aiming for.
The 8 leg parts, ready to pair up and join

To allow for the cable to be run, before joining the last leg, I routed a groove in the joining sides. a hole was drilled through to the outer corner of the leg. This will be tidied up later to incorporate the hole in part of the design so it doesn't look too out of place.

A photo posted by Anthony (@darkmidnight_diy) on

Then the corners of the legs were shaped, and open mortises were cut to attach the desks skirt

A photo posted by Anthony (@darkmidnight_diy) on

A photo posted by Anthony (@darkmidnight_diy) on

A photo posted by Anthony (@darkmidnight_diy) on

With the legs done, I can move onto fitting the TV.

Friday 23 September 2016

Oak Desk with Embedded TV/Monitor

I've been after a new desk for a while, but never really been able to find one that fits the right combination of size, style and budget.

So I decided to build one myself, taking inspiration from a few videogames, where desks with built-in screens are commonplace:

In Splinter Cell: Blacklist (2013), the 'SMI' as it was known, was interactive and and provided a means of displaying menu systems to the player.
More recently, in Doom (2016),
the desk is merely part of the scenery.

The plan
As much as I like the look of the tables in the games, I decided to go with a more traditional look.

The TV (red) will be sunk into the table, with the electronics hidden by the apron (grey) part.

When the glass (blue) is added, it will line up with the table surface, creating a flush finish.
The underside - I envisage a frame, possibly a re-purposed wall mount (yellow/gray), supporting the TV. The pink block indicates where I will mount the computer.

I started with a block of oak kitchen counter top. The aim was to put the TV into the desk, then protect it with a glass worktop sunk into the wood.

Step 1: Routing the ledge for the glass

A photo posted by Anthony (@darkmidnight_diy) on
The counter-top is 38mm thick, and has substantial weight to it. The plan was to route 10mm deep into it so that the glass would sit flush with the rest of the wood.

The glass was centered on the table and marked up. I'd only be routing the ledge, I'd be cutting the middle part out entirely, to make room for the screen, so it didn't make sense to rout all that.

I also left the corners - once the middle was removed I'd use a forstner drill to do those, to ensure a nice round corner.

Step 2: Cutting out the middle

A photo posted by Anthony (@darkmidnight_diy) on
It would be a shame to waste the large chunk of wood from the middle, so I thought I'd use it to create the legs which meant I had to remove it intact.

I did this by using a circular saw to plunge-cut on each side, using the routed ledge as a guide, then using a jigsaw to finish the cuts on each side, allowing the middle to drop out (which of course had to be controlled, leaving it unsupported would likely have caused the wood to split when the majority of support was gone).

With the middle removed, I could finish the corners of the ledge using the forstner drill.

A photo posted by Anthony (@darkmidnight_diy) on

The next steps are to build the legs and mount the TV.

Wednesday 7 September 2016

App Update - Soundboard Version 1.7

What's New
  • DTMF Tone generator
  • Bug fix - playback volume level didn't change after initial set, now fixed.
  • Bug fix - Text-to-Speech playback ignored the playback volume level, now fixed.


On open the user will be presented with three buttons to load the following sections. or alternatively swipe between them:
  • Load files from Storage - This will load the regular soundboard as in previous versions and display the files in a list ready for playback. Note, if you swipe across to the soundboard screen from the start of the app, you will need to select Load from the options menu to populate the list.
  • Generate speech from Text - This will load the text-to-speech interface, where they can enter text and play it back to inject custom phrases into their soundboard.
  • DTMF Tones - This new feature allows you to generate DTMF (dual-tone multi frequency) tones - which are the noises generated when pressing the numerical buttons on a telephone keypad. Useful for, say, messing with annoying robocallers.
As with all my apps, it is free, and as such, I am not in a position to offer any kind of official support, so use entirely at your own risk.
If you have any trouble with it, then feel free leave a comment or tweet and I'll try to help as and when I can, but I make no guarantees.

Thursday 4 August 2016

App Update - Bluetooth Macro Input v.1.5

What's New
  • Command support - now send keystrokes for non-character keys - function keys, CTRL, ALT, etc.
  • Bug fix - Bluetooth no longer connects on application load - this prevents some crashing on open. Connection happens when the first bit of text is sent.
On first run, use the menu button, select settings from the menu and set the options you wish to use.

The most important settings to choose here are "Use Bluetooth Connection" and the bluetooth MAC address for your device. If you do not set a directory for storing your macro files, the default directory is a folder called "BluetoothMacroFiles" under your devices storage location (e.g. /storage/emulated/0/BluetoothMacroFiles).

Once that's done, you can swipe between the two main screens. The first is the voice recognition screen. Tap the button, speak, wait for Google voice recognition to process your speech and a series of possible options are presented.
Tap your chosen option and the device will attempt to send that text through to the bluetooth adapter.

The second screen allows you to select a text file from the menu and send that via bluetooth. The new functionality allows you to define keystrokes for non-character keys - handy for sending commands. For example, a text file containing the following:

{F11}Hello World

will 'press' the F11 key, and then type "Hello World". The extra keys you can type in this manner are:
  • CTRL
  • ALT
  • TAB
  • ESC
  • HOME
  • END
  • LEFT
  • UP
  • DOWN
  • F1
  • F2
  • F3
  • F4
  • F5
  • F6
  • F7
  • F8
  • F9
  • F10
  • F11
  • F12
The arduino sketch adapter I use with the app is detailed here, and the hardware is a Pro Micro with a simple Bluetooth-to-Serial adapter.
In order to get the command functionality working I had to amend the arduino sketch - revised version below:

void setup() {

void loop() {
  if (Serial1.available() > 0) {
    byte inChar = Serial1.read();

As with all my apps, it is free, and as such, I am not in a position to offer any kind of official support, so use entirely at your own risk.
If you have any trouble with it, then feel free leave a comment or tweet and I'll try to help as and when I can, but I make no guarantees.

Get it on Google Play

Previous Versions
The original app
First update

Saturday 28 May 2016

App Update - Soundboard Version 1.5.1

What's New
  • Text-to-speech support added to enable use within the soundboard.
  • Intro screen provides more detail about usage, front screen button auto loads file list on main soundboard.

On open the user will be presented with a two buttons, one will take them to the new Text-to-speech interface, where they can enter text and play it back to inject custom phrases into their soundboard.

The second button will load the regular soundboard as in previous versions, but will automatically load the files into the list (no need to select Load from the options menu).

It is also possible to swipe between the screens as well, so pre-recorded audio can be mixed with TTS-generated speech.

Note, if you swipe across to the soundboard screen from the start of the app, you will need to select Load from the options menu to populate the list.

As with all my apps, it is free, and as such, I am not in a position to offer any kind of official support, so use entirely at your own risk.
If you have any trouble with it, then feel free leave a comment or tweet and I'll try to help as and when I can, but I make no guarantees.

Tuesday 15 March 2016

New App: Soundboard

My latest Android app is now available on Google Play.


A simple soundboard application. Save some MP3 or OGG files to your phone, load up the app and play them at the touch of a button.

Tap the file names to play

To keep the sound playback levels constant, the app allows you to set a volume level independent of the current volume. On playback, the app sets the volume to that level, plays the sound clip, then returns the volume to it's previous level.

Designed to be used with phones using an adapter such as the one described in my previous post, the app also works well with Xbox Live headsets (Xbox 360), and in theory should work with any device you're capable of connecting your phones audio output to.

The app was built for and tested on an HTC One M9, but should work with any recent flavour of Android.

Initially, copy the audio files to your devices storage, into a directory called SoundboardFiles.
Open the app, hit the menu button and select load, and you'll get a list of the files as in the first screenshot above.
Go to preferences in the menu and you'll be able to choose whether or not to dynamically set the volume level on playback, and set the volume level if you so wish.

Going back to the main screen, simply tap the filenames to play the file (the app will deal with the volume adjustments automatically.

The volume control menu
If you're struggling to find audio clips to use in the 
See this post for a guide on creating sound clips from YouTube videos and other online sources.

As with my other apps, it is free, with a simple ad banner at the bottom of the main screen.
As such, there is no official support, although I will respond to any comments via this site or twitter as best I can.

Saturday 5 March 2016

Audio interface for VOIP phones and XBox Live

An unintentional (but useful) outcome of this project is that the connector used in this project is the same as the one used on Xbox 360 headsets, so this same device could be used to inject audio, such as a soundboard, into your in-game chat.

Original post below:
I got asked to build another phone audio interface for a colleague who spends a lot of time on the phone and wanted a way to play back pre-recorded audio to save repeating himself.

Unfortunately the existing one I build before is for traditional POTS (plain old telephone system), but the office uses VOIP phones.

I don't have a spare VOIP phone to mess with, so had to look at other options.

The normal headset jack
The phone has a headset port, using a 2.5mm jack socket, and the headsets plug has 3 rings. Given the the headsets themselves consist of just a microphone and earpiece, it stands to reason the pinouts are mic, speaker, and ground.

I don't have the actual pinout for this particular brand of headset, but I have worked with similar ones in the past and typically the tip is the microphone, ring is speaker, and base is ground.

I don't have one of those connectors to hand, but found a stereo headset one from an old hands-free kit. That it has an additional ring connection (for the 2nd audio channel) doesn't matter, it'll effectively join up with ground anyway.

In addition to being able to inject audio into the call, we still need to be able to use the phone normally, so I've used an XBox 360 controllers headphone port to provide a passthrough for the phone headset.

The quick hand-drawn wiring diagram I used. An artist I am not.

Testing this circuit revealed a slight problem, having both the audio source and microphone connected resulted in the microphone becoming inaudibly quiet. In hindsight, this is likely due to the audio source being amplified and the mic not. A simple switch added to the circuit to allow quick switching fixed that.

Adding a simple switch at this point sorted the problem.

The finished adapter in the obligatory tic-tac box

Thursday 28 January 2016

Copying objects for 3D printing without a 3D scanner

Over the holidays I broke the smoke alarm in my flat. Not the smoke alarm itself as such, but the mount that held it to the ceiling. Judging by the amount of various adhesives that were on the mount, it looks as though a previous occupant had actually broken the mount, but bodged together enough adhesive to hold it tenuously in place until they left.

It still works, thankfully, but it's just hanging from it's power lead.

First of all, take photos of the object against a plain background. Ideally pick a background which contrasts well against the object that you're trying to copy.


Editing the image in GIMP/Photoshop
Open the image in a photo editor, and crop any unnecessary bits out the picture.

Create a translucent layer above the current layer, so that you're working on the new layer, but can see through to the photo.
Use the paths tool to trace around the object as best you can, invert the selection and delete the contents. This should remove all the surrounding background bits.

Use the paths tool a few more times to create the cut-outs you require - for example in my case it's removing the centre piece and the screw holes.
Then make the working layer opaque, and fill the outline shape with a colour.

Save and export this image as a PNG.

OpenSCAD is meant to be able to import and extrude PNG files directly, but I've found it to be unreliable, so the below is a workaround that I've been using.

Converting to SVG using Inkscape
Open the edited image into a vector graphics editor, such as Inkscape.

Click on the image, right click and select "Trace Bitmap". Select "Edge Detection". If the image being used is simple enough, you can leave the default values, click OK, and then close the menu.

Drag the bitmap out the way (you can delete it now), and you should be left with an outline of the object. Fill the outline with a colour to make the object solid.

Save this SVG file.

Extruding the file in Blender
Open Blender.

Go to File, Import, Scalable Vector Graphics (SVG). Find the file and select it.
You may have to zoom quite far in to see the imported object.

Select the object and move it slightly,  you'll see a second outline object that gets left behind. Click on the outline object and delete it, you don't need it here, then replace the rest of the object.

Next we need to set the units of the object, so that we can scale it properly. Click the Scene properties tab on the right, and select Metric or Imperial from the units section.

Next, we scale the object.

Press N to bring up the information about the object, and get the dimensions.

Set the X and Y scale here, but for the Z axis we need to extrude the flat image into a 3D object.

To do this, go to the right hand side and select object data, geometry, extrude.

In the case of my project, I added a couple of extra objects to recreate the latches which were broken off the original mount.

Once this is done export to STL and you have a file ready to send to the 3D printer.

Left, the original broken mount, and right, the 3D printed replacement.