Skip to content

Instantly share code, notes, and snippets.

@bigjosh
bigjosh / BB EXtractor.ahk
Created August 7, 2024 05:00
A horrible AutoHotKey script to semi-automate the extraction of a directory full of Blackberry IPD backup files using BlackBerry Extractor.
#Requires AutoHotkey v2.0
^j::
{
WinActivate "BlackBerry Backup Extractor"
WinWaitActive "BlackBerry Backup Extractor"
ControlClick "WindowsForms10.BUTTON.app.0.282af8c_r12_ad11"
Sleep 100
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.
// 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 / 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.
@bigjosh
bigjosh / showNumberDemo.ino
Last active June 7, 2020 21:42
Display a number 0-342 using the RGB LEDs on a Move38.com blink
// Display a number 0-342 on the LEDs
// The number is shown in base 7 format with red, green,
// and blue being the 1's, 7's, and 49's places respecitively
// A 0 digit is shown as OFF. Digits 1-6 are shown as 1-6 LEDs
// lit with the place color.
//
// 0 = All Off
// 1 = 1 RED
// 2 = 2 RED
// ...
/*
Blinks Dev-Kit
Validation Test for Dev Kit Blinks
4 modes for testing
1. Verify RGB on all 6 faces together
2. Verify RGB on each of the 6 faces individually
3. Verify communication w/ awake neighbors
4. Verify cold sleep (<0.2µA)