DIY Mini Arduino Plotter

 Mini Arduino Plotter


We Made this plotter as a school project and since i learned a lot from my previous one this one came out perfect.

this plotter uses the same circuit as the previous one which you can read about and watch a complete tutorial in this post :

Second the pen holder mechanism is inspired from this video :


the firmware changed  as i used a servo motor this time is from this GitHub repository:

if you want to learn how to make your own gcode i made a tutorial for it :


and if your lazy like me to make your own gcode here’s a link to find some good cartoon pictures .gcode for your plotter :

Arduino IR remote

Simple Arduino Project : IR Remote


Making an arduino based IR remote is fairly simple thanks to the IR enables us to :

  1. Detect and Read IR Signal
  2. Decode It
  3. Send Ir Signal

which is all we need for an infrared remote as we will be sending a coded message to be able to identify each button.

this project has many applications other than duplicating a TV or radio IR remote but can be used to activate or trigger anything with an IR receiver up to 10 meters away.

Principle :

the IR light that an IR led cant be seeing with a human eye ( you can use a camera to see it) but IR receivers can.the arduino using the PWM function will blink the led at a certain frequency which is picked up by the TSOP Ir receiver which can interpret those bursts of IR light into data.


IR Library Download Link :

the first code i used is the IRrecdemo and IRrecvDumpv2 included in the arduino IR can read the IR signal of remotes and decode it .

IR Emitter code :

#include <IRremote.h>

IRsend irsend;

const int switch1 = 4;
 const int switch2 = 5;
 const int switch3 = 6;
 void setup() {
 pinMode(switch1, INPUT_PULLUP);
 pinMode(switch2, INPUT_PULLUP);
 pinMode(switch3, INPUT_PULLUP);


void loop() {

if (digitalRead(switch1) == LOW){
 irsend.sendNEC(0xE0E020DF, 32);}

if (digitalRead(switch2) == LOW){
 irsend.sendNEC(0xE0E0A05F, 32);}

if (digitalRead(switch3) == LOW){
 irsend.sendNEC(0xE0E0609F, 32);}



IR Receiver code :

#include <IRremote.h> // IR library
 const int RECV_PIN = 11; // TSOP IR Receiver Data PIN

const int switch1 = 2; //Switch or led's to be activated OUTPUTS
 const int switch2 = 3;
 const int switch3 = 4;

IRrecv irrecv(RECV_PIN);
 decode_results results;

void setup() {

 pinMode(switch1, OUTPUT);
 pinMode(switch2, OUTPUT);
 pinMode(switch3, OUTPUT);

void loop() {
 if (irrecv.decode(&results)) { // Receiving IR Signal and decoding it


if (results.value == 0xE0E020DF) {
 digitalWrite(switch1, HIGH);
 digitalWrite(switch1, LOW);
 results.value = 0x00000000;

if (results.value == 0xE0E0A05F) {
 digitalWrite(switch2, HIGH);
 digitalWrite(switch2, LOW);
 results.value = 0x00000000;
 if (results.value == 0xE0E0609F) {
 digitalWrite(switch3, HIGH);
 digitalWrite(switch3, LOW);
 results.value = 0x00000000;



DIY Speed Ball

Hand-Crafting The Speed Bag:

Handmade Speed Ball
Handmade Speed Bag

This was the perfect summer project for me affordable and with much use. I never owned a speed bag or trained with it in the gym but it is fun and awesome.

Anyway materials used:

– Cheap industrial leather if you can afford quality go for it =)

– Glue

– Heavy string for leather

– Normal string

– One shoe string

– Scissors and needles big and small ones


-As the leather wasn’t thick I didn’t need to put holes in it before stitching

-Choose your colors nicely I went with my theme black and red =)

Let’s Start

DIY Speed Ball Template
DIY Speed Bag Template

Use the template or draw one yourself to mark the pieces were going to cut. We will need 6 of them and for the bottom draw a regular hexagon (six equal sides with six equal angles of 120 degrees between each side).and a rectangle of 8*40 cm which will be the attachment.

Now that all our pieces are ready use scissors to cut them leaving us with 8 pieces in total.

Next thing glue the sides by pairs it’s better to use wood glue but you’ll have to wait longer that’s why I used this type but it is messy and hard to clean.

Next we will start sewing the pieces with a typical two needles saddle stitches leaving a bit on less than 1cm free to join the bottom piece and more on the top for tightening string.

Now we glue the 3 pairs together and we start sewing like before with one left half open leaving enough room so we can put the ball later.

Almost done looks complete but we still have to do a little more touches.

Holding the pieces for stitching like that makes it easier and faster and use those laundry things to attach the pieces while they dry works like a charm

Use normal string to make the loops for the string and I added 3 washers on each side of the opening to protect the leather from the string as I couldn’t find proper ones for leather when I find them I ll change them for the looks and professionalism .

The only thing left now is the piece that will attach the ball to the swivel. I made it a little bit far from the swivel so don’t make the gap too big also the rectangular piece is folded in half making it 4*40 and it is sewed with saddle stitches drawing a rectangle for a strong bond from both sides.

We Are DONE put the ball inside pump air and it looks alive. This is not obligatory but I added bits of fabric in the upper gap to shape the looks.

 Have fun boxing this summer and share the knowledge


Arduino Plotter the easiest way

Making a Mini Arduino Plotter


In this project I will show you how to turn two old DVD-drives into a mini plotter. This project is simple and easy also presents a good cheap practice if one day you want to make your own CNC machine as this plotter works with the same principle just way more lower the cost and using as much scrap parts as we can we will use the CD tray mechanism instead of a servo motor for the z axismini arduino plotter

What you will need?

2 DVD-drives

3 L293 H-bridges IC

1 Arduino UNO

1 Breadboard and some wires

Hot glue or anything that sticks

Scrap pieces of plastic

USB cable (to power the circuit from the PC)

Screw driver

Needed Software Links :


Getting What We need From The Drives

We will begin by disassembling the DVD-drives to get the stepper motors and the moving carriages grab a screwdriver open the metal case. The electronics inside we won’t be using them. I used the metal casing as the main body the front part of the CD tray is our Z axis SO Don’t BRAKE IT watch Part 1 for detailed instructions.


Preparing The Stepper Motors

After salvaging the parts we need it’s time to prepare the you can see in the video below they are connected with a yellow ribbon cable we cannot use that so we will need to wire new ones to be able to connect them THIS Part is TRICKY do it Carefully and don’t remove the ribbon cable solder the new ones on top of it or you’ll end up braking the motor so be careful not to damage it. Each one of the steppers needs 4 wires, Prepare and cut them to the same length put a tip of solder on top then solder them to the stepper motor.

The Electrical Circuit

As our Steppers are ready we will jump to wiring the circuit but first lets assemble the plotter. I mentioned earlier that we will be using the metal casings as our main body I used screws to attach them perpendicularly to each other then hot glued the two carriages one as X axis and one as Y axis.

Now the Z axis is glued with a piece of plastic to its back to the carriage of the Y axis and like that our plotter is 70% done.

Now Let’s Continue our Wiring use these diagrams to wire the steppers with h-bridges and the Arduino but keep in mind THAT YOU NEED TO IDENTIFY THE STEPPER SEPARATE COILS FIRST OR THEY WONT MOVE like in the video with a multi-meter set on the connection test as each coil goes to a side of the IC  L293D. The z axis has a built in DC motor which connects on a side of the third and last IC.

Connection to the Arduino:

X axis 2, 3, 4, 5

Y axis 6, 7, 8, 9

Z axis 10 11

And of course you can change this in the .ino code if you want

Initial Testing

Before trying our plotter let’s do some testing first to identify problems if there is any hopefully not.

To test  the  Z axis use this code upload it to arduino and it will make the pen go up and then go down:

#define I1 10 // Control pin 1 for motor
#define I2 11//  Control pin 2 for motor
void setup() {
Serial.begin( 9600 );
pinMode(I1, OUTPUT);
pinMode(I2, OUTPUT);
void loop() {
digitalWrite(I1 , LOW);
digitalWrite(I2 , HIGH);
digitalWrite(I2 , LOW);
digitalWrite(I1 , LOW);
Serial.println("Pen up!");
digitalWrite(I2 , LOW);
digitalWrite(I1 , HIGH);
digitalWrite(I2 , LOW);
digitalWrite(I1 , LOW);
Serial.println("Pen down.");


— For the X and Y axis it’s the same test code just change the numbers to 6 7 8 9

#include <Stepper.h>
const int stepsPerRevolution = 20;
Stepper myStepper(stepsPerRevolution, 2, 3, 4, 5);
void setup() {
// set the speed at 60 rpm:
// initialize the serial port:
void loop() {
// step one revolution  in one direction:
// step one revolution in the other direction:



Hopefully everything goes as expected and let’s move to making gcode and preparing the software to start plotting this video includes all the steps USE THE links to download the needed software and follow along. It IS Important to use Inkscape version 0.48.5 or the plugin that saves the files as gcode wont work.


-download and install processing:

-download and install inkscape version(0.48.5 important or the g-code plugin won’t work):

-download gcode plugin for inkscape (the installation note is included):

upload the sketch to arduino Tun_Maker_Mini_Arduino_Plotter.ino

now open gctrl.pde with processing change “COM38” with the usb port of your arduino and your good to go

Tunisian Maker: if you have a problem contact me on the forum or :

youtube :

facebook :