Posts Tagged ‘Arduino’

DIY Printer P3: A first look at the software

Monday, November 17th, 2014

Part three in this series of “making of” videos where I make a super-basic printer controlled by an Arduino.

Although it still doesn’t look like a printer, I’ve been working on the software. Here, you can see the first stages of having the printer be controlled by the computer. The image data is actually being sent, but very slowly (think of it as a “compatibility mode”) – I wanted to make sure I had two-way communication working perfectly before making things faster. As such, there are still debugging messages being displayed on the Arduino’s LCD, too, left over from me trying to get things to work.

[Watch in HD]

The next stage will be to prove that the Arduino is really receiving the image data correctly, even though there’s no mechanism to move a pen yet!

Illustration is by CAFFEIN (blog / Pixiv).

P.S. This video editor is bloody awful.

DIY Printer P2: Sliders and calibration

Thursday, November 13th, 2014

Part two in this series of “making of” videos where I make a super-basic printer controlled by an Arduino.

[Watch in HD]

Sorry for being really lazy about uploading this. Also, the upload itself finished a little quicker than I thought it would, so yay, the date at the end is in the future.

Dot matrix printer interface: Software (feature demo / IRC)

Saturday, October 4th, 2014

The printer is a new, colour Epson LQ-300+II this time. Sorry in advance – I was tired after spending the whole night coding. Here’s the program I made to send Epson’s ESC/P 2 commands to a compatible printer and do fancy stuff such as change effects, colour, size, and even send non-ASCII characters as graphics in the middle of ASCII text. It’s still a long way from a usable text editor, though.

The program can also monitor plain-text log files and print new lines of text as they are saved. Here, it prints off live chat logs from 4 IRC channels. I optimised it a little for IRC logs, so that it can print different parts in different colours. I considered making it monitor my web server’s log file, but visiting certain pages on my site can add dozens of lines at once to the log file, which would waste a whole sheet of paper in seconds.

[Watch in HD]

My program uses a USB interface, which I made with an Arduino, to communicate with the printer. The Arduino passes printer status info to the laptop, such as “error” or “paper out”, and forwards data from the laptop to the printer’s parallel port if the printer is ready.

I’m using a different, brand-new printer this time because it turns out that the other, second-hand printer had a bad head with 2 or 3 dead pins, causing blank lines in the print-out. I actually recorded several videos on the progress of cleaning the printer and its head, and was able to fix one of the pins, but 1 or 2 never came back to life, so it’d make a bit of an anticlimactic video that I might not upload. By the way, I recorded the pins firing in slow-motion, and one was very slow while the other didn’t move at all. I uploaded the video here.


Dot matrix printer interface: Hardware (building/proof-of-concept)

Saturday, October 4th, 2014

The printer is an old Epson LQ-300+. I want to be able to send my own commands to it, but modern computers don’t have parallel ports, so I decided to make my own USB interface. I thought I might as well, if I’m going to be writing the software anyway.

[Watch in HD]

This interface (Arduino) goes between the printer and the laptop, appearing as a serial port to a program of mine which will be running on the laptop. In this video, for testing that I can communicate with the printer, the Arduino itself is sending the data, instead of my laptop. In the next video, the Arduino will be playing a simpler role and mainly just forwarding data from my laptop to the printer.

NEXT PART: Software

The Making of Dojikko

Sunday, August 24th, 2014

A look at how the clumsy autonomous robot was made, and her very first versions, when she was worse than clumsy, before she was even slightly clever. There’s more to show, but it was already approaching my longest ever video, so I decided to end it here.

[Watch in HD]

A later version can be seen here. She’s progressed a little further still, now – I should upload a video of her outside soon!

Music by Kevin MacLeod (

  • “The Way Out”
  • “Dance Monster”

DIY Printer P1: Basic concepts & smoothly moving the motors

Sunday, July 6th, 2014

The first in a series of “making of” videos where I make a super-basic printer controlled by an Arduino! I recorded pretty much every step of the way, so you should hopefully be able to follow the progress from pretty much nothing (here) to something that actually works.

[Watch in HD]

I started this project almost a year ago, but I’m only uploading the videos now that I’m sure it actually gets somewhere and that I didn’t just abandon it like I do with most of my projects.

The rest of the videos probably won’t feature so much editing work – I just needed to do that in this video due to my explanations that would be too hard to follow if I just kept my speech and video of my hand moving enthusiastically in front of the camera.

I should’ve made a compilation of every time I said “Basically” at the end, basically.

Dojikko Weight-Carrying Test

Thursday, June 13th, 2013

I decided to see how much weight Dojikko, my work-in-progress robot, could comfortably carry. I cut out 3 boring tests and yet it’s still kind of boring.

[Watch in HD]

Dojikko on a 9V battery (or two) (2013-03-28)

Thursday, May 16th, 2013

She drains them in minutes. They were cheap, though. Her usual battery is an 11.1V 5000mAh LiPo.

[Watch in HD]

Dojikko vs a corner (2013-03-18)

Thursday, May 2nd, 2013

Ultrasound fails when it comes to corners. It gets reflected away by the walls and the walls become invisible to it.

[Watch in HD]

[Dojikko] Turning bug (2013-03-03)

Thursday, May 2nd, 2013

The code was supposed to prevent constantly overshooting while turning to face a new direction, but it had quite a different effect. This is the kind of weirdness that happens on the very first attempt of adding new code.

[Watch in HD]

It was fixed shortly after recording this. =)