Presentation at BCCE

I’m giving a research talk at the Biennial Conference on Chemical Education, which is being hosted by Purdue University. The presentation is on developing a curriculum for analytical chemistry based upon building scientific instruments using the M4 Express microcontroller. I mentioned a few links in the talk and here they are for those who snapped a picture of the QR code:

Some pics and other relevant info will follow the talk.

FeAtHEr-Cm gamma tests

I received the PCBs for the gamma (3rd) version of the FeAtHEr-Cm potentiostat. I really like how this one comes together. Complete with 2 20kohm pots for adjusting virtual ground and iR compensation plus the passives all fit in a single 14-pin socket which allows students to explore how changing these components can influence the performance of the instrument (and to hack it to do things it’s not intended to do). Plus, it’s got buttons! This is the version that students will see this fall.

The bob173-gamma potentiostat.

Signal processing with Mathematica

I’ve been working on some instrument design projects and have hit a brick wall of sorts. My prototypes are riddled with noise, most likely 60 hz. My thought here was to learn a bit more about signal processing to (a) see if I can get a better understanding of what’s going on and (b) see if this is a possible project for students.

So the setup is as follows. I’ve got an Arduino microcontroller that does one of two things, it either reads the signal from a noisy light detector (in this case, an LED connected to an op amp in a current-to-voltage configuration) or – for debugging purposes – outputs a fixed signal frequency by printing $A0 + A cos(2 Pi f millis()/1000)$ where $A0$ and $A$ are amplitude offset and signal amplitude, respectively, $f$ is the frequency and since millis() returns a value in milliseconds, it is divided by 1000. To enact a sampling rate, I set a delay(dt) in the loop routine where dt is the delay time in milliseconds.

On the *Mathematica* side, it’s pretty easy to read the serial data from the Arduino with d = DeviceOpen["Serial", {<port>, "BaudRate"-><baudrate>}] with replacing <port> and <baudrate> with your values. The code below is a tad clunky, but works well at grabbing data and converting it into a format that Mathematica wants.

Continue reading

First project with Adafruit.IO

For a while now, I’ve been interested in exploring Internet-of-Things (IoT) sensors with the hopes of developing some type of platform that can be used for remote chemical education. I’ve also been making a lot of purchases at Adafruit because the pandemic, the state of our country, and the pile of grading on my desk have left me feeling depressed and in need of some comfort making.

This project is far from complete, but I know that I’ll get swamped with end-of-semester craziness and need to have some documentation of what I’ve done to date. Ideally, I’d put it into my maker logbook, but the piles on my desk (both ungraded papers AND unfinished electronics projects) have made it all but impossible to find that notebook. Thankfully, the keyboard is clear of debris.

Continue reading