Skip to content

Instantly share code, notes, and snippets.

REM Move all of the files from a recently inserted USB drive to a directory on a local hard drive.
REM Edit these to set the correct paths for your USB drive and the location where you want the files to end up.
set "SRC=J:\RECORD"
set "DST=D:\Users\josh\Documents\OrsonEar"
REM This should be set up inside Task Schedualer to run on the follwoing event:
REM Log : Microsoft-Windows-DeviceSetupManager/Admin
REM Source : DeviceSetupManager
REM Event ID : 112
VOR=0 (Voice Activation On=1; Off=0. I prefer continuous capture. Bits are free.)
LED=0 (Led On after 10 Sec=1; Led Off after 10 Sec=0. I turn the LED off to save battery and not be anoying in the dark)
SEG=300 (File Segment Time=1~999, I use 300 mins=5 hours per segment)
TIME=20231121181704 (Set this to the current time before saving the file. I use GMT)
/*
* Below is a a modified version of the TI MSP430 LCDE_01 example named `msp430fr413x_LCDE_01.c`
* It simply displays the numbers 1-6 on the built-in LCD display on the MSP-EXP430FR4133 Lanuchpad.
*
* I could not find any ultra-low power examples of an MSP430 driving and LCD, so I started with
* the TI code and kept updating it to try to use less power using things I noticed in the datasheets.
*
* I was able to drop the current usage from 200uA down to less than 1uA without any noticable change in functionality.
*
* I hope to write a full article about this and other MSP430 power optimization techniques on josh.com soon.
@bigjosh
bigjosh / NoPartsBatteryGauge.c
Last active April 7, 2022 09:51
Sample code for a no parts, no pins, no power supply voltage detection on ATTINY84
/*
* NoPartsBatteryGuageAVR.c
*
* This is a simplified demonstration of how to detect power supply voltage by using the on chip
* analog-to-digital converter to measure the voltage of the internal band-gap reference voltage.
*
* The code will read the current power supply voltage, and then blink an LED attached to pin 6 (PA7).
*
* 1 blink = 1 volts <= Vcc < 2 volts (only applicable on low voltage parts like ATTINY84AV)
* 2 blinks = 2 volts <= Vcc < 3 volts
/*********************************************************************
This is an example for our nRF52 based Bluefruit LE modules
Pick one up today in the adafruit shop!
Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!
MIT license, check LICENSE for more information
// put your main code here, to run repeatedly:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
void setup() {
// put your setup code here, to run once:
main();
@bigjosh
bigjosh / nbits2target.js
Last active June 1, 2021 01:15
Convert bitcoin `nBits` field into a hex string value for `target` using only string functions
// Returns a 64 char (256 bit) hex string of the target
// Based on https://developer.bitcoin.org/reference/block_chain.html#target-nbits
function nbits2target( nbits ) {
const significand = nbits & 0x00ffffff;
const exponent = nbits >>> (8*3);
// (all `*2` are becuase calcuations are in bytes, but in string 1 byte = 2 letter places)
const fixed6SigString = (significand.toString(16)).padStart( 3*2 , "0");
@bigjosh
bigjosh / gist:002dffefb082828348e07397289f8587
Created February 16, 2017 03:44
Arduino sketch that will put a DS3231 time keeping chip into a low power mode where it outputs a 1Hz square wave (pull up needed)
#include "Wire.h"
#define DS3231_I2C_ADDRESS 0x68
#define DS_REG_CR (0x0e) // Control Reg
#define DS_REG_SR (0x0f) // Status Reg
// Pins connected to the DS2321
// We want to know these so we can put them HI_Z when not talking to the board to get a real power measurement.
#define D_SCLK A5
#define D_SDAT A4
@bigjosh
bigjosh / BlinkUntilDead.ino
Last active January 6, 2021 06:44
Example of how to prevent sleeping on a Move38 blink - DANGER: USE WITH CARE
#include "shared/blinkbios_shared_button.h"
#include "shared/blinkbios_shared_functions.h"
// Example of how to prevent a blink from going to sleep.
// This will keep blinking once per second until the battery goes dead.
// Button click will show a red flash. Note that we are making fake button presses
// to avoid warm sleep, so you can not reliabily detect an actual button press but you can
// see clicks and long presses.
@bigjosh
bigjosh / DistributedCounterDemo.ino
Last active December 22, 2020 18:26
Counts the number of connected nodes in a distributed and robust way. More info at https://forum.move38.com/t/yadca-yet-another-distributed-counting-algorithm/468
// SimpleCounter demo
// A simple distributed counter example
//
// On startup, blinks are dim BLUE which shows they are in IDLE mode waiting for a master
//
// Button press a blink to make it master of the cluster. The master will show the current count
// using the 0-342 display format decribed below under showNumber()...
//
// While a blink is actively part of a counting cluster, it will show dim GREEN on the face
// that points to its parent. All parent faces eventually lead back to the master.