Skip to content

Instantly share code, notes, and snippets.

View hexagon5un's full-sized avatar

Elliot Williams hexagon5un

View GitHub Profile
import os
import re
import shutil
import glob
## List of the STM32 chips supported by OpenCM3
chips = ["f0", "f1", "f3", "f4", "f2", "l0", "l1"]
## Representative projects for each chip
## These really only vary in their linker files and peripherals
## Look at the examples (below) for specifics
## Cross-compilation commands
CC = arm-none-eabi-gcc
LD = arm-none-eabi-gcc
AR = arm-none-eabi-ar
AS = arm-none-eabi-as
OBJCOPY = arm-none-eabi-objcopy
OBJDUMP = arm-none-eabi-objdump
SIZE = arm-none-eabi-size
# our code
## Cross-compilation commands
CC = arm-none-eabi-gcc
LD = arm-none-eabi-gcc
AR = arm-none-eabi-ar
AS = arm-none-eabi-as
OBJCOPY = arm-none-eabi-objcopy
OBJDUMP = arm-none-eabi-objdump
SIZE = arm-none-eabi-size
# our code
## Cross-compilation commands
CC = arm-none-eabi-gcc
LD = arm-none-eabi-gcc
AR = arm-none-eabi-ar
AS = arm-none-eabi-as
OBJCOPY = arm-none-eabi-objcopy
OBJDUMP = arm-none-eabi-objdump
SIZE = arm-none-eabi-size
# our code
## Creates a gamma-corrected lookup table
import math
def gamma(nsteps, gamma):
gammaedUp = [math.pow(x, gamma) for x in range(nsteps)]
return [x/max(gammaedUp) for x in gammaedUp]
def rounder(topValue, gammas):
return [min(topValue, round(x*topValue)) for x in gammas]
## This is where you want the entire toolchain to live
## You should run this script from within the destination directory, or
## redefine the BASE variable to fit your lifestyle.
BASE=$(pwd)
echo
echo [getESP32.sh]: Checking for system prerequisites
[[ $(which pacman) ]] && sudo pacman -S --needed gcc git make ncurses flex bison gperf python2-pyserial wget 2>/dev/null
[[ $(which apt-get) ]] && sudo apt-get install git make libncurses-dev flex bison gperf python python-serial wget 2>/dev/null
@hexagon5un
hexagon5un / Tiny_Tachometer.c
Created December 1, 2016 06:44
PIC Code to Set 6 Pins With 3: http://wp.me/pk3lN-YHm
/*******************************************************************************
TINY TACHOMETER
TACOMETRO C/ PIC12F675 E LCD (M�TODO LPLEX - 3 FIOS)
METODO: LEITURA DO PERIODO
@hexagon5un
hexagon5un / blinkLED_power_down_watchdog.c
Last active October 23, 2017 14:20
Low-power ATtiny45 code for short infrequent pulses
#include <avr/io.h>
#include <avr/sleep.h>
#include <avr/power.h>
#include <avr/wdt.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#define LED PB4
#define LED_DDR DDRB
#define LED_PORT PORTB
@hexagon5un
hexagon5un / hull_pcb_case.scad
Created February 4, 2018 22:16
Create a PCB Caddy with OpenSCAD's hull() Command
use <hull.scad>
w = 66.35;
l = 79;
pin_locations = [ [-w/2, -l/2, 0], [-w/2, l/2, 0],
[ w/2, -l/2, 0], [ w/2, l/2, 0] ];
thickness = 1;
$fn = 24;
@hexagon5un
hexagon5un / hull.scad
Created February 4, 2018 22:50
OpenSCAD Hull Functions Library
module multiHull(){
for (i = [1 : $children-1])
hull(){
children(0);
children(i);
}
}
module sequentialHull(){
for (i = [0: $children-2])