Project tutorial
The Nyctograph Machine

The Nyctograph Machine © CC BY

A small printer for the peculiar alphabet invented to write in the dark by Lewis Carroll, author of Alice's Adventures in Wonderland.

  • 1 comment
  • 1 respect

Components and supplies

Apps and online services

About this project

Maybe you know Alice's Adventures in Wonderland by Lewis Carroll. Or maybe do you remember at least the white rabbit in Matrix movie: that was a reference to Alice's Adventures in Wonderland.

Well… it turns out that Lewis Carroll was also a mathematician and inventor.

What did he invent? Nyctography, a card containing a grid of cells to guide the writing of notes in the dark, using a peculiar alphabet.

“Why not invent a square alphabet, using only dots at the corners, and lines along the sides?’ I soon found that, to make the writing easy to read, it was necessary to know where each square began. This I secured by the rule that every square-letter should contain a large black dot in the N.W. corner. … [I] succeeded in getting 23 of [the square letters] to have a distinct resemblance to the letters they were to represent.”

Nowadays, of course you can easily write in the dark with your phone or even use text to speech but I like (almost) useless machines and inventions that combine literature and technology - Rayuelomatic, The Klausner Machine, Haiku Reader and Jorge Luis Borges Animatronic -so I’ve decided to make the Nyctograph Machine, which is a small device, capable to translating from our alphabet to nyctography in order to print banners.

How does it work?

Using the wheel you can enter a word or small sentence up to 16 letters. When the cursor reaches the end of the line, the word or phrase is ciphered by sustitution and then printed using thermal paper.

Why 16 letters limit? Well... the original Nyctography card had 8x2 cells, LCD screen has 16 characters and both "The White Rabbit" and "El Conejo Blanco" (spanish translation) have... So... that's it.

Technical details

I’ve exported every "nyct" letter to bmp, 104x104 pixels, 1 bit, then assigned all of them to arrays. I’ve started with Arduino Nano but run out of memory around letter H, so I’ve moved to Arduino Mega.

Rotary encoder with push button was ideal to load letters.

Code has a debug mode, which prints the entire alphabet for reference purposes.

int alphaPrint=1;

Required libraries are:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "Adafruit_Thermal.h"
#include "SoftwareSerial.h"


LCD 16 x2 SDA to A4, SCL to A5, VCC and GND
Printer Yellow cable to D12 and Green to D11
Rotary Encoder SW to D5, Signals to D6, D7
Led + to D8 and GND

Nyctograph Machine PDF User's guide

PDF User's Guide can be downloaded from here...


Source code can be found at

Small demo video

Nyctograph Machine demo

More about Lewis Carroll math, inventions and books

More about Lewis Carroll

Ted Talk about Arduino and Literature projects

English captions available


Custom parts and enclosures


Similar projects you might like

Peron/Peroff Useless Machine

Project showcase by Roni Bandini

  • 1 comment
  • 4 respects

Medicine Reminder and Vending Machine

by Mihir

  • 40 respects

Mind Poetry

Project showcase by Roni Bandini

  • 1 comment
  • 26 respects

The Sound Machine (Hear Plant Mood)

Project tutorial by Roni Bandini

  • 10 respects

Automated Tarot Machine

Project in progress by i_mozy

  • 18 respects

Arduino101 / tinyTILE BLE: Match-Making Sunglasses

Project tutorial by Kitty Yeung

  • 50 respects
Add projectSign up / Login