Arduino CNC Plotter

A CNC Plotter is a computer numerical control machine that is used to automate drawing.


To create a machine that can draw images and draw accurate images or text.

This project required an extension as it ran into a lot of difficulties and was a challenge for myself. I will tell you my progress through building it and what problems I faced doing so.


The project required:

  • 3x Linear metal sliders
  • 2x Stepper motors
  • 1x Servo motor
  • 2x CD frames
  • 1x 90 degree metal trim
  • 1x Arduino Uno 3
  • 1x L293D motor shield
  • 1x Pen holder (3d-printed)

Metal sliders, stepper motors, servo motor and CD frame were salvaged from three CD drives from Hobart College’s e-waste.

I started by opening three CD drives and salvaging the parts I needed. I then used the CD frames and used two nuts and bolts to attach it to a square angled metal piece which would be it’s frame.

Moving onto building the hardware, I attached the motor shield to the Uno 3, attached wires from the servo motor, and 8 wires which would later be soldered on the stepper motors to the correct ports. Using trial-and-error and researching the pinout diagram.

Soldering work was done to the two stepper motors, which took a long time. The CNC plotter was working! The last to do was add a working pen mechanism. I asked my teacher for advice and he suggested using a felt-tip pen and he lead me in the right way to the 3d file to print.

Finding the pen mechanism 3D file, I had Rob print it overnight and I attached it to the frame the next lesson.


CNC Plotter


There was no information on the internet for the best values to use for my specific hardware, so I had to go through trial-and-error to find the best variable values for the hardware.

I would log in Excel, for every change in variable and write its result, here is that spreadsheet.

Snippet of my excel spreadsheet

The printer can draw some wobbly lines, this is because of the pen holder is not fully stuck to the stepper motor.

Pen consistency is good, it will slide along the paper and won’t have big ink blots


  • Weak solders (wire would rip off with a gentle push)
  • Pen holder frame keeps falling off (attached using duct tape)
  • Grbl software cannot be ran at school as it requires administrator privileges, this was a large obstacle and it consumed a lot of time trying to find a work-around


My original goal was to have it play mobile games and click buttons and/or objects using a stylus pen. As I worked on the project it drifted to drawing images. I plan to expand on my original idea if I get more time on it.

I eventually found that the project was quite ambitious and it required two extensions. The entire projects hardware was a challenge to me as I have only ever programmed software. The framework took more time than I expected.

Learning to code in another language was fun. Using an Arduino for the first time was challenging but it has always been something I have wanted to toy with.

During this project, I learnt how to program an Arduino and use various programs, Arduino IDE, Inkscape and Grbl controller. I’m proud of taking the challenge on and I am happy with the result.

Acknowledgements and references

Inkscape, for converting Images to Gcode

Grbl, for controlling the stepper motors and drawing, for the pen holder 3d files


artelnjeru01, I., Munggaran, F., bajinra, D., & Grochoła, S. (2019). Draw Freely | Retrieved 25 September 2019, from

grbl/grbl. (2019). GitHub. Retrieved 25 September 2019, from

Projekt: Mini CNC Plotter aus alten CD/DVD-Laufwerken. (2015). Retrieved 25 September 2019, from

Project files

The arduino code to draw some simple lines can be downloaded here


TechnoPhage is a top down isometric post-apocalyptic sci fi role playing game, that takes place on a post-apocalyptic world where the player must survive outside the city walls. Outside the safety of the walls lie an unforgiving wasteland, filled with wild beasts, bandits and the TechnoPhage a  Nano-virus that changes any biological matter that is touches into a creature to further spread the virus and remove any threat that it spreads.

The main Aim or goal of this project was to learn more advanced game mechanics such as line of sight with if time permitted changing with different light levels. A dynamitic lighting system with if time permitted day/night cycle. and a dice based melee combat system and a way to stop attack spamming.

TechnoPhage 26 Aug

During the first weeks of development it was going well as i was getting through about one advanced game machinic a week which was my original intention. Since the project was going well I left the project few a weeks to work on anther major project and help people who weren’t going so well with there’s. This was not great time management as I ended up leaving the project alone for about two weeks. Spending about an afternoon to fix the project up and have something nice to show. The lesson we would start user testing I discovered that the game had not saved correctly on the USB. Some of the sprites where stretched and quite terrible to look at with broken hit boxes. But that was a small problem compared to the code that was broken. Most of the bandit AI was broken I was only got the health to work before having to redo nearly all of the player code as that was the code that had changed the pervious night.

But that’s not saying I did not learn nothing from this project. I had actually learned a lot from the project such as more advanced understanding of game maker language, sprite work and working on a much larger game project and the time management of a project. I had also done nearly everything I wanted to achieve in this project even thou it broke at the end. While I’m not super proud of what the final project ended as because I know I can do much better I’m still going to stick by it mainly what I learnt from it.

TechnoPhage as when uploaded

During the development of the game I discovered I few ways to do dynamic lighting and line of sight. The first dynamic light system I used was the game maker tutorial one but discovered that it was extremely system intensive. With a little research I came across a another way of doing the dynamic light system that was far less system intensive and still looked alright.

If I had more time to do the project I would tear the project down to its very core then build it back up to getting it to fix many of the problems within the core code and make the code have a more unified style and comments to allow me to quickly read what each part of the code does. But if I was given the chance to restart the project I would change my approach to it. One of the first things I did in the game was build dynamic lighting without truly building the core mechanics up fully. After getting the dynamic lighting working I kept working on more advanced and more advanced mechanics that eventually did not work well because the core of the game was not there to support the rest of the game.


TechnoPhage Major Project

Black Ops 4

Black Ops 4 is the latest game in the Call of Duty (CoD) series. It was released in 2018. It is made by the game company Treyarch and this game also has been using the same engine software called IW engine. It mostly has effects on the graphics and the engine was based on the original engine called the Tech 3. From what I can tell they have made major improvements

Fun factor

I have no hate towards this game I think it is average because some of the game modes aren’t my style. I love how there can be more players on one server than with the earlier CoD games. The max is 80 online players.

Control and game play

The controls are easy to learn. When you first pick up the game, if you don’t like the default controls you can fix them to your liking in your settings and it’s very easy to change them as well. The gameplay is ok not over the top dying off spawn like you did in the old CoD games such as Modern Warfare 2 and Black Ops 3.

In earlier CoD games there was problem with spawn control. Someone could just camp there and kill you as soon as you spawned back into the game.

In Black Ops 4 the reaction time is better than some of the early games when they were using the Tech 3 engine. It’s easy to level up from your first game you will be level 3 unless you’re really bad at the game.


The graphics have improved a lot from the older games because in the older games it was darker and some textures of the guns were way different. .

As you can the right hand picture we have more textures because you can see more of the gun on the right than the left and more features like buttons.

Sound is best with headphones because from my own experience without headphones you can get easily distracted from the game and then turn around to an enemy in your face and next minute you dead.


I think it’s an ok game and I might give it another go maybe someday but I don’t honestly know.


Trip to Insanity, Game

Only 10% of people can beat this game, can you?

Trip to Insanity, is a fun but difficult platforming game, developed by Miley and Tom.

The game has both single player and 2-player modes which are great fun for everybody, even if you aren’t one of the 10% who can beat it. There is even a hard mode for daring souls who like a challenge. The game has up to 7 single-player levels and another 7 two-player levels, which can provide hours of fun depending on our good you are as well as your partner. The game also as challenging puzzle in the two player mode which you and your partner.


– Challenging Puzzles
– Hours of content longer than portal one and two (depending on skill level)
– Simple but beautiful sprites
– 7 levels of single player content + a difficult hard mode
– 7 levels of two-player challenges
– Music (coming soon)
-Refreshing game mechanics different to other platformers but still fun

Trip to Insanity Game File:
Trip To Insantiy, Game Miley and Tom

Overall, I feel the finished product was successful and our goal was reached. I learnt in the process that time management and team work are probably the most important sills to have, especially when a product requires more than a single person.

Zombie Shooter

I made a top down shooter, almost.

The aim of this game was for it to be a top down shooter with weapons you can pick up and enemies you can kill. I also planned on attempting to create an inventory system but by the time I got to it I realised that I should have started with that. The other main objective was to work out a pause button and screen and cut scenes but again, due to lack of time/effort I didn’t complete.

Compared to what I wrote as a briefing, it didn’t as well as planned and you can clearly see that if you play the game. The cut scenes and the enemies aren’t that good, mainly because there are no cut scenes and the enemies don’t really move yet. But they exist and they look at you if you get to close.

I did happen to achieve a pause button and it does do what it is supposed to. The guns are another working aspect of the game and I now know that there is an easier way to do the guns and the sprites and practically everything.

Another thing I leaned was that I set way to high of expectations for myself. going into this I thought it would be easy but by the looks of the final result, I had no idea what I was thinking.

What worked.

  • Guns
  • Zombie range of sight
  • Boundaries

With what I know now, I would improve a lot of things. For example.

  • Zombie sprites
  • Zombie movement
  • Bullet and firing coding
  • Animation

Captures in the testing/development phase –


Inspiration/concept photos –

Image result for enter the gungeon   Preview×32-tiles


I’m making a point to say that Kessler did help me a lot when I was in trouble and is also the reason why I know how to do a lot of things easier now.

Not Geometry Dash


Not geometry dash is a game where you must use complete focus and concentration to jump over blocks and spikes to reach the end of each level. It sounds easy but don’t be fooled, the game has been designed to be as difficult as possible in every form, even getting past the third level has proved a daunting task. The controls are simple, space to jump and the rest is up to you.


The finished product of our game was not quite what we imagined it to be, our original idea was to basically create Geometry Dash and throw in a few ideas of our own along the way, however, our own ideas started to fade when we got too caught up in trying to make the game. The base game we made was a good design but we lacked in terms of real ideas. We are happy with the finished result, although we do wish we could have spent more time on it. There were one or two ideas that we could not figure out, such as the rotation of the character. As a result we were forced to leave these ideas behind. If we had more time to work on the game we would definitely add more detail and attempt to fix minor issues but apart from that we are happy with the game. If we were to remake the game again we would spend our time more effectively an do the hard parts first.

play it now…

Not Geometry Dash

Switch Pong

Switch Pong is a revolutionary game, which takes the classic Pong and turns it on its head. Like Pong, the aim is to score higher than your opponent and claim ultimate victory!

To achieve victory you must be prepared for the the most difficult mental and technical challenge you have ever faced. Learning your opponents strategy is key, and hitting the ball is a must. Mastering the art of manipulating gravity takes time, but I’m sure you can do tit. The world needs more heroes, so step up and take the challenge.


The final product achieved the overall desired goal, which was Pong, with a gravity switching mechanic.

Proposed Aims:

  • Spiced up version of pong
  • 2 Player Multiplayer
  • Score Tracker
  • Gravity Shifting
  • Chickens

All of these aims were met, except for the final one. The idea of chickens was randomly generated, and did not end up being incorporated into the game, as I believe they didn’t belong with the setting.

From creating the game, I learned about several new features which can be implemented into my games. The first thing I learned was how to change an object’s gravity. I also learned how to create and position functioning score trackers. I am happy with the final product, as I accomplished my primary aims, while also continuing to learn about all of GameMakers features.

Various changes were made throughout the development stage to the values of speed, and size of arena and paddles. The final values felt balanced, as rounds could be both short or long. The main challenge I encountered was the ball hitting the sides of the paddles, which resulted in breaking the game. This was resolved by bringing the boundary for scoring to the same alignment as the player, meaning that as soon as it registers as being past the players x axis, the opponent scores.

With more time I would introduce more mechanics, such as power-ups or portals.


Game Download ↓↓↓


  • Player 1: W=Up, S=Down, A=Gravity Switch
  • Player 2: Up=Up, Down=Down, Left=Gravity Switch

The Outlaw

We made a game that we wanted to have a base hub where you were able to select your level while also interacting with things in the hub. The objective was to see if you could finish all these levels, each designed to be different and unique compared to the others. It had a simple story, you are an outlaw in the west and must kill the bad guys and occasionally fight a boss. You have two weapons at your disposal, a sword and a gun and you are able to choose which weapon you want to use at any time during a level.

The game turned out to be a bit different to what we originally planned, we originally intended to have multiple types of guns but we ended up only having one due to programming issues. While creating this game we learned a lot about how to use game maker and the cool things you can do with it. This will come in very useful if we ever want to use game maker again in the foreseeable future.  In the end we were happy with our project however it did not have as many levels as what we were originally hoping. We changed how many guns were in the game as we could not learn the correct programming to have the player pickup multiple different guns. Our most significant challenge was getting the player animations to work with the sword animations as when one was going the other was not working however, after a few lessons of trying new things and playing around with the programming we did get them to work. We realized that it was just an error with how we had programmed it and was easy to fix once we found the problem.

If we had more time to work on our game we would simply create more levels and make more variation between them (while also adding more detail to the levels). We would also add more content and decoration to the main hub of the game like mini games, trees and buildings. If we were to start this project again then we would build the game around what we knew we could do rather than planning for things we were unable to put in the final product. The project was originally inspired by games like Zelda and the Binding of Isaac but we wanted it to be a unique experience as well. It is designed for people who enjoy 2D action/adventure old style games and to attract the younger gaming audience as it was not very hard to learn and was fun to play with a cartoon art style.


  • Aaron Mays (sprite designer and animation programmer)
  • Matt Eaton  (main game programmer)

Special Acknowledgements

  • Brendan Edser – helped with the game programming