Solderless Claude-Light
[diy
electronics
claude-light
raspberrypi
fusion360
3dprinting
i2c
flask
]
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
- Raspberry Pi 4b (8gb) — although realistically, less memory would be fine. Should be available until 2034
- SD card for the Pi. I had a 16GB one left over from the Jubilee build
- Passive Heat sink —
- USB-C power supply, any will do
- Qwiic Pi Hat
- Modulino Pixels — discussed in previous post
- AS7341 breakout board
- Two (2) STEMMA/QWIIC cables…any length will suffice, 100mm is fine
- Arducam autofocus camera
- A few hundred grams of PLA (or whatever) filament for 3d printing. My recommendation would be to use transparent PLA so as to allow for the most environmental lighting influence, consistent with our goal of deliberately adding noise to the system.
Physical assembly
- Print the case file on your 3d-printer (TODO) — default settings are fine, use autogenerated supports for the overhangs.
- Slide the PCBs into the required slots and attach QWIIC cables from each port to each device
- Attach the Raspberry Pi camera
Software setup
-
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.
-
Plug the SD card into your Pi and boot it up. Then login via SSH.
-
Turn on I2C: Run
sudo raspi-config nonint do_i2c 0
to enable I2C, then reboot the Pi by runningsudo shutown -r now
, then log back in. You should now see the I2C interface available, if you runls /dev/*i2c*
. You can also do this interactively by runningsudo raspi-config
and select the Hardware interface control. (see also: RPi documentation) - 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
-
Create a python virtual environment:
python -m venv --system-site-packages .venv
-
Edit
.bashrc
(e.g.,pico .bashrc
) and add the following line at the end of the file to load this environment on loginsource ~/.venv/bin/activate
- Install python dependencies:
pip install sysv_ipc pip install retry pip install git+git://github.com/jkitchin/claude-light
-
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)
- Continue with the network service setup instructions and port-forwarding (as desired), as described on the claude-light setup documentation
Learning Resources
- Video: Designing a Snap Fit Case in F360 using a Raspberry Pi 4b model
- Tutorial: CircuitPython on Raspberry Pi
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.