Pseudo-Medical Monitor Device Design: Difference between revisions

From LVL1
Jump to navigation Jump to search
Line 840: Line 840:
! DUE Pin !! DUE Function !! Device !! DUE Pin !! DUE Function !! Device
! DUE Pin !! DUE Function !! Device !! DUE Pin !! DUE Function !! Device
|-
|-
| 0 || RX_0 || Serial0 || 13 ||  ||  
| A0 || RX_0 || || A8 ||  || Port2-A2
|-
|-
| 1 || TX_0 || Serial0 || 14 || TX_3 ||  
| A1 || TX_0 || || A9 || || Port2-A1
|-
|-
| 2 ||  || CP_INT || 15 || RX_3 ||  
| A2 ||  || Port3-A3 || A10 ||   || Port2-A0
|-
|-
| 3 ||  || FP_IRQ || 16 || TX_2 || VS_RX
| A3 ||  || Port3-A2 || A11 ||   || Port1-A0
|-
|-
| 4 ||  || HB_INT || 17 || RX_2 || VS_TX
| A4 ||  || Port3-A1 || DAC0 || DAC ||
|-
|-
| 5 ||  || AMG_INT || 18 || TX_1 || FP_RX
| A5 ||  || Port3-A0 || DAC1 || DAC ||
|-
|-
| 6 ||  || VL_GPIO01 || 19 || RX_1 || FP_TX
| A6 ||  || Port1-A0 || CANRX || CAN ||
|-
|-
| 7 ||  || VL_XSHUT || 20 || SDA || Multiple
| A7 ||  || Port2-A3 || CANTX || CAN ||
|}
|}



Revision as of 23:02, 9 December 2021

Design

Pseudo-Medical Monitor

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 Generic Clone (alternative: Heyaodz111208)
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

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

component

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

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 Port2-A2
A1 TX_0 A9 Port2-A1
A2 Port3-A3 A10 Port2-A0
A3 Port3-A2 A11 Port1-A0
A4 Port3-A1 DAC0 DAC
A5 Port3-A0 DAC1 DAC
A6 Port1-A0 CANRX CAN
A7 Port2-A3 CANTX CAN

Assembly


Parts List

Electronics

MAIN DEVICE PARTS
Device Name
* Arduino Due Generic Clone (alternative: ITEADUINO DUE)
* MLX90614 Contactless Temperature Sensor Generic Clone (alternative: )
* AMG8833 Thermal Imager Sensor Generic Clone (alternative: TinyCircuits)
* VL53L0X TOF Laser Distance Sensor Generic Clone (alternative: Onyehn)
* MAX30102 Pulse and O2 Saturation Sensor Generic Clone (alternative: MH-ET Live)
* Capacitive Touch Fingerprint Scanner Generic Clone (alternative: DFROBOT)
* 160x128 LCD TFT SPI 1.8" Module with SD Socket Generic Clone (alternative: Heyaodz111208)
* VS1103 Audio Module (old module finally put to use)
COMMON PARTS
Device Name
* RJ45 Connection Boxes
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

SHIELDS
Shield Name Pinouts
* Arduino Mega Prototype Shield Generic Clone (alternative: KEYESTUDIO) (Analog Testing connector added after photo)
Pin Mapping
Due Pin Function MLX90614 AMG8833 VL53L0X MAX30102 FP Scan TFT SD Socket Analog Test Socket
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
21 SCL SCL SCL SCL SCL
A0 Signal
SPI MISO SD_MISO
SPI MOSI SDA SD_MOSI
SPI SCK SCK SD_SCK
* Audio Shield with VS1103
Pin Mapping
Device SIGNAL DUE 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
* Ports Shield
Pin Mapping
Port # Line # DUE Pin Function Port # Line # DUE Pin Function Port # Line # DUE Pin Function Port # Line # DUE 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 70 I2C-SDA 1 3 70 I2C-SDA 2 3 70 I2C-SDA 3 3 70 I2C-SDA
0 4 71 I2C-SCL 1 4 71 I2C-SCL 2 4 71 I2C-SCL 3 4 71 I2C-SCL
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
* Control Panel
Pin Mapping
Device SIGNAL DUE 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

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 Hand Held Unit

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

External EEG Simple Unit

Under Construction

Connections

Arduino DUE Pin Usage Baseline 1

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