Sunday, 15 December 2019

How to set up a PiHole with PiVPN and DNS-Over-HTTPS

 This tutorial has has been updated! Please follow the new version here.

Saturday, 23 November 2019

DIY Drone Update #1 - Starting from the Very Beginning

I have always been interested in aviation and Remote Control technology, and when I recently visited the World Science Week festival in Brisbane and saw the racing drones military personnel use, I was instantly intrigued.
Over the last couple of months, I have been attempting to build an FPV (First person view) racing drone for myself. I have not completed it yet, after almost 3 months, due to slow shipping and broken parts. I should have posted this a while ago, but here is what I have done so far:

After a few weeks of researching, I came up with my final parts list:
Frame: Link
Flight Controller: Link
Motors: Link
Electronic Speed Controllers (ESCs): Link
Video Transmitter (VTX): Link
Camera: Link
Video Receiver/ Headset: Link
Transmitter and receiver: Link
Battery: Link

This is most of the stuff I needed to get started. I also needed a battery charger (Link) and a power supply for the charger, which I made out of an old desktop power supply (PSU). To plug the battery into the charger, I needed a special cable (Link). I also needed a cable to plug the battery into the flight controller (Link)
The DIY Power Supply and Charger (not as dangerous as you think)

I first received the flight controller, frame, VTX and camera, which I assembled by soldering the wires to the flight controller and VTX. I then plugged it into my laptop, turned on my headset and checked to see if it was transmitting video. Once I found the right channel, I got an image. Then, I opened Betaflight Configurator (Link) and added some more information to the On Screen Display (OSD), which allowed me to see altitude, speed, direction and battery voltage.
Betaflight Configurator
As of writing, I have received all the parts except for the replacement for my broken motor.

New posts will be written as parts arrive and are assembled.

Please leave a comment if you have any feedback or questions.
My other personal updates can be found here, and DIY Drone updates can be found here.

Sunday, 4 August 2019

Personal Update #1 - 3D Printer Repairs and Upgrades

I recently finished repairing and upgrading my Anet A8 3D printer, and thought I'd share some in-depth information about the build here.
The assembled printer
The process has taken around 6 months and nearly everything has been upgraded. This includes:
  1. The hotend was upgraded from the Anet stock to the Trianglelab V6,
  2. The extruder type has been changed to a bowden, which means the motor is mounted to the frame and not the hotend carriage, allowing faster and finer movements, as well as less strain on the X axis motor,
  3. The extruder motor has been upgraded to a Trianglelab NEMA17 48mm stepper motor with a 0.9 degree step, which allows for even finer control over extrusion,
  4. The extruder gears have been upgraded to the Trianglelab BMG clone, which has easier filament insertion, higher quality gears and a great gear ratio,
  5. Heatbed glass was dropped and then replaced with a magnetic bed, which allows the print bed to be removed and flexed to easily un-stick prints.
It is a long list, but that is still not everything. Something had to go wrong when I was replacing this many parts. The main issue was the power supply. Anet stock power supplies are notorious for being dangerous, as there is only a thin piece of plastic between pins and the metal housing. It finally decided to die, and go out with a bang, literally.
I turned it on a few months ago to nothing. Thinking the mainboard was dead, I bought a new one, going from version 1.5 to 1.7 of the stock Anet board. Once this arrived, I wired everything up and it still didn't turn on at first, only this time it eventually came to life. The only problem was that the power supply also began to start throwing large sparks. I instantly turned it off, and ordered a replacement, which ended up being a HP DPS-600PB 12V server power supply. Once it arrived, I had a great guide which showed me which pins to connect to force it to power on. Once I soldered the right pins, it worked flawlessly, albeit loudly.

Once I had all the parts, it took me an entire weekend to assemble.

The final issue I encountered was not having long enough screws to account for the higher nozzle because of the new bracket. I ended up getting some 50mm screws which worked perfectly, except for that they were so long they hit the frame and prevented the bed from moving properly. To overcome this, I raised the extruder even higher and used some nuts to allow the springs to be 'long enough', by putting a gap between the bed and the spring. This worked great, and I now have even better adjustablility for levelling the bed. 
The spring and bolt bed height setup.
Once I had the hardware set up, I needed to configure the software. I uploaded marlin to the new mainboard and then read that I should calibrate the esteps, which is how many steps of the stepper motor represents 1mm. Mine ended up being around 800.

Now that everything was configured, I ran a test print using my existing slicer settings, albeit a lot slower. It was a total failure at first. The first print didn't stick and the second one didn't seem to extrude. Third time luck I was, as I successfully printed 3/4 of a calibration cube until the software on my laptop crashed and cancelled the print, but what was printed was in acceptable quality for a first successful print. 
The first print
This is a long post, but I wanted to leave all the details here if anyone else was doing a similar upgrade and so I have a record of what I did.

Please leave a comment if you have any feedback or questions.
My other personal updates can be found here

Saturday, 15 June 2019

Crankshaft Technology Update #5 - Micro:Bit sessions now available!

A local student recently asked me for some assistance with his Micro:Bit code for an assessment. I was able to help him, and I also learned how useful Micro:Bit's can be in education. They're cheap, easy to code and scalable for any ability. This is why I have purchased one, and sessions are now available these holidays and next term!
The Micro:Bit board
The benefits of these boards are that they have physical outputs and inputs, including LED's and buttons. I have found that, even with myself, hardware that you code is more interesting than text or shapes on a screen.

Another benefit of the Micro:Bit is that it has many different ways of programming it. These include MakeCode, a Scratch-style block-based language, MicroPython, a text-based language that is based on Python, a powerful scripting language used throughout the technology industry, and Arduino. This allows the board to be used with many age levels and it can be scaled to suit the ability of the student.
MicroPython editor
MakeCode editor

All of the code editors and tutorials are web-based, and work on any computer that you can connect the Micro:Bit to and has a web browser (all modern computers), so code can be worked on at home!

If this is popular, I would like to buy another, which allows even cooler programs to be made, including having the boards communicate and control one-another.

To reflect these additions to the program, I have updated the website with some more information about the board. The page can be found here.

Please leave a comment if you have any feedback or questions.
The other updates for Crankshaft Technology can be found here

Monday, 15 April 2019

Crankshaft Technology Update #4 - Another new website is live!

Over the past day, I have been working on finishing the home-made Up until now, was built using Google Sites, but I wanted to build on the success of the other I have programmed this new site in HTML and CSS using a similar style to the other site.
The new
This new site includes all the content from the old site, but I have added information about Small Basic, a programming language that I am now using with select students who have advanced past Scratch.

It has taken me a while to finish this as I was experiencing problems with the scaling that allows the site to look good on all screen sizes. The old menu was a list of links down the side, that didn't scale. I have now included a drop down menu for easy cross-platform navigation.
The old layout
This change now means I have transitioned away from Google Sites and have now created all my own websites except for this blog, which is hosted using Blogger.

The new website can be accessed here.

Please leave a comment if you have any feedback or questions.
The other updates for Crankshaft Technology can be found here

Monday, 25 March 2019

Crankshaft Technology Update #3 - Celebrating 1 year!

As I was looking through my Scratch files today, I noticed one from April last year. I then realised, "It's nearly been a year since I started!" I then looked into it further, and realised that the first class was on the 22nd of February! So it's a bit late, but it has been over a year since I started teaching programming to local students. It has been a huge success, lots of fun, and I couldn't have done it without the lovely local parents who allowed me to teach their children an important skill.

Please leave a comment if you have any feedback or questions.
The other updates for Crankshaft Technology can be found here

Sunday, 10 March 2019

Crankshaft Technology Update #2 - The new website is live!

Over the past few weeks, as I started learning HTML again, I decided to use one of the tutorials from school to make a new custom website for
I started from scratch and coded the entire website, from the content to the layout. This has taken many hours to complete, and will take many more to perfect.
The main features of the website include:
  • A live Facebook feed of posts
  • Links to the blog and the coding site
  • An email us button
  • Adaptive layout and size relative to screen size
Using what I have learned from this site, I am now working on a similar solution for, but it is still in active development.
The framework is complete, but with all the extra elements, it is much harder to make it adaptive and look good on both mobile and desktop browsers.
If you would like to check out the beta version of the site, it can be accessed at

Please leave a comment if you have any feedback or questions.
The other updates for Crankshaft Technology can be found here

Monday, 4 February 2019

Raspberry Pi Alarm Clock Update #4 - Internet Radio and Open-Source!

School has been kind on homework, so I have had time to make some HUGE advancements in the project.

Firstly, I have setup the PiClock switcher script with a day and night theme.
Night Theme (Above) and Day Theme (Below). They are green and blue respectively
Also, it has now replaced my Google Home Mini as my alarm clock. It has been setup for a few days and has worked well except for the alarms being strangely quiet, but still audible. I attempted a fix but it kept crashing. Despite this, I did notice that it keeps alarms between reboots, which is handy.  

Just this weekend I setup the coolest and most time-consuming feature, internet radio. I have currently setup one radio station which plays when you say 'start action 1', which when used with routines, can be changed to something like 'custom radio', which is what I use. 
It is currently setup to play until it hears the hotword again. It requires a custom action in the Actions Console and code on the Pi (instructions: ) for when it receives the command, which then executes the VLC library (python-vlc) which plays the stream. It could also be utilised to play local music files, but I have not tested and implemented this. I hope to set it up in the future to play until I send it the stop command, even after queries, but I ran out of time and concentration and it kept crashing. It will only take another weekend. 😉

Finally, I have setup a GitHub repository which I will upload my code and more detailed instructions to for this project. It can be accessed here:

If you have any feedback, questions or answers to my problems, please leave a comment.

Check out all the posts for this project here.

Sunday, 3 February 2019

Crankshaft Technology Update #1 - Classes have begun!

Today was the first lesson for the term, and was a huge success. The class ran smoothly and was very productive, with a maze being created and working by the end.

If you are interested in signing up and are located in or near Moggill, Queensland, Australia, check out the website at and fill out the form on the Contact Us page.

Tuesday, 29 January 2019

Raspberry Pi Alarm Clock Update #3 - Troubleshooting and Returning to School

I am writing this update as I am returning to school and won't be as focused on this project Future updates will be posted, but here is a summary of everything that has occurred since the last update.

All of the parts have arrived except for the screen which has allowed me to setup and test the "final" hardware, including the microphone, speakers with amp, and all of the code.
The amplifier makes the speaker REALLY loud, and the microphone is adequate, but I hope to upgrade to a MEMS microphone.
The (almost) complete hardware, including Amp (top), Microphone (right), USB DAC (Left), Raspberry Pi (Far Left) and Stereo Speakers (Bottom)
The first problem I encountered was the microphone being used by another unknown process that took me a few hours to find and stop, which has not started again even after reboots. Once this was fixed, I was able to successfully start the Assistant script.
After that, the speakers gave out a persistent buzzing sound that was very annoying. I first looked into how to stop it, but couldn't figure it out. The next method I discovered to combat this was to use a standby pin built into the Amp which when grounded mutes it, and when not it plays audio. Using this idea, I found a file in the OS (thanks to stack exchange) that states whether or not audio is being sent to the speakers, which I then used in a script which constantly reads this file and mutes the amp unless there is audio being sent. Success! The buzzing still occurs in the background when audio is playing, but this will do until I figure out to fix it.
The standby pin used to prevent buzzing (Labelled SD)
A final note is that I clogged my 3D printer while printing a part for someone else which prevented the extruder motor from rotating which in the end killed it. This means I can not print the top of the casing until I can replace the whole extruder. This will delay the final product.

The list of future software additions to this project include playing a sound when the Assistant is listening and thinking, and eventually getting the Assistant's response as a visual text output on the clock face. Also, I hope to be able to adjust the screen brightness according to time of day and if the assistant is interacting with the user or not. This is all for another update.

If you have any feedback, questions or answers to my problems, please leave a comment.

Check out all the posts for this project here.

Friday, 18 January 2019

Raspberry Pi Alarm Clock Update #2 - Modelling the Casing

This is a quick update about the progress I made today on the casing.

I have finished modelling the casing to the best accuracy I can get without having all of the components to measure. It took many hours to model the top portion that will house the speakers, microphone and screen as well as cover the Raspberry Pi. It wasn't made easier by the many weird changes and "glitches" (aka occurrences I didn't understand or want) that occurred when I changed some dimensions, including sections of the models disappearing.
The current state of the entire casing, represented as a wire frame. (Above)
The top (above) and base (below) of the casing
This is all I was able to do today, as the rest of the components haven't arrived as of posting. I will release more updates as more parts arrive and changes are made to the model.

Check out all the posts for this project here.

Thursday, 17 January 2019

Raspberry Pi Alarm Clock Update #1 - Starting Software

This post is the first in a series over the next few weeks (maybe months) where I will document my current project of building a Raspberry Pi powered Alarm Clock with PiClock and the Google Assistant.

Because I have had the Raspberry Pi for a while, I started by connecting it to my computer and setting up the software. I started by setting up PiClock, which was a breeze as it had clear instructions on installation and setup. The Google Assistant was the hard part.
PiClock running on my Computer (Screen 1 & 2)
Both PiClock and the Google Assistant run in Python, so it will be easy to (later on) add the transcript from the Assistant to the alarm clock screen, as well as raise screen brightness when listening/ responding, etc.

Over the past few weeks I have been ordering and experimenting with the different components I will need to finish this project. In the beginning, I thought all I would need is a Raspberry Pi, a screen, a set of DIY speakers, and a DIY microphone. The first 2 parts have been as simple as they sound, but the speaker and the microphone have taken lots of time, as I have learned more than I could have imagined about them. Mainly, that speakers and microphones need amplifiers.
DIY Microphone (Left) and DIY Speakers (Right)
They both worked, it's just that the microphone was so quiet i would not hear it at even the highest volume, and I could hear the speakers at full volume, but they were still not the advertised 79db.

While I'm waiting for the screen, speaker amplifier board and microphone to arrive, I have begun modelling the case I am going to print in my wood filament to make it look like an alarm clock. This will save me time when the parts arrive as I'll only have to change dimensions, not create the entire object model.
Unfinished base of casing
I will post updates whenever I work on aspects of this project, but it will take time to complete. The thig with DIY electronics though, is that when it works in the end, you have gained 3 things. Knowledge, experience and a useful device. 😉

Check out all the posts for this project here.