Inspired by https://github.com/jbruce12000/kiln-controller
- Old Skutt K-1018: Craigslist
- High temperature Type K thermocouple (I got the 12 inch with 11 gauge wires): http://auberins.com/index.php?main_page=product_info&cPath=3&products_id=39
- 40a 240v contactor (with 240v coil): https://www.auberins.com/index.php?main_page=product_info&cPath=2_31&products_id=164
- Raspberry Pi Zero W: https://www.adafruit.com/product/3400 (although I bought mine from Microcenter)
- Small relay for driving the contactor: https://www.adafruit.com/product/3191
- Thermocouple amplifier: https://www.adafruit.com/product/269
I'm using a Raspberry Pi Zero W.
- Downloaded and unzipped Raspberry Pi OS (32-bit) Lite (kernel version 4.19) from here https://www.raspberrypi.org/downloads/raspberry-pi-os/
- Flashed image to SD card using Etcher (the application is called balenaEtcher)
- Removed and reinserted SD card then followed this tutorial to make it SSH-able via USB: https://desertbot.io/blog/ssh-into-pi-zero-over-usb (the
ssh-keygen
step didn't work, so I skipped right to SSH-ing which seemed to be ok) - Installed vim with
sudo apt-get install vim
- Installed git with
sudo apt-get install git
Followed these instructions: https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/installing-circuitpython-on-raspberry-pi
- I had to install
pip3
. - I didn't make
python3
default. - I enabled both I2C and SPI (even though I think technically I'll only be using SPI).
I ran the blinkatest.py
script they included at the end, and it worked!
- Installed drivers for thermocouple amplifier:
pip3 install adafruit-circuitpython-max31855
- Cloned this repository
I used cron: https://www.raspberrypi.org/documentation/linux/usage/cron.md
Ran crontab -e
then added @reboot python3 /home/pi/kiln-controller/control/temperature-readout.py &
I'm using nohup
. Example command:
nohup python3 slow_04_bisque.py &> first_slow_bisque.txt &
sudo shutdown -h now
Connected a 1.5" OLED SSD1351 display (cheap one off Amazon) via SPI. I was using the luma.oled package to run it. It was updating extremely slowly, I'd see the scan lines slowly move down the display even when I was drawing text. I ran the luma perfloop.py
example and it only achieved 0.25 FPS. At first, I thought there might be something wrong with my Raspberry Pi's SPI speed. However, I realized that I was running another python process which was reading from a thermocouple using SPI (using Adafruit's busio
package). I killed this process, and, lo and behold, my display now updated much faster.