| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Roni Bandini — Buenos Aires, Argentina — August 2021
Raymond Roussel Reading Machine is an experimental literature device that converts an old rotating Rolodex into an Arduino-controlled reading machine.
Fragments from Raymond Roussel's Impressions d’Afrique are printed onto cards mounted around the rotating index.
Pressing a button makes a continuous-rotation servo move through an unpredictable number of cards. The duration of each rotation is selected randomly from values connected to Roussel's bibliography and biography.
The result combines:
flowchart LR
BUTTON["🔘 Push Button"]
NANO["♾️ Arduino Nano"]
RANDOM["🎲 Random 1–5"]
TIME["⏱️ Roussel Delay"]
SERVO["⚙️ Continuous Servo"]
ROLODEX["🗂️ Rolodex"]
CARDS["📖 Text Fragments"]
BUTTON --> NANO
NANO --> RANDOM
RANDOM --> TIME
TIME --> SERVO
SERVO --> ROLODEX
ROLODEX --> CARDS
There is no display or digital reader.
The physical movement of the cards is the interface.
Raymond Roussel's Nouvelles Impressions d’Afrique was published in 1932. Its four cantos use deeply nested parentheses, notes and digressions that make conventional linear reading unusually difficult.
In 1953–1954, Argentine writer and pataphysician Juan Esteban Fassio designed the MLR — Machine à lire Roussel, a rotating-card apparatus intended to reorganize the text into a more navigable physical structure.
Historical references:
👉 Juan Esteban Fassio — Machine à lire Roussel, 1953–54
👉 Roussel / Fassio documentation — Galerie Buchholz
Roussel's poem was particularly suited to this treatment because its parenthetical structure can reach multiple nested levels.
A useful digital introduction to the structure:
👉 New Impressions of Africa — Andrew Hugill
The original Fassio machine addressed:
Nouvelles Impressions d’Afrique
↓
Nested textual structure
↓
Rotating reading cards
This project keeps the mechanical reading-machine concept but uses the earlier:
Impressions d’Afrique — 1910
and introduces electronic randomness:
flowchart LR
TEXT["📖 Impressions d'Afrique"]
CARD["🗂️ Fragment Cards"]
ROL["Rolodex"]
SERVO["⚙️ Servo"]
ARD["Arduino"]
RANDOM["🎲 Random Timing"]
TEXT --> CARD
CARD --> ROL
ARD --> RANDOM
RANDOM --> SERVO
SERVO --> ROL
Instead of turning the mechanism manually, an Arduino determines how far the reader advances.
Main sketch:
The project uses Arduino's standard Servo library:
#include <Servo.h>Main configuration:
Servo myservoBase;
int pinBase = 12;
int pinButton = 11;
int randNumber = 0;
int stopValue = 78;Connections:
Continuous servo signal → D12
Push button → D11 + GND
The button uses:
pinMode(pinButton, INPUT_PULLUP);so no external pull-up resistor is required.
When the reader presses the button:
randNumber = random(1,6);Arduino selects one of five timing values.
| Random value | Firmware reference | Delay |
|---|---|---|
| 1 | Roussel died in 1933 | 1933 ms |
| 2 | Impressions d’Afrique published in 1910 | 1910 ms |
| 3 | Locus Solus published in 1914 | 1914 ms |
| 4 | 1,274 lines in Nouvelles Impressions d’Afrique | 1274 ms |
| 5 | Code labels it Born 01 1877 | 11877 ms |
For example:
if (randNumber == 2) {
Serial.print(
"Published Impressions of Africa in 1910"
);
delay(1910);
}The literary metadata therefore becomes part of the machine's physical behavior.
The continuous servo has three main command values.
int stopValue = 78;myservoBase.write(120);The selected literary delay determines how long it continues rotating.
After the reading movement:
myservoBase.write(40);
delay(660);The motor then stops:
myservoBase.write(stopValue);Complete cycle:
Button
↓
Select random delay
↓
Servo → 120
↓
Rotate cards
↓
Servo → 40 for 660 ms
↓
Servo → 78
↓
Stop
Because continuous servos vary slightly, 78 may need adjustment until the particular servo remains completely stationary.
flowchart TD
WAIT["Wait for Button"]
PRESS{"Pressed?"}
RAND["🎲 Select 1–5"]
FORWARD["⚙️ Servo = 120"]
DELAY["⏱️ Literary Delay"]
BACK["↩️ Servo = 40"]
BACKTIME["660 ms"]
STOP["⏹️ Servo = 78"]
WAIT --> PRESS
PRESS -->|"No"| WAIT
PRESS -->|"Yes"| RAND
RAND --> FORWARD
FORWARD --> DELAY
DELAY --> BACK
BACK --> BACKTIME
BACKTIME --> STOP
STOP --> WAIT
The main loop waits:
delay(250);between button checks.
| Component | Quantity |
|---|---|
| Arduino Nano | 1 |
| 360° continuous-rotation servo | 1 |
| Push button | 1 |
| Old Rolodex / rotary card file | 1 |
| 5 V power supply | 1 |
| DC connector | 1 |
| Jumper wires | Several |
| 3D-printed side supports | 2 |
The classic Arduino Nano uses the ATmega328P at 16 MHz and provides more than enough processing capacity for this simple servo and button controller.
Arduino Nano
┌──────────────────────────────┐
│ │
│ D12 ───── Servo Signal │
│ D11 ───── Push Button │
│ GND ───── Button GND │
│ GND ───── Servo GND │
│ │
└──────────────────────────────┘
Servo:
| Servo | Connection |
|---|---|
| GND | GND |
| VCC | 5 V supply |
| Signal | Arduino D12 |
Button:
| Button | Connection |
|---|---|
| Pin 1 | Arduino D11 |
| Pin 2 | GND |
The repository contains a printable card document:
The original project used Adobe InDesign to lay out the textual fragments before printing and mounting them in the Rolodex.
The physical sequence of cards becomes part of the reading experience, while Arduino adds a second arbitrary layer by deciding when the mechanism stops.
Two side supports were modeled to adapt the servo mechanism to the Rolodex.
Printable files:
👉 Raymond Roussel Reading Machine — Thingiverse
The parts were modeled with:
git clone https://github.com/ronibandini/RousselReadingMachine.git
cd RousselReadingMachineRepository:
👉 github.com/ronibandini/RousselReadingMachine
Open:
Select:
Tools
→ Board
→ Arduino AVR Boards
→ Arduino Nano
The standard Servo library is part of the Arduino ecosystem.
Default stop value:
int stopValue = 78;If the mechanism moves slowly when it should be stationary, try nearby values:
77
78
79
80until the servo stops.
Upload the sketch and open Serial Monitor at:
9600 baud
Startup output:
Raymond Roussel (Second) Reading Machine started
Press the button to start a reading cycle.
RousselReadingMachine/
│
├── RousselMachine.ino
├── RousselMachineCards.pdf
├── README.md
└── LICENSE
▶️ Raymond Roussel Reading Machine — YouTube
Complete original construction article covering the literary background, Rolodex, Arduino, servo mechanism, card design and printed supports.
👉 Raymond Roussel Reading Machine — Hackster.io
DFRobot republished the project and complete Arduino code.
👉 Raymond Roussel Reading Machine: Arduino Literature Device — DFRobot
Printable support pieces:
👉 Raymond Roussel Reading Machine — Thingiverse
French writer Raymond Roussel lived from 1877 to 1933. His major works include:
👉 Raymond Roussel — biography and works
The Argentine pataphysician created his Machine à lire Roussel in 1953–1954, using a rotating card system to address the complex organization of Nouvelles Impressions d’Afrique.
👉 Machine à lire Roussel — West Den Haag
👉 Roussel exhibition checklist — Fassio MLR, 1953–54
A dedicated eInk machine built only for reading haiku poetry.
👉 github.com/ronibandini/haikureader
Raspberry Pi literary installation combining animated writing and ASCII portraits.
👉 github.com/ronibandini/HunterSThompsonAscii
A machine that converts digits of π into poetry and prints the resulting text.
👉 github.com/ronibandini/piemPi
Literary experiment using MIFARE cards as physical containers for micropoetry.
👉 github.com/ronibandini/MIFAREPoetry
Contracultura Maker is a book by Roni Bandini about maker culture, experimental electronics, AI, physical computing and technological autonomy.
📂 Contracultura Maker — GitHub repository
📕 Download Contracultura Maker PDF
Roni Bandini Maker · AI Developer · Writer Buenos Aires, Argentina
Built with 📚 + Arduino + randomness + mechanical reading.
| Back | FazBrowse Home | New Git URL |