SIGNALsolutions - simpson.net.au
Transcription
SIGNALsolutions - simpson.net.au
CIRCUIT CELLAR | ISSUE 291 | OCTOBER 2014 SIGNAL PROCESSING OCTOBER 2014 ISSUE 291 circuitcellar.com SIGNAL solutions ..... ..... plan & construct a real-time wireless laser tag system ..... long-distance wireless radio control ..... tips for selecting & caring for RF connectors ..... embedded audio & signal recognition ..... Solar Power Revisited | Q&A: Design & EE Outreach BlasterWorks Project circuitcellar.com | LMR Wireless Control | AC Monitor | ComputerScope Test Instrument Capacitors 101 | Build a Linux System | Tips for Working with RF Connectors | Embedded Voice Recognition The Future for TXCOs MIXED SIGNAL OSCILLOSCOPES 4 ANALOG + 16 DIGITAL CHANNELS RAPIDLY DEBUG COMPLEX MIXED SIGNAL DESIGNS • USB 3.0 • ULTRA DEEP MEMORY • SEGMENTED MEMORY RAPID • RA R PID TRIGGERS INCLUDES AUTOMATIC MEASUREMENTS, SPECTRUM ANALYZER, SDK, ADVANCED TRIGGERS, COLOR PERSISTENCE, SERIAL DECODING (CAN, LIN, RS232, I²C, I²S, FLEXRAY, SPI), MASKS, MATH CHANNELS, ALL AS STANDARD, WITH FREE UPDATES . 5 YEAR WARRANTY 3204D MSO Channels 3205D MSO 3206D MSO 3404D MSO 2 analog, 16 digital 3405D MSO 3406D MSO 4 analog, 16 digital Bandwidth 60 MHz 100 MHz 200 MHz 60 MHz 100 MHz 200 MHz Buffer memory 128 MS 256 MS 512 MS 128 MS 256 MS 512 MS Max. sampling rate Signal generator Digital inputs 1 GS/s Function generator + Arbitrary waveform generator 100 MHz max. frequency, 500 MS/s max. sampling rate www.picotech.com/pco527 2 CIRCUIT CELLAR • OCTOBER 2014 #291 EDITOR’S LETTER Issue 291 October 2014 | ISSN 1528-0608 CIRCUIT CELLAR® (ISSN 1528-0608) is published monthly by: Circuit Cellar, Inc. 111 Founders Plaza, Suite 300 East Hartford, CT 06108 Periodical rates paid at East Hartford, CT, and additional offices. One-year (12 issues) subscription rate US and possessions $50, Canada $65, Foreign/ ROW $75. All subscription orders payable in US funds only via Visa, MasterCard, international postal money order, or check drawn on US bank. SUBSCRIPTIONS Circuit Cellar, P.O. Box 462256, Escondido, CA 92046 E-mail: circuitcellar@pcspublink.com Phone: 800.269.6301 Internet: circuitcellar.com Address Changes/Problems: circuitcellar@pcspublink.com Postmaster: Send address changes to Circuit Cellar, P.O. Box 462256, Escondido, CA 92046 ADVERTISING Strategic Media Marketing, Inc. 2 Main Street, Gloucester, MA 01930 USA Phone: 978.281.7708 Fax: 978.281.7706 E-mail: circuitcellar@smmarketing.us Advertising rates and terms available on request. New Products: New Products, Circuit Cellar, 111 Founders Plaza, Suite 300 East Hartford, CT 06108, E-mail: newproducts@circuitcellar.com HEAD OFFICE Circuit Cellar, Inc. 111 Founders Plaza, Suite 300 East Hartford, CT 06108 Phone: 860.289.0800 COVER PHOTOGRAPHY Chris Rakoczy, www.rakoczyphoto.com COPYRIGHT NOTICE Entire contents copyright © 2014 by Circuit Cellar, Inc. All rights reserved. Circuit Cellar is a registered trademark of Circuit Cellar, Inc. Reproduction of this publication in whole or in part without written consent from Circuit Cellar, Inc. is prohibited. ELECTRICAL ENGINEERING MASH-UP This issue is an electrical engineering content mash-up comprising new technologies, revisited technologies, and even recent spins on old engineering concepts and projects. We revisit a classic solar power installation. We present a modern take on laser gun gaming, which first became popular in the 1980s. We highlight new uses for wireless mobile radio, which has been used for years by public service providers such as police departments and emergency medical teams. And much more. Let’s go over the specifics. I’m excited to announce that we’re re-releasing Circuit Cellar founder Steve Ciaria’s three-part series, “Solar-Powering the Circuit Cellar.” Turn to page 6 for an excerpt from the first article in the series. You can download the entire series for free for a limited time at http://bit.ly/1tHMOQW. Starting on page 8 is an interview with Bill Porter, a Navy engineer who runs a technical outreach program in his spare time. We’re sure you’ll be amazed by the ways in which he incorporated engineering in his wedding ceremony. If you’re interested in laser technology, check out Max Rothstein and Richard Speranza’s article about their BlasterWorks project (p. 18). They designed a laser tag system that uses real lasers. Working on a wireless control application? If so, check out long-time Circuit Cellar author Ken Merk’s article on Land Mobile Radio (LMR, p. 30). He explains how to build a wireless interface with eight output arrays and eight digital inputs. If you need a simple way to determine voltage values, check out the circuit Larry Cicchinelli presents on page 40. With the circuit and a 10-segment LED display, he can quickly tell if voltage is high, nominal, or low. On page 44 George Novacek presents another handy review of an essential electrical engineering topic: capacitance. He presents common capacitor types and explains basic capacitance-related equations. Like Novacek, Bob Japenga presents a short review of an essential topic: embedded Linux (p. 48). This month he offers tips for building your Linux system. Turn to page 52 for a special feature from our friend and colleague, Jan Buiting. In this “retronics” article, he reviews how a young engineer built an oscilloscope add-on for a PC. How do you select the right RF connectors for a project? How do you keep your delicate connectors in proper working order? On page 58 Robert Lacoste explains how to properly select and care for your RF connectors. On page 64 Jeff Bachiochi begins a series on embedded voice recognition. This month he introduces the topic and covers the basics. Engineer John Esterline wraps up the issue with his thoughts on the future of temperature-compensated crystal oscillators. Visit our social pages to share your thoughts on TCXOs. C. J. Abate cabate@circuitcellar.com DISCLAIMER Circuit Cellar® makes no warranties and assumes no responsibility or liability of any kind for errors in these programs or schematics or for the consequences of any such errors. Furthermore, because of possible variation in the quality and condition of materials and workmanship of reader-assembled projects, Circuit Cellar® disclaims any responsibility for the safe and proper function of readerassembled projects based upon or from plans, descriptions, or information published by Circuit Cellar®. The information provided by Circuit Cellar® is for educational purposes. Circuit Cellar® makes no claims or warrants that readers have a right to build things based upon these ideas under patent or other relevant intellectual property law in their jurisdiction, or that readers have a right to construct or operate any of the devices described herein under the relevant patent or other intellectual property law of the reader’s jurisdiction. The reader assumes any risk of infringement liability for constructing or operating such devices. © Circuit Cellar 2014 Printed in the United States THE TEAM EDITOR-IN-CHIEF C. J. Abate ART DIRECTOR KC Prescott ADVERTISING COORDINATOR Kim Hopkins PRESIDENT Hugo Van haecke COLUMNISTS Jeff Bachiochi (From the Bench), Ayse K. Coskun (Green Computing), Bob FOUNDER Japenga (Embedded Steve Ciarcia in Thin Slices), Robert PROJECT EDITORS Lacoste (The Darker Chris Coulston, Ken Davidson, and David Tweed Side), Ed Nisley (Above the Ground Plance), George Novacek (The Consummate Engineer), and Colin O’Flynn (Programmable Logic in Practice) CUSTOMER SERVICE Debbie Lavoie circuitcellar.com US/UK Don Akkermans +31 46 4389444 d.akkermans@elektor.com OUR NETWORK ELEKTOR LABS Wisse Hettinga +31 46 4389428 w.hettinga@elektor.com GERMANY Ferdinand te Walvaart +49 241 88 909-17 f.tewalvaart@elektor.de FRANCE Denis Meyer +31 46 4389435 d.meyer@elektor.fr NETHERLANDS SUPPORTING COMPANIES 2015 International CES 33 Ironwood Electronics 78 Harry Baggen +31 46 4389429 h.baggen@elektor.nl Accutrace7 Lauterbach55 SPAIN All Electronics Corp. 78 Lemos International Co., Inc. 79 ARM TechCon 2014 21 MaxBotix, Inc. 79 CadSoft Computer GmbH 25 microEngineering Labs 79 Custom Computer Services 78 Micro Digital, Inc. 35 Eduardo Corral +34 91 101 93 95 e.corral@elektor.es ITALY Maurizio del Corso +39 2.66504755 m.delcorso@inware.it SWEDEN Wisse Hettinga +31 46 4389428 w.hettinga@elektor.com Elektor 28, 29 MyRO Electronic Control Devices, Inc. 78 Elektor 56, 57 NetBurner, Inc. C2 Elektor71 Pico Technology 1 João Martins +31 46 4389444 j.martins@elektor.com Elektor R.E. Smith, Inc. 43 INDIA Elprotronic, Inc. 39 Reach Technology, Inc. 78 EMAC, Inc. 39 RoboBusiness Conference 47 ExpressPCB23 Saelig Co., Inc. 43 Humandata, Ltd. 78 Technologic Systems Zeynep Köksal +90 532 277 48 26 zkoksal@beti.com.tr IAR Systems 11 Triangle Research International, Inc. SOUTH AFRICA Imagineering, Inc. C4 BRAZIL João Martins +31 46 4389444 j.martins@elektor.com PORTUGAL Sunil D. Malekar +91 9833168815 ts@elektor.in RUSSIA Nataliya Melnikova +7 965 395 33 36 elektor.russia@gmail.com TURKEY Johan Dijk +31 6 1589 4245 j.dijk@elektor.com CHINA Cees Baay +86 21 6445 2811 ceesbaay@gmail.com 76, 77 15, 37 79 NOT A SUPPORTING COMPANY YET? Contact Peter Wostrel (circuitcellar@smmarketing.us, Phone 978.281.7708, Fax 978.281.7706) to reserve your own space for the next edition of our members’ magazine. 3 4 CIRCUIT CELLAR • OCTOBER 2014 #291 CONTENTS OCTOBER 2014 • ISSUE 291 SIGNAL PROCESSING THE BLASTERWORKS REAL-TIME LASER TAG SYSTEM CC COMMUNITY 06 : CC WORLD 08 : QUESTIONS & ANSWERS Electronics Innovation & Outreach An Interview with Bill Porter A Florida-based Navy engineer on unmanned system design and engineering-focused educational outreach INDUSTRY & ENTERPRISE 12 : PRODUCT NEWS 17 : CLIENT PROFILE Newhaven Display International (Elgin, IL) FEATURES 18 : BlasterWorks A Real-Time Wireless Laser Tag System By Max Rothstein and Richard Speranza A DIY real-time laser tag system complete with an LCD screen and RF transceiver for scoring and configuration 30 : Land Mobile Radio Wireless Control By Ken Merk Build a Land Mobile Radio (LMR) wireless system for long-distance monitoring and control 40 : AC Monitor By Larry Cicchinelli A handy circuit if you need an easy-to-use, straightforward way to determine voltage values 52 : Elektor ComputerScope (1986) Goodbye Green-Only 'Scope CRT By Jan Buiting A look back at a young engineer’s ambitious test instrument, which was like a ‘scope with PC support COLUMNS 44 : THE CONSUMMATE ENGINEER The Not So Humble Capacitor BILL PORTER DESIGNING AT HIS WORKBENCH By George Novacek A look at common capacitors and a variety of basic capacitance-related equations circuitcellar.com CONTENTS LAND MOBILE RADIO FOR LONG-DISTANCE MONITORING & CONTROL 48 : EMBEDDED IN THIN SLICES Linux System Configuration (Part 3) Build Your Linux System By Bob Japenga Various ways to build your embedded Linux system 58 : THE DARKER SIDE RF Connectors By Robert Lacoste Tips for selecting and caring for RF connectors 64 : FROM THE BENCH Embedded Voice Recognition (Part 1) Recognition as a Peripheral CONNECTOR CARE TESTS & CHALLENGES 74 : CROSSWORD 75 : TEST YOUR EQ TECH THE FUTURE 80 : The Future of Temperature-Compensated Crystal Oscillators By John Esterline A look at TCXO technology and the artificial neural network’s potential By Jeff Bachiochi Add effective speech and voice recognition capabilities to an electronics system EMBEDDED VOICE RECOGNITION AIR TUNING CAPACITOR @editor_cc @circuitcellar circuitcellar 5 6 CIRCUIT CELLAR • OCTOBER 2014 #291 CC WORLD FREE SOLAR SERIES By CC Staff (US) COMMUNITY Various Connecticut, USA-based CC staffers have noticed new local television ads promoting home solar power systems. Many towns in our area are even promoting solar programs with incentives for homeowners to switch to solar. We aren’t quite sure why there has been a push for solar during the past several weeks (in comparison to, say, three months ago), but it’s been quite obvious. In the spirit of DIY engineering and solar power innovation, we’re re-releasing Circuit Cellar founder Steve Ciaria’s three-part series, “Solar-Powering the Circuit Cellar.” An excerpt from the first article in the series appears below. You can download the entire series for free for a limited time (http://bit.ly/1tHMOQW). Enjoy! Photo 1 shows the roof-mounted solar panels that produce approximately 40% of the total PV power. I know it sounds like a joke that the first PV system consideration is walking around the house and looking for the sun, but you can’t generate much energy if your panels are always shaded. When you live in the middle of the woods, finding the sun is often easier said than done. Array orientation determines how much energy you can produce. Solar panels are typically aimed due south at a specific tilt angle that optimizes the incidence angle of the sunlight striking the panel. Maximum energy is produced when this tilt angle is equal to the latitude of the location (reduced by a location correction factor). Typically, the optimal tilt angle during the summer is the latitude minus 15°, and the optimal angle for the winter is the latitude plus 15°. Hartford, CT, is located at 42° latitude and the optimum tilt angle (minus an 8° correction factor) ranges from 19° in the summer (34° – 15°) to 49° in the winter (34° + 15°). The Connecticut rebate program suggests that if a fixed tilt is used, it be set at 35°. Of course, these are computergenerated optimizations that don’t necessarily accommodate real-world conditions. While it Photo 2 Attaching the first SunPower SPR-210 panel to the UniRac mounting rails on the roof Photo 1 Approximately 4,200 W of PV power is generated from 20 roof-mounted SunPower SPR-210 solar panels. The other 6,560 W comes from pole-mounted arrays behind this area. requires some nontrivial computer calculations to show authenticity, it is my understanding that as long as the non-optimal differences in azimuth and tilt are less than 20°, the loss in maximum power production is typically only about 5%. It is exactly for that reason that the most cost-effective PV installation is typically a fixed-pitch roof-mounted array. My system includes both variable and fixedpitch arrays. The roof-mounted panels are located on the solarium roof and oriented at a fixed pitch of 17.5° facing SSW (see Photo 1). According to Sunlight Solar Energy’s calculations, efficiency is still about 92% of the desired maximum because the 17.5° roof angle actually allows higher efficiency during longer summer hours even though it isn’t the optimum tilt for winter. Pole-mounted arrays are more efficient than a fixed-pitch roof array by design. My configuration is single-axis adjustable. The pole-mounted arrays are oriented due south and enable seasonal adjustment in the tilt angle to optimize the incidence angle of the sun. For everyone ready to e-mail me asking why I didn’t put in a tracking solar array since this is a pole mount, let me just say that you can also send me financial contributions for doing it via the magazine.—Steve Ciarcia, “Solar-Powering the Circuit Cellar (Part 1: Preparing the Site),” Circuit Cellar 209, 2007. You can download Steve Ciarcia’s three-part article series, “Solar-Powering the Circuit Cellar,” for free (for a limited time only): http://bit.ly/1tHMOQW. 8 CIRCUIT CELLAR • OCTOBER 2014 #291 QUESTIONS & ANSWERS Electronics Innovation & Outreach An Interview with Bill Porter COMMUNITY Bill Porter is a Panama City Beach, FL-based electronics engineer working for the US Navy. When he isn’t working on unmanned systems for the Navy, he spends his time running an engineering-focused educational outreach program and working on his own projects. In this interview, Bill talks about his first designs, technical interests, and current projects. CIRCUIT CELLAR: You’re an electronics engineer for the United States Navy. Can you describe any of the projects you’re involved with? Bill Porter at his home workspace BILL: I work with unmanned systems, or robots that are teleoperated and/or autonomous. This includes systems that swim under water, on the surface, or across the land. The Navy is working hard to develop robots to do the jobs that are dirty, dangerous, or dull and help keep the sailor out of harm’s way. One such system is called MUSCL, or Modular Systems Craft Littoral. MUSCL is a small, man-portable surface vehicle that is used by Riverine Patrol for remote surveillance and reconnaissance. I was the lead electrical engineer for the project. Besides robots, I am also working on a few education outreach programs that work towards getting more students interested in STEM careers. CIRCUIT CELLAR: Tell us about The Science Brothers nonprofit outreach program. How did the program start? BILL: The Science Brothers is my main educational outreach program run out of my Navy base. For two Fridays every month, a few of my coworkers and I will visit a local elementary school to put on a show. The script of the show centers on the dynamics of two brothers, who specialize in different fields and argue over whose science is “cooler.” The result is a fun and wacky trip exploring different premises in science, such as light, sound, and energy, with examples and demonstrations from the realms of chemistry, physics, and electricity. The program restarted when a few coworkers and I sat down and decided to bring back an old program that had existed on the base in the ‘90s called “Dr. Science.” The goal of the program was to bring science-based experiments to the schools using equipment they otherwise were not able to afford. By wowing the students with the spectacularlooking demos, we get them excited about science and yearning to learn more. circuitcellar.com 9 QUESTIONS & ANSWERS CIRCUIT CELLAR: Your website (BillPorter. info) includes projects involving 3-D printing, motor controllers, and LEDs. What types of projects do you prefer working on and why? CIRCUIT CELLAR: Do you have a favorite project? BILL: Yes! My wedding of course! I married the girl of my dreams who is just as much as a geek as I am, and as a result, we had an extremely geeky wedding over a year in the making involving many projects throughout. So much so that our theme was “Circuit and Swirls” and we carried the motif throughout. We designed and made our own wedding invitations involving LEDs, a microprocessor, and a clever Easter egg. Furthermore, we 3-D-printed our centerpieces, built up our own “e-textile” wedding attire with LEDs and EL wire, and we even had a “soldering ceremony” during the event. It made our parents nervous, but in the end, everyone had a good time. Did I mention I asked her to marry me on a PCB she designed for a project? CIRCUIT CELLAR: Do you have a favorite Science Brothers project? BILL: My favorite Science Brother project has to be Tesla Hero. I took apart a Playstation2 Guitar Hero controller and modified it to send signals over a fiber optic cable to my Tesla Coil. Instead of hitting digital rifts, now I can play a few notes through my Tesla Coil. Nothing gets the kids more excited than to see the “Million Volt Electric Guitar.” CIRCUIT CELLAR: Give us a little background information. How did you become interested in technology? Where did you do to school? What did you study? BILL: I studied electrical engineering in college and build robots for fun. I spent way too much COMMUNITY BILL: I am a hardware guy. I love to fire up my favorite PCB CAD software just to get an idea out of my head and on the screen. I do not breadboard very often, as I would rather take my chances trying some new idea on a board first. Either it works, or I have an excuse to design another PCB. Thankfully, group-order PCB services have enabled my addiction tinkering at a very low cost. I wish I was stronger at mechanical CAD design to really get the full potential out of my 3-D printer, but I have done well enough without it. It really does come in handy at times, whether it is a quick project enclosure, a mount, or a part for our garden. Images from Bill Porter's EEthemed wedding 10 CIRCUIT CELLAR • OCTOBER 2014 #291 QUESTIONS & ANSWERS of my allowance on the first Lego Mindstorms kits in high school (which got me hooked on robotics) and liked to mod Xboxs for fun. If there was a way to attach an LED to something, I would find it. CIRCUIT CELLAR: Tell us about the first embedded system you designed. What did you learn from the experience? COMMUNITY BILL: I guess my first real embedded project was the robot I helped design from the ground up during the capstone project of my last year in college. In a team of four, we had to design a robot that would autonomously locate, sort, and store recyclable “trash” consisting of Coke can, plastic, and glass bottles. The project was a smashing success and lead to my career with the US Navy. The experience taught me about how much involvement is required to take a project from an idea to the final product. There are a lot of little things for which one has to contemplate, plan and design solutions. CIRCUIT CELLAR: Tell us about last electronicsdesign related product (e.g., a microcontroller, sensor, etc.) you purchased and the project you worked on with it. BILL: My wife and I just decided to start a small herb garden on our apartment balcony. Never missing an excuse to tinker, I started playing with designs for an automatic gravity-fed drip irrigation system. I just purchased a few soil conductivity sensors to sense when the plants will need to be watered. I’m hoping to automate and data log things like soil moisture vs. relative humidity, temperature, sunlight level, etc. CIRCUIT CELLAR: Are you currently working on or planning any projects? Can you tell us about them? BILL: I have one main project that is taking up all my time at work and at home. A coworker and I are the technical directors for the first-ever Maritime RobotX Challenge. The challenge, sponsored by Association for Unmanned Vehicle Systems International (AUVSI) Foundation and by the Office for Naval Research (ONR), will take place this October in Singapore. It will include 15 teams of college students from five participating nations and put them to the test by challenging them to design a robot that will complete five tasks autonomously. As one of the technical directors, I have been helping design and build the interactive course elements that the teams’ robots will be facing. Find out more at Robotx.org. CIRCUIT CELLAR: What new technologies excite you and why? Science Brothers shows BILL: I have always been infatuated by LEDs and ways to conserve energy, so I am most excited to see how efficient LEDs are starting to take over as the new source of light in the household. C-RUN is a high-performance runtime analysis add-on product, fully integrated with world-leading C/C++ compiler and debugger tool suite IAR Embedded Workbench. C-RUN performs runtime analysis by monitoring applica- tion execution directly within the development environment. The tight integration with IAR Embedded Workbench improves development workflow and provides each developer with access to runtime analysis that is easy-to-use. Join us at ARM TechCon! Booth 512 12 CIRCUIT CELLAR • OCTOBER 2014 #291 PRODUCT NEWS UPGRADES TO HIGH-ISOLATION, MULTI-THROW SWITCHES INDUSTRY & ENTERPRISE Peregrine Semiconductor Corp. recently introduced the UltraCMOS PE42442 and PE42452, which are high-isolation, multithrow switches. In comparison to its PE42451, the SP4T and SP5T switches include several additional features to meet wireless infrastructure demands: • extended temperature range to 105°C • control logic support of 1.8 and 3 V • a 1.8-V logic control was included to enable lower power consumption • a wider power supply range of 2.3V to 5.5V • loss, isolation, and ESD protection A 24-lead, 4 × 4-mm QFN package is available. For orders of 10,000 or more, the PE42442 costs $1.60 each and the PE42452 costs $1.92 each. Evaluation kits are also available. Peregrine Semiconductor www.psemi.com NEW PIC32 BLUETOOTH STARTER KIT Microchip Technology recently announced the new PIC32 Bluetooth Starter Kit, which is intended for low-cost applications such as a Bluetooth thermostat, wireless diagnostic tools, and Bluetooth GPS receivers. According to Microchip, the kit includes “a PIC32 microcontroller, HCIbased Bluetooth radio, Cree high-output multi-color LED, three standard single-color LEDs, an analog three-axis accelerometer, analog temperature sensor, and five push buttons for user-defined inputs.” PICkit On Board (PKOB) eliminates the need for an external debugger/ programmer, USB connectivity, and GPIOs for rapid development of Bluetooth Serial Port Profile (SPP), USB and general-purpose applications. The starter kit also features a plug-in interface for an audio CODEC daughter card. The kit’s PIC32MX270F256D microcontroller operates at 83 DMIPS with 256-KB flash memory and 64-KB RAM. The PIC32 Bluetooth Starter Kit is supported by Microchip’s free MPLAB X IDE and MPLAB Harmony Integrated Software Framework. Additionally, the free Quick Start Package is available with an Android application development environment. It also includes a free SDK with the application source code and binary for Microchip’s Bluetooth SPP library. Both are optimized for the on-board PIC32 MCU and are available for free at www.microchip. com/get/1AVL. The PIC32 Bluetooth Starter Kit costs $79.99. Microchip Technology www.microchip.com circuitcellar.com 13 PRODUCT NEWS DUAL STEP-DOWN REGULATOR • • • • Dual step-down outputs: 1 A per channel VIN range: 2.7 to 17 V VOUT range: 0.6 V to VIN Up to 95% efficiency • • • • • • • • • No-load IQ = 5 μA (both channels enabled) < 4 μA (one channel enabled) High efficiency, low dropout operation (100% duty cycle) Constant frequency (1 MHz/2.25 MHz) with external synchronization ±1% output voltage accuracy Current mode operation improves line and load transient response Phase shift programmable with external clock Selectable current limit Internal compensation and soft-start Compact 14-pin DFN (3 mm × 4 mm) package The regulator is available now with a per-unit cost starting at $3.75 for orders of 1,000 units. Linear Technology www.linear.com HIGH-SENSITIVITY ACCELEROMETER FAMILY Freescale recently introduced a new range of three-axis accelerometers offering high sensitivity at low power consumption. According to Freescale, the FXLN83xxQ family is capable of detecting acceleration information often missed by less accurate sensors commonly used in consumer products such as smartphones and exercise activity monitors. In conjunction with appropriate software algorithms, its improved sensitivity allows the new sensor to be used for equipment fault prognostication (for predictive maintenance), condition monitoring, and medical tamper detection applications. The 3 mm × 3 mm chip has a bandwidth of 2.7 kHz and uses analog output signals for direct connection to a microcontroller’s ADC input. Each chip has two levels of sensitivity that can be changed on the fly. The complete family covers acceleration ranges of ±2, ±4, ±8, and ±16 g, with gains of, 229.0, 114.5, 57.25, and 28.62 mV/g, respectively. Zero g is indicated by an output level of 0.75 V. The FXLN83xxQ family features: • • • • FXLN83x1Q ±2 or ±8 g range FXLN83x2Q ±4 or ±16 g FXLN836xQ 1.1 kHz x- and y-axis bandwidth (Z = 600 Hz) FXLN837xQ 2.7 kHz x- and y-axis bandwidth (Z = 600 Hz) The sensors operate from 1.71 to 3.6 V (at 180 µA typically, 30 nA shutdown). The company has also made available the DEMOFXLN83xxQ evaluation break-out board with a ready-mounted sensor to simplify device integration into a test and development environment. Freescale Semiconductor www.freescale.com INDUSTRY & ENTERPRISE Linear Technology has announced an addition to its family of power regulator solutions. The LTC3622 is a dual step-down regulator in a small 3 × 4 mm package that provides two independently configurable 1-A outputs operating from a 2.7- to 17- V input. External voltage divider networks define the two output voltages or alternatively a range of fixed output voltage versions result in a lower component count. The input voltage range makes it suitable for operation from single or multiple lithium cells or from a vehicular supply. The regulator can operate in Burst mode to give highest efficiency at light loads or PulseSkipping mode to give lower ripple noise. The system clock can be synchronized to an external source to help to reduce system noise bandwidth. Some of the many features include: 14 CIRCUIT CELLAR • OCTOBER 2014 #291 PRODUCT NEWS DE0-NANO CYCLONE FPGA DEV BOARD With a DE0-Nano Cyclone FPGA Development Board, you can create your own sophisticated hardware using programmable logic. The development board includes an Altera Cyclone IV and additional components to connect and test hardware designs. It comes a pre-wired Cyclone IV FPGA for programming and connection to internal or external devices and circuit. With the board, you can create sophisticated logic hardware fairly quickly using a hardware description language. Possible applications include dedicated digital logic processors, robotics, and DIY autonomous systems. INDUSTRY & ENTERPRISE Parallax www.parallax.com NEW DUAL-CHANNEL FUNCTION/ARBITRARY WAVEFORM GENERATORS Analog Devices has announced a software-defined radio (SDR) rapid prototyping kit with dual 2 x 2 AD9361 RF transceivers to simplify and rapidly prototype 4 × 4 MIMO wireless transceiver applications on the Xilinx Zynq-7000 allprogrammable SoC development platforms. The AD-FMCOMMS5-EBZ rapid prototyping kit provides a hardware/software ecosystem solution addressing the challenges of SDR transceiver synchronization experienced by RF and analog designers when implementing systems using MIMO architectures. A webinar is available on how to synchronize multiple RF transceivers in high-channel density applications. The AD-FMCOMMS5-EBZ rapid prototyping kit includes the following: • • • • • • An FPGA mezzanine card (FMC) featuring two of Analog AD9361 2 x 2 RF transceivers and support circuitry Reference designs Design and simulation tools for MathWorks HDL code Device drivers for Zynq-7000 All Programmable SoCs Online support at ADI’s EngineerZone for rapid prototyping to reduce development time and risk. The AD-FMCOMMS5-EBZ rapid prototyping kit is the fifth SDR rapid prototyping kit ADI has introduced in the last year to help customers address the global SDR market. SDR MIMO applications range from defense electronics and RF instrumentation to communications infrastructure and include active antennas, transmit beamforming, receive angle of arrival systems, and open-source SDR development projects. The AD9361 operates over a frequency range of 70 MHz to 6 GHz. It is a complete radio design that combines multiple functions, including an RF front end, mixed-signal baseband section, frequency synthesizers, two analog-to-digital converters and two direct conversion receivers in a single chip. The AD9361 supports channel bandwidth from less than 200 kHz to 56 MHz and is highly programmable. Analog Devices www.analog.com DESIGN YOUR SOLUTION TODAY CALL 480-837-5200 TS-8820-BOX Industrial Controller TS-7680 Single Board Computer Opto-Isolated Analog IO AC Power, Relays, WiFi, & Bluetooth Powered by: TS-SOCKET Modules TS-8820-4700 Pricing starts at $608 $659 Qty 100 Qty 1 TS-8820-4800 Pricing starts at $648 $699 Qty 100 Features: Qty 1 Pricing starts at $159 $203 Qty 100 (Shown with all options) Qty 1 Features: 800 MHz ARM CPU 2x USB Host 454 MHz ARM CPU Wireless 802.11b/g/n 256 MB RAM 8x Opto-Isolated Inputs 128 or 256 MB RAM Bluetooth 4.0+EDR 256 MB Flash Storage 6x Digital Inputs, 6x Out 2 GB Flash Storage Wireless 802.11b/g/n 1x microSD Socket 16x ADC, 4x DAC Ports 1x microSD Socket 24 VAC or 8-24 VDC Power 1x 10/100 Ethernet PWM, Counter, & H-Bridge 2x 10/100 Ethernet DIO, CAN, Modbus, Relays Benefits: Benefits: Provides a variety of electrically isolated IO Low power and low cost industrial grade SBC Metal enclosure with rugged screw connectors Rugged 24-Pin screw terminal connector Convenient Power over Ethernet (PoE) powers SBC Flexible power inputs including AC and DC Customizable with programmable 5 KLut FPGA Wireless data aquisition via WiFi and Bluetooth -40 to 85 ºC industrial temperature range L NA GI Support every step of the way with open source vision O RI Embedded systems that are built to endure N TS-7670 Low Power SBC with GPS Radio & Cell Modem O PE D GE RU G LO NG LI FE Boots Linux 2.6 in less than 3 seconds We’ve never discontinued a product in 30 years 30 V tolerant DIO, analog IO, 3 A relays, and more Also Available: Unique embedded solutions add value for our customers 16 CIRCUIT CELLAR • OCTOBER 2014 #291 PRODUCT NEWS USER-EXTENSIBLE FDA FOR REAL-TIME OSCILLOSCOPES Keysight Technologies recently announced the availability of a frequency domain analysis (FDA) option, a user-extensible spectrum frequency domain analysis application solution for real-time oscilloscopes. The FDA option extends the capabilities of Keysight Infiniium and InfiniiVision Series oscilloscopes by enabling you to acquire live signals from the oscilloscope and visualize them in the frequency domain, as well as make key frequency domain measurements. Option N8832A-001 includes the application, the application source code for user extensibility, and MATLAB software. These tools enable you to extend an application’s capabilities to meet their current and future testing needs. With the FDA application, you can address a variety of FDA challenges such as: • • INDUSTRY & ENTERPRISE • • • Power spectral density and spectrogram visualization Frequency domain measurements in an application including relevant peaks in the PSD and measurements such as occupied bandwidth, SNR, THD, SFDR, and frequency error Oscilloscope configuration through the application to allow for repeatable instrument configuration and measurements; optionally includes additional SCPI commands for more advanced instrument setup Insertion of additional custom signal processing commands prior to frequency domain visualization, as needed, for more advanced analysis insight Live or post-acquisition analysis of time-domain data in MATLAB software Keysight Technologies www.keysight.com QUARTUS II SOFTWARE ARRIA 10 EDITION V14.0 Micro Altera Corp. has released Quartus II software Arria 10 edition v14.0, which is an advanced 20-nm FPGA and SoC design environment. Quartus II software delivers fast compile times and enables high performance for 20-nm FPGA and SoC designs. You can further accelerate Arria 10 FPGA and SoC design cycles by using the range of 20-nm-optimized IP cores included in the latest software release. Altera’s 20-nm design tools feature advanced algorithms. The Quartus II software Arria 10 edition v14.0 provides on average notably fast compile times. This productivity advantage enables you to shorten design iterations and rapidly close timing on 20nm design. Included in the latest software release is a full complement of 20-nm-optimized IP cores to enable faster design cycles. The IP portfolio includes standard protocol and memory interfaces, DSP and SoC IP cores. Altera also optimized its popular IP cores for Arria 10 FPGAs and SoCs, which include 100G Ethernet, 300G Interlaken, Interlaken Look-Aside, and PCI Express Gen3 IP. When implemented in Altera’s Arria 10 FPGAs and SoCs, these IP cores deliver the high performance. The Quartus II software Arria 10 edition v14.0 is available now for download. The software is available as a subscription edition and includes a free 30-day trial. The annual software subscription is $2,995 for a node-locked PC license. Engineering samples of Arria 10 FPGAs are shipping today. Altera www.altera.com NEW 40-NM MICROCONTROLLERS FOR MOTOR CONTROL Renesas Electronics Corp. recently announced the RH850/ C1x series of 32-bit microcontrollers (MCUs), which it said are designed for motor control in hybrid electric vehicles (HEVs) and electric vehicles (EVs). Based on Renesas’s 40-nm process, the RH850/C1x series features the RH850/C1H and RH850/C1M MCUs. The new RH850/C1x devices can be used with the RAA270000KFT RH850 family power supply management IC (PMIC). The power management IC integrates into one device all the power supply systems required for MCU operation, two external sensor power supply tracks, and a full complement of monitoring and diagnostic functions. The RH850/C1H and RH850/C1M MCUs incorporate large memory capacities achieved through 40 nm MONOS process technology. The RH850/C1x series is based on Renesas’s metal oxide nitride oxide silicon embedded flash. The RH850/C1M and RH850/C1H devices offer memory capacities of 2 MB and 4 MB, respectively. In addition, 32-KB data flash memory, with similar functionality as EEPROM, is included for data storage. The microcontrollers also feature an extensive set of peripheral functions for HEV/EV motor control. The RH850/C1x MCUs can implement three types of motor control in hardware: sine wave PWM, over modulation, and square wave. Samples of the RH850/C1H and RH850/C1M MCUs are scheduled to be available from the beginning of 2015 and will cost $45 and $50 per unit, respectively. Renesas Electronics Corp. www.renesas.com circuitcellar.com 17 CLIENT PROFILE Newhaven Display International, Inc. www.newhavendisplay.com CONTACT: Melissa Campbell (mcampbell@newhavendisplay.com) WHY SHOULD CC READERS BE INTERESTED? Intn The Full Color OLED displays feature 262k colors with a 2001:1 contrast ratio, >160° view, and a 10-μs response time. Each of these displays is 5-mm thick. They are built as complete modules that include all necessary logic. They can withstand temperature ranges from –30°C to +70°C without affecting the response time of the display. The Full Color OLEDs also support a 256-step brightness and have a built-in sleep mode as well as additional features that you won’t find in your typical LCD. SPECIAL OFFER: For a limited time, take 10% off your first COLOR OLED online purchase at www.newhavendisplay.com. Use coupon code CCFullColor during check out. Limit one per customer; cannot be combined with any other offers. Circuit Cellar prides itself on presenting readers with information about innovative companies, organizations, products, and services relating to embedded technologies. This space is where Circuit Cellar enables clients to present readers useful information, special deals, and more. Get published. Get noticed. Get paid. Circuit Cellar feature articles are contributed by professional engineers, academics, and students from around the globe. Each month, the editorial staff reviews dozens of article proposals and submissions. Only the best make it into the pages of this internationally respected magazine. Do you have what it takes? Contact C. J. Abate, Editor-in-Chief, today to discuss the embedded design projects and programming applications you’ve been working on and your article could be featured in an upcoming issue or online at circuitcellar.com. Email: editor@circuitcellar.com INDUSTRY & ENTERPRISE FEATURED PRODUCTS: The Full Color OLEDs of fer any monochromatic applic ation a boos t of vibranc y and enhanced performance. The NHD-1.27-12896UGC3, NHD1.5-128128UGC3, and the NHD-1.69-160128UGC3 are perfect for any application, but are ideal for handheld or low-power applications looking to add a sharp-looking display with the ability to produce smooth motion graphics and support a wide viewing angle. To learn more about these Full Color OLEDs, visit http://bit.ly/ColorOLEDs. 18 CIRCUIT CELLAR • OCTOBER 2014 #291 FEATURES BlasterWorks A Real-Time Wireless Laser Tag System Unlike most commercial “laser tag” combat games that use infrared light-based systems, the innovative system presented in this article uses real lasers. Wireless updates work seamlessly and the sensor system can accurately detect hits from reasonable ranges. By Max Rothstein and Richard Speranza A s our final project for the course “ECE4760: Designing with Microcontrollers” at Cornell University, we built a wireless, realtime laser tag system—or, as we call it, BlasterWorks (see Photo 1). Having played standard laser tag games, we were interested in expanding the game beyond its traditional boundaries. Our ultimate goals were to create a system that mirrored combat as closely as possible and to add new features that are normally only found in video games. We also PHOTO 1 The player operates four buttons in the center. From the top left to the right, they correspond to Reload, Change Weapon, Fire Blaster, and Change Screen. felt laser tag would be cooler with real lasers, as opposed to using infrared light, which all commercially available systems implement. With this in mind, we started with the essential components—namely, the laser and detector system—and expanded the game by adding an LCD screen and RF transceiver to provide score updates and configurability. GAME OVERVIEW At the highest level, our system has three main components: a laser blaster, a base station, and a shot detection vest. Figure 1 depicts their high-level connections. Each player’s vest is instrumented with sensors to detect shots coming from other players. Each blaster has an RF transceiver, an LCD, a sensor, and a laser. The laser is used to fire at other players and only turns on when the player presses the fire button. The RF transceiver allows each player to send and receive real-time information about the game. This information, such as player health, is displayed on the blaster’s LCD. Finally, each blaster is equipped with a sensor to determine if the blaster itself has been hit by another player. The final component, the base station, serves as a relay point for the real-time updates and logs the game’s activity. It also sets the game parameters, such as starting health and ammo, and then begins the game. Each blaster has four buttons that control its actions. The first button fires the laser on the blaster. The second button reloads the blaster, replenishing the ammo count. The third button cycles through LCD views, and the fourth button switches weapon types. circuitcellar.com Base station PC PuTTY 19 DC Supply SPI RF Transceiver COM Port 5V DC/DC MAX232 FEATURES ATmega644 MCU USART Serial/RS-232 9-V Battery Player 1 Blaster SPI SPI RF Transceiver DC/DC 9-V Battery Player 2 Blaster RF Transceiver 5V 5V Wireless comm Laser ATmega644 MCU Lens Laser Blaster sensor Blaster sensor LCD LCD ATmega644 MCU Player 1 Vest PWR Outer sensor Outer sensor Inner sensor DC/DC Lens Player 2 Vest Outer sensor Outer sensor PWR Inner sensor Data Data Outer sensor Outer sensor Photo 1 the shows user interface. The LCD has three different views: selfinfo, scoreboard, and weapon type. The user has the ability to scroll between these screens by pressing the change screen button. On the self-info screen, the player can view his or her own health and ammo count. By looking at the scoreboard, the player can see the health of all of the players in the game. The weapon screen tells the player if they are in single shot or automatic mode. The objective of the game is to be the last player standing. Players can create their own custom games with their own parameters, or choose default values. Default values assign players with 100 health points, 100 rounds of ammunition for the automatic blaster, and unlimited ammunition for the pistol blaster. However, each pistol clip has only 10 shots, so a player needs to reload. When a player is hit on the vest, points are deducted from his or her total health. If hit in the inner ring of the vest, 10 points are deducted. If hit in the outer ring instead, only five points are deducted. Hitting a player on his or her blaster sensor prevents them from shooting for the next 5 s Outer sensor Outer sensor and will also deduct five health points. HARDWARE DESIGN The hardware can be split into two main categories: shot detection and microcontroller processing and peripherals. Both the blasters and base station have processing/peripheral blocks, but the base station does not have a shot detection block. The circuitry for the blaster and base station are depicted in Figure 2 and Figure 3, respectively. The shot detection block’s mission is to catch any lasers that are shot at the user and to give information to the microcontroller so it can determine where the user was hit. As you can see in Figure 4, there are a total of six LTR-301 phototransistors. Q1 through Q4 on the schematic correspond to the four outer detectors on the user’s chest plate. Q5 is the sensor for the inner detector on the chest plate. Finally, Q6 is the last sensor, which is placed on the user’s blaster. These sensors can be thought of as a normal BJT; however, instead of biasing the base manually, the laser does the work for us. Without any light shining on the base of the phototransistor, the FIGURE 1 The full system 20 CIRCUIT CELLAR • OCTOBER 2014 #291 FEATURES FIGURE 2 The Blaster’s schematic FIGURE 3 The base station’s schematic device is turned off and there is an effective open between the collector and emitter. As light hits the component, the BJT begins to turn on, allowing the 5 V from the collector to flow to the emitter. Something worth noting is that this device is not an “all-or-nothing” device. The voltage at the emitter is not always either 0 or 5 V. Depending on how hard the component is hit by light, the device may only be partially on. This behavior is the reason why comparators are needed. The purpose of the fast-switching diodes (D1–D9) in the circuit is to create a logic OR function. Regardless of which sensor is hit, we want a comparator to flip to throw an external interrupt on the microcontroller. By using an OR circuit, we can obtain this functionality. A diode OR circuit allows the highest voltage in the OR to pass through and then back-biases the remaining diodes. The LM358 operational amplifiers (opamps) in our circuits are used as comparators and Schmitt triggers to send effective “bits” to our microcontroller. The bottom op-amp is configured as a Schmitt trigger. This is essentially a comparator with hysteresis. A Oct 1-3, 2014 Santa Clara Convention Center Santa Clara, CA TECHNICAL SESSIONS | HUNDREDS OF EXHIBITORS | KEYNOTES PRIZES & GIVEAWAYS | NETWORKING EVENTS Please visit www.armtechcon.com CIRCUIT CELLAR • OCTOBER 2014 #291 trigger, similar to the shot comparator. This Schmitt trigger is attached to the sensor that is placed on the blaster. A reference voltage is set with a 10-kΩ potentiometer on the inverting input. When the user is shot on the blaster, the noninverting input goes above this threshold and causes the output of the op-amp to flip. Whenever the bottom op-amp flips and generates an external interrupt, the two bits from the top LM358 are read. FEATURES 22 PROCESSING & PERIPHERALS FIGURE 4 The shot detection schematic FIGURE 5 The laser driver schematic 10-kΩ potentiometer sets a reference level at which the Schmitt trigger flips. If a shot is detected from any of the six sensors, then the voltage at the noninverting input raises above the set threshold voltage. Due to positive feedback, the output of the Schmitt trigger is driven high, which causes an external interrupt on INT0. The LM358 package conveniently has two op-amps inside of it. On the top LM358, the first op-amp is configured as a simple comparator. It makes a comparison between the inner sensor and four outer sensors. By making this comparison, we can effectively tell if the user was hit closer to the inner sensor or closer to the outer sensors. The 1-MΩ resistors on each network pulls voltage through the first layer of diodes even if the second layer is biased off. The second op-amp in the package is configured as a Schmitt This is the final hardware stage in our design. This stage includes all of the remaining circuitry that interface with the microcontroller to give us our desired functionality. Most of the following peripherals are controlled by the user’s interaction with a set of four buttons. As we described previously, the functions are fire, reload, change screen, and change weapon. The buttons are connected to ground though a currentlimiting resistor. Since the microcontroller I/O pins are set to Pull-Up mode, when a button is pushed, the signal will switch to low. By reading these pin values through software, we can determine what the user is trying to do and respond accordingly. A special circuit is needed in order to drive the laser on each blaster. The Atmel ATmega644 I/O pins (and microcontroller I/O pins in general) have a limited amount of current that they can source. In order to drive the laser hard enough for it to be usable, a buffer is needed. For our application, a MOSFET is used to buffer the current needed to drive our laser. The source of the MOSFET is tied directly to ground and the drain is connected to VCC through a 1-kΩ resistor. The gate of the MOSFET is driven by the microcontroller’s A.7 pin. Finally, the laser is connected to VCC and the MOSFET drain. When the output on A.7 is low, the MOSFET is off, leaving the laser off. When the MOSFET gate is driven high, the device turns on, effectively connecting the negative terminal of the laser to ground. This functionality provides the laser with the current it needs, giving us maximum distance. The sensor system as described would detect laser beams directly incident on the phototransistors very well, but would not be able to detect shots pointed close by. At a distance of 5 m, the spot size is approximately 6 mm in diameter. By adding a concave lens in front of the beam, the diameter grows to a much larger size a few meters away, allowing us to only use a few phototransistors, rather than potentially hundreds, to capture a shot. We used foam core from a local crafts store to house the lens/laser system, and it worked quite effectively. They were both circuitcellar.com SOFTWARE The overall software design can be divided into the same general categories as the hardware, as it serves to coordinate concurrent operation of the wireless communication, the LCD screen, response to the shot detection, firing the blaster, and the various buttons. Two separate c files are needed, base_station.c, which controls the base station, and blaster.c, which controls both blasters. Each blaster is also provided with a unique identifier, my_number, when programmed. These activities are managed by the Tiny Real Time (TRT) kernel. The kernel allows us to easily manage the main tasks and control how often to run them, as well as to provide certain tasks with a higher priority when needed. Additionally, the LCD update is a slow process and might otherwise create a bottleneck on our system. By scheduling other tasks at the same time as the LCD update, the controller is able to continuously accomplish work. The four tasks are: task_health(), task_wireless(), task_lcd_update(), ABOUT THE AUTHORS Max Rothstein (mr579@cornell.edu) is pursuing a BS in Electrical and Computer Engineering at Cornell University. His main interests are in computer architecture and embedded software. Richard Speranza (rjs483@cornell.edu) holds a BS in Electrical and Computer Engineering from Worcester Polytechnic Institute and is pursuing an MS in Engineering at Cornell University. His main interest is embedded systems design. and task_laser(). Additionally, external interrupts are used to handle shot detection and firing the blaster. TASK_HEALTH() & SHOT DETECTION Shot detection is performed by an interrupt service routine (ISR) by using an external interrupt on PinD.3, which is connected to the output of the shot detection comparator. When the interrupt is triggered, the ISR reads two other bits of information from the shot detection hardware. A blaster shot is detected by reading the FEATURES placed in the foam by making a small entry cut, and then firmly pressing the object down through the foam. Then, we peeled away the foam covering the glass portion of the lens. The final peripheral in our system is Nordic Semiconductor nRF24L01+, a 2.4 GHz RF transceiver. The transceiver and microcontroller communicate using SPI, an implementation that already existed in the drivers, which were borrowed from a previous project.[1] We have a wireless module on both blasters and the base station (refer to the either schematic for pin connections). This module is what gives us the ability to update each player with information about the game. The main challenges involving the wireless radio were in software, and will be discussed below. 23 24 CIRCUIT CELLAR • OCTOBER 2014 #291 PHOTO 2 Base station prototype FEATURES TASK_WIRELESS() value of PinA.5, and a shot to the outer ring of phototransistors on the detector is detected by reading the value of PinA.6. Shots to the blaster and outer ring are flagged as a weak_hit, while an inner shot is flagged as a strong_hit. In task_health(), the values of those two variables are checked and the corresponding health update is made. To limit the number of hits allowed per a given amount of time, the task sleeps for a longer period of time after detecting a hit. As in traditional laser tag, this allows a player who has been shot to retreat and reset after getting shot. Also, it prevents small hardware oscillations from affecting the software operation. PHOTO 3 Blaster prototype The wireless communication allows us to provide the players with real time information on the state of the game, providing health information for the other players. Additionally, it provides a way to configure the game from the base station terminal on startup, and send an alert when the game has finished. The wireless communications are handled by a state machine, which allows a back and forth conversation between all blasters and the base station. While the base station and blaster have slightly different behaviors, the state machine is almost identical from a high level. The main difference is during initialization state, which is called INIT_ GAME for both. In the blaster’s initialization state, it waits on a packet containing the game configurations, namely maximum health and ammo. This packet has a special identifier to indicate it is an initialization packet, rather than an update packet. In the base station’s initialization state, it first prompts the user via the PuTTy terminal to respond to a series of questions regarding game configurations. Once these questions have been answered, the base station sends packets to the awaiting blasters. To ensure delivery without acknowledgment, the base station transmits this message for a couple of seconds before transitioning to the next state. Once a blaster is initialized, it also transitions to the next state, INIT_RX. In INIT_RX, the wireless module is set to receiver mode, and then the controller transitions immediately to POLL_UPDATE. Here, the controller continuously checks to see if a new packet is available in the receive FIFO. That packet will contain the remaining hit points and ammo for all players. Essentially, this allows any player/base station to update any player/base station on the current state The new EAGLE has landed! Version 7 now available For more information, visit www.cadsoftusa.com 26 CIRCUIT CELLAR • OCTOBER 2014 #291 PHOTO 4 Sensor vest prototype FEATURES required to be in range of the base station at all times. In order to reconcile potential differences between those update packets, a value is only considered new if it is less than the local value. This preserves the proper state because health and total ammo can only decrease over time. If the base station receives an update, it transitions to INIT_TX, where the mode of the transceiver is changed to transmit. The blaster only transitions to INIT_TX when the player is shot, which is detected by an external interrupt as discussed earlier. Both transition immediately to SEND_UPDATE after the initialization is complete. Here, the update packet is formatted and broadcast out. To simplify the communication, the message is transmitted continuously for a set duration without requesting a receive packet acknowledgement. This allows the base station to reach all blasters without needing to spend time performing a hand shake with each player. For the purposes of the game, it is acceptable if any one controller misses an update. After the update is sent, both switch back to receive mode and wait on new updates. TASK_LCD_UPDATE() of the game. For example, Player 1 could send an update packet to Player 2. Player 2 could then update its local information and send its own update packet that the base station might receive. This extends the range of play for the game because players are not PROJECT FILES for the Atmel ATmega8L AVR,” ISRN LUTFD2/ TFRT7608SE, Department of Automatic Control, Lund Institute of Technology, 2004. Nordic Semiconductor, “nRF24L01+: Single Chip 2.4 GHz Transceiver,” Product Specification v1.0, 2008. circuitcellar.com/ccmaterials SOURCES REFERENCE [1] Lee, Y. H., “Design a Wireless Lab for ECE4760,” Cornell University, http://bit.ly/ USmWTb. ATmega644A Microcontroller Atmel Corp. | www.atmel.com VLM-650-03-LPA Laser and LTR-301 Phototransistors Digi-Key Corp. (distributor) | www.digikey.com RESOURCES Henriksson, D. and Cervin, A., “TinyRealTime—An EDF Kernel Transceiver nRF24L01+ Module with Chip Antenna Nordic Semiconductor | www.nordicsemi.com The LCD screen can either display personal status info (i.e., its local health and ammo values), the current blaster type, or the scoreboard containing the global health values. The state is controlled by clicking the Change Screen button. This results in incrementing the state variable to the next possible screen. In order to prevent the screen from flashing, it is only updated when new information is available. Since updating the LCD is a relatively slow process, local copies of the game info are created and displayed, which means the display may lag behind the true values. The difference will only be on the order a few milliseconds, so it will not affect the game play. This task also handles reload, which is done by polling PinA.1, which is driven low by pushing the Reload button. TASK_LASER() & FIRING SHOTS This task implements the two types of blasters available to each player: automatic and single shot. Each player starts out using their automatic blaster, and may choose to switch between weapon types by clicking the Change Weapon button. When using the automatic blaster, the player only needs to hold down the Fire Laser button and the laser will continuously fire. On alternate passes through this portion of the loop, the output pin driving the laser is turned on and off, its rate controlled by the TRT kernel function trtSleepUntil(). The circuitcellar.com CHALLENGES The main challenge was enabling wireless communication. Code for the drivers was borrowed from a previous project[1]; however, the sample code does not implement a system in which one controller takes on the role of both transmitter and receiver. The function set_ mode() provided by the driver file wireless.c is supposed to change between modes, but this function alone does not work. In order to switch between modes, we discovered it was necessary to clear out the receiver buffer by calling flush_RX_FIFO(), and then setting the new mode. The transceiver does not maintain the transmitter address while in receive mode, so we needed to call set_TX_ addr() with the new address when switching from Receiver to Transmitter mode. RESULTS We successfully created working prototypes for one base station and two blasters, each equipped with a sensor vest. Pictures of the complete product are shown in Photos 2-4. Wireless updates work seamlessly. The sensor system is fairly accurate at detecting hits from a reasonable range, and the remaining features work as intended. The main limitation on the current prototype system comes down to the range of play. The sensor vest can detect shots from a maximum range of approximately 5 m. The short range is due to both decreased intensity of the laser beam, as well as low sensitivity of the sensor system. More precise tuning of the comparator’s hysteresis as well as noise reduction from ambient light would help to improve the range of the system. Additionally, a production model with an additional focusing convex lens would have greater range, since the beam’s power density would not drop off as quickly. At a range of 3 m, our system is approximately 92% reliable in logging hits. This test was carried out by first fixing the direction of the blaster to point directly at the center of one phototransistor on the vest, and then firing repeatedly while holding the vest steady. Most importantly, no false positives were detected while playing in a well lit room. The range of the wireless transceivers in open lab space is approximately 32 m. Due to the method of sending updates, in which the transmitter sends out packets continuously for a couple of seconds, packets are reliably received while in range. As long as the players stay within 32 m of each other the game can continue, regardless of how far they are away from the base station, since the blasters can maintain communications with each other. The battery life of the blasters is sufficient for a number of games. At steady state, a blaster draws about 34 mA and jumps to about 64 mA when firing the blaster. In the worst case scenario, the blaster can fire for 50% of the time, putting the average current draw at 49 mA. This translates to a lifetime of 12.8 h based off of a 625 mAh lifetime of the 9-V battery. However, a more reasonable estimation is that the blaster is firing about 5% of the time, resulting in an average current draw of 35.5 mA and a 17.6-h lifetime. FUTURE UPDATES We achieved the main goals as originally outlined in our proposal. We now have a working prototype to play a game of laser tag. We borrowed lessons learned from all of the previous ECE 4760 labs at Cornell, learned some new ones, and successfully integrated them into a single product. Given the chance to do this project again, we would have taken into consideration the complexity of integrating many working parts and given ourselves more time for this portion, rather than assuming that they would simply “work” when they were all put together. Originally, we wanted to also have sound effects to make exciting “laser blasting” sounds, but time limitations prevented us from finishing the task. In the future, not only would we like to add sound back in, but we would also like to build more blasters to allow many more players. Also, the lasers could be fired with a payload that would allow the detector to determine the originator of the shot. Perhaps most importantly, expanded range would make the game much more interesting to play. We see plenty of opportunity to take our core system and create an exciting and unique laser tag game. FEATURES player’s ammo value is decremented on each fire. When using single shot, the trigger detection makes user of an external interrupt. The Fire Laser button is also wired to INT2 on PinB.2, which is triggered by a transition from high to low. A flag, called trigger_ interrupt, is set in the ISR for the external interrupt. The value of the flag is read within the task and a shot is fired as a result. Button clicks reliably result in only one laser fire since the allowed time between shots, which is controlled by the sleep time, is long enough for any transient signals to die out. If the blaster is disabled as a result of getting shot directly in the blaster, then the task sleeps for five seconds, rendering the blaster unusable. 27 •Spotlight 88 | October 2014 | www.elektor-magazine.com advertorial @electronica 2014 Made in Munich Come MAKE it @electronica 2014 By Wisse Hettinga (Elektor Labs) You’ve all heard of the maker revolution and seen cool things described but how cool is it to MAKE some real electronics at the world’s largest exhibition on real electronics? To have a place where you can relax, charge your phone, e-gossip, have a coffee and touch base with real-world electronics. Where you can bring along anything you’d want to unbox, (un)solder, show off, measure, check-4-specs, Arduino’d, or Raspberry Pi’d. Feel free to come work with us the Elektor way! Elektor designers and engineers are on standby to lend a helping hand and supply everything you need to get some real electronics work done right there and then. German, English, Dutch, Spanish, C++, spoken. For this special occasion Elektor Labs are putting at your disposal: desk space, tools, test & measurement equipment, a 3D printer, and free WiFi. Not forgetting mini workshops, techtalk, coffee (please donate), and plenty of power sockets to charge phones, tablets, laptops, and gizmos. Navigate to the Elektor Maker Space in Hall A6, Booth 380 Stay in touch with Elektor’s activities register for our newsletter on www.elektor.com, right hand bottom corner. IA ONAL MED I T A N WHO: R E T LEKTOR IN YOU AND E E WHAT: AKER SPAC M ’S R O T K ELE WHEN: 4 11–14, 201 NOVEMBER , WHERE: A, MUNICH C I N O R T C ELE BOOTH 380 HALL A6 / advertorial www.elektor-magazine.com | October 2014 | 89 30 CIRCUIT CELLAR • OCTOBER 2014 #291 FEATURES Land Mobile Radio Wireless Control For long-distance monitoring and control, Land Mobile Radio (LMR) is another wireless option to consider. You can build a wireless interface that has eight output relays and eight digital inputs that can be controlled by the serial port on a mobile radio. By Ken Merk T here was a time when controlling something wirelessly was magical. Let’s consider some examples. I remember the first automatic garage door opener on our street. People walking down the sidewalk would stop and watch this miraculous invention perform its duty. PHOTO 1 Kenwood’s NX-210 NXDN 5-W portable radio is capable of analog and digital transmissions. The desired function is highlighted using the Up and Down buttons on the front keypad and then sent by pressing the side Push-to-Talk button. Then there was the remote control. I remember the Christmas when my father brought home a new Zenith black-and-white television. My main interest was its remote feature. Inside the handheld remote (which we called the “clicker”) were four aluminum rods cut to specific lengths. When you pressed one of the four buttons, a spring-loaded hammer would strike the rod emitting a sound. Each rod emitted a different ultrasonic frequency that would activate a specific function on the TV. Of course, sometimes rattling a ring of keys in front of the TV would cause it to change channels or mute the volume. Primitive as it may sound, it worked—and it didn’t need batteries. Next, I saw cordless phones come on the scene. The early ones had long telescopic antennas because of the low operating frequency. Later, as technology progressed, the frequencies increased, with the antennas and the units themselves becoming smaller. Today, we have cell phones with Bluetooth earpieces and wireless routers for our Internet connections. Our computers have wireless peripherals and we can place wireless printers anywhere in the house. We can lock car doors with a keychain transmitter. And when we drive over a toll bridge, a tracking system can detect us wirelessly. Most houses circuitcellar.com LAND MOBILE RADIO The Land Mobile Radio (LMR) system I’ll cover in this article probably isn’t familiar to most of you. It’s been around for a long time. Most public safety services such as police, fire, and ambulance use it. You have probably seen a police officer with a portable radio strapped to his belt and a familiar speaker/ mic on his lapel. Forestry, railways, trucking companies, and power companies also use FEATURES now have smart power meters that send power consumption data by radio to your local power company. The list can go on into the industrial sector with remote control cranes, trains, and other machinery. With all these wireless products there must be standard data protocols in place to ensure compatibility. The most common are all the cellular protocols, wireless Ethernet 802.11, Bluetooth, and ZigBee. Radios can be narrowband or spread spectrum, hopping or direct sequence, and usually low power without the need for a license. All the wireless control technologies I’ve described thus far have one thing in common. The range of these systems is relatively low as is the RF power output of the radios, and a radio license is not needed. The ISM radio band from 902 MHz to 928 MHz usually allows 1 W maximum RF output. Most 2.4-GHz 802.11 radios are limited to 1 W (30 dBm) of RF output power. Bluetooth and ZigBee devices max out around 100 mW. Remember that the type of antenna also plays a part in the effective radiated power (ERP) output of the systems. These higher-frequency systems need a visual line of site between the transmitting and receiving antennas for maximum distance. This visual line of sight also includes radio line of site where Fresnel zones come into play. 31 PHOTO 2 Kenwood’s NX-700 NXDN 30-W mobile radio is used to receive status messages and control the relay I/O board. The text associated with the status message is displayed upon arrival. the service. The portable handheld radios are usually 5 W with the mobile radios around 30 W and the base stations could be up to 100 W. With this kind of power, radio licenses are needed and frequencies are assigned to each user by a regulatory group, such as the US Federal Communications Commission (FCC) or Industry Canada. Most LMR systems are in the VHF band 136 to 174 MHz or UHF band 400 to 470 MHz. Radio to radio distances measured in miles could be increased when working through a repeater or trunking system. With a repeater placed high on a building or mountain top, you could cover an entire city. The actual radio hardware used in this project are Kenwood’s NX-210 portable (see Photo 1) and NX-700 mobile (see Photo 2), which are capable of analog and digital PHOTO 3 The back panel of the NX-700 mobile radio has access to all the electrical connections. The DB-25 connector contains the RS-232 port which will control the I/O board. The black and red wires power the radio and the female UHF connector on the far left is the antenna input. CIRCUIT CELLAR • OCTOBER 2014 #291 FEATURES 32 PHOTO 4 The relay I/O board has eight output relays and eight digital inputs. Terminal strips on the board make it easy to wire in external devices. A test LED is connected to output relay #8 which lights when the relay is energized. modulation. For the most part all vendors manufacturing 12.5-kHz narrowband FM analog radios are compatible with each other, but the digital spec is another story. A joint effort by Icom and Kenwood developed the digital technology Next Generation Digital Narrowband (NXDN) for its line of LMR radios. Another popular digital format is P25 which PHOTO 5 This is the setup I used to build the interface. Interconnects from the radio and single board computer terminate on a common perfboard which gives access to all pin connections. The ribbon cable terminated with a DE-9 female connector plugs into a computer's serial port for diagnostic purposes. A 50-Ω dummy load simulates an antenna connection. is not compatible with NXDN. To maintain product flexibility, Icom and Kenwood also make a P25 line of radios. There are a few modes in which the radios can be programmed. Channels can be set up as narrowband analog 12.5-kHz spacing, narrowband digital, and very narrowband (VNB) digital 6.25-kHz spacing. Due to the very narrow bandwidth of 6.25 kHz, analog transmissions will not work, so digital is the only mode available. The technology of two-way radios has come a long way since their early beginnings. Embedded microcontrollers now control the radios so there is no need for crystal elements, as all frequencies are synthesized and all functions are programmed into the radio using the vendor’s software. Kenwood has given users access to the microcontroller via a serial port on the back of the radio. An ASCII-based protocol over this serial port is used to control the radio which can mimic someone controlling the radio from the front panel buttons. Access to data received by the radio can also be acquired through this port. The DB-25 connector Photo 3 on the back of the NX-700 mobile radio is where this connection is made. A word of caution, the DB-25 is not wired as a standard RS232 port so do not connect it directly to a computer via a serial cable. This connector not only contains a serial port for control and programming, but also another port for GPS connection, audio in, audio out, DC power out, multiple programmable I/O ports, and other functions. FEATURES 34 CIRCUIT CELLAR • OCTOBER 2014 #291 TABLE 1 This is the status list that was programmed into both radios. The list shows the status number and the corresponding text. You can customize the text for you own application. Instead of Relay8 ON you could use Motor ON, Pump ON and name whatever device you are controlling. Number Status Status Name 1 31 Relay1 ON 2 32 Relay2 ON 3 33 Relay3 ON 4 34 Relay4 ON 5 35 Relay5 ON 6 36 Relay6 ON 7 37 Relay7 ON 8 38 Relay8 ON 9 41 Relay1 OFF 10 42 Relay2 OFF 11 43 Relay3 OFF 12 44 Relay4 OFF 13 45 Relay5 OFF 14 46 Relay6 OFF 15 47 Relay7 OFF 16 48 Relay8 OFF 17 50 ALL OFF 18 51 ALL ON 19 61 Input Status 20 62 Output Status 21 63 Ping WIRELESS I/O INTERFACE In this article, I’ll describe how to build an interface that has eight output relays and eight digital inputs which can be controlled by the serial port on the NX-700 mobile radio. Anyone with a properly programmed NX-210 portable radio can now control the eight output relays and monitor the eight digital inputs wirelessly. This will work with narrowband analog, narrowband digital and VNB digital as well as trunking. In Analog mode, the signaling will be MSK, which Kenwood calls Fleetsync, and the Digital mode will be NXDN, which is four-Level FSK. Fleetsync over the air speed can be 1,200 or 2,400 bps, but 1,200 is usually used for better reliability. Narrowband digital NXDN can achieve 9,600 bps and VNB 6.25-kHz bandwidth 4,800 bps. For this project, I used JK Microsystems’s Flashlite embedded DOS 186 single-board computer (SBC) together with its eightchannel relay I/O board (see Photo 4). The I/O board sits on top of the SBC using standoffs and connected together with a ribbon cable (see Photo 5). It has eight normally open SPST relays with a continuous current rating of 5 A and eight optocouplers with an input voltage ranging from 3 to 24 V DC or AC. The Flashlite 186 SBC has a 33-MHz 80186-compatible processor that enables you to write code on your PC in the language of your choice and then upload it to the on-board flash drive. A debug serial port is available that was used to interact with the program during development. The on-board switching power supply accepts an input voltage from 7 to 34 VDC and supplies a 5 VDC output at 300 mA for the user to power external devices— which in this case is the relay I/O board. The software for this project was written in Forth. Using Forth enabled me to get the hardware up and running very quickly. A language called NEXX was written first (in Forth) and then used as my development and debugging environment until the program was working to my satisfaction. NEXX was used to interact with Kenwood’s PC protocol embedded in their radio. The program was then configured to run automatically on power-up. SENDING STATUS MESSAGES FIGURE 1 The schematic shows the radio, Flashlite SBC, and relay I/O board, which are the three main components. There is a minimum of wiring involved to get the interface up and running. The LED which simulates your device to be controlled is powered when relay 8 energizes. To verify power is applied to the LED, input 8 monitors this voltage for positive feedback. Kenwood radios can be configured to send out “status” messages. A status message is basically a number which is transmitted out in the data stream. This number has a text string associated with it in the transmitting and receiving radio. Only the number is sent, but the associated text will show up on the LCD screen of both radios. For analog channels, status numbers are two digits and range from 10 to 99. Status numbers 10 to 79 are general- circuitcellar.com : Match? : nxdn.buf 14 + 3 search.for.string ; purpose and free to use. Status numbers 80 to 99 are reserved for special functions, such as remote kill/stun, horn alert, and emergency man down. Kill/stun will disable the radio or inhibit from transmitting remotely. Digital channel status numbers range from 1 to 207 with 224 to 226 reserved. Some special functions are user programmable and can be mapped to any status number. A list of status numbers and their associated text (16 chars max) is programmed into both the NX-210 hand-held portable radio and the NX-700 mobile radio (see Table 1). The list in the NX-210 portable radio will create an up/down scrolling menu where the desired text can be highlighted with the front panel keypad and then transmitted by pressing the Push-to-Talk (PTT) button. It’s hard for humans to remember a series of numbers so we usually associate the status number with text, which in this case will be the function we want to activate. The status number is sent to the receiving radio in a special data packet with attributes to distinguish it as a status message. The receiving radio takes the status number and displays the corresponding text from its programmed list. If you do not enter any text in the status list, the functions will still work but only the status numbers will be displayed. BREAK BREAK BREAK BREAK BREAK BREAK BREAK BREAK BREAK BREAK BREAK BREAK BREAK BREAK BREAK BREAK FEATURES DO.NXDN.STATUS .” NXDN Status “ buf.pointer 15 - 3 = IF nxdn.buf 14 + 3 type “ 031” Match? IF Relay1 >on .” Relay1 ON” drop “ 032” Match? IF Relay2 >on .” Relay2 ON” drop “ 033” Match? IF Relay3 >on .” Relay3 ON” drop “ 034” Match? IF Relay4 >on .” Relay4 ON” drop “ 035” Match? IF Relay5 >on .” Relay5 ON” drop “ 036” Match? IF Relay6 >on .” Relay6 ON” drop “ 037” Match? IF Relay7 >on .” Relay7 ON” drop “ 038” Match? IF Relay8 >on .” Relay8 ON” drop “ 041” Match? IF Relay1 >off .” Relay1 OFF” drop “ 042” Match? IF Relay2 >off .” Relay2 OFF” drop “ 043” Match? IF Relay3 >off .” Relay3 OFF” drop “ 044” Match? IF Relay4 >off .” Relay4 OFF” drop “ 045” Match? IF Relay5 >off .” Relay5 OFF” drop “ 046” Match? IF Relay6 >off .” Relay6 OFF” drop “ 047” Match? IF Relay7 >off .” Relay7 OFF” drop “ 048” Match? IF Relay8 >off .” Relay8 OFF” drop “ 050” Match? IF ALL.OFF .” All OFF” drop BREAK “ 051” Match? IF ALL.ON .” All ON” drop BREAK “ 061” Match? IF Opto.status drop BREAK “ 062” Match? IF Relay.status drop BREAK “ 063” Match? IF Ping drop BREAK THEN ; LISTING 1 This is a portion of Forth code running on the Flashlite 186 SBC. The heart of the code is a case statement that compares inbound status message numbers to an onboard function list. When a match occurs the function is executed. 35 Need a Free RTOS for Your DIY Project? Use the best. SMX® is now freely available for non-commercial projects. • Learn multitasking and develop your own applications • Free for non-commercial usage • No time limit, No sales contact Y O U R mdi_learningkits_CCI_081014.indd 1 R T O S P A R T N E R • Extensive operating examples and excellent manuals • Work with low-cost boards and free IAR tools www.smxrtos.com/lk 8/15/14 8:54 AM CIRCUIT CELLAR • OCTOBER 2014 #291 FEATURES 36 PHOTO 6 This is a constellation diagram showing a strong NXDN digital data stream. A correct symbol received with no error is indicated by a dot within the circle of its quadrant. The receiving radio also gives you access to the status message data packet through the RS-232 port on the back of the radio. This is monitored by the SBC and the program will pick out the status number and activate the desired function on the relay I/O board. For diagnostic purposes, the received data packet is also sent out over a second RS-232 port to a laptop running a terminal program, such as Procomm or Hyperterm. The packet is displayed in Hex with corresponding ASCII values in a sort of protocol analyzer style. STATUS MESSAGE FUNCTIONS Table 1 shows the status list that is programmed into both the transmitting and receiving radios. The list’s function is to display the text associated with the status number that is sent or received. The computer board’s job is to pick out the status number from the received data packet and perform the desired function. You can see from the list that status numbers 31 to 38 will turn on relays 1 to 8 and status numbers 41 to 48 will turn off relays 1 to 8. Status 50 will turn on all eight relays and 51 will turn off all eight relays. Status 61 will send back the status of the eight optocoupler inputs as an 8-bit binary number. A display showing IN->01000001 indicates inputs 1 and 7 are high. Status 62 works in a similar way by sending back the current status of the relays. A display showing OUT->00001100 indicates relays 3 and 4 are energized. The indications sent back are actually text messages that are only sent to the radio that requested it. Each radio has a unique ID number that’s pulled out of the received data packet. This ID is used to target only the requesting radio. Status 63 is the Ping function, which is used to see if the receiving radio is within radio range. A successful Ping will result in “Ping->OK” being displayed. The NXDN protocol has built-in feedback to indicate a successful data link. When a status message is sent from the portable radio, the display shows << SEND DATA >> as the data is sent. The receiving radio sends back an ACK to the requesting radio and << COMPLETE >> appears on the display. If the sending radio does not get an ACK, it tries three times and then displays << NO REPLY >>. This verifies the radio link, but is the relay contact feeding power to your device? The relay coil could be energized, but if the contacts are faulty the device will not turn on. To verify power to your remote device, the eight digital inputs on the relay board could be connected to the devices and then an input status could be requested to verify power. This would give you positive feedback on the field conditions. The schematic in Figure 1 shows an example on how this could be done. HARDWARE & FORTH CODE Photo 5 shows the setup I used to build and troubleshoot the radio interface. The Kenwood NX-700 radio’s DB-25 connector (Photo 3) is terminated on a perfboard mounted on standoffs. Header J10 on the Flashlite SBC, which contains serial port 0, is also terminated on the perfboard. This makes it easy to connect both serial ports together as indicated in the schematic (see Figure 1). Both ports use true RS-232 levels so they are simply connected together. Header J8 on the SBC is the diagnostic serial port and is terminated with a DE-9 female connector as seen in Photo 5. The small pushbutton ABOUT THE AUTHOR Ken Merk (krem@telus.net) is an electronics technologist with a degree from The British Columbia Institute of Technology (BCIT). He currently works for Canadian Pacific Railway, where he is involved with radio-controlled locomotives and wireless data systems. DESIGN YOUR SOLUTION TODAY CALL 480-837-5200 Touch Panel Computers TS-7250-V2 Embedded Board Panel Mount or Fully Enclosed High Performance & Industrial Grade Series start at Pricing starts at Qty 100 Qty 100 $369 $165 $409 $199 Qty 1 Qty 1 Shown w/ optional micro SD Card Features can include: 5, 7, and 10 Inch Touchscreens Fanless Operation from -20 ºC to 70 ºC Up to 1 GHz ARM CPU, 2 GB RAM, 4 GB eMMC Flash Features: Ethernet, USB, DIO, CAN, RS-232, Modbus, SPI Optional Cellular, WiFi and XBee Radios Supports Android & Linux with Fast Boot Times Modbus Peripherals Standalone Signal Processing TS-1400 Up to 1 GHz ARM CPU 2x USB Host 512 MB RAM 1x USB Device 2 GB eMMC Flash 6x Serial Ports 2x SD Card Socket 75x DIO, 1x CAN 2x 10/100 Ethernet 1x PC/104 Connector Benefits: TS-1420 Hardware Flexibility with On-board FPGA Several control I/O interfaces Launches your application in under a second Easy development w/ Debian and Linux 2.6 GI NA L RI Support every step of the way with open source vision O N -40 ºC to 85 ºC Industrial temperature range PE Embedded systems that are built to endure High Data Reliability with SLC eMMC Flash O GE D We’ve never discontinued a product in 30 years 12x 8 A Power Switches Output Power Monitor 6-Bit PWM Capable RU G LO NG LI FE 6x 24 VDC Auto Relays 2x MODBUS-TW RJ45 Rugged Connectors Unique embedded solutions add value for our customers CIRCUIT CELLAR • OCTOBER 2014 #291 FEATURES 38 PHOTO 7 This constellation diagram shows a very weak NXDN signal, which is dominated by noise. All dots not within the circles indicate errors and corrupt data. mounted on the perfboard is connected to one of the I/O pins on the radio. The pin is programmed to be an external push to talk button to key up the radio for test purposes. An external power supply of 12 VDC is used to power the SBC and the radio. Listing 1 shows the heart of the code running on the Flashlite SBC. Here we see a long case statement that matches received status numbers to the desired function. The Forth word Match? searches the serial input buffer nxdn.buf for a status number and compares it to the list in the case statement using search.for.string. If there is a match the function is executed, the name of the function and status number is sent out the diagnostic serial port and the case statement exited using BREAK. This is repeated anytime new data enters the serial input buffer. Sources Flashlite 186 SBC JK Microsystems | www.jkmicro.com NX-210 Portable radio and NX-700 mobile radio circuitcellar.com/ccmaterials Kenwood USA Copr. | www.kenwoodusa.com F-PC Forth 3.6 Tom Zimmer, Forth Interest Group | www. forth.org Normally, the radios described in this article are used for voice transmissions, but there are many other useful features that should be considered. The NX-700 mobile radio can be configured to run in Transparent mode where it basically becomes a data radio. If you need to send RS-232 data wirelessly from one point to another, this could work for you. Input your RS-232 data into the serial port of the radio (DB-25) where it is stored in a text buffer. While the buffer contains data, the radio will automatically key up and send the data to the receiving radio where it will be available on its serial port. When the buffer empties, the radio will stop transmitting and wait for more data. The DB-25 connector on the radio also contains programmable I/O pins. I explained how a pushbutton switch was connected to one of these I/O pins and programmed to be an external push to talk switch. You can configure this button to do many other functions. If you only need to control one relay remotely, you can do so with just the radios. There’s no need for any computer interface. The I/O pin can be programmed to send a status message when the pushbutton is pressed and send another when the button is released. On the receiving radio, an I/O pin can be configured to drive a relay. When the radio receives the button-pressed status message, it will energize the relay. When it receives the button-released status message, it will turn off the relay. I already explained how status messages can be used to activate functions remotely. There are only so many status numbers available to use. To have an unlimited number of controllable functions, you can use text messages in place of status messages. The Kenwood NX-210 portable radio is capable of sending text messages entered on the front keypad. A specific text string can be sent and compared at the receiving end to activate a function. If you send “Function1” as a text message, it will turn on the test LED on the Flashlite SBC. Function2 will turn off the LED. I have included these in my code just for testing and demonstrating purposes only. To really grasp the capabilities of this interface it is necessary to become familiar with the operations and programming of Kenwood’s NXDN line of radios. This is all available in their programming and user manuals available from any authorized Kenwood dealer. FOUR-LEVEL FSK NXDN is a digital over the air protocol that takes voice and implements a vocorder (AMBE+2) to digitize it into a data stream. Forward error correction is introduced and circuitcellar.com Instead of using audio tones, NXDN shifts the carrier frequency of the radio transmitter to create symbols or transitions and each symbol carries 2 bits of information. A deviation of +1,050 Hz represents binary 01, +350 Hz binary 00, –350 Hz binary 10, and –1,050 Hz binary 11. Photo 6 shows a NXDN data stream being received by a piece of test equipment and showing the results in a graphical form called a constellation pattern. You can see four quadrants which represents four of the symbols I just described. Each quadrant is labelled with the frequency deviation of each symbol. When a carrier deviation is detected, it is plotted in one of the quadrants as a dot. If the dot is within the circle seen in each quadrant, it is within spec and considered good data. Photo 6 shows a strong signal and no errors in the data stream. Photo 7 shows a weak signal where noise is introduced to create errors which show up as dots not within the circles. This is a little insight into the technology used in the NXDN protocol. You do not need to know all the details to set up the radio interface I described in this article. But it is something to think about. Wide Temp. Panel PC PPC-090T l Vortex86DX2 933MHz Fanless l Up to 1GB of Onboard Memory l Low Power Consumption l 2 RS232/422/485 serial ports l 3 USB 2.0 Host Ports l 10/100 BaseT Ethernet l PS/2 KB port, Audio Out l Compact Flash Slot / SD Slot / SATA l 9 inch 1024 x 600 WSVGA TFT LCD l Resistive Touch Screen l DC-IN +12VDC / +24VDC l IP65 Front Panel l Wi-Fi (Optional) l Giga Ethernet (Optional) l Wide Temperature (Optional) 3.xx KERNEL The PPC-090T comes ready to run with the Operating System installed on flash disk. Apply power and watch the Linux X-Windows desktop user interface appear on the vivid color LCD. Interact with the PPC-090T using the responsive integrated touchscreen. Everything works out of the box, allowing you to concentrate on your application rather than building and configuring device drivers. Just Write-It and Run-It... Pricing starts at $495 for Qty 1. http://www.emacinc.com/sales/cc9 Since 1985 OVER 29 YEARS OF SINGLE BOARD SOLUTIONS EQUIPMENT MONITOR AND CONTROL Phone: (618) 529-4525 · Fax: (618) 457-0110 · www.emacinc.com FEATURES this data stream is used to modulate the transmitter using four-level frequency shift keying (FSK). The receiver takes this data stream and converts it back to audio as voice. Early phone modems used FSK to send data over phone lines to access other computers. A certain audio frequency tone was sent to represent a binary 1 (mark) and another frequency to represent a binary 0 (space). The tones of the FSK are sometimes called symbols. The transition from one tone to the other represents one bit of data, which is 1 baud. The rate at which the transitions occur is called the baud rate. Back then the baud rates were slow, so a 2,400-baud modem produced 2400 bps. To increase the data rate, you would increase the rate of transitions, but this only worked up to a certain point. You can only transition so fast until you exceed the bandwidth of the phone line or radio. If you could send 2 bits per transition, your bits per second would increase and the baud rate would stay the same. Four-level FSK achieves this by sending 2 bits per symbol (transition). When you do this, the terms “baud rate” and “bps” are no longer interchangeable. We could have a 1,200-baud modem sending out 9,600-bps data streams. 39 40 CIRCUIT CELLAR • OCTOBER 2014 #291 FEATURES AC Monitor Want a simple, straightforward way to determine voltage values? With the circuit described in this article, you can quickly tell if voltage is low, nominal, or high. The circuit uses an LM3914 and a 10-segment LED bar to display a range of voltage values. By Larry Cicchinelli (US) H ave you ever wanted a simple visual indication of a voltage value? For instance, wouldn’t it be useful to be able to tell, with only a quick glance, if a voltage is low, nominal, or high? The circuit I’ll describe in this article may be just what you are looking for (see Figure 1)! By selecting the appropriate resistor values, you can monitor just about any voltage and voltage range and show its value with a nine- or 10-segment bar graph. The circuit shows you how to use a well-known IC, the LM3914, with a 10 segment LED bar to display a range of voltage values. DISPLAY DRIVERS The National Semiconductor (now Texas Instruments) LM3914 is one of a family of three display drivers in which the only difference among them is how the internal voltage divider is configured. Each IC has a 10-tap voltage divider with a comparator on each tap. The LM3914 is linear, the LM3915 is logarithmic with 3-dB steps, and the LM3916 is also logarithmic but scaled like a VU meter. The units can be operated in either of two modes: Dot mode, where only a single LED is on, or Bar mode, where all lower value LEDs are also on. The indicated website has complete specs as well as some application notes on the device. The drivers can be used individually or cascaded in order to create a display with a larger range. In an article titled “Calibrated Decibel Meter Design” (Circuit Cellar 236, 2010), I explained how I used two display drivers (LM3915 and LM3916) in cascade for a multirange audio level meter. The circuit I describe in this article uses a single driver to show whether or not the monitored voltage is near its nominal value. CIRCUIT OVERVIEW This specific implementation is used to monitor the line voltage coming into my home. I use a 9-V AC wall wart to step the voltage down to a more manageable level, followed by a 3:1 voltage divider. I used a Variac to characterize the wall wart and the rectifier circuit. The results are shown in Table 1. The wall wart I used is rated at 9 VAC and 300 mA. Its open circuit voltage is about 16 V (with 120-V input) and it drops off significantly with even a light load. I ensured a constant load by selecting the LM3914’s Dot mode. One of the circuit’s limitations is that voltages beyond the range limits will not be displayed. The LM3914 has a built-in 1.2-V reference that can be used to develop the comparator references. It is configured using the same method as the popular LM117 series of AN ELEKTOR INTERNATIONAL MEDIA PROMOTION Get Started with Advanced Control Robotics By C. J. Abate (Content Director, EIM) ADVANCED CONTROL ROBOTICS HANNO SANDER I met Hanno Sander in 2008 at the Embedded Systems Conference in San Jose, CA. At the time, Sander was at Parallax’s booth demonstrating a Propeller-based, two-wheeled balancing robot. When I saw his interesting balance bot design and his engaging way of explaining design to interested engineers, I knew that Sander would be an excellent resource for future Circuit Cellar content. I was right. Several months after the conference, we an article ADVANCED CONTROL published he wrote about the balancing robot project (Circuit Cellar March 2009). Today, HANNO SANDER Sander runs OneRobot with the aim of “building high-quality, affordable products by pushing offthe-shelf components to their limits.”1 ROBOTICS THE FUTURE IS NOW When it comes to robotics, the future is now. With the ever-increasing demand for robotics a p p lic a tio n s—f r o m home control sysTitle: Advanced Control Robotics tems to animatronAuthor: Hanno Sander ic toys to unmanned Publisher: Elektor/Circuit Cellar planet rovers—it’s an Year: 2014 exciting time to be a Buy: www.elektor.com/advancedroboticist, whether control-robotics you’re a weekend DIYer, a computer science student, or a professional engineer. It doesn’t matter whether you’re building a line-following robot toy or tasked with designing a mobile system for an extraterrestrial exploratory mission: the more you know about advanced robotics technologies, the more you’ll succeed at your workbench. Advanced Control Robotics is intended to help roboticists of various skill levels take their designs to the PARALLAX PROPELLER ADVERTISEMENT next level with microcontrollers and the know-how to implement them effectively. THEORY & BEST PRACTICES Advanced Control Robotics simplifies the theory and best practices of advanced robot technologies. You’re taught basic embedded design theory and presented handy code samples, essential schematics, and valuable design tips (from construction to debugging). LEARN THEN DESIGN The principles described and topics presented in Advanced Control Robotics are immediately applicable. With the book at your side, you’ll be innovating in no time. Sander covers: • Control Robotics: robot actions, servos, and stepper motors • Embedded Technology: microcontrollers and peripherals • Programming Languages: machine level (Assembly), low level (C/BASIC/Spin), and human (12Blocks) • Control Structures: functions, state machines, multiprocessors, and events • Visual Debugging: LED/speaker/ gauges, PC-based development environments, and test instruments • Output: sounds and synthesized speech • Sensors: compass, encoder, tilt, proximity, artificial markers, and audio • Control Loop Algorithms: digital control, PID, and fuzzy logic • Communication Technologies: infrared, sound, and XML-RPC over HTTP • Projects: line following with vision and pattern tracking Are you ready to start learning and innovating? Order Advanced Control Robotics today. 1OneRobot.org/about CIRCUIT CELLAR • OCTOBER 2014 #291 FEATURES 42 FIGURE 1 R3, R5, and R7 are optional. You can use them to modify the adjustment range of the potentiometers. I used the values in this schematic for my AC monitor. VIN (VRMS) VOUT(meas) VOUT(calc) % Error 100 10.33 10.25 -0.75 105 10.90 10.79 -0.97 110 11.20 11.34 1.21 115 11.80 11.88 0.65 120 12.35 12.42 0.55 125 12.94 12.96 0.15 130 13.55 13.50 -0.36 135 14.11 14.04 -0.48 TABLE 1 This table shows the characteristics of the wall wart I used to drive my monitor. The measurements were taken while it was driving the circuit. The VOUT(meas) values are the same voltages that are applied to the 9 VAC voltage on H1 in Figure 1. The 9 V is not fixed; it changes with the wall voltage. voltage regulators. However, another of the LM3914’s features is that the LED current is approximately 10 times that of the REF OUT pin current. Also, note that the resistance of the voltage divider chain in the IC can vary from 8 to 17 kΩ. These two characteristics could have made it more difficult to set up the voltages I wanted to use for my upper and lower references. Because of this, I decided to use an external voltage reference of 5 V. The voltage divider with its two pots (R4 and R6) allow for setting the upper and lower limits SOURCES DipTrace Schematic and PCB software www.DipTrace.com circuitcellar.com/ccmaterials National Instruments (now Texas Instruments) LM3914 Texas Instruments | www.ti.com/product/ lm3914#relprod quite easily. The low values of the divider resistors were chosen in order to ensure that the voltage set points are relatively unaffected by the divider chain in the LM3914. I chose to use a 5-V regulator so that the unit can be powered with a voltage as low as 6.5 V. The LM3914 will operate with a supply as low as 3 V, but the upper voltage reference must be at least 1.5 V lower than the supply. Note that Figure 1 indicates that R3, R5, and R7 are optional. Depending on your specific application, you may want to use them to modify the adjustment range of the potentiometers. The values indicated in the schematic are those that I used for my AC monitor. There is an optional resistor (R9) that can be installed on the lowest LED of the LED bar, which enables it to be used as a power on indicator. If you do install R9, then the LED will always be on, but it will get brighter if the applied voltage is within the range of the lowest comparator. There is an optional jumper (Jmp1) that enables you to change the operation from Dot mode to Bar mode. For this type of application, I believe that Dot mode is more appropriate. The 1.2-kΩ resistor (R8) on the REF_OUT pin “programs” the LED current to approximately 10 mA. Both potentiometers specified in the bill of materials are single-turn and adjustable from the top. I happened to have some small multiturn pots in my parts bin, which I used. The pin spacing of the parts I used easily fit into the pattern for the single turn pots. PRINTED CIRCUIT BOARDS I designed two PCBs for this circuit: one with all through-hole components and one with SMD resistors and capacitors. The “mostly” SMD board still uses the DIP versions of both the LM3914 and LED array. It also uses the through-hole part for the voltage regulator because the SMD part actually takes more board space. I did the SMD board mainly to see if it would yield a smaller PCB. As it turned out, both boards are exactly the same size. I had to add some ground vias on the SMD board because I could not run traces between components. I probably could have made the SMD board smaller by putting components on both sides of the board, but I wanted to have all the traces for the two DIPs on the bottom so that I could etch my own board and not have to worry about not having plated through holes. I calibrated my unit so that LED 1 turns on solid at 108 VAC and LED 10 is on at 135 VAC. This yields a span of about 3 V per LED and with LED 5 turning on at 120 VAC. You can see in Photo 1 that LED 6 is on solid and that LED 7 is starting to come on. This indicates circuitcellar.com PHOTO 1 LED 6 is on solid and that LED 7 is starting to come on, which indicates that the voltage is a little higher than 123 VAC. that the voltage is a little higher than 123 VAC, probably about 124 VAC, which is what I measured with my DVM. KEY COMPONENTS FEATURES All of the parts listed on the BOM are from DigiKey except H1. If you send a check with the order you will not have to pay shipping charges, but be sure to include whatever sales taxes are appropriate. The BOM does not list an enclosure. I used one from my stock of parts. It looks like it is a small aluminum project enclosure from Radio Shack, which I spray painted dark blue. H1 and its associated parts are from Jameco. I use these headers and associated parts, for the interconnections on most of my projects so I have quite a few on hand. For this project, it is probably not worthwhile to purchase the parts necessary for this connector. I would just solder leads from whatever voltage source you are monitoring to the pads for this header. Schematics and PCB layout files for both versions are available for download from my website, www.qsl.net/k3pto/. I use DipTrace (www.DipTrace.com) for all of my designs. There is a fully functional free version available if you want to try it. ABOUT THE AUTHOR Larry Cicchinelli holds a BSEE from the Drexel Institute of Technology and an MSES from Pennsylvania State University. He was technical support manager at ZWorld, Rabbit Semiconductor, then Digi International (Rabbit Brand) from 2000 to 2012. From 1967 to 2000, Larry worked for Ford Motor Company. He has been licensed as K3PTO since 1961. Circuit Cellar published Larry’s book, Assembly Language Essentials, in 2011 (www.cc-webshop.com). RS485/422/232/TTL ASC24T IBS485HV RS232<=>RS485 ATE Converter 5 Port Isolated RS485 Repeater $349.00 $45.00 board only Enclosur es, Cables, Power Supplies and Other Accessories INTRODUCING THE SMFCOMX! • Converters • Repeaters • Multi-Repeaters • Hubs • Fiber Optics • Isolators 43 • Extended Distance Units • Serial to Digital I/O • Large Multi-Drop Networks • Custom Units & Smart Units • Industrial, 3.0 KV Isolation Call the RS485 Wizards 513-874-4796 www.rs485.com 44 CIRCUIT CELLAR • OCTOBER 2014 #291 THE CONSUMMATE ENGINEER COLUMNS The Not So Humble Capacitor Capacitors are important passive, two-terminal devices in electrical circuits. The more you know about have these components the better you’ll do when designing electrical systems. This article details common capacitor types and covers basic capacitance-related equations. By George Novacek (Canada) G erman Ewald Georg von Kleist invented the capacitor in 1745. The Dutch engineer Pieter van Musschenbroek improved it a year later. The capacitors were called Leyden Jars after the University of Leiden. In this article I’ll reintroduce you to the capacitor by detailing common capacitor types and covering basic capacitance-related equations. CAP BASICS In most electronic circuits, capacitors are just as abundant as resistors. Capacitors are passive, two-terminal devices. Their fundamental principle of operation is the storage of energy in an electric field. In terms of their construction, they comprise two conductive plates with an insulator between them. The insulating dielectric material— which includes air—affects many parameters, such as the capacity with respect to the plates’ areas and distance, temperature characteristics, working voltage, size, and so forth. Figure 1 shows commonly used capacitor types’ schematic diagram symbols. When there is a potential difference (i.e., voltage between the capacitor plates), an electric field develops across the dielectric with positive and negative charge collected on the respective plates. No DC current flows through a fully charged, ideal capacitor. Such a capacitor is described by its capacitance: C= Q/V. The unit of capacitance is one farad (F), which is one Coulomb (the unit of electrical charge) per volt. Figure 2 shows a capacitor being charged by a DC current. The capacitor voltage V(t) increases exponentially—as is expressed in the following equation—until it reaches the battery voltage V BAT less one electron. V (t ) = Vbat (1 − e − t RC ) The product of R times C is referred to as time constant RC, which is used when calculating the charge and discharge voltage with respect to time, such as in timers or filters. In AC circuits, the capacitor behaves as a reactance, where “i” is an imaginary unit with the property of i2 = –1. Z =− i 2π fC It indicates that the AC voltage lags the AC current by 90°. In electrical engineering, “j” is often used instead of “i” to prevent confusion with the sign for immediate current. RC filters behave according to the ratios of resistive to reactive impedances. Circuits where both a capacitance and an inductance are present act as resonant (tank) circuitcellar.com circuits, resonating at a frequency where both the capacitive and the inductive impedances are equal. The resonant frequency is: f = FIGURE 1 Fixed, polarized and variable capacitor schematic symbols + 1 2π LC Unlike resistors, capacitors connected in parallel add their capacitances: Fixed Polarized Ctotal = C1 + C2 + C3 + ... + Cn Variable FIGURE 2 Charging capacitor by DC current R Ctotal = 1 1 1 1 + + + ... + C1 C2 C3 Cn To calculate the resulting capacitance for two series capacitors ( just like for two parallel resistors), you can use a simplified formula: Ctotal C1× C 2 = C1 + C 2 ESR VS. ESL Capacitors store or release energy. There is no energy dissipated in ideal capacitors. Therefore, no heat is generated. V(t) C VBAT COLUMNS In series, the inverse capacitances are added: 1 45 Unfortunately, no capacitor is perfect due to parasitic properties such as leakage of the dielectric, leads resistance, inductance, and so forth. Consequently, there is some energy dissipation as one would see with resistors. Specifications of polarized capacitors state the equivalent series resistance (ESR). This is not an actual resistance, but has the same effect, adding a real component to the capacitor’s TABLE 1 Standard capacitor values pF pF pF nF nF nF µF µF µF G G 1.0 1.1 1.2 1.3 1.5 1.6 1.8 2.0 2.2 2.4 2.7 3.0 3.3 3.6 3.9 4.3 4.7 5.1 5.6 6.2 6.8 7.5 8.2 9.1 10 11 12 13 15 16 18 20 22 24 27 30 33 36 39 43 47 51 56 62 68 75 82 91 100 110 120 130 150 160 180 200 220 240 270 300 330 360 390 430 470 510 560 620 680 750 820 910 1.0 1.1 1.2 1.3 1.5 1.6 1.8 2.0 2.2 2.4 2.7 3.0 3.3 3.6 3.9 4.3 4.7 5.1 5.6 6.2 6.8 7.5 8.2 9.1 10 100 1.0 10 100 1.0 10 15 150 1.5 15 150 1.5 15 22 220 2.2 22 220 2.2 22 33 33 3.3 33 330 3.3 33 47 470 4.7 47 470 4.7 47 68 680 6.8 68 680 6.8 68 F Capacitances from about 0.047F up to about 10,000F exist 46 CIRCUIT CELLAR • OCTOBER 2014 #291 COLUMNS PHOTO 1 Different types of capacitors impedance. In applications such as switching regulators, low ESR is critical for efficient operation. Capacitor leads add parasitic inductance to the characteristics. This is called equivalent series inductance (ESL). The ESL becomes important at high frequencies as it can cause unwanted resonances. UNITS ABOUT THE AUTHOR George Novacek is a professional engineer with a degree in Cybernetics and Closed-Loop Control. Now retired, he was most recently president of a multinational manufacturer for embedded control systems for aerospace applications. George wrote 26 feature articles for Circuit Cellar between 1999 and 2004. Contact him at gnovacek@nexicom. net with “Circuit Cellar”in the subject line. The unit of capacitance is one farad, which is an extremely large capacitance. Only in recent years have super-capacitors (also called ultracapacitors) with capacitances on the order of several farads become available at reasonable prices. The capacitance values commonly used range from 1 pF (picofarad = 10 –12 F) to several millifarads (1 mF = 10 –3 F). A millifarad is commonly designated as 1 G. Strictly speaking, this is incorrect. Historically, schematic diagrams showed capacitor values without a unit. The convention was that such values were automatically considered in microfarads (1 µF = 10 –6 F). And since 1 mF = 1,000 µF, those values were called gigafarads (G). CAP NOMENCLATURE This brings us to the nomenclature. In North America capacitor values were understood to be in microfarads, unless a unit was specified. This was generally for capacitances from 1,000 pF (0.001 µF) and larger. Below 1,000 pF, just as in Europe, a “p” or “pF” (meaning picofarad) is used. From 10 –9 to 10 –6 F, the unit nanofarad (nF, or just n or sometimes k, which means thousand picofarads) is used. Some prefer to designate RESOURCES Cardwell Condenser, http://cardwellcondenser. com/. N. Gruending, “Varactor Diodes, Weird Component #6,” Circuit Cellar 287, 2014. circuitcellar.com/ccmaterials G. Novacek, “Impedance Matching,” Circuit Cellar 281, 2013. values between 100 n and 1 µF as a fraction of a microfarad. A microfarad (µF, uF, or u or M) is 10 –6 F to 10 –3 F. Above 10 –3 F, we use G and super-capacitors are in Farads (F). It should also be noted that, similar to resistor values, European designations do not always use a decimal point. A 2.2 µF capacitor could be identified as 2.2 in an American style diagram, while in an European diagram it could also be 2M2 or 2u2. A 0.022 capacitor would be designated as 22n, while 0.0022 would be 2n2. Over the years, I’ve seen a trend away from the American MIL style designations towards the European style. Table 1 shows generally available capacitor values. CAP STYLES There are three fundamental styles of capacitors: fixed, polarized, and variable. Let’s cover each one. Fixed capacitors are found in electronic circuits in great numbers as by-pass capacitors, members of RC networks in timers and filters, and so on. Every integrated circuit (IC) should have at least one bypass capacitor. The energy they store filters out digital circuits’ switching transients, bypasses power supply noise to ground, and suppresses ground loops. Other than for bypassing, there is not much use for capacitors in digital circuits, but they are essential as storage devices in power supplies. In analog circuits capacitors are instrumental in bandwidthaltering filters, transient protection, timing circuits, decoupling and blocking DC current while allowing AC current to pass. Polarized (i.e., electrolytic) capacitors are mainly used in power supplies because of their large capacitance-versus-volume ratio. The most common are aluminum and tantalum capacitors. Storage capacitors, especially in switching power supplies, need low ESR to minimize the losses at high switching frequencies. In 60- or 50-Hz rectifiers, the ESR is generally not critical. A common task is to determine the size of a storage capacitor to maintain a system operation during a power interrupt. The allowed voltage drop during the interrupt is small compared with the full operating voltage, so the differential equation can be linearized and the needed capacitance is C = (I × t)/V. Note that I is the average current drain in amps, V is the allowed voltage drop in volts, and t is the maximum duration of the power interrupt in seconds. Variable capacitors fall into two categories. Trimmer capacitors, analogous to resistor trim potentiometers, are shown in Photo 1. The two capacitors in the center use air for the dielectric. Trimmers with solid dielectrics (the yellow stubby cylinder) are smaller, circuitcellar.com VARICAPS Varicaps are diodes that exhibit capacitance dependent on the magnitude of their negative bias. The major limitation of varicaps is that the radio frequency (RF) signal they are tuning into resonance must be small compared to the bias to minimize modulating of the set capacitance. This can be to some COLUMNS usually less expensive and have lower quality factor Q. Typically, trimmers come in the 1 to 50 pF range. Variable capacitors, such as the one shown in Photo 2, are no longer as prevalent as they once used to be. Often used in radios, these tuning capacitors comprised several separate capacitors on a single shaft. The capacitor in Photo 2 has two sections for the AM band and four for the FM band. These capacitors were bulky, heavy and costly, although cheap units made with a solid dielectric were available too. Worse, they couldn’t be electrically adjusted, short of using a complicated electromechanical subsystem. This was a fundamental requirement for scanners and synthesized digital tuners found in essentially every modern receiver. This dilemma has been solved by the arrival of varactor diodes, also known as varicaps. degree alleviated by using two varicaps backto-back, but when a large voltage is needed across the tank circuit, it is the old technology we must revert to. Variable capacitance principle is used in numerous sensors, but this is a subject for another article. I hope you found this review of capacitors useful as I have. The more you know about how they work, the better you’ll implement them in your future designs. PHOTO 2 Air tuning capacitor The Premier Business Development Event for the Global Robotics Industry October 15-17, 2014 Meet industry leaders, investors and new customers who can accelerate your business at this one-of-a-kind event. Hynes Convention Center Boston, MA Join over 1,200 industry leaders for: Register Today! robobusiness.com 800-305-0634 SAVE OVER 10% when you register by October 14 Use Code RB2003 • • • • 2 Intensive Workshops: Industrial Robotics & Startups 32 Targeted Conference Sessions 7 Visionary Keynotes from Global Industry Leaders Extensive Networking Opportunities Is your time in Boston limited? Expo Pass now available for October 16 only. Visit robobusiness.com for details. Founding Sponsor Media & Association Partners 47 Platinum Sponsors Gold Sponsor Premier Analyst Sponsor 48 CIRCUIT CELLAR • OCTOBER 2014 #291 EMBEDDED IN THIN SLICES COLUMNS Linux System Configuration (Part 3) Build Your Linux System This is the final installment in a multipart article series dealing with configuring Linux for embedded systems. In this article we will look at some of the ways available to you to build the embedded Linux system you need. By Bob Japenga (US) F all is in the air and it is the time of the year I love best—especially in New England. Contrast that with building a new version of embedded Linux for a project. As a manager, I cringe every time one of my teammates tells me that they need to build (for the first time) a new version of Linux. There were times when we designed a board from a reference design and built everything from a ready-made distribution from the chip maker. That was easy. A couple of quick cookbook-style steps here and there. Perhaps configuring a new flash memory chip or RAM chip. Compile. Build. Done. Simple. But then, at some point later, we discovered that our version of Linux didn’t have the driver we needed for some piece of hardware or it didn’t support some software functionality. This recently happened to one of our customers who delayed implementing a software function until late in the project. When we were asked to implement it, they already had special drivers that only worked with their version of Linux to interface to their proprietary hardware. But they needed a streaming video USB gadget that wasn’t in their version of Linux. We had a dilemma. We had to either bring all of the proprietary code over to a new version of Linux or back-port the code from a later version of Linux into the older version. It was time for the antacid. There was no easy answer. We knew cost overrun and schedule slips were imminent. This can happen, and it is painful. Very often, the chip manufacturers don’t mainstream their changes (i.e., put them into a stable release at kernel.org). That can be understandable in the fast-paced world of hardware development. If asked, they will say that they haven’t done it yet. If you have to bring that code into a new version of the kernel, you will need to bring all of their changes that they made to get the reference design running into the new kernel. One time we used a reference design and very late in the life cycle discovered a bug in the C library. The manufacturer not only didn’t mainstream their changes, they couldn’t find the source code they used for the C library. What a nightmare. These days we are smarter and things are a little easier. Thanks in part to OpenEmbedded, Yocto, and Ångström. This month I’ll cover each of these. We have used all three. There are other options, like Linux From Scratch, but since we are only examining it in thin slices, I am only going to cover the slices we have actually used. OPENEMBEDDED In Part 2 of this article series, we discussed the concept of a Linux distribution. These are things like Ubunto, Fedora or, in the embedded circuitcellar.com BITBAKE In the past, developers have used makefiles to build the Linux kernel and the associated applications. The kernel was configured as discussed in my June 2014 article, in which I described using script files to tie the whole process together. We used this method on many projects early in our deployment of Linux. Once in place, it worked okay. The problem came when we had to make changes to the version—of either the kernel or its associated libraries or the applications. Another problem had to do with the tool chain. The tool chain needs to be part of the build process during development. A different tool chain can result in your source code not building or building properly. Only once have we used the same build process from one Linux project to another. And that was because the hardware was identical. This is a significant problem. The OpenEmbedded organization was formed to help us with that. What OpenEmbedded brought to the table was a new tool and specified a new language to define the architecture. That tool was BitBake. Think of BitBake as make on steroids. The inputs to BitBake are called “Recipes.” BitBake takes recipes and metadata to create a complete Linux distribution. It is not necessary to have a build script (i.e., write code) to create most distributions. The language is powerful enough to do everything you need. And if it has shortcomings (they all do), it does allow you to use Python to create more complex operations. It is flexible enough to handle multiple hardware architectures and helps you to manage and create multiple releases for those targets. METADATA So what is this metadata that BitBake uses? Think about what you need to know to create the Linux kernel. You need a configuration file. You need to know where your tool chain is to compile and build the kernel. You need to know where the source files are located. Ideally, they should be available on the Internet. You need to know complier options. And you need to know a series of dependencies (i.e., if you change this file, other files need to change). Building a package has all of the same requirements. All of this gets wrapped up in what is called the metadata. RECIPES Okay, you are saying: “This is sounding a little cheesy.” Baking. Recipes. What are these recipes? If BitBake is make on steroids, recipes are makefiles on steroids. A given recipe tells BitBake exactly the who, what, where, and how for building a particular package. Who is the name of the package. What is the type of package. Where is the location. And then How to build it. The end result is a file system image and a kernel image that you can put on your target system. YOCTO Wow! That sounds great. But what’s lacking? Why did Yocto need to come along? Basically, Yocto picks up where OpenEmbedded left off. More heavily funded, it accomplishes all of the same goals that OpenEmbedded set out to attain. But Yocto relies heavily on two things from OpenEmbedded: BitBake and the metadata. OpenEmbedded remains a separate organization from Yocto and is concentrating on making BitBake better and providing metadata for a host of architectures. Yocto is concentrating more on the tools and the board support packages (BSP) for a wide variety of architectures and processor boards. For example, OpenEmbedded maintains the metadata for something like the BeagleBoard and the Raspberry Pi boards, but the Yocto project is the place to get the BSP. Another way to look at Yocto is to think of it as a place where silicon providers like Atmel, Texas Instruments, and Freescale can create a common framework for the release of Linux for their new processor or core. For us as users, that is a win-win situation. Another benefit for developers occurs when we choose to use a commercially supported release of Linux. Perhaps we need to meet the FDA requirements for Software of Unknown Provence (or Pedigree) (SOUP). Yocto helps because all of the major vendors are members of Yocto. So, if you do all of your development on a particular Yocto version and then need the kind of support that these commercial packages COLUMNS world, Ångström. A distribution is a complete set of tools, the kernel, the packages, and the build instructions to create a version of Linux. OpenEmbedded provides you the framework to enable you to create your own distribution. From the name, you will gather that it specializes in creating an embedded version of Linux, which is very different than starting with a distribution like Ubunto. The problem for us as designers is how to create a distribution for our project. Over the years, we have seen a number of attempts to help us. The OpenEmbedded project was a big step forward in this process. I won’t bore you with the history of how this evolved, but the major contribution that the OpenEmbedded organization provided to our community was the development of BitBake and the structure for metadata used to define your system. Let’s look briefly at each of these. 49 50 CIRCUIT CELLAR • OCTOBER 2014 #291 reference design or an SBC that is supported by Ångström, you will probably have the most tools and flexibility for maintaining your design throughout its lifecycle. ABOUT THE AUTHOR COLUMNS Bob Japenga has been designing embedded systems since 1973. In 1988, along with his best friend, he started MicroTools, which specializes in creating a variety of real-time embedded systems. With a combined embedded systems experience base of more than 200 years, they love to tackle impossible problems together. Bob has been awarded 11 patents in many areas of embedded systems and motion control. You can reach him at rjapenga@microtoolsinc.com. STICK WITH LINUX provide, you can seamlessly switch. This is not true if you use just any old distribution. We found this on one project when we evaluated going to a commercially supported version of Linux from Wind River. We were evaluating this because of the processes and documentation that they provided for FDA approval of a medical product. Going with the commercially supported release was going to save us considerable time and money for documentation. The problem was that we used a version of the kernel from Texas Instruments that came with our development kit and that version was not supported by Yocto. Creating a new distribution for the closest version supported by Wind River would probably cost more than the benefit received by having the documentation and support provided by Wind River. ÅNGSTRÖM If all of these names haven’t gotten your head spinning, let’s just talk about one more. Ångström heavily relies on OpenEmbedded and Yocto to create a distribution specifically targeted for embedded systems. It is highly scalable. It can run on a device with as little as 4 MB up or on a system with several terabytes. But of course the question is, what can it do with only 4 MB? There are a host of off-the-shelf boards that it supports including the popular BeagleBoard and Beagle Bone open source hardware platforms as well as the Raspberry Pi. So, if you are using a Where are we to begin as system designers? We are offered a plethora of choices. Let’s consider them in order of decreasing complexity resulting in decreased cost and time: we can certainly build Linux and the subsequent applications from kernel. org; we can use a tool like “Build Linux from Scratch”; we can use a board-support package provided by a hardware vendor that is not part of Open Embedded, or from one that is part of Open Embedded; we can build our design using a project already supported by Yocto; or we can start with an existing distribution (Ångström, or Ubunto, or Debian) and go on from there. Our experience is that the cost savings across the life cycle are significantly larger the later we go in that list of options. A few years back, hardware venders of x86 SBCs could tout simplicity by providing an SD card or Compact flash with Ubunto or Debian on it. Everything was there for you. You could concentrate on your killer application. Today, with Ångström, you can have that for a wide range of processors and for specifically an embedded system. If you are rolling your own hardware based on a reference design, make sure the silicon provider is using OpenEmbedded and ideally has created a Yocto project. We have come a long way in developing easier ways to create, modify, and maintain embedded Linux systems. We still have a long way to go to achieve the full potential that Linux offers. Sometimes, the very issues I covered in this article make me want to stop using Linux. But then where else would I go? Hopefully, this article series has helped you better understand how to configure the kernel, select and build the applications, and finally put together a distribution for your next embedded Linux project. Of course, only in thin slices. RESOURCES circuitcellar.com/ccmaterials Ångström, www.angstrom-distribution.org Open Embedded, www.openembedded.org BeagleBone, http://beagleboard.org/bone Ubuntu, www.ubuntu.com BeagleBoard, http://beagleboard.org Wind River Linux, www.windriver.com/products/linux.html Fedora, https://fedoraproject.org Yocto, www.yoctoproject.org Linux from Scratch, www.linuxfromscratch.org Raspberry Pi, www.raspberrypi.org CC Vault Unlock the power of embedded design. This pocket-sized vault comes fully loaded with every issue of Circuit Cellar magazine and serves as an unparalleled resource for embedded hardware and software design tips, schematics, and source code. From green energy design to ’Net-enabled devices, maximizing power to minimizing footprint, CC Vault* contains all the trade secrets you need to become a better, more educated electronics engineer. BONUS! Build your archive by downloading your latest-issue PDFs straight to the drive! Personalize your CC Vault by adding Elektor or audioXpress issue archives, available as an add-on during time of purchase, or your very own project files. *CC Vault is a 16-GB USB drive. Order yours today! cc-webshop.com 52 CIRCUIT CELLAR • OCTOBER 2014 #291 RETRONICS Elektor ComputerScope (1986) FEATURES Goodbye Green-Only ‘Scope CRT Almost 30 years ago, a trainee at Elektor Labs designed an ambitious test instrument like an oscilloscope with PC support. By Jan Buiting (Editor in Chief, Elektor, The Netherlands) B ack in 1986 at the crowded Elektor Electronics laboratory, somebody approved the idea proposed by a young Dutch BSc graduate of Electronics to make an oscilloscope add-on for personal computers. I had been appointed as an assistant editor just months before, and being able to wield an electric typewriter and an English Dictionary, I was asked to write a deft letter to ITT Semiconductors of Freiburg, Germany, asking for a few samples of their latest UVC3101 device. I was told it was a “high-speed” ADC and DAC in one chip and “difficult to get.” I got a favorable reply by telephone from Reinhard W. Preuss, the most officious and gentlemanly PR and Press Officer I have come across in the electronics scene these past 25 years. A few days later the ICs arrived, complete with engineering notes. The lot allowed Rene van Linden to start designing his ComputerScope project and hopefully complete his BSc. thesis. TIME PERSPECTIVE In those days it was hot to make computers do things other than the usual spreadsheeting, PacMan’ing, word processing and ASCII art doodling. It was the exciting era of the BBC Micro, the Acorn Electron, Philips MSX and the first IBM PC clones starting to appear in households and in electronics engineers’ workshops. It was a time also when computers were totally accessible in terms of hardware and software. As long as a computer had a port of some sort using an easy to obtain connector, engineers, British school children and Elektor trainees got into developing peripherals the computer manufacturers could not have foreseen. There was a lot of POKE(16xxx) going on at that time. In the case of the Elektor ComputerScope, the idea was to make a personal computer handle the visualization of measured data on its monitor with composite video input. Paradoxically, that monitor had a CRT just like the traditional oscilloscope, only larger and more colorful, so the crux or cost advantage of the computerized ‘scope over, say, a refurbished Tek I find hard to grasp. In good Elektor tradition for large projects from the lab, the magazine article consisted of circuitcellar.com 53 two instalments. The first in September 1986 gave the circuit diagram, the basic method of operation and some screendumps showing not too complex waveforms. In the October 1986 edition the construction, adjustments and software aspects were discussed, and the project was carried on the front cover of the magazine (see Photo 1). Note the visually implied hierarchy of two home computers pictured: the BBC Micro majestically in front and a Commodore C64, well, also visible. As a peripheral the ComputerScope requires a fast and wide highway into the computer’s memory and display systems. However, these are digital, while the ‘scope probe will pick up analog signals mostly, so ADC-ing is called for. The port traffic is not one-way either, as the ‘scope input settings including the AC-DC selector and attenuator/ amplifier need to be controlled from the computer. A couple of Clare DIP relays were used for the purpose. There are no controls or knobs on the Elektor ComputerScope to fiddle with, hence the instrument looks insipid in its grey case except perhaps for the stylized S. The crux of the circuit is found in the “fast” ADC and DAC inside the UVC3101, and a small memory section based on Inmos IMS1420 RAMs. These parts were rare and expensive at the time—fortunately some advertisers in the magazine started to supply kits of the project. The ADC and RAM section of the schematic is reproduced in Figure 1. The DAC (not visible here) was used to add an offset to the input signal if required. The datawidth from the ADC was 7 bits; bit 8 was the trigger indicator. The memory area actually used for data buffering was 512 bytes. The RAM section had its own address counter built from TTL ICs from the 74HC series (no microcontroller in sight). The board was packed with 74HC ICs for that matter, and a few straggling 74LS and CD4000 ones, since a mass of control and timing functions had to be catered for—like the complete timebase. I counted 24 logic ICs (see Photo 2), which would be labeled a component grave these days. The lot was powered by a separate supply board type EPS 9968-5. A small modification involving a slide switch on the back panel (see Photo 3) FEATURES THE DESIGN allowed the instrument to be used with IBM (clone) PCs also. Those of you yearning for the complete article from 1986 are advised that the Elektor 1980’s DVD is about to be published; watch www.elektor.com or your weekly E-Post Newsletter. THOSE LISTINGS If you ordered the ComputerScope board # 86083 through the Double Dutch named Elektuur Print Service (EPS) it came with ABOUT THE AUTHOR Jan Buiting is Editor in Chief of Elektor magazine. His “Retronics” articles have been published regularly since 2004. Contributions, suggestions, and requests are welcome. Email editor@elektor.com. PHOTO 1 The ComputerScope project appeared on the cover of the October 1986 eidtion of Elektor magazine. 54 CIRCUIT CELLAR • OCTOBER 2014 #291 FEATURES FIGURE 1 The ComputerScope project appeared on the cover of the October 1986 eidtion of Elektor magazine. program listings on paper for the Acorn Electron, the BBC Micro, the Commodore C64, and MSX machines. I remember stacks of this paperware on the shelves in our stores, alongside the boards, and supplications on my desk from readers all over the globe to send them the listings on disk, or without the board! To help owners of “other makes of computer” to compile their own program for the ComputerScope, a pitiful flow diagram was printed at the end of the October 1986 instalment. PHOTO 2 Take a look inside LOVE STORY Now compare the names of our two editorial secretaries duly printed in the October 1986 edition with those in November 1986—look on page 13. One surname changed. Besides passing his BSc. Electronic Engineering exam with good notes for the ComputerScope project, lab trainee R (for Rene) v(an) Linden, a silent, almost invisible worker, in the course of 1985 also managed to more than befriend “our” cherished secretary W (for Wilma) Wijnen. circuitcellar.com 55 PHOTO 3 A slide switch on the back panel enabled the system to be used with IBM PCs. FEATURES DUMPSTER STORY Elektor moved offices in 2006 and in an orchestrated attempt to “shake off the dark past” the technical staff and editors got strong advice to clear their stables and make a fresh start at Elektor Castle. One Friday afternoon, CEO attending, the old lab space in Beek (Holland) was cleared out rigorously by quasi volunteers, with a ton of stuff disappearing in an x cubic feet dumpster carefully parked on the driveway right under the lab windows. There was beer and pizza to celebrate the almost vacant building, and reward the workers. Of the twenty or so lab projects and prototypes I was able to safeguard during Operation Augias, most—I admit—were of the ‘finished’ type, meaning there was a case around them. I managed to keep these out of harm’s way and was happy to see that a few colleagues did the same for sentimental reasons. Today the small booty of that boisterous Friday afternoon is incorporated in the Retronics Collection, which is an “asset to the company” under the current management, and virtualized at www.elektor-labs.com/attic. Look at the item on the shelf straight above the Mugen Hybrid Amp—that’s the final resting place of the 1986 Elektor ComputerScope. TRACE 32 ® Editor’s Note: This article first appeared in Elektor, June 2014 advertisement_arm-overview.indd 1 03.06.2014 11:48:51 BOARDS, BOOKS, DVDs AND MORE AT WWW.ELEKTOR.COM/STORE Elektor.STORE The world of electronics at your fingertips! NE ! W Theory and best practices Advanced Control Robotics It doesn’t matter if you’re building a line-following robot toy or tasked with designing a mobile system for an extraterrestrial exploratory mission: the more you know about advanced robotics technologies, the better you’ll fare at your workbench. Hanno Sander’s Advanced Control Robotics simplifies the theory and best practices of advanced robot technologies. You’re taught basic embedded design theory and presented handy code samples, essential schematics, and valuable design tips (from construction to debugging). 160 pages • ISBN 978-0-963013-33-0 • $54 ore This book and m are available at m/store www.elektor.co Books Fun to build and use projects! Create 30 PIC Microcontroller Projects with Flowcode 6 The RPi in Control Applications This book covers the use of Flowcode® version 6, a state-of-the-art, all-graphical based code Raspberry Pi Hardware Projects development tool, for the purpose of developing PIC microcontroller applications at speed and This book is about the Raspberry Pi computer with unprecedented ease. Without exception, the 30 projects in the book are fun to build and and its use in control applications. Dogan use. A secret doorbell, a youth deterrent, GPS tracking, persistence of vision (POV), and an Ibrahim explains in simple terms, with exam- Internet webserver are just a few examples of projects in the book waiting to be explored and ples, how to configure the RPi, how to install mastered. This makes the publication a perfect source of projects constantly challenging your and use the Linux operating system, how to hardware and software skills as you progress, resulting in advanced microcontroller applica- write programs using the Python program - tions you can be proud of. All sources referred in the book are available for free download, in- ming language and how to develop hardware cluding the support software. based projects. 232 pages • ISBN 978-1-907920-30-1 • $48 290 pages • ISBN 978-1-907920-29-5 • $54 Prices and item descriptions subject to change. E. & O.E Books Bestseller! Learning to Fly With Eagle Eagle V6 Getting Started Guide 110 Elektor Editions, Over 2500 Articles DVD Elektor 2000 through 2009 Android Breakout Board This DVD-ROM contains all circuits and pro- The FTDI FT311D is a flexible bridge that The book is intended for anyone who wants an jects published in Elektor magazine’s year can interface your circuit to an Android introduction to the capabilities of the CadSoft’s volumes 2000 through 2009. The 2500+ smartphone or tablet. This Elektor Android Eagle PCB design software package. The reader articles are ordered chronologically by release Breakout Board offers options for seven may be a novice at PCB design or a professional date (month/year), and arranged in alphabet- digital outputs, four PWM outputs, asynchro- wanting to learn about Eagle , with the intention ical order. A global index allows you to search nous serial and I2C and SPI interfaces. The of migrating from another CAD package. After specific content across the whole DVD. Every board is compatible with Android 3.1 (Ho- reading this book while practicing some of the article is printable using a simple print func- neycomb) or higher (Android Open Accessory examples, and completing the projects, you tion. This DVD is packed with ideas, circuits Mode should be supported). should feel confident about taking on more and projects that are ideal for any electronics challenging endeavors. This book is supplied enthusiast, student or professional, regardless with a free copy of Eagle on CD-ROM for of whether they are at home or elsewhere. MS Windows, Linux and Mac. Ready-built module Art..# 130516-91 • $41 ISBN 978-1-907920-28-8 • $121 208 pages • ISBN 978-1-907920-20-2 • $47 Elektor is more than just your favorite electronics magazine. It’s your one-stop shop for Elektor Books, CDs, DVDs, New! Kits & Modules The Ultimate Guide! The LTspice IV Simulator www.elektor.com/store IO-Warrior Expansion Board Don’t throw out your old PCs and notebooks Simulator describes the operation of the pro- or leave them gathering dust in the basement! gram, all available commands, the various They can be a useful resource: by adding this editors, dealing with SPICE models, the use of universal interface card an old PC can be pres- non-linear components and more. This book is sed into service as a measurement and control more than just a manual. It also offers a variety hub. An IO-Warrior module on the I/F board of tips, methods and examples, all carefully illustrated using almost 500 drawings, diagrams and screenshots on high-quality paper. The book is designed so that it is suitable for both beginner and veteran SPICE users. 744 pages • ISBN 978-3-89929-258-9 • $67 takes care of USB communication, and source Elektor US 111 Founders Plaza, Suite 300 East Hartford, CT 06108 USA Phone: 860.289.0800 Fax: 860.461.0450 E-mail: order@elektor.com code is available that works with the free version of Visual Studio. Ready-built module Art.# 130006-91 • $54 Kits & Modules In a sturdy, hard-cover format, The LTspice IV and much more! 58 CIRCUIT CELLAR • OCTOBER 2014 #291 THE DARKER SIDE COLUMNS RF Connectors Tips for Taking Care of Connections Never take RF connectors for granted. Why? An RF connector can be a delicate assembly of small mechanical parts with strict tolerances. This article details how to properly select and care for RF connectors. By Robert Lacoste W elcome back, dear reader. In the past few years, I wrote several columns dealing with radio frequency. When working on RF projects, you must connect subsystems together at a given time. You might also have to use RF test equipment, like a spectrum analyzer. Let’s assume that you have an RF transmitter— for example, a Wi-Fi gizmo—and you need to measure its output power. The first thing to check is impedance matching. You know that the output impedance of your transmitter is 50 Ω. You also know that the input impedance of your spectrum analyzer is 50 Ω, so you just have to get a test cable with a characteristic impedance of 50 Ω to interconnect them. If you have any doubt about a cable’s characteristic impedance, refer back my column on microstrip lines in which I explained the concept (“Microstrip Techniques,” Circuit Cellar 223, 2009). So it’s easy, right? But, wait. This test cable will need to have the proper mating connectors at both ends. There are a hundred types. How can you select the proper ones? Moreover, what are the mandatory precautions required when using RF connectors for any precise connection? Is a connector as transparent to the signal as it looks like? Take a seat. I’ll address these topics in this article. And you may be surprised by some of the answers. WHAT A CHOICE PHOTO 1 Here you see (from left to right) the ubiquitous BNC, SMA, and, lastly, the terrible RP-SMA. You can see their male and female variants. I will start our journey with a tour of the RF connectors you will most likely encounter (see Photo 1). Firstly, consider the ubiquitous Bayonet Neill-Concelman (BNC) connector, which is present on nearly all oscilloscopes and signal generators. It is easy to use thanks to circuitcellar.com COLUMNS its two bayonet fingers and quarter-turn lock. Although BNC connectors are affordable and easy to use, they’re barely usable above a couple of gigahertz, as I will explain later. Old timers may also recall that BNC connectors were largely used for network connections, when 10B2 Ethernet was the norm. A caution here: the BNC connector exists both in 50- and 75-Ω variants, the latter being devoted to video applications. And no clear indication enables you to differentiate them as they physically mate. The only solution is to store them apart, or maybe to check which cable type is connected to them, but that might not be easy. For more professional designs or for slightly higher frequencies, the most common RF connector is the sub-miniature A (SMA), which you can see in Photo 1. SMA is a precision 50Ω, screw-type connector developed in the 1960s by Bendix Scintilla Corp. SMA can be used up to 18 GHz thanks to their precision engineering and polytetrafluoroethylene (PTFE) insulator. Some manufacturers even offer them up to 26 GHz. Are there some variants? You bet so. For high-performance instrumentation, you may encounter the so-called 3.5- and 2.92mm connectors. These ones are physically very similar to SMA; however, they provide much higher performances, up to 46 GHz or so, thanks to their stricter tolerances and air-insulator. Theoretically, they can be freely mated with SMA connectors but with great care. More on that later. SMA is great, but then someone invented the reverse-polarity SMA, or RP-SMA (see Photo 1). It is the same connector as the SMA, but the male and female screw and pin pairs are permuted. These RP-SMA are frequent on Wi-Fi endpoints and antennas. I hate them, just because there is now a 50% probability to use the wrong variant between SMA and RP-SMA. Depending on whether or not you are lucky, mating the wrong pair will result in either an invisible open connection or a pair of damaged connectors. It seems that RP-SMA was invented to make the lives of Wi-Fi users more difficult—namely, to make the lives of Wi-Fi users more difficult. The idea was to forbid them to replace the supplied antenna with a higher gain one, thanks to the use of an exotic connector. This helped to avoid issues with the FCC regulations. But now this makes everydody’s life more difficult! What about larger connectors? Photo 2 shows you the Amphenol Precision Connectors 7-mm (APC-7) high-performance connector. This costly device is a clever sexless connector that was used on all high-end RF test equipment some years ago with up to more than 20 GHz of exceptional repeatability. Even if they provided an incredibly low VSWR, they are now replaced by higher performance and more compact precision connectors. Anyway, I love them. 59 PHOTO 2 Here I show (from left to right) the precision APC7 in male and female configurations, N male and female, and UHF male and female. Bottom row includes F and Belling-Lee TV connectors. The N connector is for lower-end applications (see Photo 2). (It was invented in the 1940s by Paul Neill. Do you remember the “N” of BNC ? That’s the same guy. Two very common connectors have his initial.) The first versions were usable up to 1 GHz, but they quickly were improved for operation up to 18 GHz or so by Hewlett-Packard. These heavy-duty connectors are able to support a significant PHOTO 3 Take a look (from left to right) at SMB, SMC, MMCX, and UFL miniature connectors (each in male and female variants) CIRCUIT CELLAR • OCTOBER 2014 #291 COLUMNS 60 PHOTO 4 A torque wrench is mandatory for ensuring the long life of a connector, especially when you’re working with an expensive high-performance connector. amount of power, up to 500 W at 2 GHz. The N connector is also available in 50- and 75-Ω versions (even though I haven’t worked with the latter). I added some 75-Ω components to Photo 2—like the so-called “UHF,” “F,” and “BellingLee” TV connectors—just so you could clearly differentiate them from 50- Ω lab connectors. What’s the trend in the RF connector’s arena? Miniaturization, of course. They are few N or BNC connectors in mobile phones (even though my first GSM phone had an SMA connector for its external rubber antenna). Have a look at Photo 3 for some more compact varieties, starting with the SMB and SMC. These two are as old as the SMA (from the 1960s), but they’re significantly smaller with a jack diameter of 3.7 mm. Both are identical except for the locking mechanism: snap-on for SMB and screw-on for SMC. As a consequence, the SMC provides better performances than SMB. They are respectively usable up to 4 and 10 GHz. The micro-miniature coaxial (MMCX) is smaller. You can find them on Wi-Fi cards, GPS receivers, and PDA antenna connectors. Developed in the 1990s, MMCX is usable up to 6 GHz, which is not bad for a snap-on, 2.4-mm connector. But engineers never stop, and one of the smallest I’m using regularly is the UFL connector (see see the rightmost component in Photo 3). Designed as far as I know by Hirose, the UFL is also a 6-GHz, snap-on connector with a diameter of 2 mm and a mated height of only 2 mm. Of course, the connecting cable must be ABOUT THE AUTHOR Rob er t L ac os te li ve s i n Fr anc e, n e a r Pa r i s. H e h a s 2 5 ye a r s o f e xp e r i e n c e i n e m b e d d e d sys t e m s, analog designs, and wireless telecommunications. A prize winner in more than 15 international design contests, in 2003 he started his consulting company, ALCIOM, to share his passion for innovative mixed-signal designs. His book (Robert Lacoste’s The Darker Side) was published by Elsevier/Newnes in 2009. You can reach him at rlacoste@alciom.com. Don’t forget to put “darker side” in the subject line to byp ass sp am filters. PHOTO 5 This is my HP8510C vectorial network analyzer. It’s nice piece of equipment. circuitcellar.com as small. Typically, these UFL connectors are bought clamped on a 0.8-mm coaxial cable. I have only scratched the surface of the long list of RF connectors. But I guess I have presented the key ones. If you are looking for more exotic variants, or if you have any doubt about any particular variation, I recommend reading Pasternack’s “Connector Identifier,” which is listed in the Resources section of this article. 61 a) CONNECTOR CARE COLUMNS Experience shows that you must always keep two simple rules in mind: RF connectors are fragile, and checking them with an ohmmeter definitively isn’t safe. I’ll elaborate on the latter in a minute, but let’s stay for a while on the “fragile” side. An RF connector, and especially a small one, is a delicate assembly of small mechanical parts with strict tolerances. If you aren’t careful, there’s a high probability that its performances will be quite far from what you might expect. Firstly, keep in mind that a connector has a given lifespan, and it could be short. For example, SMA connectors are rated for up to 500 mating cycles. That could be fine, but it could also be orders of magnitude lower than what you would need for benchtop test equipment. So, it must be anticipated at the design phase when selecting the connector. Another very common problem is that connectors get stuck. Many people use pliers to screw or unscrew stuck connectors. Never ever do that! Pliers can apply high torque on the delicate parts and can easily damage them. Moreover, with pliers, you can’t ensure that the torque is applied perpendicularly to their axis. Large connectors, like N, are designed to be screwed by hand. For smaller ones, like SMA, use a proper torque wrench (see Photo 4). If you don’t have one, use your fingers. If you can’t, use a properly sized wrench, but do so with great care. Another way to destroy a SMA connector is to spin the mating pin inside its female counterpart. Always mate the two connectors with a straigth movement, and then screw them without turning their assemblies—just the nut! A last word on the SMA. As I explained, low-cost SMA and precision 3.5 mm/2.92 mm connectors can be physically mated together. However, it generally isn’t a good idea. A precision connector can cost several hundred dollars, so it would be a bad idea to mate it with a low-cost connector that could be damaged (due to its long life). If you need such an adaptor, buy a high-quality SMA/SMA connector, screw it in with care on the precision connector, and leave it. Of course, the performance will b) PHOTO 6 a—The first test was with two SMA-to-SMA high-quality adapters. b—The extra losses are minimal, close to 0.2 dB in high frequencies. The return loss is better than 20 dB (horizontal: 45 MHz to 10 GHz; vertical : 1 dB/div for S21 and 5 dB/div for S11). be reduced to the performance of a standard SMA. (Refer to Microwave101.com—which is listed in the Resources section of this article— for addition information on topics such as advice on cleaning connectors.) LET’S EXPERIMENT It is great to know that connectors are sometimes problematic. Experimenting can 62 CIRCUIT CELLAR • OCTOBER 2014 #291 COLUMNS a) b) PHOTO 7 a—I tested a pair of standard BNC-to-SMA adapters. b—Significant losses are visible from 5 GHz, with no less than 3 dB losses at 10 GHz! ial Connectors—1.9 mm or 2.4 mm Mated Height,” www.hirose.co.jp/cataloge_hp/ e32119372.pdf. Microwaves101.com, “Connector Care,” www. microwaves101.com/encyclopedia/connectorcare.cfm circuitcellar.com/ccmaterials RESOURCES Amphenol RF, “Precision Connector Series,” www. amphenolrf.com/products/ precision.asp?N=0&sid=4A4D4A002301E17F&. Hirose Electric Co., “Ultra Small Surface Mount Coax- ———, “Microwave Connectors,” www.microwaves101.com/encyclopedia/connectors.cfm Pasternack, “Connector Identifier,” www.pasternack.com/images/pdf/7%20Connector%20 Identifier.pdf. SOURCES HP8510C Network analyzer (now obsolete) Hewlett-Packard | www.hp.com help you to be convinced. How can you measure the actual behavior of a connector? Apply an RF signal to it, check the signal at the other end, and determine whether or not it is modified. Or, even better, insert the connector in the middle of a 50-Ω line and check if there the connector had caused any signal reflection, which would indicate an impedance mismatch. (I’ll explain the advantage of this method in a minute.) You can make measurements with a standalone RF generator. But the good news is that there is a dedicated test setup for such measurements— the network analyzer. Basically, a network analyzer includes three subsystems: a tunable RF generator, a measurement bridge to differentiate direct and reflected signals, and a sensitive receiver. Networks analyzers come in two flavors: scalar (measuring only the changes in a signal’s amplitude) and vectorial (measuring both magnitude and phase). I wrote about such equipment some time ago in my 2010 article, “A Tour of the Lab (Part 2): Frequency Domain” (Circuit Cellar 243). Photo 5 shows the nice HP8510C vectorial network analyzer (VNA) in my company’s lab. Let’s cover how I tested an SMA connector. First, I calibrated the VNA using a high-quality SMA/SMA jumper cable. I then inserted a pair of standard SMA/SMA adapters (SMA male/male and SMA female/female, respectively). Photo 6a shows the setup. How did the two adapters impact the signal transmission ? Look at Photo 6b. The top blue line is the transmission loss from 45 MHz up to 10 GHz, with a 1-dB/division scale. The loss was very small, lower than 0.2 dB or so. The yellow curve on the bottom shows the reflection coefficient with a 5-dB/division scale. This reflection coefficient is, in decibels, the power of the reflected signal level divided by the power of the incident signal. It was lower than 20 dB, which indicated good performance. This proved that high-quality SMA connectors perform well at least up to 10 GHz. Now what about BNC? I replaced the two SMA/SMA adaptors with BNC/SMA adapters, as you can see in Photo 7a. What happened ? Look at Photo 7b for the result. Now the attenuation starts to climb at a frequency of 5 GHz and is as high as 3 dB at 10GHz. This means that only half the available power goes through such a BNC connector! The reflection curve is also interesting. Firstly, you can see that the first small degradations of the signal at 5 GHz are easier to see on the reflected measurement that on the transmission behavior. Secondly, at 10 GHz, the measured reflection coefficient is 10 dB. Remember that only 50% of the signal was transmitted. We now know that –10 dB (meaning 10%) of the signal power is reflected to the source. That implies 50% transmitted circuitcellar.com b) a) THE FINAL EXPERIMENT My last experiment was a real heartbreaker. I took a good SMA/N adapter and measured it. I then voluntarily damaged it with a screwdriver. I gently pushed aside one of the four central spring contacts by 0.5 mm or so (see Photo 9a). The damage was minimal, and the remaining three contacts were untouched. Was the connector’s performance impacted? You bet, as Photo 9b proves. No significant change in low frequencies, but no less than 2 dB extra loss at 10 GHz! The final step in the experiment? I tossed the connector in a garbage bin. The destructive test cost me about €20. But it was worth it to help me convince you that connectors are members of a very delicate species. You must respect them, take care of them, and select them with great caution. In fact, you must love them. If not, soon or later, they’ll take their revenge and show you their darker side. a) PHOTO 9 a—I tested a slighly degraded N connector. b—I got 2 dB extra losses at 10 GHz! b) COLUMNS PHOTO 8 a—I tested a 10-cm UFL jumper. b—I zoomed in on the behavior of the UFL jumper after several cycles. You can see 0.2 to 0.3 dB variations. and 10% reflected makes 60%. Where is other 40%? It’s dissipated inside the connector assembly, as heat. This is not noticeable with the couple of milliwatts generated by a VNA, but the same test with a 100-W source may be funny. In another experiment I used an ultraminiature UFL connector (see Photo 8a). Rather than measuring its insertion loss, I used it as a reference and then performed numerous insertion/removal cycles prior to a new measurement. Photo 8b shows the result. Variations of up to 0.2 dB were measured. Such a change in signal level could be negligible—or not, depending on your application. Just keep in mind that it could happen! 63 64 CIRCUIT CELLAR • OCTOBER 2014 #291 FROM THE BENCH Embedded Voice Recognition (Part 1) COLUMNS Recognition as a Peripheral With the right parts and a little knowhow, you can add effective speech and voice recognition capabilities to almost any application. This series serves as a proper introduction to the basics of embedded voice recognition. By Jeff Bachiochi (US) S martphones have put so much power in our hands that we tend to take some functions for granted. Just look at Siri, Apple’s voice command application. She requires a ton of high-level processing to interpret your requests. All this is best handled in the cloud, and thanks to the Internet, this gives the impression that your phone is truly “smart,” when in reality it’s just gathering and playing back audio. Dictation applications have been available to your PC for years. Chances are, however, that you are not using one. It seems incorrect interpretation often introduces an increased necessity for editing, which defeats 32-KHz Crystal oscillator or RC Oscillator (RC on chip) Timers (4) FIGURE 1 NLP-5x family features a 16-bit DSP with chip debug, 128-KB OTP code space, three 16-bit ADC channels, two microphone pre-amps, two 16-bit DAC channels, direct speaker drive, 24-KB RAM, five timers plus an RTC, and LCD control. Additional peripherals include motor control logic, USB1.1, an SPI, a UART, an IR interface, an analog comparator, power-on reset, brown-out reset, and 79 configurable general-purpose I/O lines. Microphone Two Pre-amps with gain control (one line input) Regulator Stereo 16-bit DAC DAC Out PWM Three channel 16-bit ADC Comparators (2) P.O.R and B.O.R Watchdog timer Clock main USB, SPI, UART and I2S Interfaces General-purpose I/O 2 × 16-bit parts 1 × 8-bit port (40 I/O) NLP-5X General-purpose 16-bit DSP Internal code space (128-KB OTP) 22-KB Data SRAM 2-KB Code SRAM LCD, motor and IR control blocks External memory interface 16-bit data, 23-bit address Speaker out circuitcellar.com 3.58-MHz Oscillator or research ADC Microphone Pre-amp and gain control Timers (3) Watchdog timer Digital filters Audio wakeup DAC DAC Out PWM RSC General-purpose microcontroller AGC Comparators (4 input) General-purpose I/O 3 × 8-bit ports (24 I/O) its purpose as a labor-saving application. These applications require a level of contextual understanding that exceeds their abilities. Because of high computational requirements, we’ve not seen this technology trickle down into microcontroller applications. However, the technology can be offloaded and exploited as a peripheral device. Sensory, Inc. designs highly accurate, low-cost voice recognition and synthesis ICs. Its audio and speech technologies are directed at four areas: speech recognition, audio, interactive and robotics, and voice recognition for Bluetooth products. The recognition-related areas are covered by two devices. The NLP-5x uses a 16-bit DSP (see Figure 1). The RSC-4x is an 8-bit general-purpose microcontroller (see Figure 2). Sensory has a complete line of development and evaluation tools that gives you control over high-performance speech I/O features, including noise-robust speaker-independent and speaker-dependent recognition of many languages, speech synthesis and sound effects using Sensory SX synthesis technology, MIDIcompatible music synthesis, voice record and playback, audio wake-up, and touch tone (DTMF) output. These audio and speech technologies can reside together with the application program creating a true singlechip application. Once written, the application will reside in the processor’s ROM and can be reproduced in a 100-pin LQFP package or in unpackaged die. The development costs can put this out of reach for many designers who just want to add some of this capability without having to design, debug, and program for low-volume quantities. Fortunately, thanks to TIGAL KG from Austria, we have an alternative that makes use of Sensory’s technology presenting it as a speech recognition and audio output module. The EasyVR 2.0 is designed to add Speaker out Internal ROM space 128K Bytes FIGURE 2 The RSC-4x family features an 8-bit microcontroller, a 16-bit ADC, a 10bit DAC, a microphone pre-amp, an independent programmable digital filter engine, 4.8-KB RAM, five timers, twin-DMA, a vector math accelerator, a multiplier, 8-bit data on-chip storage for SD, SV, Templates, Analog Comparator Unit, 24 configurable I/O, and a nested interrupt structure. 4.8K SRAM Vector accelerator with twin DMA COLUMNS Low battery detection 32-kHz Oscillator(optional) 65 External memory interface 8-bit data, 20-bit address cost-effective speech and voice recognition capabilities to almost any application. The module includes a set of built-in speaker independent (SI) commands for ready-torun basic controls. It supports up to 32 userdefined speaker dependent (SD) triggers or commands, as well as voice passwords. SD commands can support any language. This ability is supported via separate module and development boards that won’t set you back more than about $60. VEEAR (VR) MODULE The EasyVR module in Photo 1 measures less than 1″ × 2″ inches and is manufactured using mostly SMT parts. Separate pin headers on each of its four corners allow it to easily be piggybacked onto your application PCB. Two two-pin headers offer support for the included microphone and the user supplied PHOTO 1 The EasyVR module takes up little space and will piggyback snuggly onto your application PCB using 2-mm stick headers in all four corners. It has a voltage input range of 3.3 to 5.5 V and accepts simple ASC commands over its TX/RX serial port. 66 CIRCUIT CELLAR • OCTOBER 2014 #291 COLUMNS PHOTO 2 The VR Commander application aids the user in adding 32 of their own speaker dependent commands to its preprogrammed speaker independent library of 28 commands. Optional software from Sensory, Inc. can be purchased if speaker-independent commands are required for your application. Command Arguments ASCII Byte Value 1 = 115200 2 = 57600 3 = 38400 6 = 19200 12 = 9600 Hex ‘a’ 0x61 Baud ‘b’ 0x62 none ‘c’ 0x63 Index ‘d’ ‘e’ 0x64 0x65 Description Baudrate 0 = trigger 1-15 = generic 16 = password Index 0 = trigger 1-15 = generic 16 = password Index 0 = trigger 1-15 = generic 16 = password Position 0-31 none ‘h’ 0x68 Index 0-31 -1 = SI grammar count Length 4 8 IndexH 0 0-7 IndexL 0-15 0-31 DelayH 0-15 0-31 DelayL 0-15 0-31 Length 4 8 Level 0-2 TimeoutH 0-15 0-31 TimeoutL 0-15 0-31 Reply STS_SUCCESS Break STS_SUCCESS STS_INTERR Get count for SD STS_COUNT Activate SD/SV recognition STS_RESULT STS_SIMILAR STS_TIMEOUT STS_ERROR Erase training of SD/SV command STS_SUCCESS Read wave table data STS_TABLE_SX STS_OUT_OF_MEM Read custom and builtin grammar data STS_GRAMMAR STS_COUNT Send a SonicNet token Index= (ValueH*32)+ValueL Delay= ((ValueH*32)+ValueL) * 28uS STS_SUCCESS Receive a SonicNet token Timeout= ((ValueH*32)+ValueL) * 28uS STS_TOKEN STS_TIMEOUT ‘i’ 0x69 WordSet 0-3 Activate SI recognition from specified word set STS_SIMILAR STS_TIMEOUT STS_ERROR ‘k’ 0x6B Level 0-4 Set SI knob to specified level STS_SUCCESS Language 0 = English 1 = Italian 2 = Japanese 3 = German 4 = Spanish 5 = French Set SI language STS_SUCCESS ‘l’ 0x6C TABLE 1 If you use the VR Commander to add and train commands, you won’t need to use most of the Commands in this list. They are available if you want to program the module from your application. I preprogrammed my library using the Commander. Thus, my application requires only three commands. (continued on following page) 8-Ω speaker (when sound output is required). The remaining pin headers are split between a five-pin control header and a four-pin power/ communication port. The module will run on 3.3 or 5 V with TTL UART communication defaulting to 9,600 bps. This header and the microphone is all that is required to use a configured module. The EasyVR development kit PCB has a USB port that allows the module to be configured and programmed from a PC running the free EasyVR Commander configuration software. For you Arduino buffs out there, there is an alternative development board, EasyVR Shield. Photo 2 shows a list in the left-hand panel of the EasyVR Commander application that includes potential selections. These are identified under the description column as Trigger, Group, Password, SoundTable, and Wordset. Note that Wordset 1 is highlighted and the contents of this group are shown in the right panel. There are eight (0–7) predefined SI words in this group. Each Wordset contains a number of related predefined words. By segregating words into separate groups, you can have better control over which words will be active at any point in time. The Trigger group includes one predefined SI word, “robot.” Since the Trigger and Wordset groups are predefined with specific speaker-independent vocabularies, a user circuitcellar.com SI VS. SD To use the EasyVR module effectively, you need to understand the difference between speaker-independent and speaker dependent recognition. You may have noticed that people visiting from outside your area seem to have a distinct accent, drawl, brogue, or twang that makes it difficult to understand them at times even though they are speaking in your native language. Unless you train your ears to this difference, it can sometimes seem as an entirely different language. Our vocal tract is the cavity where larynx vibrations and air exhalations are filtered into unique sounds. The International Phonetic Association (IPA) has attempted to document these into a phonetic alphabet. To communicate, we string together different combinations of these sound bits to produce an audible representation of a particular word. Simply put, we can define ‘m’ ‘n’ ‘o’ ‘p’ 0x6D 0x6E 0x6F 0x70 ‘q’ 0x71 ‘r’ 0x72 ‘s’ ‘t’ ‘u’ ‘v’ ‘w’ ‘x’ ‘y’ 0x73 none 0x76 0x77 0x78 0x79 STS_MASK Label SD/SV command STS_SUCCESS Set recognition timeout STS_SUCCESS Read SD/SV command data (label and training) STS_DATA Configure, query or modify general purpose I/O pins STS_SUCCESS for Pinmode 0-1 STS_PIN for Pinmode 2-4 Index 0 = trigger 1-15 = generic 16 = password Position 0-31 Length 0-31 Text Upper Case Letters Timeout -1 = default 0 = infinite 1-31 = seconds Index 0 = trigger 1-15 = generic 16 = password Position 0-31 Pinnumber 1-3 Pinmode 0 = output low 1 = output high 2 = input 3 = input strong 4 = input weak Confirmation ‘R’ Reset all commands and groups STS_SUCCESS Mode 0 = character only 1 = whistle or character 2 = loud sound or character 3-5 double clap (with varying sensitivity) or character 6-8 = triple clap (with varying sensitivity) or character Go to the specified power-down mode STS_SUCCESS STS_AWAKEN Index 0 = trigger 1-15 = generic 16 = password Train specified SD/SV command Position 0-31 STS_SUCCESS STS_RESULT STS_SIMILAR STS_TIMEOUT STS_ERROR Index 0 = trigger 1-15 = generic 16 = password Position 0-31 Strictness 1 = easy 2 = default 5 = hard IndexH 0 -31 IndexL 0-31 Volume 0 = min 15= full 31 = 2X Constant -1 Index 0-9 = digits 10 = ‘*’ key 11 = ‘#’ 12-15 = ‘A’ to ‘D’ -1 = dial tone Duration 0-31 in 40ms units for keys and seconds for the dial tone 0x74 0x75 Request bit-mask of non-empty groups none Delay 0-10 = ms 11-19 = 20-100 ms 20-28 = 200-1000 ms Remove SD/SV command STS_SUCCESS Set SD level STS_SUCCESS Wave table entry playback Index= (ValueH*32)+ValueL 1-1023 = sound index 0 = built-in “beep” STS_SUCCESS STS_ERROR Play a DTMF key tone or dial tone STS_SUCCESS Request firmware identification STS_ID Set transmit delay STS_SUCCESS COLUMNS can’t alter them. The SoundTable selection, which I’ll describe later, is for audio out. Group 1–15 and Password 16 are for you to add and train up to 32 of your own SD words in any of up to 15 groups (similar to SI Wordsets). The Password group can be used to hold special words that require a higher level of correlation before achieving a match. You might want to implement this as a sort of biometric voiceprint for security purposes. While the EasyVR Commander handles all the communication with the EasyVR module for the initial setup, you will need to be familiar with at a few commands to make use of the module. Table 1 lists these commands. Table 2 lists responses. All data passed between the EasyVR module and the host (be it the PC or your microcontroller) is in ASCII readable form. Commands and Responses begin with a lowercase letter. All data within Arguments are also printable characters. All data values are in the range of –1 through 31. This means that you must add an offset of 0x41 to each value to make it printable (see Table 3). Not only does this enable all the communications to be seen (as printable characters) on a terminal, but you can directly enter commands via a keyboard since there are no control characters (binary data). Many applications won’t need the majority of these commands, particularly when they have to do with configuration of the module, including adding speaker-dependent word groups and training these words. Your applications might only need to select a group to listening for and to find out which word was spoken. Let’s begin by looking at the difference between SI and SD groups. 67 68 CIRCUIT CELLAR • OCTOBER 2014 #291 align correctly; otherwise, the least bit of difference will prevent a perfect match. If the rules are relaxed somewhat, we might be able to determine a match even when the two have slight differences. Further rule relaxation will make it easier to find a match, but it also COLUMNS recognition as dissecting audio into its basic phonetic components in order to identify the word it represents. With a large enough dictionary, we might be able to not only determine the word, but also the language represented. This only works when the stars TABLE 2 For every command issued, the module responds with status information (except for infinite timeout used with the trigger group). Each command list in Table 1 lists the status responses expected. This list contains all of the possible responses. Response ASCII Hex Data Name Byte Description Value ‘c’ 0x63 STS_COUNT Count 0-31 = command/grammar count -1 = 32 commands/grammars Count of commands or total number of SI grammars ‘d’ 0x64 STS_DATA Training -1=empty 1-6 = training count +8 = SD/SV conflict +16 = SI conflict Provide command data Position 0-31 (only meaningful when trained) STS_TABLE_SX Length 0-13 Text Upper Case Letters IndexH 0-31 IndexL 0-31 Length 0-31 (Length of Text) Provide sound table data Index= (ValueH*32)+ValueL Text Upper Case Letters ‘e’ 0x65 STS_ERROR Error 03h = too noisy 04h = spoke too soft 05h = spoke too loud 06h = spoke too soon 07h = too complex 11h = recognition failed 12h = recognition result doubtful 13h = recognition result maybe 14h = invalid SD/SV command 17h = bad pattern durations 4Ah = bad release number 4Eh = bad data in speech file 80h = not found Signal recognition error ‘f’ 0x66 STS_TOKEN IndexH 0 0-7 IndexL 0-15 0-31 Detected a SonicNet token Index= (ValueH*32)+ValueL ‘i’ 0x69 STS_INTERR none ‘k’ 0x6B STS_MASK Mask Interrupted recognition ‘m’ 0x6D STS_OUT_OF_MEM none ‘o’ 0x6F STS_STATUS none ‘p’ 0x70 STS_PIN State 0 = low 1=high Provide pin input status ‘r’ 0x72 STS_RESULT Position 0-31 Recognized SD/SV command or Training similar to SD/SV command ‘s’ 0x73 STS_SUCESS Wordindex 0-31 Recognized SI word or Training similar to SI word ‘t’ 0x74 STS_TIMEOUT none ‘v’ 0x76 STS_INVALID ‘w’ 0x77 STS_AWAKEN ‘x’ 0x78 STS_ID Version ‘z’ 0x7A STS_GRAMMER Flags 16 = trigger 0 = command Count 0-31 Number of commands Length 0-31 (Length of Text) Text Upper Case Letters 4-bit values that form 32-bit mask (LSB first) Mask of non-empty groups Memory error (no more room for commands or sound table not present) OK or no errors status Timeout expired Invalid command or argument none Wake-up (back from power-down mode) Provide firmware identification Length and Text repeated for all Commands Provide custom grammar data When it comes to robotics, the future is now! From home control systems to animatronic toys to unmanned rovers, it’s an exciting time to be a roboticist. Advanced Control Robotics simplifies the theory and best practices of advanced robot technologies, making it ideal reading for beginners and experts alike. You’ll gain superior knowledge of embedded design theory by way of handy code samples, essential schematics, and valuable design tips. With this book, you’ll learn about: • Communication Technologies • Control Robotics • Embedded Technology • Programming Language • Visual Debugging... and more Get it today at ccwebshop.com. COLUMNS 70 CIRCUIT CELLAR • OCTOBER 2014 #291 TABLE 3 All values between –1 and 31 have an offset of 65 (decimal) added to them so they become displayable ASCII. Values larger than 31 require two 5-bit values to be sent so the maximum value is 10 bits. ASCII @ A B ... Z ^ [ \ ] _ ` HEX 0x40 0x 41 0x 42 ... 0x5A 0x5B 0x5C 0x5D 0x5E 0x 5F 0x 60 Decimal 64 65 66 … 89 90 91 92 93 94 95 Value -1 0 1 ... 25 26 27 28 29 30 31 TABLE 4 Speaker-independent vocabularies are created by first breaking down each word into its phonetic makeup. Phonetic recordings allow each command to be more generic and more apt to match numerous speakers. Speaker-dependent vocabularies are recorded directly by a single speaker, making them less generic and therefore more difficult to match numerous speakers. Speaker Best for recognition Training Independent Any speaker No training TABLE 5 The EasyVR module is preprogrammed with a 28-word SI vocabulary. If your application can get by using just these, then you can proceed directly to integrating the module in to your application. You can purchase optional Sensory, Inc. software if your application requires SI commands. Dependent Single speaker Needs training increases the chance of making an erroneous match. We must consider the probabilities for both correct and incorrect recognition. We have the wonderful ability to tweak our interpretation of a specific word based on context of the word within a phase or sentence. At this point, this is beyond most recognition algorithms. And so we are left with some compromise. If general rules are being used, we can use the term “speaker independent,” as recognition will require some relaxation of the rules to take into account differences in pronunciation, as I mentioned earlier. However, if we were to substitute a speaker-specific set in place of the generalize set for comparison, that speaker’s pronunciation would better match without the need for such a large relaxation of the rules. This is considered speaker-dependent recognition that might have advantages for you over speaker independent recognition (see Table 4). It is important to note that using speakerdependent recognition does not necessarily mean it will not recognize the words correctly when spoken by someone other than the trainer. This is in a large part based on both the speaker and the words chosen for inclusion in any specific group. Group Offset Trigger Word set 1 Word set 2 0 Robot Word set 3 Action Left Zero 1 Move Right One 2 Turn Up Two 3 Run Down Three 4 Look Forward Four 5 Attack Backward Five 6 Stop Six 7 Hello Seven 8 Eight 9 Nine 10 Ten SELECT THE LIBRARY The key to optimum recognition is to select the library carefully. It’s pretty simple. If two words sound similar, they will most likely cause recognition issues. Besides this obvious concern, the framework lessens some potential shortcomings. By framework, I mean how the recognition engine works. Suppose you happen to be engaged in a conversation in a noisy area. The recognition engine can’t know the difference between extraneous noise and you trying to get its attention. So, it would naturally try to make sense out of what it hears. At some point, it will hear something it thinks is a command and this will initiate an action in your application. Hopefully, this isn’t a launch missile command. The framework requires that a particular trigger word be recognized before it will look for any further command input. Additional commands must follow the trigger word within a timeout period or else the system will revert back to listening for the trigger. We’ve already discussed speakerdependent and speaker-independent recognition. The EasyVR module has 28 SI words that you can add to your setup. For the best possible results, organize these into smaller unique groups of words. For instance, let’s say your application requires verbal commands to a robot. A command will consist of one or more words that may consist of some action. Depending on the action, there may be a direction involved and potentially an amount. Table 5 shows the SI dictionary contained in a default EasyVR module. Not only are they available right out of the box, but you also can select from a number of languages (e.g., English, Italian, Japanese, German, Spanish, and French). Your application would begin by looking for the trigger word “Robot” (offset 0 in group trigger). The module will respond with some status. Unless you get a response that indicates you have recognition success of offset 0 (ASCII A), you would continue to look at the trigger group. This low-level loop assures no other matching will take place until after the trigger word Robot has been recognized. This reduces the possibility of normal background noise from causing a false positive. You can then switch to Wordset 1 and look for recognition. Again, status will indicate success or failure and you can Join The Elektor Community Become a GREEN Member Now! Your GREEN Membership Comprises: • 10 Editions of Elektor magazine in digital format (pdf) • Direct access to Elektor.LABS; our virtual, online laboratory • Direct access to Elektor.MAGAZINE; our online archive for members • A minimum of 10% discount on all products in Elektor.STORE • Elektor.POST newsletter sent to your email account each week • 25 Extra Elektor projects per year (through Elektor.POST) • Exclusive GREEN Membership card containing a state-of-the-art Mifare Ultralight RFID/NFC chip usable with NFC-compatible smartphones EXCLUSIVE OFFER FREE E-BOOK on AVR/Software Defined Radio with an Elektor GREEN Membership!* Order Today at www.elektor.com/membership * Available through www.elektor-magazine.com after you have received your magazine download login details. Take Out Your GREEN Membership Now at www.elektor.com/green-membership Connect with us! www.facebook.com/elektorim www.twitter.com/elektor CIRCUIT CELLAR • OCTOBER 2014 #291 COLUMNS 72 PHOTO 3 I wanted to create a PC application that could interface directly with the module’s serial interface. I added a serial-to-USB interface to translate the module’s TTL serial-to-USB for my input to my PC. This simple shape-drawing application enables me to change shapes, colors, sizes, and positions from voice commands. decide what to do next. Perhaps recognition will indicate recognition of offset 6. You might want to instruct your robot to halt all movement upon recognition of the Stop command. Note that Robot and Stop are not the same as Robot Stop. The two single commands are treated as separate entities. The system must recognize the word Robot before the wordset can be changed to look for the word Stop. However, you may use RobotStop as an SD word. Let’s take a closer look at SD word groups. MY OWN THING You’re likely thinking, “This is pretty cool, but this vocabulary doesn’t quite cover my application.” This is where things begin to get interesting. As I noted earlier, there is a 32word (or phrase) limit on what you can add. Liberty Basic Shoptalk Systems | www.libertybasic.com circuitcellar.com/ccmaterials SOURCES EasyVR Module and EasyVR development kit TIGAL KG | www.veear.eu RSC-4x Speech recognition and synthesis microcontrollers Sensory, Inc. | www.sensory.com But that’s sufficient for many applications. I just covered how SI word groups are set up to give a flow to what is being recognized. Let’s consider an example in which I used the module to provide serial input to a PC (in this case, as input to a PC application). For improved recognition, I divided the commands into a logical grouping. I defined five groups: trigger, function, color, shape, and value. The trigger group uses an infinite timeout. It contains a single word that I can use as a wake up and begin a round of recognition. Earlier, I mentioned the word “Robot” as a predefined SI trigger. But for this example, “change” is my SD trigger word. If the module is continually listening, it’s possible to hear something that might be recognized as a legal word, and that’s why it’s best to begin with a trigger group of one word. In fact, you can put the module to sleep and have it wake up when instructed or when it hears a specific sound, whistle, or clap. For this application, I begin recognition in the trigger group and switch to group 1 (function) after a successful recognition of the trigger. The module always returns status information when it hears some input. As I noted earlier, the status depends on the issued command. For most of my application, I’m issuing a “d” command for various groups. Refer back to Table 1 and Table 2. This command has four possible responses. Unless I receive the “r” response, I want to indicate an error. I use the predefined “beep” from the “sound table” group. This is a sound file that I can play with the “wAA” command. The function group has seven words: Color, Shape, Height, Width, Horizontal, Vertical, and Clear (see Photo 3). When any word except Clear is recognized, I change active group to one of the three groups. This can be either a group containing colors, shapes, or values. The first two are straightforward and require a single word to complete the recognition cycle and return to group 0, looking for the trigger word. The third contains numbers 0–9 and an additional word to exit the routine. Since the value can have one or more digits, I need a way to indicate that I’m through entering digits. So, I added the word “done” to this list. This same list is used for functions, height, width, horizontal, and vertical. The value is initialized as zero, and this number is multiplied by 10 before a recognized digit is added. By speaking “one,” “zero,” “zero,” “done,” I create a value of “100.” Once the word “done” is recognized, the value is complete and can be assigned to some function. Once you’ve decided how your commands will be grouped, you can create and train these using the EasyVR Commander circuitcellar.com SPEAK ‘N DRAW Ready for an application? I connected the EasyVR module directly to a PC. My language of choice for quick PC applications is Liberty Basic, which has some defined drawing commands that enable you to draw a shape ABOUT THE AUTHOR Jeff Bachiochi (pronounced BAH-key-AHkey ) h a s b e e n w r i t i n g f o r C i rc u i t C e l lar since 1988. His background includes product design and manufacturing. You can reach him at jeff.bachiochi@imagine thatnow.com or at www.imaginethatnow.com. on a graphic area. A shape is drawn using an active color from a predefined palette. Each shape can be drawn as an outline or filled. There are height and width dimensions as well as a starting position on the screen. I started by writing the application to take random selections from each of the necessary parameters and draw the selection to the display every 100 ms. The selected values are displayed at the bottom of the screen for each figure drawn. Once the application was filling the screen with random colors and shapes, I added some individual check boxes to each function that would halt the random selections for that function. If a box is unchecked, that function will remain at its present selection (i.e., every object “red”). By adding a COMM routine, I can then send commands to and receive status from the EasyVR module connected to the PC. I added three additional text boxes along the bottom of the screen. These will display the command sent, the status received, and a prompt for the user. Since the protocol uses only displayable ASCII commands, I can see the communication between the application and the EasyVR module. Any time a function is recognized, the application will deselect that function. From that point on, you will need to repeat that function to change the parameter being used to display an object. Photo 3 shows this application once the shape and color commands have been recognized, as noted by their checkboxes deselected. The “Clear” command can be issued to clear the display and set all of the checkboxes. START AN APP You now have sufficient information to begin using an EasyVR module, or at least to start thinking about how to use one. Next month, I’ll explain how to add sound files to the sound table. This will give you access to the sound effects, speech, or music files you would like to include in an application. Depending on the compression used, you’ll have room for several minutes’ worth of sound! COLUMNS application. When the application is started, you must connect to an EasyVR module either using the development kit or your own serial interface circuitry (discussed in the manual). One advantage of the development kit is that it auto-magically handles the logic to the *RST and *XM configuration inputs to put the module in the correct mode (Programming vs. Run). Once connected, the Commander application is trading commands with the module. Start by adding any words to a group by selecting the group and adding some text to identify it using either the edit menu or the taskbar commands for insert, add, and remove commands. Once these are set up, the command window lists them and indicates that none of the commands have been trained. Next, select a command and hit the train command. This will present you with the opportunity to get ready and prepare an appropriately quiet environment (e.g., lower the volume of any background music). You’ll be prompted to press a key when ready and speak the word within 5 s. This is repeated a second time in order to compare the second pattern to the first. If the two match, the training for this word is complete. If not, you can try again. After all words are trained, you can use the test group command to see how the module will react to a spoken word. You should see a match when a word from the group is spoken. You can also play around with trying to fool the recognition system by speaking other words or changing an inflection or accent. If the module doesn’t find a match, you’ll get an error message as opposed to recognition of a word from the list. After all of your groups are trained and tested, your module is ready for use (adding sound output will be discussed later). As you add commands to a group and train them, the module will automatically update. Once satisfied, you can disconnect and move on to implementing the module in your application. I found that the EasyVR development kit board requires DTR to be high or else commands aren’t passed to the module. The COMM function wouldn’t allow me to set the DTR line, so I was forced to use my application PCB to test the module with a PC application. That wasn’t a big deal because I was going to use it on the PCB. However, you should be aware of this gotcha. 73 74 CIRCUIT CELLAR • OCTOBER 2014 #291 CROSSWORD OCTOBER 2014 The answers will be available at circuitcellar.com/crossword. 1 2 3 4 5 6 7 8 9 10 11 TESTS & CHALLENGES 12 13 14 15 16 17 18 19 EclipseCrossword.com ACROSS 4. Phase-locked oscillator 8. Single-ended 9. Unwanted capacitance 10. Early capacitor [two words] 12. Conducting fluid 14. One circuit’s signal creates an unwanted effect on another 16. Absorbs sound or electromagnetic wave reflections 17. Used in bipolar power-supply transformers to improve output voltage symmetry 18. Semiconductor diode [two words] 19. Frequency change that occurs when emitter and receiver move in unison [two words] DOWN 1. A resistor that draws the critical amount of load current 2. Detects magnetic anomalies 3. Two frequencies combine to produce new ones 5. Place components directly on PCBs [two words] 6. Garbage or gibberish 7. Measures small voltages 11. Passes current in only one direction 13. Sharp, flexible wire that connects to a semiconductor crystal’s surface [two words] 15. Cold-cathode-glow discharge diode circuitcellar.com 75 What’s your EQ? The answers are posted at www.circuitcellar.com/ category/test-your-eq/. You can contact the quizmasters at eq@circuitcellar.com. ANSWER 1 An R-C snubber is the series combination of a resistor and a capacitor that is placed in parallel with a switching element that controls the power to an inductive load in order to safely absorb the energy of switching transients. The problem is that a load that has an inductive component will produce a brief very high-voltage “spike” when the current through it is interrupted quickly. This spike can cause semiconductor devices to break down or even mechanical contacts to arc over, reducing their lifetime. The snubber absorbs the energy of the spike and dissipates it as heat, without ever allowing the voltage to rise too high. ANSWER 2 To pick the resistor value, you first need to know what the maximum voltage you want to allow is. For example, if you have a MOSFET that has a drain-to-source breakdown rating of 400 V, you might choose to limit the snubber voltage to 200 V. Call this V MAX . Next, you need to know the maximum current that will be flowing through the load (and the switching element). Call this IMAX . At the instant the switching element opens, this current will be flowing through the resistor, and this will determine the initial voltage that appears across the switching element. Therefore pick the resistance: R = V MAX /IMAX . ANSWER 3 Contributed by David Tweed combine the twe equations and then solve for C: 0.5 V MAX 2C = 0.5 IMAX 2L LOAD C = (IMAX 2 /V MAX 2)L LOAD This value will actually be somewhat conservative, because some of the initial energy of the inductance will be dissipated in the resistor during the initial transient, before it even gets to the capacitor. After that, the inductance and the capacitor will behave as a series-resonant circuit, with the current oscillating back and forth until all of the energy is gone. ANSWER 4 When switching DC, the snubber absorbs the energy stored in the load’s inductance, and after a while, no current flows and the capacitor is charged to the supply voltage. However, when switching AC, the snubber has a finite impedance at the AC frequency, which means that it “leaks” a certain amount of current even when the main switching element is open. While this may or may not cause a problem for the load (usually not), there is also the issue of the continuous power being dissipated in the snubber resistor. The resistor must be rated to withstand this leakage power in addition to the energy of the switching events. Contributed by David Tweed TESTS & CHALLENGES Picking the capacitor can be more tricky. The key concept is that you need to pick a capacitor that can absorb the energy stored in the inductance of the load while keeping its terminal voltage under VMAX. Since loads don’t often specify their values of inductance, this may require some experimentation. Let’s call the load inductance LLOAD. The energy that it stores at the maximum current is: E = 0.5 IMAX 2L LOAD.The energy that a capacitor stores is: E = 0.5 V 2C. So, if we say that we want the capacitor to store the same energy that’s in the inductance when its terminal voltage is at V MAX , we can TEST YOUR EQ Sign up today and SAVE 50% • Sign up today an Sign up today and SAVE 50% • Sign Now offering student SUBSCRIPTIONS! When textbooks just aren’t enough, supplement your study supplies with a subscription to Circuit Cellar. From programming to soldering, robotics to Internet and connectivity, Circuit Cellar delivers the critical analysis you require to thrive and excel in your electronics engineering courses. Sign up today and Sign up today and SA Sign up today and SAVE 50% www.circuitcellar.com/subscription Sign and 0% 76 CIRCUIT CELLAR • OCTOBER 2014 #291 CC SHOP 311 Circuits 311 Circuits 311 Circuits – is the twelfth book in Elektor’s celebrated ‘300’ series. An immense source of inspiration for all electronics enthusiasts and professionals, this book deserves a place not far from the workbench. 311 Circuits 311 Circuits – contains circuits, design ideas, tips and tricks from all areas of electronics: audio & video, computers & microcontrollers, radio, hobby & modelling, home & garden, power supplies & batteries, test & measurement, software, not forgetting a section ‘miscellaneous’ for everything that doesn’t fit in one of the other categories. 1 CC VAULT CC Vault is a pocket-sized USB that comes fully loaded with every issue of Circuit Cellar magazine! This comprehensive archive provides an unparalleled Elektor International Media amount of embedded hardware and www.elektor.com software design tips, schematics, and source code. CC Vault contains all the trade secrets you need to become a better, more educated electronics engineer! 311 Circuits – presents complete solutions for numerous problems, as well as starting points for your own creations. 311 Circuits – has been compiled from the 2009, 2010 and 2011 ‘Summer Circuits’ double editions of Elektor magazine. 311 Circuits – is mostly based on readers’ contributions, supplemented by circuits engineered and developed in the Elektor Labs. 1 ISBN 978-1-907920-08-0 7 Cover_311schaltungen_GB_rz.indd 1 22.09.2011 11:04:25 Uhr Item #: CCVAULT 4 311 CIRCUITS 2 CC 2013 CD 2 2013 was an exciting year for electronics engineers! The continued success of open-source solutions, Internet of Things (IoT) revolutions, and green-energy consciousness has changed the face of embedded design indefinitely. In Circuit Cellar’s 2013 archive CD, you can find all of these hot topics and gain insight into how experts, as well as your peers, are putting the newest technologies to the test. You’ll have access to all articles, schematics, and source code published from January to December 2013. Item #: CD-018-CC2013 3 MICROPROCESSOR DESIGN USING VERILOG HDL After years of experience, Monte Dalrymple has compiled his knowledge of designing embedded architecture and microprocessors into one comprehensive guide for electronics engineers. Microprocessor Design Using Verilog HDL provides you with microarchitecture, writing in Verilog, Verilog HDL review, and coding style that enables you to depict, simulate, and synthesize an electronic design on your own. 3 Author: Monte Dalrymple Item #: CC-BK-9780963013354 An immense source of inspiration for all electronics enthusiasts and professionals, 311 Circuits deserves a place on your bookshelf! This book includes tips in all areas of electronics: audio and video, computers and microcontrollers, power supplies and batteries, test and measurement, and more. The 12th book in Elektor’s celebrated 300 series, it presents complete solutions for numerous problems and distinct starting points for your DIY projects. Author: Elektor Item #: BK-ELNL-978-1-907920-08-0 circuitcellar.com CC SHOP Clemens Valens Clemens Valens Stefan Schwark Mastering Microcontrollers Mastering Microcontrollers Stefan Schwark Helped By Arduino Android Apps programming step-by-step + Eclipse development platform + JAVA object oriented programming www.elektor.com/android Mastering Microcontrollers Helped By Arduino Helped By Arduino Android: programming step-by-step Clemens Valens www.elektor.com/arduino 5 26.11.12 15:38 www.elektor.com/arduino 5 ANDROID APPS: PROGRAMMING STEP-BY-STEP 6 MASTERING MICROCONTROLLERS: HELPED BY ARDUINO Many smartphones and tablet computers are powered by an Android OS. These portable devices’ speed and computing power enable them to run applications that would have previously required a desktop PC or custom-designed hardware. Android Apps introduces you to the programming required to design apps for Android devices. Operating the Android system is explained step-by-step to show how personal applications can be easily programmed. Arduino boards have become hugely successful. They are simple to use and inexpensive. Mastering Microcontrollers will teach you how to program microcontrollers and help you turn theory into practice using an Arduino programming environment. Become a master today! Author: Clemens Valens Item #: BK-ELNL-978-1-907920-23-3 Author: Stefan Schwark Item #: BK-ELNL-978-1-907920-15-8 8 LINEAR AUDIO SERIES Linear Audio is a series of bookzines full of unique content you won’t find anywhere else. Each book offers everything from tutorials to circuit and system design, to test reports and book reviews. Why wait? Read, learn, and do it yourself! See website for all seven editions. Author: Jan Didden 8 7 6 7 ADUC841 MICROCONTROLLER DESIGN MANUAL This book presents a comprehensive guide to designing and programming with the Analog Devices ADuC841 microcontroller and other microcontrollers in the 8051 family. It includes a set of introductory labs that detail how to use these microcontrollers’ most standard features, and includes a set of more advanced labs, many of which make use of features available only on the ADuC841 microcontroller. The more advanced labs include several projects that introduce you to ADCs, DACs, and their applications. Other projects demonstrate some of the many ways you can use a microcontroller to solve practical problems. The Keil μVision4 IDE is introduced early on, and it is used throughout the book. This book is perfect for a university classroom setting or for independent study. Author: Shlomo Engelberg Item #: CC-BK-9780963013347 Further information and ordering www.cc-webshop.com CONTACT US: Circuit Cellar, Inc. 111 Founders Plaza, Suite 300 East Hartford, CT 06108 USA Phone: 860.289.0800 Fax: 860.461.0450 E-mail: custservice@circuitcellar.com 77 78 CIRCUIT CELLAR • OCTOBER 2014 #291 IDEA BOX the directory of PRODUCTS & SERVICES AD FORMAT: Advertisers must furnish digital files that meet our specifications (circuitcellar.com/mediakit). ALL TEXT AND OTHER ELEMENTS MUST FIT WITHIN A 2” x 3” FORMAT. E-mail adcopy@circuitcellar.com with your file. The Vendor Directory at circuitcellar.com/vendor is your guide to a variety of engineering products and services. For current rates, deadlines, and more information contact Peter Wostrel at 978.281.7708 or circuitcellar@smmarketing.us. $20 for 5PCBs 2 layer,4x4inch, FR4(RoHS),0.063”,1oz, 2LPI,Green,1SK,Lead free HASL Standard PCB: Promotion code: FPGA Boards from JAPAN SAVING COST=TIME with readily eadily available FPGA boards ra Alte CC14061 PCB & PCBA Small to Mass QTY INSTANT QUOTE AT: www.myropcb.com OR CALL: 1-888-PCB-MYRO XCM Series Kintex-7, Spartan-6, Virtex-5 and other many FPGA boards are available x ACM Series Xilin Cyclone V, Arria II, MAX II and other many FPGA boards are available Basic and simple features, single power operation Over 100 varieties of FPGA/CPLD boards are available PLCC68 Series Designed for 68-pin PLCC socket Very small size (25.3 x 25.3 [mm]) 50 I/Os (External clock inputs available) 3.3V single power supply operation www.hdl.co.jp/CC/ circuitcellar.com Join The Save 10% Online Web-Order Code: C143009 Become a member of Valid thru October 1, 2014 HRXL-MaxSonar®-WR™ - High noise tolerance - IP67 rated - 1 mm resolution - Multi-Sensor operation - Calibrated beam pattern - Starting at $109.95 XL-MaxSonar®-EZ™ - Great for UAV’s and robotics - Incredible noise immunity - Small in size - 1cm resolution - Automatic calibration - Starting at $39.95 Circuit Cellar ! Phone: 218-454-0766 Email: sales@maxbotix.com www.maxbotix.com TRi Programmable Logic Controllers Powerful & Easy Ladder +BASIC Programming Ethernet integrated MODBUS TCP/IP DI/Os & AI/Os integrated Project articles and design applications Embedded industry news and announcements 12 issues annually CC.Post e-newsletter OEM Prices as low as $119 for full-feature Nano-10 PLC tel : 1 877 TRI-PLCS web : www.triplc.com/cci.htm TRIANGLE RESEARCH INTERNATIONAL microEngineering Labs, Inc. www.melabs.com 888-316-1753 Programmers for Microchip PIC® Microcontrollers PC-Tethered USB Model (shown): •Standalone software •Command-line operation •Hide GUI for automated use •Override configuration with drop-downs Stand-Alone Field Programmer: Starting at $79.95 circuitcellar.com/ subscriptions •Power from target device or adapter •Program file stored on SD-CARD •Programming options stored in file •Single-button operation Program in-circuit or use adapters for unmounted chips. Zero-Insertion-Force Adapters available for DIP, SOIC, SSOP, TQFP, and more. PIC is a registered trademark of Microchip Technology Inc. in the USA and other countries. 79 80 CIRCUIT CELLAR • OCTOBER 2014 #291 The Future of TemperatureCompensated Crystal Oscillators TECH THE FUTURE By John Esterline M John Esterline is the CEO of Esterline Research and Design, LLC, (www.esterlineresearch.com) a Pennsylvania based start-up company. John holds an MEngEE and a BSEE from Pennsylvania State University. His research interests focus on temperature compensation algorithms for the improvement of embedded time bases. John is the inventor on two US patents (US8188800 B2, US8525607 B2), and the inventor of one patent pending (US 13/570,563). Esterline Research and Design, LLC offers consulting services in frequency control, test and automation and other subject matter in addition to its RF testing products. You can contact him at jesterline@esterlineresearch.com. ost modern digital and analog electronic devices require a time base to perform their intended function. Found in everything from cell phones to smart munitions, quartz crystal oscillators are widely used in many embedded applications. Quartz resonators’ high Q, excellent temperature performance, and superior long-term aging makes them the clear resonator of choice for many applications. The frequency versus temperature performance of a discrete LC oscillator will be on the order of several hundred parts per million (ppm) per °C, where a crystal oscillator (XO) will have roughly ±30 ppm over the entire industrial temperature range (–40 to +85°C). While being superior to a discrete oscillator, this temperature stability is not nearly sufficient for many modern applications. The temperature-compensated crystal oscillator (TCXO) employs the use of an open loop compensation circuit to create a correction voltage to reduce the inherent frequency versus temperature characteristic of the crystal. The crystals used in TCXOs have frequency versus temperature characteristics that approximate a third-order polynomial, as seen in the nearby figure. The early designs for TCXOs employed a network of thermistors and resistors to create a correction voltage. By using thermistors with different slopes and properly selecting the fixed value resistors, the correction voltage can be made to have a shape factor matched to the crystal’s frequency versus temperature performance. The correction voltage is applied to a varactor in the feedback path of the TCXO. This change in capacitance in the feedback path alters the tuning of the oscillator, thus changing the output frequency and compensating it for temperature effects. Thermistor/Resistor network TCXOs can achieve frequency versus temperature stabilities of around ±1 ppm over the industrial temperature range; however, they are limited in their curve-fitting capabilities because of the nature of using discrete thermistors and resistors. Thermistor/resistor network TCXOs are still found in specialized environments including AT cut frequency versus temperature characteristics satellite and other space applications where modern solid-state devices do not have the radiation hardness to survive. Most TCXOs manufactured today utilize an ASIC which contains the oscillator circuit and a thirdor fifth-order polynomial voltage generator. The polynomial generator is an analog output voltage but also has digital registers for setting the coefficients of the polynomial. The newest generations of TCXO ASICs can provide temperature performances of ±0.1 ppm over the industrial temperature range. This is a 10-fold improvement over what is obtainable with a traditional thermistor/resistor network TCXOs and also has the advantage of a much smaller footprint (5 mm × 3.2 mm). Some high-precision applications require frequency versus temperature stabilities better than ±0.1 ppm. To meet these challenging specifications a different methodology is implemented. An ovencontrolled crystal oscillator (OCXO) uses a heater circuit and thermal insulation to keep the crystal at an elevated temperature (≈15°C above the upper operating temperature limit). By controlling the crystal’s temperature and keeping it nearly constant, the frequency deviation due to ambient temperature changes is vastly reduced. OCXOs can achieve frequency versus temperature stabilities of ±0.005 ppm. This improved performance comes at the cost of a larger footprint and increased power consumption. The TCXO’s performance limit of ±0.1 ppm is due to several factors. First, the resonators are not perfect. Their frequency versus temperature stability approximates a third-order polynomial; however, higher order effects are present. Secondly, the polynomial generator is nonideal and induces some higher order artifacts, leaving the user with residuals of ±0.1 ppm. A new methodology which uses an artificial neural network (ANN) to create the correction voltage has recently been demonstrated. The ANN is superior in that the neural network is not inherently shape limited like a third-order polynomial. If enough data is presented to the ANN, it can “learn” the crystal’s temperature performance shape and correct for it. This new methodology has been shown to provide ±0.01 ppm frequency versus temperature stability over the industrial range. The ANN algorithm can achieve OCXO temperature performance in a much smaller footprint, and without the need for the power-hungry oven. The evolution of quartz crystal time bases over the last 70 years has seen the frequency versus temperature stability improve by a factor of several thousand. As our need for more stable oscillators in smaller packages with less power consumption grows, the development of better compensation schemes is paramount. The ANN demonstrates a technology that has much potential. Its ability to adapt and change its shape factor makes it ideal for complex compensation problems. embedded engineering electronics discuss engineering audio business networkingmedia community system data projects information product news talk social media mobile contests design tips tutorial software engage tools Want to talk to us directly? Share your interests and opinions! Check out our New Social Media Outlets for direct engagement! circuit cellar / audioxpress / elektor MULTIPLE PCBA LINES NO MORE WAITING ACROSS THE GLOBE! Imagineering utilizes the Jet Printer Technology which has been proven successful in five continents. This breakthrough innovation allows us to achieve high-precision solder deposits at speeds of more than one million dots per hour. High-Speed Non-Contact Jetting Nozzle • Complete Volume Control • 100% Software Driven More Components, More Possibilities • High-Performance Platform www.PCBnet.com (847) 806-0003 • sales@PCBnet.com