FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

ronibandini/RousselReadingMachine: A machine to read Raymond Roussel Impressions of Africa · GitHub

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

📚 Raymond Roussel Reading Machine

An Arduino-powered literary machine built from an old Rolodex

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:

  • 📖 Literature
  • 🎲 Random selection
  • ⚙️ Mechanical movement
  • 🔊 Physical sound
  • 🗂️ Fragmented reading
  • ♾️ Arduino control

✨ Features

  • 🗂️ Recycled Rolodex mechanism
  • ♾️ Arduino Nano controller
  • ⚙️ 360° continuous-rotation servo
  • 🔘 One-button operation
  • 🎲 Random reading intervals
  • 📚 Raymond Roussel text fragments
  • 🕰️ Biographical values encoded as delays
  • 🧱 Custom 3D-printed supports
  • 🖨️ Printable card template included
  • 🔌 Very small electronic circuit

🏗️ Architecture

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
Loading

There is no display or digital reader.

The physical movement of the cards is the interface.


📚 The Original Machine à lire Roussel

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


🔄 This Arduino Version

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
Loading

Instead of turning the mechanism manually, an Arduino determines how far the reader advances.


🧠 Firmware

Main sketch:

👉 RousselMachine.ino

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.


🎲 Random Reading Time

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.


⚙️ Servo Sequence

The continuous servo has three main command values.

Stop

int stopValue = 78;

Rotate forward

myservoBase.write(120);

The selected literary delay determines how long it continues rotating.

Reverse briefly

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.


🔄 Runtime Flow

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
Loading

The main loop waits:

delay(250);

between button checks.


🛠️ Hardware

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 Documentation


🔌 Wiring

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

🗂️ Reading Cards

The repository contains a printable card document:

👉 RousselMachineCards.pdf

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.


🧱 3D-Printed Parts

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:

👉 Autodesk Fusion


🚀 Installation

1. Install Arduino IDE

👉 Download Arduino IDE


2. Clone the Repository

git clone https://github.com/ronibandini/RousselReadingMachine.git
cd RousselReadingMachine

Repository:

👉 github.com/ronibandini/RousselReadingMachine


3. Open the Firmware

Open:

👉 RousselMachine.ino

Select:

Tools
→ Board
→ Arduino AVR Boards
→ Arduino Nano

The standard Servo library is part of the Arduino ecosystem.


4. Calibrate the Servo

Default stop value:

int stopValue = 78;

If the mechanism moves slowly when it should be stationary, try nearby values:

77
78
79
80

until the servo stops.


5. Upload

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.


📁 Repository Structure

RousselReadingMachine/
│
├── RousselMachine.ino
├── RousselMachineCards.pdf
├── README.md
└── LICENSE

🎥 Demo

▶️ Raymond Roussel Reading Machine — YouTube


🌐 External References

🛠️ Hackster.io

Complete original construction article covering the literary background, Rolodex, Arduino, servo mechanism, card design and printed supports.

👉 Raymond Roussel Reading Machine — Hackster.io


🤖 DFRobot Maker Community

DFRobot republished the project and complete Arduino code.

👉 Raymond Roussel Reading Machine: Arduino Literature Device — DFRobot


🧱 Thingiverse

Printable support pieces:

👉 Raymond Roussel Reading Machine — Thingiverse


📚 Historical References

Raymond Roussel

French writer Raymond Roussel lived from 1877 to 1933. His major works include:

  • Impressions d’Afrique1910
  • Locus Solus1914
  • Nouvelles Impressions d’Afrique1932

👉 Raymond Roussel — biography and works

Juan Esteban Fassio

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


🔗 Related GitHub Projects

📖 Haiku Reader

A dedicated eInk machine built only for reading haiku poetry.

👉 github.com/ronibandini/haikureader

📰 Hunter S. Thompson ASCII

Raspberry Pi literary installation combining animated writing and ASCII portraits.

👉 github.com/ronibandini/HunterSThompsonAscii

π PiemPi

A machine that converts digits of π into poetry and prints the resulting text.

👉 github.com/ronibandini/piemPi

💳 MIFARE Poetry

Literary experiment using MIFARE cards as physical containers for micropoetry.

👉 github.com/ronibandini/MIFAREPoetry


📕 Contracultura Maker

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


📬 Contact

Roni Bandini Maker · AI Developer · Writer Buenos Aires, Argentina


Built with 📚 + Arduino + randomness + mechanical reading.

About

A machine to read Raymond Roussel Impressions of Africa

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages


Back | FazBrowse Home | New Git URL