Hi, I'm Andy!

Biosensing, Brain-computer interfaces, CS + HCI at Carnegie Mellon

Thinking in Progress:

How Trees Fall Apart

The differing decay patterns of trees during fall

Tags: fallnumber22
Date Published: November 13, 2021

Real Time Fourier Transform Using Shaped Aperture

Light speed!

Tags: light , fourier , optics
Date Published: September 20, 2021

Measuring 150 Amps With A DIY Shunt

Speccing a 150A@5V power supply, the NJE MK750

Tags: electronics , highcurrent
Date Published: September 06, 2021

Supercharging Capacitors

Who has time for 5RC?

Tags: electronics
Date Published: August 09, 2021

Sugar-Metering My First Watermelon

Tastes like Capri-sun! Bonus: Lychee and Longan

Tags: refractometer , sugarinfruit
Date Published: July 27, 2021

How to get access to your Fitbit data

Navigating a slightly complicated process for API noobs

Tags: tutorial , API , fitbit
Date Published: July 26, 2021

Comparing The Sugar Percentage Of A Peach vs. Sugary Drinks

Testing out a sweet scientific instrument

Tags: refractometer , experiment , sugarinfruit
Date Published: July 23, 2021

Paper Delivery: Sinusoidal Skin Displacements

Retro papers you probably missed, but shouldn't have!

Tags: mechanoreceptors , litsearch
Date Published: June 22, 2021

Finding My Pacinian Corpuscles in vivo

If only Galen had had a vibrating motor

Tags: mechanoreceptors , haptics , LRA
Date Published: June 16, 2021

Recreating Traxion

Only 8 years late!

Tags: electronics , haptics
Date Published: June 02, 2021

MacGyvering Electronics From Merch

TFW no batteries :(

Tags: electronics , macgyver
Date Published: May 31, 2021

Stimulating the Merkel Discs: Nerve stimulation using TENS

The Firm Handshake-inator 3000

Tags: EMS , TENS
Date Published: May 23, 2021

Implementing Body Channel Communication Pt. 3

Reinventing the radio and using touch as the antenna

Tags: hci , bcc , microcontroller , biosig
Date Published: May 15, 2021

Outro to Intro to Woodworking

Crate, shelf, stool

Tags: woodworking , cmu
Date Published: April 29, 2021

Implementing Body Channel Communication Pt. 2

Look Ma, no shared ground!

Tags: hci , bcc , microcontroller , biosig
Date Published: April 27, 2021

Implementing Body Channel Communication Pt. 1

Harnessing the body's conductivity as a signal path

Tags: hci , microcontroller , bcc
Date Published: April 17, 2021

Intro to Intro to Woodworking

There's always money in the banana stand

Tags: woodworking , cmu
Date Published: March 24, 2021

MPR121 Touch Sensing Across Barriers

Testing capacitive coupling across various barriers

Tags: mpr121 , touchsensitive , sensor , hardware
Date Published: March 13, 2021

5050 LED Strip Teardown

Repurposing an LED light strip controller and power supply

Tags: LEDs , teardown , electronics
Date Published: February 20, 2021

Blink Detection Using Infrared Reflective Sensors

Preliminary experiments in focus tracking.

Tags: infrared , Arduino , sensing , blinkdetection
Date Published: February 12, 2021

Calculating the expected value of the PA scratch offs

It's ok, all proceeds pay for the benefits of older residents of Pennsylvania

Tags: lottery , wasteofmoney , probability
Date Published: February 04, 2021

Physical Word Length Calculator

Determine how much string you'll need to spell out a phrase

Tags: calculator , p5js , cursive
Date Published: February 01, 2021

Detecting instantaneous frequency is hard

Major blockades to fast, effective BCI

Tags: thoughts , bci , dsp , fft
Date Published: January 31, 2021

Touch Reactive LEDs

Electronic piano, anyone?

Tags: hci , touchdetection , LED
Date Published: January 29, 2021

Oversampling vs. Averaging for Noise Reduction

Spoiler: always oversample.

Tags: dsp , eeg
Date Published: January 24, 2021

Quantifying Interface Speeds

Comparing the information transfer rate of the keyboard, mouse, and other input devices.

Tags: bci , hci , interfaces
Date Published: January 21, 2021

Trying out various peak detection techniques for the SSVEP

Garbage in, garbage out.

Tags: ssvep , eeg , bci , dsp
Date Published: January 18, 2021

EEG fails in the prescence of household EMI

I am beginning to have doubts on the feasibility of everday BCIs...

Tags: eeg , bci , emi , thoughts
Date Published: January 17, 2021

The first generation of handheld barcode scanners — with laser tubes

History of the LS1000 and MH290, and a demo of the 2nd!

Tags: history , electronics
Date Published: January 14, 2021

New EEG Technique: Phase-rectified signal averaging

Basic method of aligning waves helps when averaging out noise from long time-series

Tags: ssvep , bci , eeg , paperhighlight
Date Published: January 13, 2021

Preliminary 5W LED Tests

Projecting 5W of light onto a wall — DIY Projector

Tags: projector , projectlog , LED
Date Published: January 06, 2021

Fresnel Lens

Making flat lenses using special surface ridging

Tags: optics , lenses , projectlog
Date Published: January 05, 2021

Hello World for Brain-Computer Interfaces

Detecting alpha wave activity with EEG to predict whether my eyes are open or closed

Tags: BCI , EEG
Date Published: December 31, 2020

Working with BrainFlow pt. 1

A new way to stream OpenBCI data to Python

Tags: projectlog , EEG , Python
Date Published: December 30, 2020

Testing out some high power LEDs

Casting light on far away surfaces using 3W LEDs

Tags: electronics , LED , projectlog , wallscreen
Date Published: December 28, 2020

Easy Button Hack Pt. 1

Learning about SD cards, transistor audio amps, Arduino sleep and interrupts

Tags: projectlog , easybutton , arduino , microcontroller , audio
Date Published: December 24, 2020

Arduino Function Generator: Square Wave with Variable Duty Cycle

How to make a free, customizable square wave generator from a microcontroller you already have

Tags: arduino , microcontrollers , testequipment , tutorial
Date Published: December 23, 2020

Improving noisy EEG data through single channel averaging

How to get rid of Gaussian noise using a single electrode's measurements

Tags: bci , signalprocessing
Date Published: December 18, 2020

Coin vibration motors arrived!

Now I can do "haptic feedback"

Tags: hardware , motor , haptic
Date Published: December 14, 2020

Playing sounds with an Arduino, speaker, and no amplifier

LM386 audio amplifier? I 'ardly know her!

Tags: arduino , microcontroller , audio , hack
Date Published: December 13, 2020

Analog Electronics Basics: Scaling Voltage Rails

What to do when your circuit outputs ±5V but your ADC only takes 0-5V

Tags: analog , electronics , opamps
Date Published: December 08, 2020

Photoplethysmography (PPG) Tutorial

A guide on how to pronounce the word, and how to implement it in Python

Tags: tutorial , CV , heartrate
Date Published: December 07, 2020

Exploring USB-A breakout cables

The normal USB cable

Tags: electronics
Date Published: December 04, 2020

Sledding on a table

We had no sled, but we did have an extra folding table

Tags: life
Date Published: December 01, 2020

Myo3 Noise Specs

1.24µV of noise at 500,000x gain

Tags: myo3 , projectlog
Date Published: November 29, 2020

Javascript Libraries

What do you mean everything is a global???

Tags: webdev , javascript
Date Published: November 28, 2020

Teensy DAQ: ADC Oversampling on the Teensy 4.0 microcontroller

300 kSPS to 1 kSPS faster than you can say "free bits"

Tags: hardware , microcontrollers , Teensy , ADC
Date Published: November 27, 2020

Myo3 initial tests

It's like they always say, the hard part's the software

Tags: myo3 , projectlog , PCB
Date Published: November 26, 2020

Speed Check — Generating a list out of a range out of a len

Why does matplotlib set_data not take an iterable :(

Tags: speedcheck , matplotlib
Date Published: November 25, 2020

Myo3 Assembly

Putting together the 3rd iteration of my EMG sensor

Tags: projectlog , myo , PCB
Date Published: November 22, 2020

Histogram Equalization

Using all your dynamic range to make black and white images look sssickkk

Tags: CV
Date Published: November 20, 2020

Creating panorama images manually, pt 2!

Better stitching by doing something really easy I just forgot to consider

Tags: CV , OpenCV
Date Published: November 18, 2020

Creating panorama images manually

Experiments in holography

Tags: CV , OpenCV
Date Published: November 17, 2020

Playstation Eye does not work for MacOS!

Mac doesn't play nice with weird USB webcams :(

Tags: problems , hardware
Date Published: November 15, 2020

Spudging PCB Stencils for Beginners

How to lay out 50 components on a board really fast

Tags: electronics , PCB , tutorial
Date Published: September 14, 2020

Privacy screen

Only cool kids can see this laptop!

Tags: facerecognition , miniprojectlog
Date Published: September 09, 2020

Digital Holograms

Displaying 3D images on a 2D computer screen

Tags: projectlog
Date Published: June 18, 2020

Speed Check (calling Python Built-in functions)

Calling str, type, etc. is free... right?

Tags: speedcheck
Date Published: May 25, 2020

Variable resistance tests of Velostat/Linqstat

Testing the effects of bending, twisting, and touch on the conductive plastic Velostat.

Tags: wearables , conductivefabric , velostat
Date Published: May 17, 2020

Speed Check

What's the fastest way to record a stream of strings in Python?

Tags: projectlog , speedcheck
Date Published: May 10, 2020

Parts arrived for Altered Perceptions

How would you like to see the world from a new pair of eyes?

Tags: projectlog , alteredperceptions
Date Published: November 13, 2019

Spin Tank Proof-of-Concept Test

A new configuration for some old kinds of armor

Tags: projectlog , spintank
Date Published: August 20, 2019

Advanced addition and speedup of neural network evaluation

Linear functions and what it means for Neural Network acceleration

Tags: projectlog , advancedaddition
Date Published: August 01, 2019

The miracle of brain-computer interfaces

How BCIs can give us more arms

Tags: thoughts0
Date Published: July 28, 2019

Simple arithmetic addition with neural networks

I have stumbled across a new way to add numbers.

Tags: projectlog , advancedaddition , new
Date Published: July 17, 2019

The exploration of unexplorable search spaces

Any hard problem can be solved by randomly guessing — if you're good enough at guessing.

Tags: thoughts0
Date Published: June 30, 2019

First Post!


Tags: stateoftheblog
Date Published: June 24, 2019