{"id":300,"date":"2017-07-04T21:55:24","date_gmt":"2017-07-04T20:55:24","guid":{"rendered":"http:\/\/eoghan.me.uk\/notes\/?p=300"},"modified":"2023-01-04T13:14:14","modified_gmt":"2023-01-04T13:14:14","slug":"blood-pressure","status":"publish","type":"post","link":"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/","title":{"rendered":"Doppler Blood Pressure Simulator"},"content":{"rendered":"<p>In collaboration with the Clinical Skills Team, the Digital Education Unit at the Royal (Dick) School of Veterinary Studies at the University of Edinburgh have developed a Doppler flow measurement simulator to teach the measurement of systolic blood pressure.<\/p>\n<p>Idea and testing by Rob Ward and Caroline Mosley, construction and coding by Eoghan Clarkson.<\/p>\n<figure id=\"attachment_332\" aria-describedby=\"caption-attachment-332\" style=\"width: 300px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Whole.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-332\" src=\"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Whole-300x300.jpg\" alt=\"Assembled simulator\" width=\"300\" height=\"300\" srcset=\"https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Whole-300x300.jpg 300w, https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Whole-150x150.jpg 150w, https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Whole.jpg 650w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-332\" class=\"wp-caption-text\">The assembled simulator<\/figcaption><\/figure>\n<figure id=\"attachment_334\" aria-describedby=\"caption-attachment-334\" style=\"width: 300px\" class=\"wp-caption alignright\"><a href=\"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Pi.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-334\" src=\"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Pi-300x225.jpg\" alt=\"Raspberry Pi wired up\" width=\"300\" height=\"225\" srcset=\"https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Pi-300x225.jpg 300w, https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Pi-768x576.jpg 768w, https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Pi.jpg 800w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-334\" class=\"wp-caption-text\">Raspberry Pi wired up<\/figcaption><\/figure>\n<div style=\"clear: both;\"><\/div>\n<p><center><br \/>\n<a href=\"http:\/\/creativecommons.org\/licenses\/by-nc-sa\/4.0\/\" rel=\"license\"><img decoding=\"async\" style=\"border-width: 0;\" src=\"https:\/\/i.creativecommons.org\/l\/by-nc-sa\/4.0\/88x31.png\" alt=\"Creative Commons Licence\" \/><\/a><br \/>\nThis work is licensed under a <a href=\"http:\/\/creativecommons.org\/licenses\/by-nc-sa\/4.0\/\" rel=\"license\">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License<\/a>.<\/center><br \/>\n<!--more--><\/p>\n<h2>The idea<\/h2>\n<p>Doppler flow measurement is a cheap technique for non-invasive measurement of systolic blood pressure commonly used in small animal practices, and as such is a skill we require our students to master. The technique can be practised on live animals or students themselves, but at Edinburgh we are reducing our use of live animals and have safety concerns about self-experimentation. Also, practising on a live subject does not produce consistent and repeatable results that can be later checked for accuracy. As a result of collaboration between our Clinical Skills Team and Digital Education Unit, we created a prototype Doppler flow measurement simulator using a Raspberry Pi and Arduino together (low-cost computers, about the size of a credit card, which can be extended by adding environmental sensors). This prototype was later refined to require only the Raspberry Pi, and both versions have since been used by students during Clinical Skills practicals.<\/p>\n<h2>The plan<\/h2>\n<p>Rob and Caroline&#8217;s idea was to use a Raspberry Pi to simulate Doppler flow measurement in small animals.<\/p>\n<ol>\n<li>A &#8216;Doppler probe&#8217; would be placed on a dummy of a canine forelimb.<\/li>\n<li>When in the correct position to take measurements, the sound of blood flowing forward and back would be played through a speaker.<\/li>\n<li>The student would inflate a cuff using a sphygmomanometer, until the blood flow sound stops.<\/li>\n<li>They then deflate the cuff until they hear the sound of blood flowing forward, but not back, and note the systolic blood pressure.<\/li>\n<li>They continue to deflate the cuff until they hear the sound of blood flowing forward and back again, and note the diastolic blood pressure.<\/li>\n<\/ol>\n<p>The original idea was that one blood pressure reading would be programmed into the Raspberry Pi.<\/p>\n<h3>Optional extension<\/h3>\n<p>A further idea we had was that a rotary switch could be added, which would allow students to select a number of different blood pressures to try measuring.<\/p>\n<p>NOTE: As an emergency measure, if the probe doesn&#8217;t seem to work and the blood pressure can&#8217;t be heard when placing it, then setting the rotary switch to position &#8217;10&#8217; will ignore the need to place the probe in the correct position, and will cause the blood pressure sound to be heard regardless.<\/p>\n<h2>The parts<\/h2>\n<p>Standard electronic parts:<\/p>\n<ul>\n<li><a href=\"https:\/\/uk.rs-online.com\/web\/c\/raspberry-pi-arduino-development-tools\/raspberry-pi-shop\/raspberry-pi\/?applied-dimensions=4294545526\">Raspberry Pi<\/a> &#8211; \u00a334.07<\/li>\n<li><a href=\"https:\/\/uk.rs-online.com\/web\/p\/ac-dc-adapters\/9098126\/\">Power supply<\/a> &#8211; \u00a37.80<\/li>\n<li><a href=\"https:\/\/uk.rs-online.com\/web\/p\/micro-sd-cards\/1261734\/\">16GB microSD Card<\/a> &#8211; \u00a312.88<\/li>\n<li><a href=\"https:\/\/onecall.farnell.com\/honeywell\/sscdann015pg2a3\/sensor-trustability-15psi-3-3v\/dp\/1823259\">Digital Pressure Sensor (HONEYWELL\u00a0 SSCDANN015PG2A3)<\/a> &#8211; \u00a326.53<\/li>\n<li><a href=\"https:\/\/uk.rs-online.com\/web\/p\/reed-switches\/8662580\/\">Reed Switch<\/a> &#8211; \u00a38.75 (you can get cheaper reed switches, but they can break more easily)<\/li>\n<li><a href=\"https:\/\/www.proto-pic.co.uk\/product\/sparkfun-com-08644-magnet-square-0-125\/\">Small magnet<\/a> &#8211; \u00a30.77<\/li>\n<li><a href=\"https:\/\/www.proto-pic.co.uk\/product\/white-2-core-twin-figure-8-cable-1m\/\">2 core wire, 1m<\/a> &#8211; \u00a30.36<\/li>\n<li>USB Speakers: We used <a href=\"https:\/\/www.betron.co.uk\/speakers\/jrs40\/\">Betron Pop Up Portable Travel Speaker<\/a> &#8211; \u00a325 (you can get a few of these and chain them together &#8211; but other speakers might be louder)<\/li>\n<li><a href=\"https:\/\/onecall.farnell.com\/adafruit-industries\/2310\/rpi-perma-prototype-hat-no-eeprom\/dp\/SC13845\">Perma-Proto HAT (No EEPROM)<\/a> &#8211; \u00a36.18<\/li>\n<li><a href=\"https:\/\/uk.rs-online.com\/web\/p\/push-button-switches\/7346735\/\">Mini push-button momentary switch<\/a> &#8211; \u00a33.18<\/li>\n<li>Resistors (2 x 1kOhm)<\/li>\n<li>A small <a href=\"https:\/\/uk.rs-online.com\/web\/p\/stripboards\/2926875\/\">copper stripboard<\/a> to cut up &#8211; \u00a36.32<\/li>\n<li>Heat shrinkable sleeving, large enough diameter to enclose the probe.<\/li>\n<\/ul>\n<p>Specialised parts:<\/p>\n<ul>\n<li>Canine Foreleg model (this can be made yourself, or we used one of <a href=\"http:\/\/www.vetmed.ucdavis.edu\/products\/\">UC Davis&#8217;s Canine Foreleg Models<\/a>)<\/li>\n<li>Sphygmomanometer (optionally with cuff)<\/li>\n<\/ul>\n<h3>Optional parts<\/h3>\n<p>Parts to allow probe and shutdown button to be detached an other ones attached:<\/p>\n<ul>\n<li>2 x <a href=\"https:\/\/uk.rs-online.com\/web\/p\/idc-connectors\/5437700\/\">IDC Connector Socket, 2 Way, 1 Row<\/a> &#8211; \u00a31.90 for 10<\/li>\n<li>2 x\u00a0<a href=\"https:\/\/uk.rs-online.com\/web\/p\/pcb-headers\/1320355\/\">Straight PCB Header, 2 Way, 1 Row<\/a> &#8211; \u00a31 each<\/li>\n<\/ul>\n<p>Rotary switch, to allow different pressure values to be selected:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.proto-pic.co.uk\/product\/sparkfun-com-13253-rotary-switch-10-position\/\">Rotary Switch<\/a> &#8211; \u00a32.29<\/li>\n<li><a href=\"https:\/\/www.proto-pic.co.uk\/product\/sparkfun-bob-13098-rotary-switch-breakout\/\">Rotary Switch Breakout<\/a> &#8211; \u00a32.29<\/li>\n<li><a href=\"https:\/\/www.proto-pic.co.uk\/product\/sparkfun-com-09998-black-knob-15x19mm\/\">Black Knob<\/a> &#8211; \u00a31.00<\/li>\n<li><a href=\"https:\/\/thepihut.com\/products\/26-pin-gpio-ribbon-cable-rainbow-150mm\">Ribbon cable<\/a> (ideally at least 11pin for 10-way rotary switch) &#8211; \u00a33.19<\/li>\n<\/ul>\n<p>And the following are useful if you want to be able to attach and detach the rotary switch:<\/p>\n<ul>\n<li><a href=\"https:\/\/uk.rs-online.com\/web\/p\/idc-connectors\/8323654\/\">IDC Connector Socket, 16 Way, 2 Row<\/a> &#8211; \u00a31.20<\/li>\n<li><a href=\"https:\/\/uk.rs-online.com\/web\/p\/pcb-headers\/8323500\/\">Straight PCB Header, 16 Way, 2 Row<\/a>&#8211; \u00a31.20<\/li>\n<\/ul>\n<h2>Pressure sensor<\/h2>\n<p>We used a <a href=\"https:\/\/onecall.farnell.com\/honeywell\/sscdann015pg2a3\/sensor-trustability-15psi-3-3v\/dp\/1823259\">HONEYWELL SSCDANN015PG2A3<\/a> digital pressure sensor, and the code and wiring diagram are designed for this sensor.<\/p>\n<p>If another sensor is used, then the code for reading the sensor in file <em>pressure_sensor.py<\/em> would need to changed, specifically the functions:<\/p>\n<ol>\n<li><em>read_pressure_sensor_count()<\/em> which gets a reading from the sensor.<\/li>\n<li><em>read_pressure_sensor_psi()<\/em> which uses the pressure formula in the sensor&#8217;s technical datasheet to convert the reading to PSI.<\/li>\n<\/ol>\n<h3>Maxiumum pressure<\/h3>\n<p>Different sensors will have different &#8216;over-pressure&#8217; ratings.<\/p>\n<p>The Honeywell sensor we used has an &#8216;over-pressure&#8217; rating of 30 psi (1551 mmHg) &#8211; which is &#8220;The maximum pressure which may safely be applied to the product for it to remain in specification once pressure is returned to the operating pressure range. Exposure to higher pressures may cause permanent damage to the product.&#8221;<\/p>\n<h2>Setting up the Raspberry Pi<\/h2>\n<ol>\n<li>See my <a href=\"http:\/\/eoghan.me.uk\/notes\/2016\/04\/27\/setup-raspberry-pi\/\">Set Up Raspberry Pi<\/a> instructions for basic set up instructions, including connecting to eduroam WiFi.<\/li>\n<li>This project uses the I2C port, which isn&#8217;t enabled by default. To enable it from the command line:\n<ol style=\"list-style-type: lower-alpha;\">\n<li>Start the config menu, with:\n<pre class=\"lang:sh decode:true\">sudo raspi-config\n<\/pre>\n<\/li>\n<li>Use your keyboard&#8217;s down-arrow to highlight &#8216;Interfacing Options&#8217;, and select it by pressing the Return key.<\/li>\n<li>Use the down-arrow key and return to select &#8216;I2C&#8217;.<\/li>\n<li>Use the left-arrow key to select &#8216;Yes&#8217; and press Return.<\/li>\n<li>A message will say I2C has been enabled, press Return to select &#8216;Ok&#8217;<\/li>\n<li>Press the right-arrow key to select &#8216;Finish&#8217; and press Return.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h2><a id=\"python-code\"><\/a>The Python code<\/h2>\n<p>I used Python 3, which is available on the Noobs install. The code is available on my <a href=\"https:\/\/github.com\/eoghan-c\/blood_pressure\">GitHub blood_pressure<\/a> project.<\/p>\n<p>Before downloading the code, make sure your Raspberry Pi OS is up-to-date, by running:<\/p>\n<pre class=\"lang:sh decode:true\">sudo apt update\nsudo apt full-upgrade\n<\/pre>\n<p>The following steps create the directory, and download the code into it from GitHub:<\/p>\n<ol>\n<li>Set up a directory on your Pi for the project &#8211; in &#8216;Documents&#8217;, I usually create a &#8216;Python Projects&#8217; directory, then a directory for the project:\n<pre class=\"lang:sh decode:true\">mkdir ~\/Documents\/Python\\ Projects\ncd ~\/Documents\/Python\\ Projects\n<\/pre>\n<\/li>\n<li>Download the source code for this project:\n<pre class=\"lang:sh decode:true\">git clone https:\/\/github.com\/eoghan-c\/blood_pressure.git\n<\/pre>\n<\/li>\n<li>When the download is complete, you should be able to open the new &#8216;blood_pressure&#8217; directory, and see the downloaded files inside:\n<pre class=\"lang:sh decode:true\">cd blood_pressure\nls -la\n<\/pre>\n<\/li>\n<\/ol>\n<p>The master script which runs the project is <em>main.py<\/em> and once you have finished hooking up the hardware.<\/p>\n<ol>\n<li>You can run the program using:\n<pre class=\"lang:sh decode:true\">sudo python3 main.py\n<\/pre>\n<\/li>\n<li>And exit the program by pressing Ctrl-C on the keyboard.<\/li>\n<\/ol>\n<p>The &#8216;<a href=\"#auto-run\">Auto-run the script on boot<\/a>&#8216; section near the end of these instructions shows you how you can make the script launch automatically when the Pi boots up, so it can be run without a keyboard or monitor (and the &#8216;<a href=\"#shutting-down\">Shutting down<\/a>&#8216; section below it explains how you can quit the program, or shutdown the Pi without a keyboard).<\/p>\n<h2>Hardware<\/h2>\n<h3>Variables in the code<\/h3>\n<p>The variables defined for the hardware in <em>config.py<\/em> are:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Variable<\/th>\n<th>Description<\/th>\n<\/tr>\n<tr>\n<td>animals_dir<\/td>\n<td>The name of the main sounds directory. Inside this are directories for each group of sounds<\/td>\n<\/tr>\n<tr>\n<td>probe_not_in_position_filename<\/td>\n<td>The filename of the .WAV sound to play when the probe is not in the correct position<\/td>\n<\/tr>\n<tr>\n<td>normal_filename<\/td>\n<td>The filename of the .WAV sound to play when blood is flowing forward and back<\/td>\n<\/tr>\n<tr>\n<td>diastolic_filename<\/td>\n<td>The filename of the .WAV sound to play when the pressure has passed the diastolic point (only forward blood flow)<\/td>\n<\/tr>\n<tr>\n<td>systolic_filename<\/td>\n<td>The filename of the .WAV sound to play when the pressure has passed the systolic point (no sound)<\/td>\n<\/tr>\n<tr>\n<td>stop_button_pin<\/td>\n<td>Push button used to shut down the Pi, see &#8216;Shutting down&#8217; section below<\/td>\n<\/tr>\n<tr>\n<td>doppler_probe_pin<\/td>\n<td>One side of the reed switch &#8216;probe&#8217;<\/td>\n<\/tr>\n<tr>\n<td>animal_selector_pins<\/td>\n<td>A list of pins the rotary switch is connected to<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Wiring<\/h3>\n<p>For pin numbers of the <a href=\"http:\/\/uk.farnell.com\/honeywell\/sscdann015pg2a3\/sensor-trustability-15psi-3-3v\/dp\/1823259\">HONEYWELL SSCDANN015PG2A3<\/a> pressure sensor, see &#8216;DIP AN: Single axial barbed port&#8217; of Fig 4 in its Technical Datasheet. (Note in this project I used <a href=\"http:\/\/raspberrypi.stackexchange.com\/questions\/12966\/what-is-the-difference-between-board-and-bcm-for-gpio-pin-numbering\">GPIO.BCM<\/a> so the &#8216;GPIO PIN&#8217; column refers to the BCM numbers)<\/p>\n<table>\n<tbody>\n<tr>\n<th>Part<\/th>\n<th>GPIO Pin<\/th>\n<\/tr>\n<tr>\n<td>HONEYWELL SSCDANN015PG2A3, Pin 1<\/td>\n<td>\u00a0GND<\/td>\n<\/tr>\n<tr>\n<td>HONEYWELL SSCDANN015PG2A3, Pin 2<\/td>\n<td>\u00a03v3<\/td>\n<\/tr>\n<tr>\n<td>HONEYWELL SSCDANN015PG2A3, Pin 3<\/td>\n<td>\u00a0SDA1<\/td>\n<\/tr>\n<tr>\n<td>HONEYWELL SSCDANN015PG2A3, Pin 4<\/td>\n<td>\u00a0SCL1<\/td>\n<\/tr>\n<tr>\n<td>One side of &#8216;doppler_probe_pin&#8217; reed switch.<\/td>\n<td>GPIO 23<\/td>\n<\/tr>\n<tr>\n<td>Other side of reed switch.<\/td>\n<td>GND<\/td>\n<\/tr>\n<tr>\n<td>\u00a0Push button &#8216;stop_button_pin&#8217;.<\/td>\n<td>GPIO 22<\/td>\n<\/tr>\n<tr>\n<td>Other side of push button.<\/td>\n<td>GND<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Fritzing diagram<\/h3>\n<figure id=\"attachment_323\" aria-describedby=\"caption-attachment-323\" style=\"width: 292px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Blood-pressure-wiring_bb.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-323\" src=\"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Blood-pressure-wiring_bb-292x300.jpg\" alt=\"Fritzing wiring diagram\" width=\"292\" height=\"300\" srcset=\"https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Blood-pressure-wiring_bb-292x300.jpg 292w, https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Blood-pressure-wiring_bb.jpg 640w\" sizes=\"auto, (max-width: 292px) 100vw, 292px\" \/><\/a><figcaption id=\"caption-attachment-323\" class=\"wp-caption-text\">Fritzing wiring diagram<\/figcaption><\/figure>\n<figure id=\"attachment_329\" aria-describedby=\"caption-attachment-329\" style=\"width: 300px\" class=\"wp-caption alignright\"><a href=\"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Breadboard.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-329\" src=\"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Breadboard-300x222.jpg\" alt=\"Breadboard prototype\" width=\"300\" height=\"222\" srcset=\"https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Breadboard-300x222.jpg 300w, https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Breadboard-768x568.jpg 768w, https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Breadboard.jpg 879w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-329\" class=\"wp-caption-text\">Prototyping with a breadboard<\/figcaption><\/figure>\n<div style=\"clear: both;\"><\/div>\n<h3>Mounting the optional 2&#215;8 PCB header plug<\/h3>\n<p>If you want to attach the 2&#215;8 PCB header plug on the <a href=\"https:\/\/www.proto-pic.co.uk\/adafruit-perma-proto-hat-for-pi-mini-kit-no-eeprom.html\">Perma-Proto HAT<\/a>, I couldn&#8217;t find a place for it that would keep it&#8217;s pins separate, so we cut through eight copper rails on the HAT using a scalpel.<\/p>\n<figure id=\"attachment_337\" aria-describedby=\"caption-attachment-337\" style=\"width: 300px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Proto-Hat-Solder.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-337\" src=\"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Proto-Hat-Solder-300x300.jpg\" alt=\"Perma-Proto Hat Soldering\" width=\"300\" height=\"300\" srcset=\"https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Proto-Hat-Solder-300x300.jpg 300w, https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Proto-Hat-Solder-150x150.jpg 150w, https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Proto-Hat-Solder.jpg 650w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-337\" class=\"wp-caption-text\">Soldering the Perma-Proto Hat<\/figcaption><\/figure>\n<figure id=\"attachment_339\" aria-describedby=\"caption-attachment-339\" style=\"width: 300px\" class=\"wp-caption alignright\"><a href=\"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Proto-Hat-cut.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-339\" src=\"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Proto-Hat-cut-300x300.jpg\" alt=\"Proto Hat cut\" width=\"300\" height=\"300\" srcset=\"https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Proto-Hat-cut-300x300.jpg 300w, https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Proto-Hat-cut-150x150.jpg 150w, https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Proto-Hat-cut.jpg 650w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-339\" class=\"wp-caption-text\">Red line indicating where copper rails cut<\/figcaption><\/figure>\n<div style=\"clear: both;\"><\/div>\n<h2>The probe<\/h2>\n<p>For this prototype we decided to use a simple reed switch attached to the end of a 2-core wire for the probe.<\/p>\n<p>I cut a small section of the copper stripboard, enough to mount the reed switch and solder on one end of the 2-core wire:<\/p>\n<figure id=\"attachment_342\" aria-describedby=\"caption-attachment-342\" style=\"width: 300px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/probe-2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-342\" src=\"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/probe-2-300x300.jpg\" alt=\"Soldering the probe\" width=\"300\" height=\"300\" srcset=\"https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/probe-2-300x300.jpg 300w, https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/probe-2-150x150.jpg 150w, https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/probe-2.jpg 650w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-342\" class=\"wp-caption-text\">Soldering the reed switch to form the probe<\/figcaption><\/figure>\n<figure id=\"attachment_341\" aria-describedby=\"caption-attachment-341\" style=\"width: 300px\" class=\"wp-caption alignright\"><a href=\"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/probe-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-341\" src=\"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/probe-1-300x300.jpg\" alt=\"Probe soldering\" width=\"300\" height=\"300\" srcset=\"https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/probe-1-300x300.jpg 300w, https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/probe-1-150x150.jpg 150w, https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/probe-1.jpg 650w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-341\" class=\"wp-caption-text\">Horrific soldering for the reed switch<\/figcaption><\/figure>\n<div style=\"clear: both;\"><\/div>\n<p>I then covered the stripboard in heat shrinkable sleeving.<\/p>\n<h3>The probe trigger<\/h3>\n<p>We embedded a small magnet into the model forelimb at the point where the probe should be held to hear the Doppler sounds. We rolled the skin down, cut a small hole, and glued the magnet into it, covering with a thin layer of silicon so it&#8217;s not easy to feel the magnet after the skin was replaced.<\/p>\n<h2>Setting pressure values<\/h2>\n<p>The pressure values are set in the <em>config.py<\/em> file, in the &#8216;animals&#8217; variable:<\/p>\n<pre class=\"lang:python decode:true\">animals = {\n              1: ['Cat, normal',   100, 80, 'rob_human_normal'],\n              2: ['Cat, abnormal', 130, 90, 'rob_human_normal']\n          }\n<\/pre>\n<p>If a rotary switch is added, then multiple pressure values can be added to the &#8216;animals&#8217; list, as in the code above. If a rotary switch isn&#8217;t used, then only pressure value &#8216;1&#8217; in the list will be used.<\/p>\n<p>The contents of the &#8216;animals&#8217; list are:<\/p>\n<table>\n<tbody>\n<tr>\n<td>Human-readable label<\/td>\n<td>systolic pressure<\/td>\n<td>diastolic pressure<\/td>\n<td>name of directory inside &#8216;sounds&#8217; dir that contains the sound files<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><a id=\"auto-run\"><\/a>Auto-run the script on boot<\/h2>\n<p>I used systemd, as detailed by Matt in <a href=\"http:\/\/www.raspberrypi-spy.co.uk\/2015\/10\/how-to-autorun-a-python-script-on-boot-using-systemd\/\">How To Autorun A Python Script On Boot Using systemd<\/a><\/p>\n<p>(though &#8216;Type=simple&#8217; seemed to work for my script).<\/p>\n<p>I&#8217;ve included the Unit file with the program files, and you can use it if you have installed the scripts into the directory I used):<\/p>\n<ol>\n<li>Copy the Unit file into the correct location by using:\n<pre class=\"lang:sh decode:true\">sudo cp \"\/home\/pi\/Documents\/Python Projects\/blood_pressure\/blood_pressure.service\" \/lib\/systemd\/system\/\n<\/pre>\n<\/li>\n<li>Then refresh the daemon with\n<pre class=\"lang:sh decode:true \">sudo systemctl daemon-reload\n<\/pre>\n<\/li>\n<li>And tell systemd to start the service during the boot sequence, with:\n<pre class=\"lang:sh decode:true \">sudo systemctl enable blood_pressure.service\n<\/pre>\n<\/li>\n<li>Reboot the Pi:\n<pre class=\"lang:sh decode:true \">sudo shutdown -r\n<\/pre>\n<\/li>\n<li>And after rebooting, the Pi should automatically launch the blood_pressure scripts.<\/li>\n<\/ol>\n<p>The following commands are useful to get the status, or stop the service:<\/p>\n<pre class=\"lang:sh decode:true\">sudo systemctl status blood_pressure.service\nsudo systemctl stop blood_pressure.service\n<\/pre>\n<p>The above should create a Unit file at <em>\/lib\/systemd\/system\/blood_pressure.service<\/em> containing:<\/p>\n<pre class=\"lang:sh decode:true \">[Unit]\nDescription=A Doppler probe simulator for practice measuring blood pressure\nAfter=multi-user.target\n\n[Service]\nType=simple\nExecStart=\/usr\/bin\/python3 \"\/home\/pi\/Documents\/Python Projects\/blood_pressure\/main.py\"\nRestart=on-abort\nUser=root\n\n[Install]\nWantedBy=multi-user.target\n<\/pre>\n<h2><a id=\"shutting-down\"><\/a>Shutting down<\/h2>\n<p>As this simulator is designed to run headless, we added a push button to shutdown the Raspberry Pi (connected to pin &#8216;stop_button_pin&#8217;, GPIO 22).<\/p>\n<p>Press the button once to shutdown; press and hold the button for over three seconds to exit the program, but keep the Pi running.<\/p>\n<p>Initially I wanted to add an LED to indicate when the Raspberry Pi was running. After pressing the shutdown button, the Raspberry Pi would be safe to unplug when the LED went out.<\/p>\n<p>Unfortunately there doesn&#8217;t seem a simple way to add this sort of power LED (the red LED onboard the Pi stays lit after shutdown, while the power is connected).<\/p>\n<p>In the end we went with the onboard green LED which flashes ten times before shutdown.<\/p>\n<p>So to shutdown &#8211; press the button, wait for the green LED to flash ten times, then unplug the Pi.<\/p>\n<h2>Troubleshooting<\/h2>\n<p>If the program isn&#8217;t working as it should, the first thing would be to connect the Pi up to a monitor and keyboard, and boot it up.<\/p>\n<p>In the command line interface, make sure the program isn&#8217;t running:<\/p>\n<pre class=\"lang:sh decode:true\">sudo systemctl stop blood_pressure.service\n<\/pre>\n<p>Navigate into the folder containing the program:<\/p>\n<p>g commands are useful to get the status, or stop the service, and manually run the program:<\/p>\n<pre class=\"lang:sh decode:true\">cd ~\/Documents\/Python\\ Projects\/blood_pressure\nsudo python3 main.py\n<\/pre>\n<p>Hopefully the debug code will give you a clue what&#8217;s going wrong.<\/p>\n<h3>&#8216;Stop&#8217; button issues<\/h3>\n<p>One issue that we have noticed with a Raspberry Pi 4 was that the program thought the &#8216;stop&#8217; button was always being pressed. We think the issue was solved by making sure the Raspberry Pi operating system was up-to-date, by running:<\/p>\n<pre class=\"lang:sh decode:true\">sudo apt update\nsudo apt full-upgrade\n<\/pre>\n<h3>Continuous blood pressure sounds<\/h3>\n<p>If you have wired a rotary switch to your model, then position &#8217;10&#8217; on the rotary switch is an &#8217;emergency&#8217; setting for cases where the blood pressure sounds can&#8217;t be heard even when the probe is placed in the correct position.<\/p>\n<p>If the probe seems to be broken then, until you have a chance to investigate it further, you can move the rotary switch to postion &#8217;10&#8217; and the model will ignore the probe placement and play the blood pressure sounds regardless.<\/p>\n<h3>[Errno 121] remote I\/O error<\/h3>\n<p>We have had reports on newer Raspberry Pi models that the program throws an &#8216;[Errno 121] remote I\/O error&#8217;.<\/p>\n<p>It seems this error happens when the program tries to poll the pressure sensor too quickly, and the error can be fixed by slightly increasing the <em><span class=\"pl-s1\"><span class=\"pl-token\" data-hydro-click=\"{&quot;event_type&quot;:&quot;code_navigation.click_on_symbol&quot;,&quot;payload&quot;:{&quot;action&quot;:&quot;click_on_symbol&quot;,&quot;repository_id&quot;:96251826,&quot;ref&quot;:&quot;master&quot;,&quot;language&quot;:&quot;Python&quot;,&quot;backend&quot;:&quot;ALEPH_PRECISE&quot;,&quot;code_nav_context&quot;:&quot;BLOB_VIEW&quot;,&quot;retry_backend&quot;:&quot;&quot;,&quot;cross_repo_results_included&quot;:&quot;CROSS_REPO_ENABLED&quot;,&quot;in_repo_result_count&quot;:1,&quot;cross_repo_result_count&quot;:0,&quot;originating_url&quot;:&quot;https:\/\/github.com\/eoghan-c\/blood_pressure\/find-definition?q=time&amp;blob_path=pressure_sensor.py&amp;ref=master&amp;language=Python&amp;row=42&amp;col=2&amp;code_nav_context=BLOB_VIEW&quot;,&quot;user_id&quot;:null}}\" data-hydro-click-hmac=\"ac3e44acf8841c8cd5896c680d27141bddfc4789c72ad2be823f52719b34ac18\">time<\/span><\/span>.<span class=\"pl-en\"><span class=\"pl-token\" data-hydro-click=\"{&quot;event_type&quot;:&quot;code_navigation.click_on_symbol&quot;,&quot;payload&quot;:{&quot;action&quot;:&quot;click_on_symbol&quot;,&quot;repository_id&quot;:96251826,&quot;ref&quot;:&quot;master&quot;,&quot;language&quot;:&quot;Python&quot;,&quot;backend&quot;:&quot;ALEPH_PRECISE&quot;,&quot;code_nav_context&quot;:&quot;BLOB_VIEW&quot;,&quot;retry_backend&quot;:&quot;&quot;,&quot;cross_repo_results_included&quot;:&quot;CROSS_REPO_ENABLED&quot;,&quot;in_repo_result_count&quot;:0,&quot;cross_repo_result_count&quot;:0,&quot;originating_url&quot;:&quot;https:\/\/github.com\/eoghan-c\/blood_pressure\/find-definition?q=sleep&amp;blob_path=pressure_sensor.py&amp;ref=master&amp;language=Python&amp;row=42&amp;col=7&amp;code_nav_context=BLOB_VIEW&quot;,&quot;user_id&quot;:null}}\" data-hydro-click-hmac=\"b785822dba3bf87482e20eb7e25be9f2f3dedab8a88a71389dac1ad2c440af8a\">sleep<\/span><\/span>()<\/em> value in the <em>read_pressure_sensor_count()<\/em> function in the <em>pressure_sensor.py<\/em> file.<\/p>\n<p>Orignally a delay of <em>time.sleep(<span class=\"pl-c1\">0.01<\/span>)<\/em> worked well, but if you get &#8216;[Errno 121] remote I\/O error&#8217; errors, try increasing it slightly.<\/p>\n<h2>Improvements<\/h2>\n<p>Further work to do for this simulator includes:<\/p>\n<ol>\n<li>Finding a box to put the Raspberry Pi in, and mount the rotary switch.<\/li>\n<\/ol>\n<h2>Further information<\/h2>\n<p>For further information, contact <a href=\"mailto:Eoghan.Clarkson@ed.ac.uk\">Eoghan.Clarkson@ed.ac.uk<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In collaboration with the Clinical Skills Team, the Digital Education Unit at the Royal (Dick) School of Veterinary Studies at the University of Edinburgh have developed a Doppler flow measurement simulator to teach the measurement of systolic blood pressure. Idea and testing by Rob Ward and Caroline Mosley, construction and coding by Eoghan Clarkson. This [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-300","post","type-post","status-publish","format-standard","hentry","category-raspberry-pi"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Doppler Blood Pressure Simulator - Eoghan&#039;s Notes<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Doppler Blood Pressure Simulator - Eoghan&#039;s Notes\" \/>\n<meta property=\"og:description\" content=\"In collaboration with the Clinical Skills Team, the Digital Education Unit at the Royal (Dick) School of Veterinary Studies at the University of Edinburgh have developed a Doppler flow measurement simulator to teach the measurement of systolic blood pressure. Idea and testing by Rob Ward and Caroline Mosley, construction and coding by Eoghan Clarkson. This [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/\" \/>\n<meta property=\"og:site_name\" content=\"Eoghan&#039;s Notes\" \/>\n<meta property=\"article:published_time\" content=\"2017-07-04T20:55:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-04T13:14:14+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Whole-300x300.jpg\" \/>\n<meta name=\"author\" content=\"Eoghan\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Eoghan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/\",\"url\":\"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/\",\"name\":\"Doppler Blood Pressure Simulator - Eoghan&#039;s Notes\",\"isPartOf\":{\"@id\":\"https:\/\/eoghan.me.uk\/notes\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Whole-300x300.jpg\",\"datePublished\":\"2017-07-04T20:55:24+00:00\",\"dateModified\":\"2023-01-04T13:14:14+00:00\",\"author\":{\"@id\":\"https:\/\/eoghan.me.uk\/notes\/#\/schema\/person\/8d580b9cc431078e942962f5df92e800\"},\"breadcrumb\":{\"@id\":\"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/#primaryimage\",\"url\":\"https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Whole.jpg\",\"contentUrl\":\"https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Whole.jpg\",\"width\":650,\"height\":650,\"caption\":\"The assembled simulator\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/eoghan.me.uk\/notes\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Doppler Blood Pressure Simulator\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/eoghan.me.uk\/notes\/#website\",\"url\":\"https:\/\/eoghan.me.uk\/notes\/\",\"name\":\"Eoghan&#039;s Notes\",\"description\":\"The odd note that might come in handy someday\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/eoghan.me.uk\/notes\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/eoghan.me.uk\/notes\/#\/schema\/person\/8d580b9cc431078e942962f5df92e800\",\"name\":\"Eoghan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/eoghan.me.uk\/notes\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/248edf410b45769042d524cee3cce559fa8db50415efb82f79ea8a2d138b15cf?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/248edf410b45769042d524cee3cce559fa8db50415efb82f79ea8a2d138b15cf?s=96&d=mm&r=g\",\"caption\":\"Eoghan\"},\"url\":\"https:\/\/eoghan.me.uk\/notes\/author\/eoghan\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Doppler Blood Pressure Simulator - Eoghan&#039;s Notes","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/","og_locale":"en_GB","og_type":"article","og_title":"Doppler Blood Pressure Simulator - Eoghan&#039;s Notes","og_description":"In collaboration with the Clinical Skills Team, the Digital Education Unit at the Royal (Dick) School of Veterinary Studies at the University of Edinburgh have developed a Doppler flow measurement simulator to teach the measurement of systolic blood pressure. Idea and testing by Rob Ward and Caroline Mosley, construction and coding by Eoghan Clarkson. This [&hellip;]","og_url":"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/","og_site_name":"Eoghan&#039;s Notes","article_published_time":"2017-07-04T20:55:24+00:00","article_modified_time":"2023-01-04T13:14:14+00:00","og_image":[{"url":"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Whole-300x300.jpg","type":"","width":"","height":""}],"author":"Eoghan","twitter_misc":{"Written by":"Eoghan","Estimated reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/","url":"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/","name":"Doppler Blood Pressure Simulator - Eoghan&#039;s Notes","isPartOf":{"@id":"https:\/\/eoghan.me.uk\/notes\/#website"},"primaryImageOfPage":{"@id":"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/#primaryimage"},"image":{"@id":"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/#primaryimage"},"thumbnailUrl":"http:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Whole-300x300.jpg","datePublished":"2017-07-04T20:55:24+00:00","dateModified":"2023-01-04T13:14:14+00:00","author":{"@id":"https:\/\/eoghan.me.uk\/notes\/#\/schema\/person\/8d580b9cc431078e942962f5df92e800"},"breadcrumb":{"@id":"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/#primaryimage","url":"https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Whole.jpg","contentUrl":"https:\/\/eoghan.me.uk\/notes\/files\/2017\/07\/Whole.jpg","width":650,"height":650,"caption":"The assembled simulator"},{"@type":"BreadcrumbList","@id":"https:\/\/eoghan.me.uk\/notes\/2017\/07\/04\/blood-pressure\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/eoghan.me.uk\/notes\/"},{"@type":"ListItem","position":2,"name":"Doppler Blood Pressure Simulator"}]},{"@type":"WebSite","@id":"https:\/\/eoghan.me.uk\/notes\/#website","url":"https:\/\/eoghan.me.uk\/notes\/","name":"Eoghan&#039;s Notes","description":"The odd note that might come in handy someday","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/eoghan.me.uk\/notes\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/eoghan.me.uk\/notes\/#\/schema\/person\/8d580b9cc431078e942962f5df92e800","name":"Eoghan","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/eoghan.me.uk\/notes\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/248edf410b45769042d524cee3cce559fa8db50415efb82f79ea8a2d138b15cf?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/248edf410b45769042d524cee3cce559fa8db50415efb82f79ea8a2d138b15cf?s=96&d=mm&r=g","caption":"Eoghan"},"url":"https:\/\/eoghan.me.uk\/notes\/author\/eoghan\/"}]}},"_links":{"self":[{"href":"https:\/\/eoghan.me.uk\/notes\/wp-json\/wp\/v2\/posts\/300","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eoghan.me.uk\/notes\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eoghan.me.uk\/notes\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eoghan.me.uk\/notes\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eoghan.me.uk\/notes\/wp-json\/wp\/v2\/comments?post=300"}],"version-history":[{"count":72,"href":"https:\/\/eoghan.me.uk\/notes\/wp-json\/wp\/v2\/posts\/300\/revisions"}],"predecessor-version":[{"id":500,"href":"https:\/\/eoghan.me.uk\/notes\/wp-json\/wp\/v2\/posts\/300\/revisions\/500"}],"wp:attachment":[{"href":"https:\/\/eoghan.me.uk\/notes\/wp-json\/wp\/v2\/media?parent=300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eoghan.me.uk\/notes\/wp-json\/wp\/v2\/categories?post=300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eoghan.me.uk\/notes\/wp-json\/wp\/v2\/tags?post=300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}