Pseudo-Medical Monitor Device Design: Difference between revisions

From LVL1
Jump to navigation Jump to search
Line 1,102: Line 1,102:
[[File:JAC MED MON ATTINY85 TOKEN BOX_PARTS.jpg|left|thumbnail|x200px]]
[[File:JAC MED MON ATTINY85 TOKEN BOX_PARTS.jpg|left|thumbnail|x200px]]
[[File:JAC_MED_MON_ATTINY85_TOKEN_BOX.jpg|left|thumbnail|x200px]]
[[File:JAC_MED_MON_ATTINY85_TOKEN_BOX.jpg|left|thumbnail|x200px]]
----


=== External EKG-Respiration Unit ===
=== External EKG-Respiration Unit ===

Revision as of 22:28, 10 December 2021

This Amazing, Affordable, Earth Changing Device, for which no endorsement is to be inferred, is designed as a collection of layers.

Main Unit Sensor Layer

Components

General Components
Device Name Use

Arduino DUE Prototyping Shield

Base PCB for layer

* 160x128 LCD TFT SPI 1.8" Module with SD Socket (Heyaodz111208)

Display and SD Card Socket

Headers Divided into various length for mounting sensors and other devices

Sensors

Sensors
Device Name Description Interface
AMG8833 Thermal Imager Sensor (TinyCircuits) 8x8 thermal image sensor I2C Address 0x69
Capacitive Touch Fingerprint Scanner (DFROBOT) ID809 high-performance processor and semiconductor fingerprint sensor Serial UART
MAX30102 Pulse and O2 Saturation Sensor (MH-ET Live) IR and Visible Pulse and O2 Saturation Measurement I2C Address 0x57
MLX90614 Contactless Temperature Sensor Field and object temperature sensor I2C Address 0x5A
VL53L0X TOF Laser Distance Sensor (Onyehn) IR Laser time of flight distance sensor I2C Address 0x29

Shield Wiring

Pin Mapping
Due Shield Pin Function MLX90614 AMG8833 VL53L0X MAX30102 FP Scan TFT SD Socket Control Panel Analog Test Socket
2 Interrupt INT
3 Interrupt IRQ
4 Interrupt INT
5 Interrupt INT
6 Digital I/O GPIO1
7 Digital I/O XSHUT
8 Digital I/O SD_CS
9 Digital I/O RST
10 Digital I/O CS
11 Digital I/O AO
18 TX_1 RX
19 RX_1 TX
20 SDA SDA SDA SDA SDA SDA
21 SCL SCL SCL SCL SCL SCL
A0 Signal
SPI MISO SD_MISO
SPI MOSI SDA SD_MOSI
SPI SCK SCK SD_SCK

Assembly


Control Panel

Components

Control Panel Part
Device Name Use
RadioShack PCB 276-150 Control Panel PCB
Header Pins (various colors) Connector to Main Sensor Layer and configuration jumpers
Jumper/Short Configure Control Panel I2C Address
PCF8574 Remote 8-Bit I/O Expander Monitor Rotary Encoders and Set LED Condition
LEDs Provide visual ques to user
Rotary Encoder User interface device
Mounting Brackets Control Panel mounting brackets to Main Sensor Layer

Control Panel Wiring

Device Schematic
Pin Mapping
Device SIGNAL DUE Shield Pin Function
Controls Vin 3.3V Power
Controls SDA 20 SDA-I2C
Controls SCL 21 SCL-I2C
Controls INT 2 GPIO
Controls GND GND Power

Assembly


Audio Layer

Components

General Components
Device Name Use

Arduino DUE Prototyping Shield

Base PCB for layer

Breakout Board for VS1103 MIDI Decoder Provide audio to user
Stereo Phono Jack Audio output

Shield Wiring

Pin Mapping
Device SIGNAL DUE Shield Pin Function
VS1103 Vin 3.3V Power
VS1103 GND GND Power
VS1103 TX 17 RX-Serial2
VS1103 RX 16 TX-Serial2
VS1103 GPIO0 30 GPIO
VS1103 GPIO1 32 GPIO
VS1103 RST 28 GPIO
VS1103 DREQ 24 GPIO
VS1103 BSYNC 26 GPIO
VS1103 CS 22 GPIO
VS1103 SO SPI-HDR MISO
VS1103 SI SPI-HDR MOSI
VS1103 SCLK SPI-HDR SCK

Assembly


Ports Layer

Components

General Components
Device Name Use

Arduino DUE Prototyping Shield

Base PCB for layer

TCA9548A 1-to-8 I2C Multiplexer Breakout

  • Provide separate I2C bus isolation for each port
  • I2C Address 0x1E

Dual RJ45 Port Box

Provide External Unit connectivity to device

Shield Wiring

Device Notes
Pin Mapping
Port # Line # DUE Shield Pin Function Port # Line # DUE Shield Pin Function Port # Line # DUE Shield Pin Function Port # Line # DUE Shield Pin Function
0 1 3.3V Power 1 1 3.3V Power 2 1 3.3V Power 3 1 3.3V Power
0 2 GND Power 1 2 GND Power 2 2 GND Power 3 2 GND Power
0 3 MUX-SD0 1 3 MUX-SD1 2 3 MUX-SD2 3 3 MUX-SD3
0 4 MUX-SC0 1 4 MUX-SC1 2 4 MUX-SC2 3 4 MUX-SC3
0 5 53 GPIO0 1 5 27 GPIO0 2 5 A10/64 Analog0 3 5 A5/59 Analog0
0 6 51 GPIO1 1 6 29 GPIO1 2 6 A9/63 Analog1 3 6 A4/58 Analog1
0 7 49 GPIO2 1 7 31 GPIO2 2 7 A8/62 Analog2 3 7 A3/57 Analog2
0 8 A11/65 Analog0 1 8 A6/60 Analog0 2 8 A7/61 Analog3 3 8 A2/56 Analog3
  • Pull-Up Resistors added to second I2C bus on DUE Shield
  • TCA9548A Module is the I2C-MUX
  • I2C-MUX is connected to the second I2C bus on DUE Shield
  • I2C-MUX Reset is connected to DUE Shield PIN D23

Assembly

Processor Layer

Components

Processor Layer
Device Name Use
Arduino Due Generic Clone (ITEADUINO DUE) Main Processor
Mounting Brackets Mounting brackets support RJ45 Dual Port Boxes from Ports Layer

Wiring

Device
DUE Pin DUE Function Device DUE Pin DUE Function Device
0 RX_0 Serial0 13
1 TX_0 Serial0 14 TX_3
2 CP_INT 15 RX_3
3 FP_IRQ 16 TX_2 VS_RX
4 HB_INT 17 RX_2 VS_TX
5 AMG_INT 18 TX_1 FP_RX
6 VL_GPIO01 19 RX_1 FP_TX
7 VL_XSHUT 20 SDA Multiple
8 SD_CS 21 SCL Multiple
9 TFT_RST SDA1 I2C-MUX_SDA
10 TFT_CS SCL1 I2C-MUX_SCL
11 TFT_A0 MISO Multiple
12 MOSI Multiple
SCLK Multiple
DUE Pin DUE Function Device DUE Pin DUE Function Device
A0 RX_0 A8 Port 2-A2
A1 TX_0 A9 Port 2-A1
A2 Port 3-A3 A10 Port 2-A0
A3 Port 3-A2 A11 Port 1-A0
A4 Port 3-A1 DAC0 DAC
A5 Port 3-A0 DAC1 DAC
A6 Port 1-A0 CANRX CAN
A7 Port 2-A3 CANTX CAN
DUE Pin DUE Function Device DUE Pin DUE Function Device
22 VS_CS 23 I2C-MUX_RST
24 VS_DREQ 25
26 VS_XDCS 27 Port 1-GPIO0
28 VS_RST 29 Port 1-GPIO1
30 VS_GPIO0 31 Port 1-GPIO2
32 VS_GPIO1 33
34 35
36 37
38 39
40 41
42 43
44 45
46 47
48 49 Port 0-GPIO2
50 51 Port 0-GPIO1
52 53 Port 0-GPIO0
Prefix Device Prefix Device Prefix Device
VS VS1103 Breakout Board VL VL53L0X HB MAX30102
CP PCF8574A Control Panel FP Fingerprint Scanner AMG AMG8833
TFT ST7735 TFT Display Port X RJ45 Port I2C-MUX TCS9548A
SD SD Card Socket CT MLX90614

Assembly


Parts List

ATTINY85 TOKEN/NEOPIXEL CONTROLLER/TONE CONTROLLER PARTS
Device Name
* ATTiny85
* Tactile Momentary Switch
* Enclosure Parts
EXTERNAL UNIT PARTS
Device Name
* TMP36 Temperature Sensor
* IR Pulse Sensor with incorrect Labelling (Qty. 2)

3D Print Elements

Pseudo Medical Monitor Device 3D Print

Shield Levels And Panels

Assemblies

ASSEMBLIES
Assembly Name Notes Schematics
Control Panel
  • PCA8574 I/O Expander
  • Dual rotary Encoders
  • Two LEDs
Hand Held Unit PCB
  • MPU6050
  • Vibrating Motor Circuit
BioAmp EXG Pill
BioAmp EXG Pill Modification for EEG
Breathing Detector Signal Amplifier
  • Basic Op-Amp
GSR
  • TL074 Op-Amp
  • PCB acts as central wiring hub for External Unit
NeoPixel I2C Controller
  • ATTINY85
  • TinyWireS Library
  • Single NeoPixel
  • Local Reset Button
Tone I2C Controller
  • ATTINY85 (Specific Core Selection Needed)
  • TinyWireS Library
  • Single Piezo Speaker
  • Local Reset Button
Eye Tracking Goggles
  • Three IR Reflectance Sensors
  • BNO055 IMU
  • Semi-Reflective IR Reduction Filter
  • Under Review Due To Blindness Hazard
ATTiny85 Token Box
  • ATTiny85 Token
  • Reset Switch
  • PCB

Box/Case

x200xp

Units

Breakdowns

ATTiny85 Token


External EKG-Respiration Unit

BioApm EXG Pill EKG Circuit

NeoPixel I2C Controller

Respiration Detection Sensor Assembly Render Respiration Detector Signal Conditioner

Assembly without Harness Respiration Detection Sensor Assembly Attached to Harness

External Poly-Liar Unit

Respiration Detection Sensor Rendered Model Respiration Detection Sensor Attached to Harness

GSR Circuit Tone I2C Controller

Pulse Sensor TMP36 Temperature Sensor

GSR Finger Contacts

Goggles Simple Unit

Basic Driver Board Boxed

MPU Replaced with IMU Prototype for Testing

Connections

Code (Updated 11/16/2021)

Special Libraries

#include <Adafruit_GFX.h>

#include <Adafruit_ST7735.h>

#include <Adafruit_VL53L0X.h>

#include <Adafruit_AMG88xx.h>

#include <MAX30105.h>

#include <SparkFunMLX90614.h>

#include <DFRobot_ID809.h>

#include "bmpHeader.h"

#include <SD.h>

#include <Adafruit_MPU6050.h>

#include <Adafruit_Sensor.h>

#include <pu2clr_pcf8574.h>

Library Modification

// In this Library : #include <SparkFunMLX90614.h> 
//Change the following line in the bool IRTherm::I2CReadWord(byte reg, int16_t * dest) routine.
//
//  I2C processing change needed for Arduino Due implementation
//
// Comment Out Line Below
//	_i2cPort->requestFrom(_deviceAddress, (uint8_t) 3, (uint8_t) true); 

// Add Line Below
      _i2cPort->requestFrom(_deviceAddress, (uint8_t) 3, (uint32_t)reg, (uint8_t)1, (uint8_t)true);

Code Listing

Pseudo-Medical Monitor Code

Main Pseudo-Medical Monitor Page

Pseudo-Medical Monitor