Silicon ChipDIY pulse oximeter - July 2021 SILICON CHIP
  1. Outer Front Cover
  2. Contents
  3. Publisher's Letter: Software: too many bugs, too many updates
  4. Mailbag
  5. Feature: The 2020 mission to Mars by Dr David Maddison
  6. Project: 20A DC Motor Speed Controller by John Clarke
  7. Feature: How USB Power Delivery (USB-PD) works by Andrew Levido
  8. Feature: El Cheapo Modules: USB-PD chargers by Jim Rowe
  9. Project: Model Railway Level Crossing by Les Kerr
  10. Circuit Notebook: Coded door buzzer by Benabadji Mohammed Salim
  11. Circuit Notebook: Adding shuffle feature to low-cost MP3 player module by Les Kerr
  12. Circuit Notebook: DIY pulse oximeter by Bera Somnath
  13. Project: Silicon Labs-based FM/AM/SW Digital Radio by Charles Kosina
  14. Review: Tecsun PL-990 radio receiver by Ross Tester
  15. Project: Advanced GPS Computer – Part 2 by Tim Blythman
  16. Serviceman's Log: I’ve repaired planes before, but never tanks by Dave Thompson
  17. Vintage Radio: The Rowe AMI JAL-200 jukebox by Jim Greig
  18. PartShop
  19. Product Showcase
  20. Ask Silicon Chip
  21. Market Centre
  22. Advertising Index
  23. Notes & Errata: Advanced GPS Computer, June 2021; Mini Arcade Pong, June 2021; Refined Full-Wave Motor Speed Controller, April 2021; USB Flexitimer, June 2018
  24. Outer Back Cover

This is only a preview of the July 2021 issue of Silicon Chip.

You can view 0 of the 112 pages in the full issue.

For full access, purchase the issue for $10.00 or subscribe for access to the latest issues.

Items relevant to "20A DC Motor Speed Controller":
  • 20A DC Motor Speed Controller PCB [11006211] (AUD $7.50)
  • PIC16F1459-I/P programmed for the 20A DC Motor Speed Controller [1100621A.HEX] (Programmed Microcontroller, AUD $10.00)
  • Firmware and source code for the 20A DC Motor Speed Controller [1100621A] (Software, Free)
  • 20A DC Motor Speed Controller PCB pattern (PDF download) [11006211] (Free)
Articles in this series:
  • The History of USB (June 2021)
  • How USB Power Delivery (USB-PD) works (July 2021)
Articles in this series:
  • El Cheapo Modules From Asia - Part 1 (October 2016)
  • El Cheapo Modules From Asia - Part 2 (December 2016)
  • El Cheapo Modules From Asia - Part 3 (January 2017)
  • El Cheapo Modules from Asia - Part 4 (February 2017)
  • El Cheapo Modules, Part 5: LCD module with I²C (March 2017)
  • El Cheapo Modules, Part 6: Direct Digital Synthesiser (April 2017)
  • El Cheapo Modules, Part 7: LED Matrix displays (June 2017)
  • El Cheapo Modules: Li-ion & LiPo Chargers (August 2017)
  • El Cheapo modules Part 9: AD9850 DDS module (September 2017)
  • El Cheapo Modules Part 10: GPS receivers (October 2017)
  • El Cheapo Modules 11: Pressure/Temperature Sensors (December 2017)
  • El Cheapo Modules 12: 2.4GHz Wireless Data Modules (January 2018)
  • El Cheapo Modules 13: sensing motion and moisture (February 2018)
  • El Cheapo Modules 14: Logarithmic RF Detector (March 2018)
  • El Cheapo Modules 16: 35-4400MHz frequency generator (May 2018)
  • El Cheapo Modules 17: 4GHz digital attenuator (June 2018)
  • El Cheapo: 500MHz frequency counter and preamp (July 2018)
  • El Cheapo modules Part 19 – Arduino NFC Shield (September 2018)
  • El cheapo modules, part 20: two tiny compass modules (November 2018)
  • El cheapo modules, part 21: stamp-sized audio player (December 2018)
  • El Cheapo Modules 22: Stepper Motor Drivers (February 2019)
  • El Cheapo Modules 23: Galvanic Skin Response (March 2019)
  • El Cheapo Modules: Class D amplifier modules (May 2019)
  • El Cheapo Modules: Long Range (LoRa) Transceivers (June 2019)
  • El Cheapo Modules: AD584 Precision Voltage References (July 2019)
  • Three I-O Expanders to give you more control! (November 2019)
  • El Cheapo modules: “Intelligent” 8x8 RGB LED Matrix (January 2020)
  • El Cheapo modules: 8-channel USB Logic Analyser (February 2020)
  • New w-i-d-e-b-a-n-d RTL-SDR modules (May 2020)
  • New w-i-d-e-b-a-n-d RTL-SDR modules, Part 2 (June 2020)
  • El Cheapo Modules: Mini Digital Volt/Amp Panel Meters (December 2020)
  • El Cheapo Modules: Mini Digital AC Panel Meters (January 2021)
  • El Cheapo Modules: LCR-T4 Digital Multi-Tester (February 2021)
  • El Cheapo Modules: USB-PD chargers (July 2021)
  • El Cheapo Modules: USB-PD Triggers (August 2021)
  • El Cheapo Modules: 3.8GHz Digital Attenuator (October 2021)
  • El Cheapo Modules: 6GHz Digital Attenuator (November 2021)
  • El Cheapo Modules: 35MHz-4.4GHz Signal Generator (December 2021)
  • El Cheapo Modules: LTDZ Spectrum Analyser (January 2022)
  • Low-noise HF-UHF Amplifiers (February 2022)
  • A Gesture Recognition Module (March 2022)
  • Air Quality Sensors (May 2022)
Items relevant to "Model Railway Level Crossing":
  • Model Railway Level Crossing PCB [09108211] (AUD $5.00)
  • Pair of PIC12F617-I/P chips for the Model Railway Level Crossing [0910821A/B/C.HEX] (Programmed Microcontroller, AUD $15.00)
  • ISD1820-based voice recording and playback module (Component, AUD $5.00)
  • Firmware, source code and sound recording for the Model Railway Level Crossing [0910211A-C] (Software, Free)
  • Model Railway Level Crossing PCB pattern (PDF download) [09108211] (Free)
  • Mechanical diagrams and label artwork for the Railway Level Crossing (PDF Download) (Panel Artwork, Free)
  • PIC12F617-I/P programmed for the Model Railway Level Crossing [0910821A.HEX] (Source component, AUD $10.00)
  • PIC12F617-I/P programmed for the Model Railway Level Crossing [0910821B.HEX] (Source component, AUD $10.00)
  • PIC12F617-I/P programmed for the Model Railway Level Crossing [0910821C.HEX] (Source component, AUD $10.00)
Videos relevant to "Model Railway Level Crossing":
  • Level Crossing
Items relevant to "Coded door buzzer":
  • Firmware for the Coded Door Buzzer (Software, Free)
Items relevant to "Adding shuffle feature to low-cost MP3 player module":
  • Firmware for adding a shuffle feature to a low-cost MP3 player module (Software, Free)
Items relevant to "DIY pulse oximeter":
  • Firmware for the DIY pulse oximeter (Software, Free)
Items relevant to "Silicon Labs-based FM/AM/SW Digital Radio":
  • SiLabs FM/AM/SW Digital Radio PCB [CSE210301C] (AUD $7.50)
  • ATmega328P programmed with the firmware for the SiLabs FM/AM/SW Digital Radio [CSE210301.HEX] (Programmed Microcontroller, AUD $10.00)
  • Pulse-type rotary encoder with pushbutton and 18t spline shaft (Component, AUD $3.00)
  • Si4732-A10 AM/FM/SW/LW/RDS Radio Receiver IC (Component, AUD $20.00)
  • Firmware and source code for the SiLabe FM-AM-SW Digital Radio [CSE210301.HEX] (Software, Free)
  • SiLabs FM/AM/SW Digital Radio PCB pattern (PDF download) [CSE210301C] (Free)
  • Drilling/cutting diagrams and front panel artwork for the SiLabs-based FM-AM-SW Digital Radio (Free)
Items relevant to "Advanced GPS Computer – Part 2":
  • Advanced GPS Computer PCB [05102211] (AUD $7.50)
  • PIC32MX170F256B-50I/SP programmed for the Advanced GPS Computer [0510221A.hex] (Programmed Microcontroller, AUD $15.00)
  • DS3231 real-time clock IC (SOIC-16) (Component, AUD $7.50)
  • MCP4251-502E/P dual 5kΩ digital potentiometer (Component, AUD $3.00)
  • VK2828U7G5LF TTL GPS/GLONASS/GALILEO module with antenna and cable (Component, AUD $25.00)
  • Micromite LCD BackPack V3 complete kit (Component, AUD $75.00)
  • Matte/Gloss Black UB3 Lid for Advanced GPS Computer (BackPack V3) or Pico BackPack (PCB, AUD $5.00)
  • Firmware for the Advanced GPS Computer [0510221A.HEX] (Software, Free)
  • Advanced GPS Computer PCB pattern (PDF download) [05102211] (AUD $15.00)
  • Advanced GPS Computer box cutting diagram and lid dimensions (Panel Artwork, Free)
Articles in this series:
  • Advanced GPS Computer - Part 1 (June 2021)
  • Advanced GPS Computer – Part 2 (July 2021)

Purchase a printed copy of this issue for $10.00.

DIY pulse oximeter Lately, our electronic markets have been flooded with pulse oximeter probes based on the MAX30100 IC for as low as INR250 (about $2) apiece, such as the RCWL-0530. I purchased a few from a local supplier, but I found that the readings were awfully wrong! After reading the MAX30100 data sheet and doing some internet research, I discovered that these lowcost oximeters have two main problems: poor regulation of the 1.8V supply and incorrect I2C pull-up resistor values. The MAX30100 is an I2C infrared measuring device. Ideally, the board should supply 3.3V for the infrared LED driver and 1.8V for the control & measurement circuitry. The I2C and interrupter pins need to be pulled up to 3.3V via 4.7kW resistors, but many implementations only pull them up to the 1.8V rail. In this case, they will not work with the I2C bus of an Arduino or ESP32 micro. The MAX30100 has a temperature sensor for oxygen reading correction, but it cannot be read separately, and the sensor has a power-down sleep state which is generally not used. I don’t know why. Check the voltage on either side of the 3-pin (SOT-23) regulator with a voltmeter. You should get readings of 3.3V and 1.8V. So far, so good. But the three 4.7kW resistors are connected to the SCL, SDA & INT pins from the +1.8V rail. This prevents us from siliconchip.com.au getting the correct measurements for this device, even though the software shows success. The adjacent image shows where you can cut the track and run a short length of small-diameter solid-core insulated wire to fix this (see github. com/oxullo/Arduino-MAX30100/ issues/51). We can now connect it to the ESP32 microcontroller module, as shown in the circuit diagram. I have added a DS18B20 temperature sensor since, as mentioned above, we can’t query the temperature sensor on the oximeter module. The resulting probe measures the oxygen level and temperature from a finger and uploads it to ‘the cloud’ at www.thingspeak.com The ESP32 has been programmed to support multiple WiFi SSID and password combinations. It will connect to whichever is available at that moment. The LED at GPIO12 will blink briefly to indicate that the data has been uploaded to the cloud server. After uploading the data, the micro goes into deep sleep mode for 20 seconds, then it wakes up and repeats the process. During sleep mode, the IR led of the MAX30100 sensor switches off and the total power consumption goes down to 4.2mA. During measurement, the current is 160mA. One 26650 3.7V Li-ion cell of around 3000mAh can sustain this for weeks non-stop. When attaching the sensor to a Australia’s electronics magazine On this RCWL-0530 module, the track marked in yellow must be cut, and then solder a piece of wire between the two locations marked in red. This connects the I2C pull-ups to the correct 3.3V rather than 1.8V supply. finger, ensure that the area which makes contact is clean and without oil, ink or grease. It’s better to clean it with alcohol beforehand. If the body contact is not perfect, the device will hang. To solve that, the micro will restart after 25 seconds. It will also restart if it is unable to upload data. The Arduino sketch to load onto the ESP32 is available for download from siliconchip.com.au/Shop/6/5860 You will need to open a free account at www.thingspeak.com and modify the API key in the software to match the one you are supplied with before it will upload data. Sample data is visible on my Thingspeak channel at www.thingspeak. com/channels/1203838 Bera Somnath, Vindhyanagar, India. ($100) July 2021  63