Skip to content

Instantly share code, notes, and snippets.

View cwoodall's full-sized avatar
✈️

Christopher Woodall cwoodall

✈️
View GitHub Profile
@cwoodall
cwoodall / gist:f3180028cf689f1359da177faea782f4
Created November 4, 2020 00:49
Linker command being run debugging orangecrab
riscv64-unknown-elf-gcc -o build-orangecrab/firmware.elf -DCFG_TUD_TASK_QUEUE_SZ=32 -march=rv32im -mabi=ilp32 -DORANGECRAB -I./boards/orangecrab/generated -DCIRCUITPY_FULL_BUILD=1 -DCIRCUITPY_AESIO=0 -DCIRCUITPY_ANALOGIO=0 -DCIRCUITPY_AUDIOBUSIO=0 -DCIRCUITPY_AUDIOIO=0 -DCIRCUITPY_AUDIOPWMIO=0 -DCIRCUITPY_AUDIOCORE=0 -DCIRCUITPY_AUDIOMIXER=0 -DCIRCUITPY_AUDIOMP3=0 -DCIRCUITPY_BITBANGIO=0 -DCIRCUITPY_BLEIO=0 -DCIRCUITPY_BOARD=0 -DCIRCUITPY_BUSIO=0 -DCIRCUITPY_DIGITALIO=1 -DCIRCUITPY_COUNTIO=0 -DCIRCUITPY_DISPLAYIO=0 -DCIRCUITPY_FRAMEBUFFERIO=0 -DCIRCUITPY_VECTORIO=0 -DCIRCUITPY_FREQUENCYIO=0 -DCIRCUITPY_GAMEPAD=1 -DCIRCUITPY_GAMEPADSHIFT=0 -DCIRCUITPY_GNSS=0 -DCIRCUITPY_I2CPERIPHERAL=0 -DCIRCUITPY_MATH=1 -DCIRCUITPY__EVE=0 -DCIRCUITPY_MICROCONTROLLER=1 -DCIRCUITPY_NEOPIXEL_WRITE=0 -DCIRCUITPY_NETWORK=0 -DCIRCUITPY_NVM=0 -DCIRCUITPY_OS=1 -DCIRCUITPY_PIXELBUF=1 -DCIRCUITPY_RGBMATRIX=0 -DCIRCUITPY_PULSEIO=1 -DCIRCUITPY_PS2IO=0 -DCIRCUITPY_RANDOM=1 -DCIRCUITPY_ROTARYIO=0 -DCIRCUITPY_RTC=0 -DCIRCUITPY_SAMD=0 -DCIRC
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
#!/bin/bash
# credit to olibre from stackoverflow (http://stackoverflow.com/questions/1861382/convert-png-to-svg)
File_png="${1?:Usage: $0 file.png}"
if [[ ! -s "$File_png" ]]; then
echo >&2 "The first argument ($File_png)"
echo >&2 "must be a file having a size greater than zero"
( set -x ; ls -s "$File_png" )
@cwoodall
cwoodall / make_gif.sh
Created December 24, 2016 03:12
A little script for generating compressed gifs using ffmpeg from a video file (webm, or mp4)
#!/bin/bash
ORIG_DIR=`pwd`
FRAME_DIR="/tmp/gif-frames"
LOSSY=80
FPS=5
LOOP=0
SCALE=.5
COLORS=128
@cwoodall
cwoodall / bash_prompt.sh
Created December 20, 2016 03:17
My New Bash Prompt with Git Status
green() {
printf "\e[32m${1}\e[00m"
}
light_red() {
printf "\e[91m${1}\e[00m"
}
radioactive="\u2622"
check_mark="\u2714"
@cwoodall
cwoodall / gist:5c1db855d896d4476111f273f2f631ea
Created June 24, 2016 21:59
Intersting C++ embedded process runner
#include <iostream>
#include <stdint.h>
using namespace std;
template <uint32_t f>
bool ProcessTask(void);
template <uint32_t f>
uint32_t RunProcess(uint32_t start) {
@cwoodall
cwoodall / gist:ecfe6b5c6cf31ffcfa9a
Created August 4, 2015 19:45
A SerialTransporter using multiprocessing. For use in future projects.
#!python
import serial
from multiprocessing import Queue, Process, Event, Value
import logging
class SerialTransporter(object):
def __init__(self, port, baud=115200, timeout=1):
self.port = port
self.baud = baud
import numpy as np
import scipy
from scipy import signal
import pylab as pl
if __name__ == "__main__":
N = 1024*8
A = 2**14
An = 400
phase = np.pi/5
@cwoodall
cwoodall / tesseract_test.cpp
Created April 4, 2014 15:45
Quick Tesseract test
/* Results for image http://universitypublishingonline.org/content/978/11/3952/429/2/9781139524292prf3_abstract_CBO.jpg
ENGLISH TEXT OF FRENCH PREFACE‘
This book was chiefly intended for English (and American)
readers. Those points are emphasised which in the judgment of
the author required emphasis for such readers. It may be worth
while, therefore, in preparing a French translation, to indicate
quite frankly and in a few words one or two of those aspects of
the situation arising out of the Treaty of Versailles, which are of
special significance for France.
@cwoodall
cwoodall / gist:7952754
Last active December 31, 2015 07:18
Extract data from data_file which is a "binary string". Returns it in the format (Data[31 downto 8], Data[7 downto 0]) which is technically data, ADC channel... Created this after talking to Dean DeCarli.
import struct
from itertools import izip_longest
def grouper(n, iterable, fillvalue=None):
"grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx... From stackoverflow"
args = [iter(iterable)] * n
return izip_longest(fillvalue=fillvalue, *args)
# Extract data from data_file which is a "binary string". Returns it in the format (Data[31 downto 8], Data[7 downto 0])
# which is technically data, ADC channel