The first-generation claude-light requires the builder to hand-solder components on prototyping board, and provides no case or housing to organize the components. Towards the goal of simplifying and standardizing construction, we present a solderless, snap-together modification…

Bill of Materials

Physical assembly

  1. Print the case file on your 3d-printer (TODO) — default settings are fine, use autogenerated supports for the overhangs.
  2. Slide the PCBs into the required slots and attach QWIIC cables from each port to each device
  3. Attach the Raspberry Pi camera

Software setup

  1. Install Raspberry Pi Lite OS on the SD card (go to the “other” tab and install the 64-bit Lite OS). Apply customization rules to configure WiFi, enable SSH, add create default user and hostnames, as you see fit.

  2. Plug the SD card into your Pi and boot it up. Then login via SSH.

  3. Turn on I2C: Run sudo raspi-config nonint do_i2c 0 to enable I2C, then reboot the Pi by running sudo shutown -r now, then log back in. You should now see the I2C interface available, if you run ls /dev/*i2c*. You can also do this interactively by running sudo raspi-config and select the Hardware interface control. (see also: RPi documentation)

  4. Update the OS and install necessary libraries, by running the following commands in the command line:
    sudo apt update 
    sudo apt full-upgrade 
    sudo apt clean
    sudo apt install python3-dev python3-setuptools
    sudo apt install -y python3-picamera2 --no-install-recommends 
    sudo apt install python3-simplejpeg 
    sudo apt install git
    
  5. Create a python virtual environment: python -m venv --system-site-packages .venv

  6. Edit .bashrc (e.g., pico .bashrc) and add the following line at the end of the file to load this environment on login source ~/.venv/bin/activate

  7. Install python dependencies:
    pip install sysv_ipc
    pip install retry
    pip install git+git://github.com/jkitchin/claude-light
    
  8. Replace ‘~/claude-light/claude/app.py` with this alternate file (which substitutes direct PWM control of the LEDs for I2C-based control of the Modulino LED array, but otherwise only minimally changes the original version)

  9. Continue with the network service setup instructions and port-forwarding (as desired), as described on the claude-light setup documentation

Learning Resources

Dead Ends and Roads not travelled

  • I scavenged an old Raspberry Pi 2B v1.1; installed headless (lite) 32-bit OS (Debian Bookwork, released 2025-05-13), but had some trouble installing some of the python dependencies. Upgraded to the 8GB RPi4b for perfect with Kitchin’s reference device.
  • I initially tried the mini QWIIC shim but and while this made a nice press fit on the Pi 2B, it was too loose to make a good connection on the Pi 4B; I’m not alone on this, judging by the comments. So while this is appealing, the hat suggested above is a better choice.