Skip to content

Instantly share code, notes, and snippets.

View RobCranfill's full-sized avatar

Rob Cranfill RobCranfill

View GitHub Profile
@RobCranfill
RobCranfill / open_page.sh
Created June 22, 2024 00:07
Startup script for Raspberry Pi weather kiosk
#!/bin/bash
# Open the Weewx page
# other flags are possible. which?
chromium-browser --start-fullscreen http://pi4/weewx/Crandard &
@RobCranfill
RobCranfill / backupwee.sh
Created May 25, 2024 19:03
Back up data files for WeeWX
#!/bin/bash
# back up weewx
# as per https://www.weewx.com/docs/4.10/usersguide.htm#backup
# param: $1: archive name (date?)
# will create directory in cd
# run this as root to only get prompted once for pw (if that)
BASE_NAME=$1
@RobCranfill
RobCranfill / neopixel_test.py
Created February 29, 2024 18:03
My standard "Hello, world" for a micro-controller with a NeoPixel on it.
# Based on code from Adafruit Industries
# SPDX-License-Identifier: MIT
"""Rob's CircuitPython blink example for built-in NeoPixel LED"""
import time
import board
import neopixel
import random
k = 20 # number of steps up or down
@RobCranfill
RobCranfill / lcd_util.py
Created November 30, 2023 18:05
Turn Adafruit miniPiTFT backlight on/off
# For the Adafruit miniPiTFT 3.3" LCD display: turn the backlight on/off (usually off).
# robcranfill
import board
import digitalio
import sys
def set_backlight_state(backlight_on: bool) -> None:
backlight_ = digitalio.DigitalInOut(board.D22)
backlight_.switch_to_output()
@RobCranfill
RobCranfill / no_auto_reload.md
Last active May 7, 2024 08:38
Turn off automatic reload of the code in CircuitPython
# To make a CP device stop auto-reloading code,

<code>
import supervisor
supervisor.runtime.autoreload = False  # CirPy 8 and above
print("supervisor.runtime.autoreload = False")

@RobCranfill
RobCranfill / bootloader.py
Last active September 6, 2023 00:20
Put CircuitPython device into bootloader mode; useful on my QTPy that I broke the BOOTSEL button on!
import microcontroller
microcontroller.on_next_reset(microcontroller.RunMode.BOOTLOADER)
microcontroller.reset()
@RobCranfill
RobCranfill / test_pcm5102.py
Last active July 26, 2023 01:09
Output stereo audio via a RPi Pico and a PCM5102 board
# Test outputting stereo audio via a PCM5102 board
# cran, based on:
# SPDX-FileCopyrightText: 2018 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
import board
import audiocore, audiobusio, audiomixer, synthio
# Pico
@RobCranfill
RobCranfill / .bashrc
Created July 7, 2023 05:28
A bash function to mount a CircuitPython device to a WSL mount
# put this in .bashrc - or .bash_aliases?
function mountcirc() {
# mount drive $1 to /mnt/CIRCUITPY
sudo mount -t drvfs $1 /mnt/CIRCUITPY/
echo "Mounted $1 to /mnt/CIRCUITPY"
ls -l /mnt/CIRCUITPY
}
@RobCranfill
RobCranfill / runcode.py
Created February 25, 2023 00:36
Run code on a micropython device.
# to see the name of the file(s) on the device:
import os
os.listdir()
# to run the code
# (ok actually you would do this in a separate step)
exec(open('code.py').read())
@RobCranfill
RobCranfill / repo.sh
Created January 6, 2023 17:35
Back up and document work from a circuitpython thumb drive
#!/bin/bash
# copy work files from thumbdrive to a folder here
# params: {new folder name}
NEWFOLDER="$1"
mkdir "$NEWFOLDER"
cp /mnt/f/*py "$NEWFOLDER"
ls -Al /mnt/f/lib >>"$NEWFOLDER"/liblist.text
tree /mnt/f/ >>"$NEWFOLDER"/dirtree.text