Pragmatism in code

Waxing lyrical about life the universe and everything software related since lunchtime 2006.

boxedcnc: EMBROIDERY CNC: first completed work
Cool project to make a CNC embroidery machine from a regular sewing machine
526 Hits

DIY CNC Milling machine 2


I previously waxed lyrical about the Sienci DIY milling machine in DIY CNC Milling machine. Well since that particular post I have received pretty much all of the parts I need to build my own (improved) version.

The biggest diversion away from the original Sienci machine is that I have decided to use a standalone dedicated controller instead of the Arduino Uno used by the original Sienci. I have coupled this with some 3.5amp stepper drivers and some 2.8amp Nema 24 motors. Unfortunately the motors were lost in transit and the vendor refunded my my money. So having to re-order motors I managed to find a set of slightly larger Nema 24s that ran at 3.5amps (and 3.1nm) which are the maximum that I can run on the stepper drivers that I purchased. (The stepper drivers will peak at 4amp but we should be looking at working to a max duty cycle.) At any rate the larger Nema 24 motors are much bigger than the previous Nema 14s used by Sienci and offer obvious advantages when milling aluminium an other harder materials.

Continue reading
708 Hits

Un-bricking a Sonoff S20


A while ago I invested in a bunch of home automation stuff to augment my Google home. I opted on the Sonoff devices as they are by far the best value and also come with Aussie compatible plugs and sockets. Unfortunately one of the units was DOA.

In a bid to try and resuscitate the device I decided to have a go at re-flashing the firmware with the updated Tasmota firmware. The Tasmota firmware is a third party developed firmware that adds a bunch of features to Sonoff devices, including removing some communications limitations. This last feature is one that I'm particularly interested in installing into some other 4.22mhz transmitters so that they become more usable (communications are very limited in the Ewelink app), so this initial experiment to see if the firmware upgrade works is a bit of a test. If all goes well I'll look to update my other Sonoff devices.

Continue reading
782 Hits

Relativ - Build Your Own VR Headset for $100 - Arduino Project Hub
Now this is a cool project. I have one of those VR headsets that you can put your iPhone into, but the main issue is that there is no easy pathway to using it as a monitor unless you jailbreak the phone. I tried in vain for a while to set it up so that we could play minecraft but had limited success. Other options seemed to be get an android device or a Samsung Galaxy. This on the other hand looks like it will do the job nicely
690 Hits

Home Automation Sonoff-Tasmota Sensors, LEDs Development Board, ESP12: 10 Steps (with Pictures)
Some home automation stuff for later digestion...I have been blown away by the capability of the Sonoff-Tasmota firmware for the Sonoff devices. These, combined with a Raspberry Pi loaded with Node-Red and a MQTT...
1125 Hits

Build your own Google Home using a Raspberry Pi
If you need a project for the Raspberry Pi you have lying around, you could always turn it into a DIY Google Home.
724 Hits

P38 Touch screen media player - Part 2


Following on from P38 Touch screen media player - Part 1 the Raspi touch screen arrived a week or so ago and I've been itching to see if it fits. I did a quick offer-up when it arrived and it looked as though it might be a bit small, so I've been keen to find out.

Tonight I removed the old screen and installed the new one. Unfortunately my suspicions were correct - the new screen is not tall enough and so leaves a gap at the top / bottom. The issue is simply that screen aspect ratios have changed since the P38 was a current model. The old 4:3 aspect ratio has now been superceded by 16:9, or wide screen / letterbox aspect. The result is that it is like looking at a widescreen movie on an old TV - you get a black stripe at the top and bottom of the screen - or in this case a gap.

Continue reading
683 Hits

DIY CNC Milling machine


For a while now I've been thinking of building a small CNC mill so that I can mill aluminium stuff. For the most part I want to build it so that I can mill cylinder heads and pistons for aircooled VWs, which is another passion of mine (after software). I already have a large manual mill which replaced a small mill which I was consequently considering converting to CNC, but then stumbled across a kick-starter project called the Sienci Mill. 

Continue reading
1012 Hits

Geekism versus Narcissism

Traditionally I've always blogged about software related stuff here at and left blogging about my other hobbies for one of the many other sites that I have (or used to have).

As time has gone on I've found that I have less time to run a multitude of sites, especially as in general none of the sites are what you would consider successful. This in part is my own doing as I have always refused to try and leverage the sites popularity to earn money from advertising, instead preferring the nice clean look of an ad-free site. And so over time, my available time to contribute to keeping sites updated had dwindled and so many of the sites have simply faded out, to be no more.

Continue reading
693 Hits

Sierra OSX media button issue

For some reason the devs responsible for the latest OSX update have decided that the media buttons should control whatever media player last had focus. This means that they now seem to have a mind of their own and do not solely control iTunes, which is a great big PITA if you ask me. It's evidently not a bug, but a feature - lol

Fortunately Milan Toth has written an app that reverses this annoying 'improvement', which you can download from the link below.

If, like me this 'improvement' has stuffed up your work-flow, please feel free to do as I did and let Apple know using their feedback form ;)

Continue reading
736 Hits

P38 Touch screen media player - Part 1

P38 Sat Nav

I always wanted the sat nav unit for my P38, but being an optional extra that wasn't originally supplied with my car I had to make do with a cubby hole instead. I did consider installing one a few times, but the cost of the unit and the fact that it is now 20 year old tech with outdated maps and bitmapped graphics just wasn't worth the effort, even if it did mean I could hack in a reversing camera. So a recent stumble across a cheap sat nav head unit whilst looking for a new drivers door lock seemed like an opportunity not to be missed. The sat nav unit is missing the box of tricks that contains the actual brains of the unit, but as I am not planning to set it up in its original configuration, that is unimportant.

My plans for this unit are to junk the internals and replace the screen with a small colour touch screen that interfaces to a RaspberryPi running some form of media player. I currently use my iPhone to play tunes via a bluetooth-FM adaptor. Previous to this I used the blackbox CD - iPod adaptor but now that the connectors have changed that's not an option any more. If the media player can also provide some additional functions such as Sat-Nav, Phone controls and maybe even a reversing camera, that'd be great, but they're not essential.

So the next steps are to wait for the unit to get here so that I can determine what size touch screen will work. Touch screens are cheap and plentiful from aliexpress just need to know what size. The touchscreen will need a HDMI input or adaptor to be able to interface with the Raspi, some also come with a dedicated composite input for a camera that is automatically selected when the input is detected. I already have a Raspi unit and from a quick google it seems like Xbian is a common choice for the operating software so will take a look at that too. The tricky part will be figuring out how to get it to interface with the audio system. I suspect that the easiest way to do this is to hack the black box iPod adaptor.

More to follow...

965 Hits

Fusion 360 and OSX magic mouse


If, like me you are a die-hard Apple fan you have no doubt embraced all of Apples products including the sometimes not so magic, Magic Mouse. Whilst it's a great piece of design, the touch sensitive top is not for everyone (my wife hates it). It also has another annoying limitation when used with products like Autodesk's Fusion 360 - it has no middle button.

Not having a middle button makes navigating with Fusion 360 and absolute PITA, panning and orbiting require several clicks to enable, use and then disable the pan and orbit functions which does not make for a particularly smooth workflow, in fact it is downright annoying. Unlike Fusion 360's predecessor, 123Design, there is no orbit on the right click as this action has been replaced by a shortcut menu, there is also no keyboard shortcuts available to enable pan and orbit functions.

All is not lost however as there is a great little system tray app that solves this problem (and probably a few other problems that I have yet to discover). MagicPrefs is an app that extends the magic mouse's functionality by allow you to assign gestures and taps to trigger custom functions, including, yes you guessed it - a middle click. With the middle click option enabled Fusion 360 all of a sudden becomes much more usable, whats more it is absolutely free.

You can download it from the magicprefs website - 

1573 Hits

DIY Reflow oven

I need to make up some SMD boards and have been looking for a low cost reflow oven.

Came across this today, made from a halogen lamp. So thought I'd save it here for later reference.



Continue reading
1341 Hits

Order of magnitudes

So many of you will be familiar with the site as a result of the plugins and modules that I used to offer. Whilst I have restored the sites main content, at this point I have not yet restored the web-store. 

Whilst selling plugins and modules may seem a lucrative endeavour, the amount of resources required to develop and maintain the code is not trivial. The support request expectations for $3 plugins is often surprisingly unreasonable. The support ticket system takes a lot to maintain, especially when it is only me providing the support, and there are subscriptions to maintain, often costing orders of magnitudes more than the plugins actually bring in. All of this was okay when I had time to spare, but being relatively time poor (I work a LOT), there simply is not enough time in the day to do everything that I want to do.

So at this point I am not sure if I will reinstate the store. (I even toyed with the idea of not reinstating the site, but I came to the conclusion that I had too much of a soft spot for it and so it needed to live again). I have previously toyed with the idea of simply releasing all of the plugins for free, and this is probably the path that I will tread but for the time being I am happy to simply have the site back up and have somewhere to talk tech related garbage.

If you have interest in a particular module or plugin please let me know in the comments below.

1596 Hits

Recovering InnoDB tables from database files.

After a hiatus of several months the site is back up. The site was unfortunately victim to some script kiddies and fell under the scrutiny of my hosting provider. After a failed attempt to rewind to a previous backup, which turned out to be corrupt, I decided that rather than spend a bunch of time that I did not have spare trying to fix it, I would simply turn the server off and get back to it later. Of course I did not consider that 'later' may stretch to be several months but that's just the way it panned out to be.

So I finally got some free time and decided to take a look at getting the server back up and running. The original issue with the original server was that due to a kernal issue with the server itself, the backup service provided by my host generated corrupted backups, so reinstalling from a backup invariably led to a bricked server. I spent some time working with the host to get the server repaired and whilst I did get a server that I could SSL into I unfortunately did not get any further as the SQL service would not run due to toasted database files.

So with renewed enthusiasm to get the site back up the first thing I did was to create a new server instance. Might as well start afresh, especially with the kernel issue - a problem I did not want to walk back into. I then grabbed all of the database files from the original server which were located at /var/lib/mysql/"DB-Name"

MySql is great in that you can simply physically copy the files from one database to another and the database will become available, however there are some caveats to this. 

Continue reading
1755 Hits

Hiatus Haiku

A passage of time gone.

DeeEmm has been away from here.

Set to return soon.


1592 Hits
1 Comment

Ticket system back up and running

Apologies to those of you who have trie to access the ticket system and were unable to lodge new support tickets. Unfortunately there was a bug in the latest version of the Ticket System software that powers the support section of the site which caused an issue on the 'New Ticket' page. This issue has now been remedied. 

1332 Hits

New JomSocial and Hikashop Plugins

New JomSocial and Hikashop Plugins

I've been busy tidying up and publishing some of the plugins and extensions that I use across my sites. Most of the plugins are simple extensions for JomSocial that add a bit of extra functionality that is not included within the core but there are also a few for Hikashop and Virtuemart as well.

I still have some other extensions and components planned for release over the coming weeks / months and will release these as they are finalised and tested. Most are simple but there are also one or two fairly complex components that I may also decide to publish.

So far the following plugins are available for purchase within the webstore:


Continue reading
2516 Hits

OSX Maverick stikes again? Exchange Sent Mail Dissapearing

OSX Maverick stikes again? Exchange Sent Mail Dissapearing

I've been a proponent of Mac and OSX for some time now having been attracted to its simplicity and the 'it just works' way that it operates but since the Mavericks update some things simply don't work. The biggest issue that I have found is that apples newly written USB drivers will not connect to my Arduino, a major PITA when it comes to uploading a new program. The solution is to disable the OSX drivers and install the OEM version which worked for me and seems to work in 95% of cases. Why Apple have decided to move away from the chipsets manufacturers drivers I will never know although I suspect that it may be due to an incompatibility that causes Kernel Panics as I have personally experienced these since moving to the OEM drivers. This is fairly repeatable - hold down the Arduino reset button whilst uploading the program and your machine will likely go into an involuntary and instant reboot. The solution is of course simply not to hold down the reset button but as this is a common hack to get the program to upload you may have to suffer a few missed uploads instead. Not a massive issue, at least I can now communicate with the arduino again.

The most recent issue to hit me as a potential result of Mavericks is that sent email messages seem to disappear into the ether instead of appearing in the sent box as they should. This issue only recently came to light when I needed to find some previous correspondence. For reliability and ease of management I use a hosted exchange server to handle my work emails and OSX Mail as my mail client. What I found was that the last sent message in my sent folder was dated December 2013, the previous correspondence I was looking for was nowhere to be seen. I also checked the exchange OWA browser client but after looking there I also found that there were no recent sent mail messages stored.

After a short call with the exchange tech who advised me to use a client that they supported - namely outlook 2010 - he advised that the issue appeared to be related to the Mavericks update. For some reason the outgoing server had been changed - there were now two exchange outgoing servers in the server list. I changed the outgoing server to the other exchange server listed and sent a test message. Viola! the message was saved in the sent messages folder.

I'm not sure why or how the second outgoing server was added, It's definitely nothing that I have consciously done as the exchange account has not been altered since it was setup in 2010, additionally no one else uses this machine. I can only assume that as the tech  suggested it is related to the mavericks update as the last email date roughly coincides with the date that I updated. Of course I am happy to concede that it could be due to some other unrelated reason but knowing that I did not create the second outgoing server makes me wonder how it got there.

Continue reading
3617 Hits

Detecting soft 404's in Paul Irish's Infinite Scroll

Detecting soft 404's in Paul Irish's Infinite Scroll

Ive used Paul Irish's excellent infinte scroll on a number of projects before but recently found that I was having issues with ending the scrolling after the last items was retrieved on Hikashop. The issue is due to Joomla's error handling - instead of  returning a 404 'page not found' error response it returns a normal page ok response (200) - it can do this intentionally when it provides a useful user defined 404 error page but can also do this unintentionally as in this case. This behavior is commonly known as a soft 404.

As infinite scroll relies on a 404 error being returned when there are no more pages to stop further processing, the net result is that the scrolling keeps on going. Not a massive issue but one that results in an annoying animated icon appearing when you scroll past the end of the page.

In my opinion this is not necessarily the best way of detecting the 'end of the internets' as it assumes that the 404 error means there are no more pages. I'm sure we all know what assumptions usually lead to. By far the best way to determine if there is no more data is to check the actual data itself.

I initially tried looking at the length of the data returned but found that this was not really suitable as it contained the entire page and was really hard to separate the parts that I required although this is possibly due to my lack of javascript skills more than anything else. After some testing I found that instead of looking at the data length looking at the length of the child elements returned was the way to go. I this way I could detect when no more data was present.

Continue reading
1932 Hits