Skip to content

Instantly share code, notes, and snippets.


Andrew Bythell abythell

View GitHub Profile
abythell /
Last active February 17, 2016 19:10
Bash script to install Thingspeak server on Ubuntu 12.04LTS using rvm.
# Install Thingspeak server on Ubuntu 12.04 LTS with rvm.
# Andrew Bythell <>
# Install required packages
sudo apt-get -y upgrade
sudo apt-get -y install build-essential mysql-server mysql-client libmysqlclient-dev
sudo apt-get -y install libxml2-dev libxslt-dev git-core curl rubygems
## Install rvm
abythell /
Last active December 22, 2021 14:34
Sample script to run Java applications on Raspbian with RXTX
# Configure Java for RXTX on embedded platforms like Raspberry Pi (Raspbian) and Beaglebone (Debian)
if [ -e "/dev/ttyAMA0" ] || [ -e "/dev/ttyO0" ]
for port in `find /dev -name 'tty*'`
abythell /
Last active May 22, 2023 18:40
Bash script to install a Thingspeak server on Ubuntu Server 12.04. Raspbian (2014-01-07-wheezy-raspbian). and possibly Debian-based distros.
# Automatic install of Thingspeak server on Ubuntu 12.04 / Raspbmc / Debian (?)
# Updated to use ruby 2.1.4
## Install required packages
sudo apt-get update
sudo apt-get -y install build-essential git mysql-server mysql-client libmysqlclient-dev libxml2-dev libxslt-dev libssl-dev libsqlite3-dev
## Install ruby
abythell / rxtx.xml
Last active December 31, 2015 13:59
Ant tasks for distributing Java projects that use RXTX binaries.
View rxtx.xml
Copyright 2013 Andrew Bythell <>
Ant tasks for distributing Java applications with platform-specific RXTX
libraries as zip files. To use:
1. Get and unzip RXTX - into your project directory.
2. Copy this file (rxtx.xml) into the RXTX directory.
3. Include rxtx.xml in your build.xml.
abythell / udisks-glue
Last active October 19, 2016 18:12
Debian/Ubuntu LSB init script for udisks-glue (automount removable media). To use/install, make the script executable, copy to /etc/init.d/udisks-glue, then run "update-rc.d udisks-glue defaults"
View udisks-glue
# Provides: udisks-glue
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: udisks-glue automounter
# Description: Automounts removable media
abythell /
Last active December 15, 2015 23:19
A script to download, build, and install CamDate, a Java application built using libgphoto2-jna. CamDate sets the current system time to the current time on a USB-attached camera.
# Automatically download, build, and install CamDate, a tool
# to set the System Time on a Raspberry Pi using a gphoto2-suppored
# camera.
# Check if root
abythell /
Created April 8, 2013 17:54
Use gphoto2 to set the system time from a USB-attached camera. Handy for use on a Raspberry Pi which does not have a real-time clock or network connection for NTP.
# Set system date using gphoto2 camera
# Make sure a root user is running this script
if [[ $EUID -ne 0 ]]; then
echo "Must run as root/sudo"
exit -1
abythell /
Last active March 9, 2016 13:08
Bash script to install Ubuntu 12.04 as a Xen paravitualized domU guest on a Xen host with LVM.
# Script to download, configure, and install Ubuntu as a Xen domU
# Uses existing LVM Volume Group. Must be run as root/sudo.
# Based on instructions at
# User Configurable Settings
NAME=ubuntu # name of Domain to create
VG=/dev/domU # existing volume group in which to create a logical volume
LV=$NAME # name of the new logical volume to create
LV_SIZE=5G # size of the new logical volume
abythell /
Last active June 2, 2016 13:33
Bash script to automatically install and configure Xen 4.1 on Ubuntu Server 12.04 LTS
# Setup and configure Xen DomU
# Run as root/sudo on a fresh Ubuntu Server 12.04 LTS install. Reboot when complete.
# Update
apt-get update
apt-get upgrade
# Install Xen hypervisor
apt-get install xen-hypervisor-amd64
abythell / pro-mini-isp.patch
Last active May 23, 2023 21:04
Arduino Pro Mini Bootloader Patch. Fixes EEWE compiler errors and adjusts the Makefile to use an STK500 programmer on /dev/ttyS0
View pro-mini-isp.patch
diff --git a/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168.c b/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168.c
index 2b9fefa..046de0c 100755
--- a/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168.c
+++ b/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168.c
@@ -580,7 +580,7 @@ int main(void)
/* if ((length.byte[0] & 0x01) == 0x01) length.word++; //Even up an odd number of bytes */
if ((length.byte[0] & 0x01)) length.word++; //Even up an odd number of bytes
cli(); //Disable interrupts, just to be sure
-#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__)
+#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega328P__)