I recently acquired a used 3D printer and Raspberry Pi with two cameras, with instructions to wipe the SD card and put a new install of Octopi on it, which I did. Build 2025.11.04.125341 with "webcamd", based on OctoPi 1.1.0, running on Raspberry Pi 3 Model B Rev 1.2
In attempting to set up the second camera I discovered several tutorials and videos that said to set up /boot/octopi.txt and to create /boot/octopi.conf.d for further config files - and the first file didn't exist, but I found it in /boot/firmware/
I could not get the config for the second camera to load and guessed that maybe the dir for that moved too, and eventually in desperation did 'which webcamd', and hoped that it was a script instead of a binary. Fortunately it was and I found this:
CONFIG_FILE=/boot/firmware/octopi.txt
if [ ! -f "${CONFIG_FILE}" ] && [ -f "/boot/octopi.txt" ]; then
CONFIG_FILE=/boot/octopi.txt
fi
...
config_dir="${CONFIG_FILE}/octopi.conf.d"
Which sets the directory to /boot/firmware/octopi.txt/octopi.conf.d/!
I had to move the actual octopi.txt file out of the way so I could create a directory named octopi.txt, and there's no way I could have found that without reading and understanding the code.
I'm guessing this was intended put octopi.conf.d in the Directory that octopi.txt is in (/boot/firmware/ for example) but it doesn't have code there to extract the path without the filename also. In fact if only /boot/octopi.txt did exist, it would set the config dir to /boot/octopi.txt/octopi.conf.d/ which would be uncreatable because the real file is in the way, but moving the real file and creating the dir would then make the [ -f ] fail. Kinda a catch 22 which probably breaks everyone's older setup.
I recently acquired a used 3D printer and Raspberry Pi with two cameras, with instructions to wipe the SD card and put a new install of Octopi on it, which I did. Build 2025.11.04.125341 with "webcamd", based on OctoPi 1.1.0, running on Raspberry Pi 3 Model B Rev 1.2
In attempting to set up the second camera I discovered several tutorials and videos that said to set up /boot/octopi.txt and to create /boot/octopi.conf.d for further config files - and the first file didn't exist, but I found it in /boot/firmware/
I could not get the config for the second camera to load and guessed that maybe the dir for that moved too, and eventually in desperation did 'which webcamd', and hoped that it was a script instead of a binary. Fortunately it was and I found this:
Which sets the directory to /boot/firmware/octopi.txt/octopi.conf.d/!
I had to move the actual octopi.txt file out of the way so I could create a directory named octopi.txt, and there's no way I could have found that without reading and understanding the code.
I'm guessing this was intended put octopi.conf.d in the Directory that octopi.txt is in (/boot/firmware/ for example) but it doesn't have code there to extract the path without the filename also. In fact if only /boot/octopi.txt did exist, it would set the config dir to /boot/octopi.txt/octopi.conf.d/ which would be uncreatable because the real file is in the way, but moving the real file and creating the dir would then make the [ -f ] fail. Kinda a catch 22 which probably breaks everyone's older setup.