Posts

Heart Rate Measurement with ESP32 and Pulse Oximeter Module using FFT

Image
 Code listing used in video: // Tinker Foundry // Heart Rate Measurement with the MAX30102 breakout board using FFT // Connections from WEMOS D1 R32 board to MAX30102 Breakout Board as follows: //  SCL (ESP32) to SCL (breakout board) //  SDA (ESP32) to SDA (breakout board) //  3V3 (ESP32) to VIN (breakout board) //  GND (ESP32) to GND (breakout board) #include <Wire.h> #include "MAX30105.h"     // sparkfun MAX3010X library MAX30105 particleSensor; #include "arduinoFFT.h" arduinoFFT FFT; double avered       = 0 ; double aveir        = 0 ; double sumirrms     = 0 ; double sumredrms    = 0 ; int    i            = 0 ; int    Num          = 100 ;  // calculate SpO2 by this sampling interval int    Temperature; int    temp; float  ESpO2;               // initial value of estimated SpO2 double FSpO2        = 0.7 ;  // filter factor for estimated SpO2 double frate        = 0.95 ; // low pass filter for IR/red LED value to eliminate AC component #def

ESP32 Based Pulse-Oximeter using MAX30102

Image
Code for Arduino IDE used in the video is listed below. It targets the Wemos D1 R32 ESP32 board, but can be modified to suit. // Tinker Foundry // Accompanying video: https://youtu.be/xjwSKy6jzTI // Code for ESP32 to interface with MAX30102 breakout board and report blood oxygen level // Refer to https://github.com/DKARDU/bloodoxygen - below code is simplified version // https://www.analog.com/media/en/technical-documentation/data-sheets/MAX30102.pdf // Connections from WEMOS D1 R32 board to MAX30102 Breakout Board as follows: //  SCL (ESP32) to SCL (breakout board) //  SDA (ESP32) to SDA (breakout board) //  3V3 (ESP32) to VIN (breakout board) //  GND (ESP32) to GND (breakout board) #include <Wire.h> #include "MAX30105.h" //sparkfun MAX3010X library MAX30105 particleSensor; double avered    = 0 ; double aveir     = 0 ; double sumirrms  = 0 ; double sumredrms = 0 ; int    i         = 0 ; int    Num       = 100 ;  // calculate SpO2 by this sampling interval int

Tinkering with FPGAs

Image
  In this video, I present a high-level overview of the Digilent Arty-S7 board with Xilinx Spartan 7 FPGA, targeted towards hobbyists and makers. It includes a walk-through of the process of creating and implementing a digital design in an FPGA from writing RTL (in Verilog), simulation, synthesizing, implementing and uploading the bitstream to the device using Xilinx Vivado. Links to some related Digilent and Xilinx resources: https://www.xilinx.com/products/boards-and-kits/1-pnziih.html https://digilent.com/reference/programmable-logic/arty-s7/start Verilog HDL Code for the example design featured in this video: `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company:   Tinker Foundry // Engineer:  Tinker Founder //  // Create Date: 05/06/2023 01:39:13 PM // Module Name: tinker // Target Devices: Arty-S7 Board // Description:  // Example design that will increment a 4-bit counter if SWITCH0 is off, and // decrement the counter

Raspberry Pi Pico-W Overview

Image

Automatic Blood Pressure Monitor - An Inside Look

Image
ESP32 Code used in Arduino IDE to take readings from the HX710 ADC based pressure sensor below. This just streams the data to serial (USB) interface for display on serial monitor/plotter. /**********************************************************************   Filename    : ESP32_blood_pressure   Description : Take HX710 ADC data from pressure sensor                 Users visit the site to view the image data ESP32 camera.   Author      : Tinker Foundry **********************************************************************/ // References: // https://swharden.com/blog/2022-11-14-hx710b-arduino/ // https://www.electronicscomp.com/datasheet/hx710b-ic-datasheet.pdf #include <WiFi.h> const char * ssid     = "xxxxxx" ;     // input your wifi name const char * password = "xxxxxx" ;    // input your wifi passwords const int HX_OUT_PIN = 12 ; // input from HX710 ADC chip - serial input const int HX_SCK_PIN = 13 ; // clock output to the HX710 ADC chip #defin

Testing our ESP32 Stereoscopic Camera - How far away is the egg?

Image