A Guide to Metal Core PCBs by PCBGOGO

The use of LED based electronics has significantly increased in the past few years. They have proven to be more efficient and nearly 5 times cheaper than normal incandescent units. But with their use came one downside: heat. Some devices tend to use a number of LEDs that remain on for a long period of time and so can overheat. The LEDs are usually mounted on PCBs and can therefore cause significant damage. There is however one alternative to common PCBs i.e. metal core printed circuits (MCPCBs).

Read More
GOES-R Satellite Latitude and Longitude Grid Projection Algorithm

Calculating latitude and longitude from a GOES-R L1b data file. The GOES-R L1b radiance files contain radiance data and geometry scan information in radians. This information is not enough to plot geographic radiance data right from the file, however, after some geometric manipulation harnessing satellite position and ellipsoid parameters, we can derive latitude and longitude values from the one-dimensional scan angles and plot our data in projected formats familiar to many geographic information tools.

Read More
Internet of Things WiFi and Bluetooth Mesh Network with Particle Argon and Xenon Boards

In the tutorial, the simplest integrated IoT mesh network is explored, where Argon (WiFi + BLE) and Xenon (BLE) Particle boards are used to create an ultrasonic range detector (HC-SR04) that notifies an LED whether a threshold value has been crossed in front of the sensor. When the threshold is reached, a ‘trip’ is communicated to the mesh network and notifies the system via Bluetooth and WiFi.

Read More
iPhone Datalogger with Arduino Using The iOS Bluetooth App BLExAR

The BLExAR app will be used in conjunction with a CC2541 (HM-10, JDY-08, AT-09, SH-M08) Bluetooth module and an Arduino (ATmega328) board to create a simple data acquisition system. A DHT22 sensor will provide temperature and humidity data to the Arduino which will be recorded by an iOS device via the BLExAR app. This experiment is a real-world example of an Arduino application demonstrating data acquisition from a real sensor. This tutorial will allow users to solve their own engineering problems using the modern Arduino platform and wireless communication through the BLExAr app, which will ultimately expand the reach and compatibility of technology in the classical sciences through exploration and experimentation.

Read More
4-Pin RGB LED Control Using iOS BLExAR App, HM-10 Bluetooth Module, and Arduino

Control an RGB LED using three PWM pins on an Arduino Uno board via Bluetooth communication. An RGB LED is a single casing with three cathode (or anode) pins and one anode (or cathode) pin. This results in a 4-pin LED. In this tutorial, I will be using an RGB LED with three anodes and one common cathode. This means that we can change the color of the LED to over 16.7 million different variations (assuming each anode produces a different luminosity for each voltage change of the Arduino PWM pin). This tutorial will help demonstrate the power of the BLExAR app, and the flexibility of an Arduino board under iOS Bluetooth control. In my case, I will be using an iPhone with the BLExAR app, but an iPad would suffice as well.

Read More
iOS and Arduino Bluetooth Communication Using The BLExAR App and CC2541 Module

An app called “BLExAR” allows Arduino users to communicate to an iOS device (iPhone or iPad) using a Bluetooth CC2541 module (different versions are called: HM-10, SH-M08, AT-09, or JDY-08). The app permits control of an Arduino board, wireless serial communication, and data acquisition. Click on the app logo shown here to download the app, as it will be used as the iOS communication software. On the Arduino side, we need to wire the CC2541 Bluetooth Low Energy (BLE) module to an Arduino board and upload the appropriate software via the Arduino IDE. In this tutorial, we will demonstrate how to verify communication between an Arduino and CC2541 Bluetooth module, and then use Bluetooth communication to send strings between an iOS device and the Arduino ATmega328p board.

Read More
Arduino SoftPot LED Meter (Membrane Potentiometer)

How to use a soft, circular-membrane potentiometer with an Arduino board. Potentiometers function by altering the voltage of a system by mechanically changing the resistance associated with a voltage divider. In a traditional potentiometer (think of turning a volume knob), we are physically changing the voltage of a system. In the case of a soft potentiometer (where the name SoftPot comes from), we are altering the resistance of the voltage divider by physically depressing the potentiometer, thereby changing the resistance at a contact point. The working principle is exactly the same, but in the SoftPot’s case, we are pressing, and for a knob we are rotating.

Read More
Arduino Tachometer - Using a Hall Effect Sensor (A3144) to Measure Rotations from a Fan

Arduino tachometer used to calculate the rotational motion of a part. Tachometers read out revolutions per minute (RPM), which tells the user how often a rotating part completes one full rotation. RPM readings are used in the automotive, aerospace, and manufacturing fields. Tachometers can indicate fuel consumption and motor speed, safety of moving parts, and even wind speed indicators. In this tutorial, the speed of a fan is measured using a hall sensor and neodymium magnet to acquire an accurate depiction of fan speed.

Read More
Capacitive Touch Sensor with Arduino

Capacitive sensing from human touch. Create a switch without any moving parts with an Arduino board and an inexpensive capacitive touch sensor.

Read More
Audio Processing in Python Part III: Guitar String Theory and Frequency Analysis

In this continuation of the audio processing in Python series, I will be discussing the live frequency spectrum and its application to tuning a guitar. I will introduce the idea of nodes and antinodes of a stringed instrument and the physical phenomena known as harmonics. This will give us a better idea of how to tune the guitar string-by-string and also discern the notes of a given chord - all calculated using the FFT function in Python.

Read More
Audio Processing in Python Part II: Exploring Windowing, Sound Pressure Levels, and A-Weighting Using an iPhone X

Raspberry Pi 3B+ acoustic analysis using Python. Audio recording and signal processing with Python, beginning with a discussion of windowing and sampling, which will outline the limitations of the Fourier space representation of a signal. Discussion of the frequency spectrum, and weighting phenomenon in relation to the human auditory system will also be explored. Lastly, the significance of microphone pressure units and conversion to the decibel will be briefly introduced and explained.

Read More
Audio Processing in Python Part I: Sampling, Nyquist, and the Fast Fourier Transform

Fourier Series has been widespread in applications of engineering ranging from heat transfer, vibration analysis, fluid mechanics, noise control, and much more. After evolutions in computation and algorithm development, the use of the Fast Fourier Transform (FFT) has also become ubiquitous in applications in acoustic analysis and even turbulence research. In this tutorial, I describe the basic process for emulating a sampled signal and then processing that signal using the FFT algorithm in Python. This will allow the user to get started with analysis of acoustic-like signals and understand the fundamentals of the Fast Fourier Transform.

Read More
Arduino I2C OLED Display - Temperature and Humidity Display (SSD1306)

How to print temperature and humidity readings onto a 0.96 inch I2C OLED display. The device is DIYMall's inexpensive, high resolution (128x64 pixels), yellow and blue organic LED display that is designed for use with the Arduino platform. Together with a DHT22 temperature sensor, the tiny OLED screen will display real-time humidity and temperature data using an Adafruit library and an Arduino Uno board. This project can be expanded upon to print data from a wide array of sensors, and even grab data from the internet to print values for a smart and interactive display.

Read More
How to Create a Rotating Globe Using Python and the Basemap Toolkit