June (issue #335) Circuit Cellar Article Materials

Click here for the Circuit Cellar article code archive

p.6: Build a Pixel-Covered Top Hat: Runs Python-Coded Animations, By Chris Cantrell

Running Hat Video:


Pixel Hat GitHub Repository: Github
DC/DC Converter: Delta Electronics, E36SC05025NRFA
Logic Level Converter: SparkFun
LED Ring: Amazon
LED Grid: Adafruit
LED Strip: Adafruit
Foam Pad for Hat Frame: Amazon
Propeller Boards from an Earlier Project: Github

Adafruit | www.adafruit.com
Digi-Key | www.digikey.com
Parallax | www.parallax.com
SparkFun | www.sparkfun.com


p.14: Murphy’s Laws in the DSP World (Part 1): First Six Laws Explained, By Michael Smith, Ehsan Shahrabi Farahani and Mai Tanaka

DSP_ML Project Files can be cut and pasted from the .pdf file directly into your script file .m or can be found here:  github.com/SMILE-Projects/SMILE_Projects

Mathworks | www.mathworks.com
GNU Octave | www.gnu.org/software/octave

Scroll down to the end of this web page to see the GETTING STARTED part of the article is repeated here online with all the proper links provided.

p. 28: Gesture Recognition in a Boxing Glove: Sensors Packed in the Punch, By Blade Olson and Patrick Dillon


  • [1] Beekman, Emmylou, et al. “Validity, Reliability and Feasibility of Commercially Available Activity Trackers in Physical Therapy for People with a Chronic Disease: a Study Protocol of a Mixed Methods Research.” Pilot and Feasibility Studies, vol. 3, no. 1, 2017, doi:10.1186/s40814-017-0200-5.
  • [2] Fitzgerald, Diarmaid, et al. “Development of a Wearable Motion Capture Suit and Virtual Reality Biofeedback System for the Instruction and Analysis of Sports Rehabilitation Exercises.” 2007 29th Annual International Conference of the IEEE Engineering in Medicine and Biology Society, 2007, doi:10.1109/iembs.2007.4353431.
  • [3] “Mahony AHRS algorithm”, github.com/dccharacter/AHRS/blob/master/MahonyAHRS.c, (retrieved in Dec. 2017)
  • [4[ x-io Technologies Limited, “Open source IMU and AHRS algorithms,” source code, http://x-io.co.uk/open-source-imu-and-ahrs-algorithms/ (retrieved in Dec. 2017)
  • [5] Adafruit. “Library for the Adafruit Triple-Axis Accelerometer/Magnetometer/Gyroscope LSM9DS0 Breakouts.” Adafruit LSM9DS0 Library, Adafruit, 3 Aug. 2017, github.com/adafruit/Adafruit_LSM9DS0_Library.
  • [6] Rokoko Smartsuit, www.rokoko.com
  • [7] Olson, Blade, and Patrick Dillon. “EC535 Fall 2017 Final Project: Hit-Rec.” Hit-Rec Prototype, 13 Dec. 2017, github.com/blolson/EC535_Project.

LSM9DS0 Accelerometer + Gyro + Magnetometer 9-DOF Breakouts
Round Force-Sensitive Resistor (FSR) – Interlink 402ADS1015 12-Bit ADC – 4 Channel with Programmable Gain Amplifier

NETPRO VX and Verdex Pro Gumstix | www.gumstix.com

Adafruit | www.adafruit.com
Gumstix | www.gumstix.com
STMicroelectronics | www.st.com

p. 34: Processor Design Techniques and Optimizations: A Look Inside,
By Nishant Mittal






Cypress Semiconductors | www.cypress.com

p.40: PCB Design Tools Evolve to Next Level: More Smarts, Wider Scope,
By Jeff Child

Altium | www.altium.com
Cadence Design Systems | www.cadence.com
Mentor Graphics | www.mentor.com
Zuken | www.zuken.com

p.44: Sensor Technology Rides the IoT Wave: Built for Connected Use,
By Jeff Child

Intel | www.intel.com
Qualcomm | www.qualcomm.com

p.52: Internet of Things Security (Part 3): Secure Processors, By Bob Japenga

More detail is available from Microchip on these features when you sign an NDA.  However, all of the information from this article is gleaned from publicly available data.

Video: Asymmetric Encryption – Simply Explained:


Microchip Technology | www.microchip.com

p.58: PCB Ground Planes: Rules Good, Bad and Ugly, By Robert Lacoste

Sonnet Lite: www.sonnetsoftware.com/products/lite/

PCB Design for Real-World EMI Control, Bruce R. Archambeault, IBM Corporation, Kluwer Academic Publishers, ISBN 1-4020-7130-2

Signal Integrity Issues and Printed Circuit Board Design, Douglas Brooks, Prentice Hall, ISBN 978-0-13-335947-3

Sonnet Software | www.sonnetsoftware.com

p. 62: Aeronautical Communication Protocols: Where Reliability Rules,
By George Novacek

[1] ARINC Specification 429, Mark 33 DITS
[2] MIL-STD-1553B Specification
[3] ARINC 629
[4] Time Triggered Technology be George Novacek, Circuit Cellar June 2003, Issue 155

TTTech | www.tttech.com

66: Passive Infrared Sensors: Homing in on Heat, By Jeff Bachiochi

HC-SR501 – PIR Infrared Motion Sensor: Addicore

STEVAL-IDI009V1 – Eval board for PIR sensor signal conditioning based on TSU102: STMicroelectronics

ZEPIR0BAS02MODG – ZMOTION detection module II:  Zilog

Addicore | www.addicore.com
FTDI Chip | www.ftdichip.com
Glolab | www.glolab.com
Mouser Electronics | www.mouser.com
STMicroelectronics | www.st.com
Zilog | www.zilog.com


For your convenience we have repeated here the GETTING STARTED section at the end of the article  Murphy’s Laws in the DSP World (Part 1): First Six Laws Explained, Web links included to ease the process.


In this section, we outline how to set up the directories needed for the DSP_ML project, install either Octave or MATLAB, and check the installation.  By the end of the article you will have a number of main scripts, such as Investigate_DSP_I_II_III.m, in the directory “C:\DSP_ML” and class methods such as “TimeDomainSignal.m” and variants of the frequency analysis scripts, “FrequencySpectrum_V1.m”, in the class directory, “C:\DSP_ML\@TimeDomainSignal”, as shown in center left windows in Photo 2 and Photo 3.

Photo 2
The Octave program main window. You can change to the project target by typing “C:\DSP_ML” in the current directory window at the top of the screen.

Photo 3
The MATLAB program main window. You can change to the project target by typing “C:\DSP_ML” in the current directory window at the top of the screen.

Generate a folder “C:\DSP_ML” to hold the main DSP_ML scripts and a second folder, “C:\DSP_ML\@TimeDomainSignal to hold the TimeDomainSignal project class methods (functions) used to generate and display example DSP signals and procedures.

Install Octave or MATLAB following the instructions here. Type the main directory name “C:\DSP_ML” into the current directory window, top window in Photo 2 and Photo 3, once you activate your installed program.

This series of articles is designed as a series of small projects that can each be done in an hour on different days.  You can get all the code from the Circuit Cellar Article Code & Files webpage. Alternately cut-and- paste scripts directly from the article pdf. If you take the pdf cut-and-paste approach watch out as some syntax may not carry over properly into the MATLAB / Octave script, especially the single quotes and any solid lines separating listing parts.

To create a script, start by clicking on  “File | New | New Script” on the top left corner of the main page of the Octave screen, or “File | New” in MATLAB.

For many reasons and under circumstances that would fill several web-pages—for example, storing DSP_ML directory on a USB stick with Octave—we recommend these steps:
1)            Right click on Octave / MATLAB icon and select properties. Change Start in option from %USERPROFILE% to “C:\DSP_ML”
2)            Add script startup.m (Listing 6a) to directory “DSP_ML”. Then, close and restart the program.

To check the install, cut-and-paste the code for Listing 6b from the code listing from the Circuit Cellar Article Code & Files webpage into the editor window, and save as the script “C:\DSP_ML\HelloWorld.m”. You can run the test code, and generate a graphic plot, by typing HelloWorld in the command window; bottom left in Octave, bottom center in MATLAB.

Installing Octave: Create a folder “C:\DownLoads” and go to https://ftp.gnu.org/gnu/octave/windows/ to download a version of Octave, for example. “octave-4.2.1-w64-installer.exe” for a 64-bit system. Run your downloaded .exe file to get the installation started. Click on various “Nexts“ to accept the license agreement. At one stage, you will be asked to provide a directory to install the program, for example “C:\Octave”. Be patient when various command windows appear, they will disappear.

To test the installation, click on the “Octave GUI” icon on your desktop. With the Start In option change, the current directory will be “C:\DSP_ML”. Cut-and-paste in the HelloWorld() code and run.

Restarting Octave solves an inconsistent problem with Octave not recognizing newly added class methods.

Installing MATLAB:  Create a folder “C:\DownLoads” and go to https://www.mathworks.com/products/matlab.html?s_tid=hp_products_matlab to click on the “Test drive MATLAB” link to get the 30-day MATLAB free trial. You will need to supply basic personal information such as your email, location and planned usage.

This link provides full details of the installation steps:

To test the installation, click on the “MATLAB” icon on your desktop. With the Start In option change, the current directory will be “C:\DSP_ ML”. Cut-and-paste in the HelloWorld() code and run.