Professional Documents
Culture Documents
CC 2020 03 Issue 356
CC 2020 03 Issue 356
CC 2020 03 Issue 356
MARCH 2020
circuitcellar.com ISSUE 356
CIRCUIT CELLAR | ISSUE 356 | MARCH 2020
Periodic Table Project Uses PIC16 | LPWAN Deep Dive w Kilogram Redefined |
USB Attacks with GreatFET Tool | Taking RPLIDAR Out for a Spin (Part 1) |
Dehumidifier Revamped for the IoT Era w The Future of Data in Robotics
FRESH
PERSPECTIVES
At the world’s largest, most
comprehensive event for unmanned
and autonomous systems, you’ll
discover that something extra that
gives you a competitive edge — your
X factor. Only AUVSI XPONENTIAL
2020 offers the opportunity to
hear new ideas, get up close with
groundbreaking innovations and form
partnerships that move your business
— and the industry — forward.
FIND YOUR MOMENTUM. FIND YOUR X FACTOR. Boston Convention and Exhibition Center | Boston
May 4 – 7 | Educational Program
REGISTER NOW | XPONENTIAL.ORG May 5 – 7 | Exhibits
2 CIRCUIT CELLAR • MARCH 2020 #356
SUBSCRIPTION MANAGEMENT
E-mail: customerservice@circuitcellar.com
Accutrace, Inc. C3 Phone: 434.533.0246
All Electronics Corp. 77 Mail: Circuit Cellar, PO Box 417, Chase City, VA 23924
EasyOEM 25
ADVERTISING
EzPCB 59 Contact: Hugh Heinsohn
Pico Technology 19
HEAD OFFICE
Revenue Control Systems 77 KCK Media Corp.
Contact Hugh Heinsohn Entire contents copyright © 2020 by KCK Media Corp.
All rights reserved. Circuit Cellar is a registered trademark
(hugh@circuitcellar.com, Phone: 757-525-3677, Fax: 888-980-1303) of KCK Media Corp. Reproduction of this publication in
to reserve space in the next issue of Circuit Cellar. whole or in part without written consent from
KCK Media Corp. is prohibited.
THE TEAM
DISCLAIMER
PRESIDENT EDITOR-IN-CHIEF ADVERTISING COORDINATOR
KCK Media Corp. makes no warranties and assumes no
KC Prescott Jeff Child Nathaniel Black responsibility or liability of any kind for errors in these
programs or schematics or for the consequences of any such
CONTROLLER SENIOR ASSOCIATE EDITOR ADVERTISING SALES REP. errors printed in Circuit Cellar®. Furthermore, because of
Chuck Fellows Shannon Becker Hugh Heinsohn possible variation in the quality and condition of materials and
workmanship of reader-assembled projects, KCK Media Corp.
disclaims any responsibility for the safe and proper function
FOUNDER TECHNICAL COPY EDITOR PROJECT EDITORS
of reader-assembled projects based upon or from plans,
Steve Ciarcia Carol Bower Chris Coulston descriptions, or information published in Circuit Cellar®.
Ken Davidson
GR APHICS David Tweed The information provided in Circuit Cellar® by KCK Media
Corp. is for educational purposes. KCK Media Corp. makes
Grace Chen
no claims or warrants that readers have a right to build
Matt Pinkerton things based upon these ideas under patent or other
relevant intellectual property law in their jurisdiction, or
COLUMNISTS that readers have a right to construct or operate any of
Jeff Bachiochi (From the Bench), Bob Japenga (Embedded in Thin Slices), the devices described herein under the relevant patent or
other intellectual property law of the reader’s jurisdiction.
Robert Lacoste (The Darker Side), Brian Millier (Picking Up Mixed Signals), The reader assumes any risk of infringement liability for
George Novacek (The Consummate Engineer), and Colin O’Flynn constructing or operating such devices.
(Embedded Systems Essentials) © KCK Media Corp. 2020 Printed in the United States
circuitcellar.com 3
INPUT
Voltage
Coronavirus Impacting Electronics Industry
Jeff Child
4 CIRCUIT CELLAR • MARCH 2020 #356
COLUMNS
DATASHEET
74 : PRODUCT NEWS
78 : TEST YOUR EQ
@editor_cc
@circuitcellar circuitcellar
PG. 66
circuitcellar.com 5
FEATURES
PG. 6
20 Periodic
Trainer
Table Desktop
SPECIAL FEATURE
TECHNOLOGY SPOTLIGHT
PG. 20
6 CIRCUIT CELLAR • MARCH 2020 #356
By
Stuart Ball
horizontal sync pulse to give the circuits in rate to make the characters wide enough to
the receiver time to process the sync input. read, results in a row of typically 70 to 80
These are called “blanking,” and they are characters. Filters in a television to remove
referred to as the “front porch” (the blanking the audio subcarrier mean a television can’t
interval just before the sync) and the “back display that many dots on the screen, but a
porch” (the blanking interval just after the monitor with composite video input can.
FEATURES
sync). Between the back porch of one sync If the first line of the display contains the
pulse and the front porch of the next is the characters ABC, then the first three locations
live scan video information. This is where one in the RAM will contain the ASCII codes for
scan line of the picture is painted. those characters. As the scan moves across
Once the last horizontal line has been the screen, the first scan line will address the
painted, the scanning beam must be top line of character A, then B, then C, and
moved back to the top left corner to start then the rest of the line will be blank. The
the next image. This is done with vertical second scan line will address the second line
synchronization pulses, which are the same of character A, then B, then C, and so on. Each
voltage as the horizontal sync pulses, but have character row is displayed, one scan line at a
a longer time period. Circuits in the television time, all the way to the bottom of the screen.
recognize the difference in the pulse width Later versions of the composite waveform
between horizontal and vertical sync, and inserted information into the vertical blanking
move the scan back to the top left corner. The interval for things like channel information and
vertical sync on an old television took some closed captioning. Although composite video
time to retrace the scanning beam, so three has been superseded by higher resolution
vertical sync pulses were followed by a long VGA, DVI and HDMI in computers, the ability
blanking interval. That gave the circuits time to run a full video signal down a single coaxial
to make the vertical recovery. cable still has advantages in some situations.
The vertical blanking interval is broken up And, now, of course, the television broadcast
or serrated by horizontal sync pulses, so the itself is a digital HDTV transmission.
horizontal synchronization isn’t lost during the
vertical retrace time. The vertical scan rate is EARLY VIDEO TERMINALS
60Hz in the US NTSC system. This is not an The composite video standard defines a
accident. By making the vertical scan rate the standard way of getting a video image to the
same as the 60Hz power frequency, some visible
artifacts resulting from using vacuum tubes,
262 horizontal lines, separated by horizontal sync
unregulated power supplies, tube filaments
operating at 60Hz, etc., can be minimized. The 58 microsecond
vertical sync pulses
horizontal sync rate is 15,750Hz, or a 63.5µs
period. The 60Hz vertical rate combined with a
15,750Hz horizontal line frequency gives 262.5
horizontal scan lines per picture.
porch together need about 11µs, the total live Black level,
0.3V
video time on each scan line is about 52µs. So, Sync level, 4.7 microseconds
the horizontal synchronization process steals 0.1V horizontal
sync pulse
about 20% of the total line time. Similarly, the
Horizontal sync
vertical retrace takes some time, so a portion period 63.5
of the 262 horizontal scan lines are blanked 63.5 microseconds
(15,750 Hz)
and used for vertical retrace.
In displaying text on a monitor using Scanning a character row, line by line
composite video, each character needs
multiple lines on the display. In the 1970s This row of dots is displayed --->
Then this row ---------->
and 1980s, typical characters were either 5×7
or 7×9—that’s 5 dots wide by 7 dots high,
or 7 dots wide by 9 dots high. To display a
complete character, 7 or 9 scan rows would
be needed, with at least one blank row of Here the first row of dots for the second character row is displayed
The output of the display memory would circuit consists of the MCU, an RS232 interface
go to a ROM (read-only memory) that chip, a single-gate, open-collector buffer and
contained the codes for converting the ASCII a voltage regulator. A transistor drives the
from the RAM into dot patterns for each scan video output to the monitor.
line of the character. A shift register produced The TM4C has enough internal memory to
white/black outputs that produced dots on store the video information and to support
the screen. Additional logic was needed to the program. Memory was expensive in the
generate the horizontal and vertical signals days of the original terminals, but there is
when needed, and still more logic was needed plenty of memory to store scan rows instead
to handle incoming serial data, and write it of characters in the TM4C RAM. So, instead of
into memory. The Lear-Siegler ADM-3A was storing ASCII characters that are converted to
one such terminal. You can find a maintenance dots by an external ROM, the TM4C program
manual for it with schematics on the Internet. converts the incoming ASCII codes to dots in
That terminal had over 100 ICs. a lookup table, and stores the dots in the RAM.
Video cards installed in early computers Using internal RAM has an additional
often used video timing ICs, such as advantage—no complicated RAM synchronization
the Motorola 6845. These devices had is needed. Early video cards needed a mechanism
programmable internal counters to address to ensure that the computer microprocessor did
external RAM and to generate the vertical not write new characters into memory during the
and horizontal timing pulses. But they still live scan time. If they did, the display would be
required external RAM, an external character covered with “snow”—white dots that randomly
generator ROM and additional hardware to appear on the screen. If the writing occurs during
put the ASCII characters into the RAM. the live scan time, it interferes with reading the
memory to display the characters. One way this
was fixed is by writing only during the horizontal
1980s Terminal display logic or vertical blanking periods, when the screen is
Sync ⁄ blanked anyway.
Sync ⁄ blanking logic blanking
signals In the TM4C design, this isn’t necessary,
Character load logic because the reading is performed using
Address counters Character RAM Shift
register
the internal DMA controller. DMA access to
Character RAM
Load
the RAM is synchronized with the MCU CPU.
Address Data Address Dots to
Out video
As a result, there is never a problem with
Data
Character mixer interference between the two.
dot-row address Early terminal designs used a shift
Address
To additional register to shift out the dots. The TM4C
logic for writing design uses one of the synchronous serial
new characters
to RAM ports to output the dots. Internal timers
Dot clock
generate the synchronization signals, and
Arm-based terminal design the entire process is driven by the horizontal
sync signal. The TM4C provides a nearly self-
contained video terminal with few external
CPU
parts needed (not counting, of course, the
electronics in the LCD video terminal, itself).
Timer T0 Sync to video mixer
Incoming serial data UART1 Due to the tiny size of the monitor, a DIP
RAM DMA SSI0 Dots to video mixer
switch selects either a 75-character x 20-row
output, or a 35-character × 10-row output.
FIGURE 2 The 75×20 output is for display on larger
Block diagram of a 1980s-vintage terminal design and of the new Arm-based design. terminals. You can use it on the tiny display,
but it’s impractical.
Figure 2 is a block diagram showing how a
ABOUT THE AUTHOR terminal might be implemented in the 1980s,
compared to the new design. The address
Stuart Ball is a registered professional engineer with a BSEE and an MBA. He counters in the old design (top of Figure 2)
has more than 30 years of experience in electronics design. He is currently might be discrete counters or part of a video
a principal engineer at Seagate Technologies. timing chip, but you can see that there is a lot
of logic required either way, to generate the
circuitcellar.com 9
video information. This diagram doesn’t even transmit 7-bit words, since the character
include the logic that gets new characters matrix is 7 dots × 9 dots. The SSI shift
into memory. The lower diagram in Figure 2 register is clocked at 10MHz in 75-character-
is the new approach, where nearly everything per-line mode, and at 5MHz in 35-character-
is contained in the MCU. Although the MCU, per-line mode. This is the dot rate, and allows
itself, is far more complex than the old design, the 52.5µs live scan time to display 525 dots.
FEATURES
it still replaces dozens of ICs with just one. Using a 7×9 character format, that’s 75
characters per line. With a 5MHz clock, it’s
THE CIRCUIT 37 characters per line. I set it to 35 in the
The schematic of the circuit is shown in firmware.
Figure 3 and Figure 4. U1, the TM4C1233H6, U3 buffers the output of PD3 so it can drive
is one of many parts in the TI TM4C family. the output transistor. Serial port 0, on PA0 and
Internal timer T0 generates the 15,750Hz PA1, is used for programming the device. A
horizontal and vertical sync pulses, and the jumper, W1, is grounded to put the TM4C into
output of T0 is fed back to input PB6 as an programming mode. J2 connects an external
interrupt. RS232 converter to connect to the host serial
Synchronous serial interface number 3 is port, as described in my article “Debugging
used to generate video dots and blanking. The Embedded Systems with Minimal Resources”
output of SSI3, on PD3, is pulled to ground, (Circuit Cellar 312, July 2016). Figure 5 is a
because it needs to be at blanking level when schematic of the programming adapter.
not active, and the TM4C normally floats the U5 is a 3.3V to RS232 converter that
output when inactive. SSI3 is configured to connects serial port 1 (UART1), on PB0/PB1, to
/ /( /(
# -
85 3 + 7 &
7 &
15
7 &
-
0& = -
7 &
:
& 1
9 -
7%>+ ?
=
?
7> ? .
9
?
:
? ' 2
=
7 ?
7
9
, , ,
3+*
3*
; 9
6<
=
3* +3
-
+8
+ *
6*45
+@
+
%9 *45
%
9
;3* %
:
%
:
;3* % 7+-81
/( 9
%
A.>@? % * +
- A68% % * -
:
A-*+
>9
>
* /(
15; >
15> >
- *. #
15 >
9 =
15 >
= :
15 >
9
15 >
7B C
(:7B' *
+
(7B -
7B2D)
-9
/( /( /( /( /(
-:
9 : =
(, (, (, (, *.
FIGURE 3
Schematic, page 1
! "#$%&' ( )"*) $
10 CIRCUIT CELLAR • MARCH 2020 #356
= = (
/=
/>
can be changed simply by changing the dot
), > >
), clock and forcing the DMA to send only 262
FEATURES
( #
dots (35 characters) per scan line, the vertical
+ - -?0 -4 -
-?0 -4 -
1
(
spacing isn’t so easy. In 35-character-per-
line mode, if the same number of character
+ . .4 - .?0 :
.4 - .?0 1 :
)/
/ 30
rows were used as in the 75-character-per-
67 row mode, the characters would be vertically
)/ “squashed,” and only the upper half of the
)/ display would be used. So, in 35-character-
per-line mode, each line of dots is sent twice to
)/
.1
)
.:
expand the vertical height of each row. The full
( 8
frame is still 262 scan lines, but each character
(
4-+ 0(
1(2/301 #(
row now takes 20 scan lines instead of 10.
0(
.
.
0(
9 / Timer T0 is configured as a 16-bit PWM
+50
.
.
generator. The duty cycle is 4.7µs for the
+@A)/ horizontal sync, and 58µs for vertical sync. The
%A)/
B* A):/ interrupt service routine (ISR) has to change
the PWM duty cycle (but not the frequency)
FIGURE 4
to generate the wider vertical sync pulse. The
Schematic, page 2 the host system. UART1 is fixed at 9600 baud value can’t be changed inside the ISR, because
in the firmware, though that can obviously be it will produce a short pulse at the output.
changed. Header J3 is a 10-pin header that Instead, the ISR sets a flag, and the main loop
connects to a D-series connector with a short changes the duty cycle, when the time count
cable. Transistor Q1 mixes the dot and sync is lower than the new duty cycle value. This
signals to produce the composite video output. causes the new duty cycle and pulse width to
To keep the dots crisp, Q1 is biased so that it
'< occur on the next timer period.
never goes fully into saturation or cutoff. The software scrolls the screen when a
%&' ( new character needs; to be inserted and the
SOFTWARE screen is at the end. This is accomplished by
There are some special considerations in moving+*an index
that indicates where the top
the TM4C firmware to make working video. The row starts. At initialization, location 0 in the
“character generator ROM,” which is actually
! "#$%&' () *"+* $
display RAM area is the start of the first line.
an array in flash memory, is configured for When the bottom of the screen is reached,
7x9 dots. But the actual display memory is the screen is scrolled up by making location
sized for 10 dots per character, to make a 750 (the start of the second character row)
blank scan line under each character row for the top of the screen, and the row starting at
vertical separation. This extra scan line isn’t location 0—now the last row on the screen—is
included in the character matrix. It’s just an blanked. The circuit board and the monitor,
extra line that is initialized to all zeros (blank). displaying a few lines of test text, are shown
So, the start of the first character row is at in Figure 6. See the sidebar “ Composite Video
location 0 in the display memory array, and Display Calculations” as a guide if you wish to
the next one is at location 750 (75 characters try out alternate clock frequencies or different
per row × 10 scan lines per character). To blink character generator dimensions.
- -
"
7
67
68
7
! "
2!
" - -
*- - 8 8 !
2 2 %
%
.<: .; .
! 3 !
6 .<: .; . "
2 2 2; . 2<: 2 3 ./
. 2; . 2<: 2>=/
9: ! !
" ! !
6 9: 23 2"
01 " "
./
0
=#5
FIGURE 5
Programming adapter
circuitcellar.com 11
COLOR
When color television was introduced,
the monochrome video waveform was
modified to accommodate the addition of
color. The waveform had to be compatible
with existing monochrome televisions, so
FEATURES
the changes had to be invisible to existing
monochrome receivers. Color was added
by sending a color sync burst during the
horizontal synchronization back porch, which
synchronized the chrominance phase with
that of the transmitter. The color information
is phase-encoded with a 3.58MHz signal on
the video. Circuits inside the television extract
the 3.58MHz color signal to display the color
information with the luminance (white/gray/
black) information. The video circuit here does
not include color. That would take additional
hardware and a significantly faster processor. FIGURE 6
As currently implemented, the terminal CONCLUSION Photo of prototype circuit board and
is fairly simple. Characters are received via This project started out to re-create the 3.5" LCD monitor
the serial port and written to the display at something resembling the terminals that we
the current cursor position. When the end used on in the 1980s. Unless you are
of the display is reached, the screen scrolls interested in that sort of project, the original
up one line, and new characters are inserted intent for this circuit wouldn’t be of use. But
at the bottom. The addition of direct cursor the simplicity of the circuit provides an easy
addressing would allow the host to send way to build a text-based or even graphics-
characters that tell the terminal to place the based monochrome display that will drive
cursor at a specific line and column position. any monitor with a composite video input. It
Another improvement would be to add provides an inexpensive way to produce a
underline or inverse video for the characters. display for diagnostics, monitoring and
The high bit of the incoming byte can be general visual displays, especially given the
used to indicate when a character is to be low cost of the monitor used for the
displayed in this enhanced mode. The original prototype.
ASCII character set needed only 7 bits, so the
highest bit can be used for special features.
Some word processors of that era used these
features. when available. COMPOSITE VIDEO DISPLAY CALCULATIONS
Although this entire project was based The calculations for the composite video display are given here, should
on displaying ASCII characters, there is no you wish to tinker with alternate clock frequencies or different character
reason you can’t display graphics information generator dimensions:
on the screen. The resolution isn’t very
high, and, as mentioned, adding color would Horizontal blanking plus sync time = 10.9µs
require different hardware. But unlike the
character-based terminals of the 1980s, you Horizontal scan rate = 15,750Hz = 63.5µs period
aren’t locked into displaying characters only.
Since there is no hardware character Live scan time = 63.5µs – 10.9µs = 52.6µs
generator between the RAM and the dot output,
you can display low-resolution graphics just by Dots per line = live scan time × dot clock frequency
filling the memory with the graphics image. In = 52.6µs x 10MHz = 525 for 10MHz, 262 for 5MHz
fact, the first test I did on the system when I
connected it to the LCD was to display a line in Characters per line = dots per line/horiz. dots per char
the middle of every other character position in = 525/7 = 75 for 10MHz, 37 for 5MHz (limited to 35 in FW)
each character row. The result was a display
that had just a series of horizontal dashed lines.
I did this because it was easy to do and didn’t
require any of the character processing routines
For detailed article references and additional resources go to:
to be functional. If you look at the source code,
www.circuitcellar.com/article-materials
you will see that the simple code to do this is
still there, just commented out. The source code
for this project can be downloaded from Circuit RESOURCES
Cellar’s article code and files webpage. Texas Instruments | www.ti.com
12 CIRCUIT CELLAR • MARCH 2020 #356
By
James Lawton, Callum Munn-Middleton
and Cam Stauffer
which is critical in today’s world of busy using LoRa communication technology than
airways. Semtech is a large stakeholder in with other methods.
LoRa technology, and it produced the SX1276
radio IC that is integrated into our project. THE CRICKET
Reliability and the ease of implementation The Cricket is a transmitter module that a
with the Internet of Things (IoT) sets LoRa user would purchase or rent before going on a
FEATURES
apart from other radio technologies. LoRa hike or similar outing. We designed the Cricket
setups often involve remote temperature to be as small and light as possible, so the user
monitoring or situations where brief digital can carry it while on the move, without adding
messages are sent. Typically, a LoRa user will much space or weight. Our design closely
connect a device to an IoT service, such as resembles a carabiner in its overall style
The Things Network, to log on and read data and the shape of its enclosure. To be as size-
via the Internet. This setup is called LoRaWAN. and shape-efficient as possible, we carefully
Essentially, a LoRa device can send its data to designed the PCB and all its components to fit
any public LoRa gateway, which then uploads within the shape of the enclosure.
the data to the Internet for viewing. We printed our 3D enclosure with PLA
We decided to experiment with LoRa radio (polylactic acid) filament on a Ultimaker
as the means of communication between our Cura printer. The enclosure is a two-part
devices. After all, using LoRa radio hardware design that snap fits together and has a
and protocol is possible, and is a simple two- removable battery cover. Inside the case is
way link that doesn’t require the Wide Area a custom-printed PCB that is pressure fit in
Network (WAN) aspect of public gateways. to four standoffs, a battery holder for two
That being said, our system implements a AAA batteries and a channel for a whip-style
similar private WAN for the future Colony antenna.
portion of SARNet. We designed our PCB to have a Murata
We ended up using LoRa because it was CMWX1ZZA Type ABZ chip, two LEDs (green
an inexpensive option that allowed us to get a and red), two input buttons, a reset switch,
long-range signal with good penetration, and power switch, programming header and
also because it requires very little power to an RF output port. The LEDs indicate to the
transmit. Also, we chose it for the ability to user if the Cricket is actively transmitting,
sacrifice data rate for added range. Because and double as an indicator for what state the
we send very little data between the Bat and Cricket is in—either Normal, Distress or Alarm
the Cricket, we get a longer maximum distance mode. Refer to Figure 2 for the Cricket's
23)24
#
(DD(
7 +,
5
+
7
78
79
7
77
7
7
7
7
8
9
)1
7
5
6<
6<
6<
6<
6<
6<
0>>?
23?->
?->3> ?
AB>+3=<
AB>+3> ?
/7+,%:
/+,=>
0% ?= 3=<
0 % ?= 3@?5
09% ?= 3=<
0% ?= 3> ?
7
6<
6<
6< 0=3+/
9
6< 08=3+%
7
/ +03 35+?
/ +03 /,:
6< 25@'4 23)24
23)24 7
23 +0 +?+/'@35+? 9
23 0635'
235' 0635' 1
063+-9 3=>
9 8
/ +/5?35-
7 6< 0635'
0+ =3 >+=
07+ =3 =+>
/ +/5?3?-
///
/7/7/
0+ =3+:
0+ =3<++
8 9 #
063+-9 3=> 6<
1 1 )1 063+-9 3=> /<?
//
//
063+-9 3=>
063+-9 3=> ) 5'/
,-../0.
7
9
8
7
5
23)24
23)24 5
+ + 5
+,
#
6
+ &*
0 C
57 5
FIGURE 2
Cricket schematic, featuring Murata
Type ABZ CMWX1ZZABZ chip
schematic and to Figure 3 for the Cricket PCB. batteries are accessed by removing the rear
We selected a 915MHz, whip-style antenna battery cover (Figure 4).
for its light and flexible characteristics.
To power the Cricket, AAA batteries were CRIKET SOFTWARE
chosen, based on cost, size and capacity. The best way to describe the Cricket’s
With disposable lithium cells, the Cricket functionality is to examine the software
FEATURES
lasts for 16 days in Normal mode, 12 days in that runs on it. We wrote all the Cricket
Distress mode and 4 days in Alarm mode. The programming in the Arduino IDE, using a
LoRa library and board support package that
FIGURE 3
recognizes the Murata chip we used [3].
Cricket PCB, featuring Murata chip,
We programmed three modes of operation:
LEDs and input buttons
Normal, Distress and Alarm. Normal mode
will run by default when the Cricket is
powered on. The device will transmit a check-
in message and blink the green LED every
5 minutes. Distress mode will transmit a
distress message and blink the red LED every
minute. Alarm mode blinks both LEDs three
times for good visibility, and transmits an
alarm message every 10s. Alarm mode is
activated when a Bat is close enough to detect
a Cricket’s chirp. More transmissions help the
Bat narrow in on the Cricket, and having both
LEDs light up indicates to the lost person(s)
that a rescuer with a Bat is nearby, and that
they should make noise or try to alert the
rescuer in some way.
In our application, we didn’t need fast data
rates or high data volume, but we did need long
range. This meant we could change various
settings to sacrifice the data rate and volume to
gain longer range. The LoRa Calculator software
by Semtech was a helpful tool while changing
the LoRa settings. The calculator indicated
that for maximum range, we needed high
spreading factor and low bandwidth [4]. We
set the spreading factor to 12, the bandwidth
to 125kHz and the coding rate to 4. Also, we
set the Murata chips to transmit at the highest
supported power level of 20dBm (100mW).
The actual data we transmit over the LoRa
protocol comprises 5 full bytes in series.
The first byte is an asterisk (*) character,
which serves as a start sequence. The
asterisk prevents the Bat from listening to
LoRa signals that are not transmitted from
SARNet devices. The second and third bytes
are used as a unique ID number to identify
a Cricket device. The fourth and fifth bytes
are used to indicate whether the Cricket is
in Normal, Distress or Alarm mode. LoRa
protocol supports a maximum payload size
of 256 bytes to be transmitted at one time.
Since we are using only 5 bits, we had room
for expansion if a large amount of Cricket IDs
were needed for the system.
FIGURE 4
THE BAT
The back of Cricket, with the battery
The Bat is designed to be taken into the
door open. A power button, reset field once the approximate area of a Cricket
switch and SWD programmer header device has been determined. We liked the idea
are accessible. of a rescue technician using a touchscreen,
circuitcellar.com 15
FEATURES
finding (DF) antennas are implemented to
help the radio amateurs in their search.
Like the radio amateurs, we based our idea
on a direction-finding principle. We combined
an electronic compass module with a scan
of the received Cricket signal amplitude.
With compass and signal-strength data, our
tracking device can plot a signal’s amplitude
and the direction of its location on the screen.
Because the Bat must receive signals
from the Cricket, we tuned the design for
the antenna to 915MHz. An online antenna
calculator tool helped us determine the
antenna’s dimensions [5]. We chose the
moxon-style antenna because of its direction-
finding capability and its wide, cone-like
reception pattern (Figure 5). In our trials, we
tested a front-to-back ratio of about a 10dBm.
Our trial results were useful in our design
FIGURE 5
because the Bat relies on directional-radio 915MHz moxon-style antenna. The coaxial cable is connected to the top copper wire, which is the driven
signal detection. The Bat’s software requires element. Although the antenna appears to be one piece of wire, the bottom portion is the reflector, which is
the user to turn in a circle (360 degrees) while a separate wire. #14 AWG solid core wire is used.
scanning for a Cricket’s signal. The software
indicates the likely direction of the Cricket
Verilog HDL
With the right tools
such as this book,
designing a microprocessor
can be easy.
Okay, maybe not easy, but certainly less
complicated. Monte Dalrymple has taken his
years of experience designing embedded
architecture and microprocessors and compiled
his knowledge into one comprehensive guide to
processor design in the real world.
Monte demonstrates
how Verilog hardware
description language
(HDL) enables you
to depict, simulate,
and synthesize an
electronic design so
you can reduce your
workload and increase
productivity.
www. EarthLCD.com/cc1
cc-webshop.com 949.248.2333
FEATURES
Bat’s user. We developed the Bat’s Type ABZ
chip software using the Arduino IDE, just like
the Cricket. The chip’s software includes the
board support packages and LoRa libraries we
used for the Cricket, since both devices have
the Murata chip.
The purpose of the Bat chip’s program is
to listen continually for any LoRa messages
transmitted by the Cricket. Once it detects a FIGURE 7
message, the messages are parsed and the Bat PCB with LSM303 compass module. The compass module was originally mounted on this PCB before the
information inside each message is recorded. final design utilizing Arduino.
The messages contain the Cricket ID number
and operating mode, and the received signal
strength indicator (RSSI) value. The ABZ chip level to get an accurate heading. The compass
sends these values to the Raspberry Pi via the heading is then transferred from the Arduino
I 2C bus. If the message received is from the to the Pi over a USB serial connection.
Cricket being tracked, the Bat’s chip will send We programmed our own GUI to clearly
a signal back to the Cricket to trigger it to display all the information collected from the
go into Alarm mode. To orient the Bat’s user Bat PCB and the compass module. The main
toward the source of the Cricket’s signal, we screen has basic instructions on how to use
implemented an Adafruit LSM303 compass the Bat, and navigation buttons to access
module. To interface with the compass, we other screens with different features. Our
use an Arduino Nano connected to it over the GUI program reads files that have continually
I 2C bus. updated compass, Cricket ID and RSSI
An example program written by Adafruit information in them. By reading the data files,
polls the compass module continually, current data are always available for access
retrieving acceleration X Y Z and magnetometer by any of the graphical features of the Bat.
X Y Z values, which gives us a heading from We wrote all the code that runs on the
0 to 360 degrees. Using both accelerometer Raspberry Pi in Python and mostly use
and magnetometer readings means that the tkinter and PyQT modules. We adapted
compass direction is tilt compensated, so and modified a handy graphical compass
the user does not have to hold the Bat unit program from an existing Python widget [6].
34*35
#
(CC(
,-
7
,
>
)
6
>
)
6
*2
7
34*35
:;
:;
:;
:;
:;
:;
1==?
34?.=
?.=4= ?
AB=,4<;
AB=,4= ?
0,-%8
0,-<=
1% ?< 4<;
1 % ?< 4@?7
16% ?< 4<;
1% ?< 4= ?
#
:;
:;
:; 1><4,0
6
:; 1)<4,%
6 )
& EC 0 ,14 47,?
>
7 D 0 ,14 0-8
:; 37@'5 34*35
34*35 7 D
34 ,1 ,?,0'@47,? 6 < E
34 1:47'
>
347' 1:47' 2
1:4,.6 4<=
6 )
0 ,07?47.
:; 1:47'
1, <4 =,<
1, <4 <,=
0> ,07?4?.
000
000
1, <4,8
1, <4;,,
) 6
>
1:4,.6 4<= :;
# FIGURE 8
2 2 *2 1:4,.6 4<= 0;?
Bat schematic diagram. The
00
00
34*35
1:4,.6 4<=
1:4,.6 4<= * 7'0
circuit is similar to that of the
Cricket, except there are no
-.//01/
LEDs or switches. There are
6
)
>
6 )
also lines for an I2C connection
#
with the compass module, as
originally planned.
18 CIRCUIT CELLAR • MARCH 2020 #356
THE COLONY
BAT Bat The Colony aspect of the project was
PCB designed, but not implemented, because
915MHz LoRa 3.3V
CRICKET
TX ⁄ RX
we did not have the time to increase the
AAA cell Cricket 915MHz LoRa
scope of our project. However, the Bat and
Murata
×2 PCB TX ⁄ RX type Cricket working successfully is enough to
FEATURES
FEATURES
CONCLUSION
Our goal was to use LoRa radio technology
in a new and exciting way. The SARNet rescue
system is a departure from the typical IoT
usage for LoRa. We hope using LoRa in this
way will help to pioneer future LoRa-based
professional safety systems. In the end, we
produced a working proof of concept for
SARNet. We successfully use LoRa as a radio
location technology, by combining the power
of Raspberry Pi, Arduino and the Murata chips
on our self-made PCBs. FIGURE 10
The Cricket works as a compact design, Bat handheld GUI. The left area is for selecting functions and settings, the top right is the compass indicator,
and the bottom right gives amplitude and direction of detected Crickets. The length of the red line represents
while retaining long battery life, and the Bat
amplitude.
functions as planned, despite the complexity
and number of components involved. Our
team was surprised that the range exceeded printing. Above all, SARNet showcases much
1.8km in clear conditions, and we are proud of of what we have learned over the past 3 years,
how well the Cricket and Bat devices worked along with our group’s creativity and
together. teamwork skills. We completed all the
Our project is an excellent engineering objectives we set out at the beginning of the
exercise for embedded and GUI programming, term, and collectively agree that our capstone
Linux systems, PCB design, RF design and 3D project was a complete success.
IT’S HERE...
The NEW
PicoScope ®
By
Devlin Gualtieri
FEATURES
difficult to synthesize. As a consequence, we’ll
have 118 chemical elements for quite a while.
DEVICE OVERVIEW
My desktop circuit (Figure 2) operates in
several modes. It will display the symbols for
all 118 chemical elements, either sequentially
or in random order. In the sequential mode,
it displays the symbols in order of atomic
number, from hydrogen (H) to oganesson
(Og). In the random mode, it first displays CIRCUITRY
the atomic number, and then the symbol. The characters are displayed on two 8×8
This latter mode is useful for learning the LED matrix displays that have a total of 128
association of the atomic number and symbol. LEDs. The LED matrix displays used were
It could also serve as the basis for a periodic Luckylight KWM-R30881CPGB, which are
table memory game. available from a variety of sources. These
The device can be powered from a 5V have the LED cathodes connected to the rows.
charger. The current demand is surprisingly In each display, the LEDs are wired in a
low—10 to 12mA—because the matrix display matrix of eight columns and eight rows, with
LEDs are very efficient. As a consequence, the LED cathodes connected to the row lines.
nearly any 5V charger can be used as a power If you happen to have displays in which the
supply. There’s provision for intermittent anodes are connected to the row lines, you can
operation in either sequential or random use the hardware without change and invert
mode by pushing a button, and this is a useful some values in the microcontroller (MCU)
mode when using battery power. source code. The LEDs are multiplexed for
In my device, I incorporated a battery display by supplying the proper 16 data bits
holder for three AA batteries. These have for each row to the column lines, and cycling
enough voltage to power the PIC and display. through the rows. Since there are 16 columns
Since alkaline AA batteries have a capacity and 8 rows, we need 24 I/O pins to drive the
of about 2,000mA-hours, this means that display. Additionally, we need two data lines
theoretically, the battery supply should as an interface for an I 2C serial EEPROM that
operate the device continually for 200 hours, contains the character set (that I’ll described
or about 100,000 push-button cycles. shortly) and a mode switch.
I used a 40-pin MCU, the Microchip
$
$
1
!
./ # %
; )0
#,+ %
3
1)
./ . .
1
211 6 73. &:3:
;
39>? 3--2 &3:!
39>? 3--2 -2 3: 1) 1)
./ 1
39>? 3--2 -23:1 . -
!
39>?! 3- -2 & 3: > -
! !
3-184, -23: +7 -
1 1
39>? 3- -21 -23: +- .++
1) 39>? 3=3-2 ,283:
; 11 !
39>?1 3=>3-2! + 3 97?
;
39>? 3=+-2 + !3! 97?
9+74,2 + 3 97?
1
9+749 8 + 131 97?!
!
97?; 389+9 3<3 97?1
!
97?1 389+, 8<3! 97?!
97?
3 +93
1
97? FIGURE 3
97?
;
3 +4 +,31
97? Microcontroller circuitry for the
97? 3 + + 3 97?
97?
3 + + 3
97? Periodic Table Desktop Trainer. To
.++ .++ enable a low current sleep mode for
,!'-
battery longevity, the serial EEPROM is
powered by one of the PIC I/O pins.
The current drain in sleep mode is just
200nA.
22 CIRCUIT CELLAR • MARCH 2020 #356
1/
1/
1/!
1/
1/
1/
1/0
1/
1/
1/!
1/
1/
1/
1/
1/
storage for the character set is slightly less
than 2KB. The 256KB capacity of this EEPROM
) ! ! ) ! !
/ ) ! 0 / ) ! is certainly overkill in this application, but it’s
hard to source less dense serial EEPROMs. Since
1/
23/
we want to minimize battery drain in the MCU’s
sleep mode, this serial EEPROM is powered by
23/ )
1/0 )
one of the PIC I/O pins. The pull-up resistors
1/ 0
23/ 0
for the mode pins are powered by the same
I/O pin.
1/
23/)
There are quite a few connections from the
PIC pins to the LED matrix displays, and many
23/
1/
of the signal line conductors need to cross
1/
23/! each other. Figure 5 shows the component
side view of the main circuit board. While
1/
23/
this is easily done in a multi-layer PCB, I use
boards with a single copper plane that I etch
23/0
1/)
for my own circuits. To simplify construction,
I mounted the LED matrix displays on a
daughter board that plugs into the MCU
FIGURE 4 board. The daughter board still requires a
Connections for the LED matrix displays. The displays used are Luckylight KWM-R30881CPGB, which are
few jumper wires to route the display signals.
available from a variety of sources. Other LED matrix displays can be used, but the pin-outs may differ from
Figure 6 shows the front and bottom views
those shown here. These displays have the LED cathodes connected to the row lines.
of the final assembly, showing the daughter
board placement before insertion into the
plastic case.
The Periodic Table Trainer operates in
several modes that are selected by the logic
(.
signals present on the connections to PIC pin-
37 (RB4) and pin-38 (RB5). These are set at
&'() -
a logical “1” by the two 100kΩ resistors, and
they are set ,+
to a logical “0” by connection
to ground by switches. When B4 is at zero,
the device operates in a single-shot mode, in
!" #$%&'()* +#,+% which one element is shown after each reset.
When B4 is a one, the device continually
shows elements. If B5 is at zero, a random
element is displayed each time, and when B5
is a one, the elements are displayed in the
order of their atomic number. In that case,
the displayed element is stored in the PIC
non-volatile memory so that the order is
preserved between button presses in single-
shot mode.
CHARACTER SET
I originally wanted to use 16-segment
FIGURE 5
alphanumeric displays, but these weren’t
Component-side view of the main circuit board for the Periodic Table Trainer. The header for in-circuit serial
programming is at the top left with the mode connections nearby. Also seen are the three, eight-position
available in the desired large size. The 8×8 LED
single inline sockets that connect to the daughter board that hosts the LED matrix displays. matrix displays were a good second choice.
circuitcellar.com 23
FEATURES
lowercase “dangler” characters—g, j, p, q
and y—drop below the baseline of the leading
uppercase characters. While no chemical
elements have symbols that require either
uppercase or lowercase j or q, I included
these for completeness.
The symbols for the chemical elements are
one or two characters, and these are easily
displayed on two, side-by-side 8×8 matrix
displays. However, the atomic numbers can
be as large as 118. While you might initially
think that we need three matrix displays
to accommodate the atomic numbers, the
leftmost digit is the slender character one.
I was therefore able to squeeze all the
necessary numbers into two matrix displays
in my character set. The row data are stored
as sequential bytes in the serial EEPROM.
Figure 7 shows how.
EEPROM PROGRAMMING
Integrated circuit (IC) technology has
advanced considerably since the late 1970s,
when I built my first home computers. At
that time, erasable read-only memory chips
had just a few kilobytes of data space,
and they were erased only by exposure to
intense ultraviolet light. The IC packages had
windows that allowed the ultraviolet light to
penetrate the silicon chips and erase them by
FIGURE 6
recombining the electrons and holes in the
Front (above) and bottom (below) views of the final assembly, showing the daughter board placement before
memory capacitors (Figure 8). Today, read-
insertion into the plastic case. A few of the jumper wires on the daughter board that translate the interface
only memory chips have memory space that pins to the proper matrix display pins can be seen. Some of these jumpers are hidden beneath the displays.
is orders of magnitude greater, they’re erased The symbol for silver, Ag, is shown on the top-view photo. The bottom-view photo shows how the daughter
by a quantum tunneling effect and they’re board plugs into the microcontroller board, and how the LED matrix displays plug into the daughter board.
called “electrically erasable programmable Single-row inline sockets are used for the connections.
read-only memories” (EEPROM).
Several years ago, the 24C08 was a
popular EEPROM for MCU circuits because
it was serially alterable by an I 2C interface.
This device contained 8KB of memory, which
was usually sufficient for most applications.
Today, this device has been superseded by the
24C256, a plug-compatible device with 256KB
of memory. Not surprisingly, the 24C256
chips are available at a lower price than that
of the 24C08, so I could hardly complain when
I used this chip to store my 2KB character set.
The character set initially needs to be
loaded into the serial EEPROM. There are
many choices for purchase of a device
programmer, but, if you just need to program
a device for the Periodic Table Trainer, that’s
an unnecessary expense. One of my many FIGURE 7
Raspberry Pi computer boards solved that Character set coding to hexadecimal numbers in the serial EEPROM. The character set is a modified 5x7
problem, because these boards have an character set in which the lower-case “dangler” characters rise from the lowest row.
24 CIRCUIT CELLAR • MARCH 2020 #356
online repository.
The I 2C is not activated by default on the
Raspberry Pi, but it’s a simple procedure
to do that using the raspi-config program
in the Raspbian operating system. Run the
configuration program by typing the following
in a command line:
sudo raspi-config
ls /dev/*i2c*
FIGURE 9
Using a Raspberry Pi to program an
The Raspberry Pi will respond by indicating
EEPROM memory chip. Fortunately,
the 24CX chips will operate from a 3.3V ( that the user I 2C system, i2c-1, is active.
supply, so we can steal voltage from
the Raspberry Pi I/O header pins. The 4 5
/dev/i2c-1
Raspberry Pi has I2C interface pins
67
,- ,
,) ,)
sudo apt-get install -y i2c-tools
FEATURES
python i2c_programmer.py 40 : – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
50 : 50 – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
60 : – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
CIRCUIT VARIANTS
As with all my PIC projects, I wrote the 70 : – – – – – – – – – – – – – – – –
firmware using the PICBasic Professional
compiler from ME Labs [2]. Because I use FIGURE 10
Linux exclusively, I run an older version of this When the serial EEPROM is connected, you will see this display, which indicates that there is a device at hex
compiler and its associated programmer on a address 0x50, after entering the command: i2cdetect -y 1
www.easyOEM.com
email: sales@easyoem.com
Toll-free: +1(866)66-EZOEM
-Testing
We do much more...
-Design Checking -PCB Coating -MCU/CPLD/FLASH/EEPROM Programming
-Wiring Harness Assembly -Injection molding
-Printing -Labeling -Packaging -Certification
-Stocking -Distribution -Shipping -Customs Declaration
“Just focus on your design. We do the rest for you!”
26 CIRCUIT CELLAR • MARCH 2020 #356
By Wolfgang Thieme,
Chief Product Officer, BehrTech
FIGURE 1
LPWAN architecture
FEATURES
long range and low power consumption downlink message.
(Figure 2). While Wi-Fi and Bluetooth can only Second, though not all, many LPWAN
communicate over tens or a hundred meters technologies employ a lightweight
at best, LPWANs are able to transmit signals asynchronous protocol at the Medium Access
up to 15km in rural areas and up to 5km in Control layer to minimize data overhead.
urban, structurally dense areas. This wireless Pure ALOHA—a very simple random-access
family also provides deep penetration protocol—is a common choice. In pure ALOHA,
capability to connect devices at hard-to-reach a node accesses the channel and transmits
indoor and underground locations. On top of a message whenever data is available.
that, it comes with a simple, small-footprint There is no time-slotted coordination or
transceiver designed to minimize cost and carrier sensing, and even acknowledgment
power consumption on the end node side. of received messages is often bypassed to
The idea is to leave all the heavy-lifting to the further reduce the power footprint.
base station and keep the data frame as short Finally, the one-hop star topology
as possible. introduces great power benefits. While
Long Range: Range is often measured certain mesh solutions (for example, Zigbee
in terms of receiver sensitivity—the lowest or WirelessHART) have been previously
signal power for a message to be detected implemented for battery-operated, industrial
and demodulated. In LPWANs, receiver sensor networks, they consume more
sensitivity can reach -130dBm, as compared power than an LPWAN solution by orders of
to a moderate -70dBm sensitivity in Bluetooth. magnitude. This is because, in a multi-hop
This high receiver sensitivity is typically mesh topology, a device must spend extra
achieved by reducing the signal bandwidth energy on listening for and relaying messages
and thus experienced noise levels (such as from other devices. On the other hand, a star
(Ultra-)Narrow Band) or adding processing network allows devices to “turn off” and stay
gain (like Spread Spectrum)—both come at most of the time in sleep mode (Figure 3).
the cost of lower data rates. All that said, power efficiency can drastically
Besides these special modulation vary among LPWAN technologies. This is
techniques, the use of sub-GHz frequency
bands in most LPWAN solutions, instead of the
popular 2.4GHz band, further improves range
and penetration capability. As the wavelength
is inversely proportional to free space path
loss, the long radio waves in sub-GHz systems
can travel over kilometers in open areas.
Compared to 2.4GHz signals, they can also
better penetrate through walls, trees and
other structures along the propagation path,
while bending farther around solid obstacles.
Low Power: LPWAN systems adopt multiple
approaches to optimize power efficiency,
securing many years of battery life on end
nodes. First, outside the transmission time,
the transceivers are put into deep “sleep”
mode whereby very minimal power is
consumed. In bi-directional communications,
a listening schedule is defined so that the
device is “awake” only at predefined times or FIGURE 2
shortly after an uplink is sent to receive the Wireless IoT landscape
28 CIRCUIT CELLAR • MARCH 2020 #356
FEATURES
a much smaller system bandwidth (200kHz)
than LTE-M (1.4MHz) and is thus a better choice
for underground and indoor applications.
Thanks to their operations in the licensed
spectrum, cellular LPWAN solutions introduce
great Quality-of-Service advantages.
That’s because there is no co-channel
interference from external systems. They
additionally employ time and frequency
synchronization alongside handshaking for
very high transmission reliability and network
scalability. That being said, these mechanisms
come at the cost of power efficiency due
to the required data overhead [4]. Besides
FIGURE 4
consuming extra energy, handshaking makes
LPWAN technologies positioning
the battery life of a node unpredictable,
since it’s difficult to decide how many times
the process needs to be repeated for each Telensa are representatives of UNB-based
transmission. LPWAN technologies.
Compared to the unlicensed counterparts, UNB signals, however, introduce very low
cellular LPWAN provides relatively higher peak data rates which translate into long on-air
data rates (greater than 1Mb/s for LTE-M and radio time. For example, systems like Sigfox
250Kb/s for NB-IoT), which further increases feature a 100Hz signal bandwidth and a data
power budget requirements. Available as rate of 100bps (EU mode), which means a
managed connectivity services from telecom 12 byte transmission could last for as long as
providers, their coverage at remote locations 2 seconds. This presents several challenges.
might not be guaranteed, and network First, long on-air time inevitably comes with
longevity is at stake due to the unforeseeable more power usage as the transceiver needs to
technology sunsetting. If your IoT end nodes be active for a longer period of time. Second,
are mobile, NB-IoT won’t be in your best under EU duty cycle regulations (1%) imposed
interest as it’s mostly designed for stationary by ETSI, a device operating in the 868MHz
devices. band can “speak” for only 36 seconds per
Given their pros and cons, cellular LPWAN hour. As such, the longer each transmission
options are best suited for higher data rate IoT takes place, the fewer total messages are
use cases and in smart city scenarios where allowed to be sent. In the US, FCC regulations
telecom infrastructure is mature. On the other limit the frequency occupation time of each
hand, they aren’t optimal for applications message to 0.4 seconds, requiring a different
where ultra-low power is at a high priority. network design with a higher data rate and
The same goes for industrial deployments shorter overall network range.
which often take place at remote locations Another issue with long on-air time is
and require the supported communications impaired Quality-of-Service (Figure 5).
network to sustain over several decades. Coupled with asynchronous communications,
longer time in the air interface exposes a
2. Ultra-Narrowband – UNB (License-free message to a higher chance of data collision,
Spectrum): To minimize the subjected noise especially in a crowded license-free spectrum
level and optimize receiver sensitivity, Ultra-
Narrowband solutions contract the signal
bandwidth to as small as 100Hz. Besides
extensive range and excellent penetration,
UNB approach allows for high spectral
efficiency as each signal occupies very minimal
channel bandwidth. High spectral efficiency
means that more messages can fit into an
assigned frequency band without overlapping
with each other, thereby improving overall FIGURE 5
system capacity and scalability. Sigfox and Long on-air time makes UNB signals highly susceptible to interference
30 CIRCUIT CELLAR • MARCH 2020 #356
of sub-packets over time and frequency additionally diminish Doppler fading effects.
significantly mitigate their risk of being hit by And, even if some sub-packets suffer from
interferers (Figure 6). On top of that, even if deep fades, FEC ensures that message
up to 50% of sub-packets are affected, Forward detection and retrieval is minimally affected.
Error Correction ensures that the full message With this, Telegram Splitting systems can
can be retrieved at the base station. connect end nodes moving at up 120km/h
FEATURES
As such, although asynchronous [2]—a feature not available in previous LPWAN
communication is used for ultra-low power technologies. Figure 7 quickly recaps how the
benefits, Telegram Splitting delivers very high four major LPWAN technology types compare
interference immunity and system capacity. in different network criteria.
Specifically, a single base station is able to
handle more than one million messages a day CONCLUSION
as specified in the ETSI TS 103 357 standard Providing a unique combination of long-
[3]. Also, in an Industrial IoT-equivalent range, low-power and low-cost advantages,
scenario, Telegram Splitting has been proved LPWANs are poised to become the backbone
to drastically outperform Chirp Spread of battery-operated IoT sensor networks
Spectrum in LoRa in terms of message across verticals. Nevertheless, not all LPWAN
deliverability and network reliability [8]. technologies are created equal, and there
In addition to Quality-of-Service, the exists a persistent trade-off between Quality-
characteristics of Telegram Splitting, at the of-Service and battery life among most
same time, offer great power benefits. After solutions. At the same time, the lack of
the transmission of each sub-packet, there standardization and limited mobility support
is a significantly longer transmission-free are other challenges not to be overlooked.
period in which the node goes into “sleep Recognized for its versatile technical design,
mode”. Short on-air time and longer off- Telegram Splitting represents a new LPWAN
air time minimize power consumption while generation to surpass these limitations and
giving the battery time to recover, which in provide a robust, scalable and power-efficient
turn significantly extends battery life. architecture for massive-scale IoT
Short time in the air interface of sub- deployments in the industrial and commercial
packets combined with coherent demodulation marketplaces.
LOOKING TO
ADVANCE
YOUR
CAREER?
Be a part of one of the
top Electrical Engineering
programs in country
and experience the
Bearcat Promise!
l(_t
University of
CINCINNATI I ONLINE ucengineer.o nline
32 CIRCUIT CELLAR • MARCH 2020 #356
By Jeff Child,
Editor-in-Chief
SPECIAL FEATURE
best accuracy that meets Class-II regulatory
limits. For example, under resting-only
measurement conditions, the solution
provides the following accuracies: Systolic
Error: Mean = 1.7mmHg, Std Dev = 7.4mmHg;
FIGURE 1
Diastolic Error: Mean = 0.1mmHg, Std Dev = Including a complete integrated optical sensor module, an MCU sensor hub and a sensing algorithm, the
7.6mmHg. For reference, Class-II regulatory MAXREFDES220# optical blood-pressure trending solution can be embedded into smartphones or wearables.
limits are |Mean Error| ≤ 5mmHg, and Std Dev
≤ 8mmHg. This solution requires calibration
every four weeks to maintain the above According to the company, The STHV64SW
accuracies. This is based on independent has already been designed into innovative
testing and a limited number of subjects at high-tech equipment such as ultrasonic flaw
resting condition. detectors for industrial non-destructive
testing (NDT), as well as into affordable
SWITCH IC FOR ULTRASOUNDS and portable handheld medical echography
Ultrasound systems require high levels of devices that are raising standards of pre-
resolution and high-integration to facilitated natal care available to remote and rural
portable design requirements. Meeting communities.
these needs, in October, STMicroelectronics The highly integrated 64-channel analog-
(ST) released the STHV64SW, a 64-channel switch IC comes in a small FCBGA (flip chip
high-voltage analog-switch IC offering high ball grid array) package as does the recently
integration for advanced ultrasound systems,
probes and other applications.
The IC comprises a shift register for
logic control signals, self-biased high-
voltage MOSFET gate drivers and N-channel
MOSFET switches capable of providing up
to ±3A peak output current (Figure 2). The
switches respond quickly, with 1.5µs turn-on
time, and low quiescent current saves power
when turned off. Low on-resistance with low
distortion and crosstalk ensure high signal
integrity. Thermal shutdown and under-
voltage lockout (UVLO) are built-in to ensure
safe operation.
ST says it created this advanced device
leveraging proprietary BCD6s-SOI (silicon
on insulator) and BCD8s SOI process
technologies to combine precise analog
circuitry (Bipolar), low-voltage CMOS logic,
and robust DMOS power stages on the same FIGURE 2
chip. The STHV64SW can operate with various The STHV64SW, a 64-channel high-voltage analog-switch IC, comprises a shift register for logic control
combinations of high-voltage supplies up to signals, self-biased high-voltage MOSFET gate drivers and N-channel MOSFET switches capable of providing
-100V/+100V, 0V/200V, or -200V/0V. up to ±3A peak output current.
34 CIRCUIT CELLAR • MARCH 2020 #365
DUAL-FUNCTION SENSORS
High integration is an ongoing theme
for mobile and wearable medical system
designs. Part of the game is getting multiple
functions on one chip. Along such lines,
Infineon Technologies offers its XENSIV TM
DPS368, a miniaturized digital barometric
pressure sensor that is capable of measuring
both pressure and temperature (Figure 4). It
offers an ultra-high precision of ±2 meters
SPECIAL FEATURE
and a low current consumption for precise
measurement of altitude, air flow and body FIGURE 4
The XENSIV TM DPS368 is a miniaturized digital barometric pressure sensor that is capable of measuring
movements. This makes the DPS368 ideal
both pressure and temperature. It offers an ultra-high precision of ±2 m and a low current consumption for
for mobile applications and wearable devices precise measurement of altitude, air flow and body movements.
offering, for example, activity tracking and
navigation. Additionally, the sensor can be
used in home appliances for airflow control,
in drones for flight stability and in medical
devices such as smart inhalers.
Due to its robust package, it can withstand
operation 50 meters under water for one hour
(IPx8) and protects the sensing cells against
dust and humidity. As a result, the board
handling in an assembly line is also facilitated.
The 8-pin LGA package with its small dimensions
of 2.0mm x 2.5mm x 1.1mm saves up to 80%
space compared to other waterproof sensors,
says Infineon.
The pressure sensor element is based on
a capacitive sensing principle that guarantees
high precision even during temperature
changes. The internal signal processor
converts the output from the pressure and
temperature sensor elements to 24-bit
results. Calibration coefficients stored in the
sensor are used in the application to convert
the measurement results to high accuracy
pressure and temperature values. DPS368
provides quick feedback due to a measurement
rate of up to 200Hz and fast read-out speed.
The integrated FIFO memory can save up to
32 measurement results, allowing for power-
savings on system level.
The XENSIV DPS368 sensor features an
average low power consumption of 1.7μA for
pressure measurements at 1Hz sampling rate.
In standby mode, this is reduced to 0.5μA.
The sensor operates at pressure ranges
from 300 to 1200hPa (hectopascals) and
temperature ranges from -40°C to +85°C with
a temperature accuracy of ±0.5°C. Sensor FIGURE 5
measurements and calibration coefficients The QN9090 and QN9030 devices are powered by an Arm Cortex-M4 running at 48MHz and include up
are available through the serial I²C or SPI to 640KB onboard flash and 152KB SRAM. The QN Series devices target diverse IoT applications such as
interface. personal healthcare devices, sports and fitness trackers and connected appliances.
36 CIRCUIT CELLAR • MARCH 2020 #365
FIGURE 7
wireless communication, while also providing The RSL10 is a family of tiny
a more secure way to answer the Bluetooth Bluetooth 5 certified radio SoCs in a
security risks such as eavesdropping, ready-to-use 6mm x 8mm x 1.46mm
tampering and viruses. System-in-Package (SiP) module.
RSL10 devices can be easily designed
The RX23W is based on Renesas’ RXv2
into any “connected” application
core, which provides high computational including sports/fitness or healthcare
performance with improved FPU and DSP wearables, smart locks and appliances.
functions and operates at a maximum clock
frequency of 54MHz. The RX23W provides
full BLE support including long-range and
mesh networking functions and achieves
the industry’s lowest level reception mode
peak power consumption at 3.0mA, says
SPECIAL FEATURE
Renesas.
Furthermore, it integrates a rich set of
peripheral functions that are indispensable
for IoT equipment, including security, touch
key, USB, and CAN functions. These functions TINY BLUETOOTH RADIO
allow the RX23W to implement both system For wearable healthcare devices that need
control and Bluetooth wireless functions to partition the Bluetooth radio separately,
for IoT endpoint equipment such as home ON Semiconductor offers its RSL10 family of
appliances, health care equipment, and Bluetooth 5 certified radio SoCs with a ready-
sports and fitness equipment on a single to-use 6mm × 8mm × 1.46 mm System-in-
chip. In addition, the RX23W’s Bluetooth Package (SiP) module. Supporting BLE wireless
mesh functions make it optimal for industrial profiles, RSL10 devices can be easily designed
IoT equipment collecting sensor data within into any “connected” application including
a factory or a building. sports/fitness or healthcare wearables, smart
The RX23W supports long distance locks and appliances (Figure 7).
communication (long range: 400m), 2Mbps The RSL10 SIP features a built-in antenna,
data throughput, and Bluetooth mesh RSL10 radio, and all required passive
networking, supporting the full functionality components in one complete, miniature
of BLE 5.0 Low Energy. Furthermore, the solution. Certified with the Bluetooth
RX23W achieves a 3.0mA reception mode Special Interest Group (SIG), the RSL10 SIP
peak current—the industry’s lowest level, significantly reduces time-to-market and
according to Renesas—and a reception development costs by removing the need for
sensitivity level of -105dBm at 125Kbps. any additional RF design considerations.
In addition to a Bluetooth 5.0 basic With the 2Mbps speeds possible with
protocol stack package, Renesas provides Bluetooth 5 alongside low power consumption,
API functions that conform to all standard the RSL10 family provides advanced wireless
profiles, including a Health Thermometer functionality without compromising battery
Profile (HTP), an Environment Sensing application life. RSL10 consumes just 62.5nW
Profile (ESP), and an Automation I/O profile while in Deep Sleep mode, and 7mW peak
(AIOP). These allow users to start prototype receive power. RSL10’s energy efficiency was
development and evaluation quickly and can validated in 2018 by the EEMBC’s ULPMark
speed up the user’s development process. where it became the first device in the
The RX23W integrates Renesas’ Trusted benchmark’s history to break 1,000 ULP
Secure IP (TSIP) as part of its built-in Marks and produced Core Profile scores more
hardware security engine. The TSIP driver than twice as high as the previous industry
uses strong encryption key management leader. The RSL10 SIP is offered in a 51-pin
with hardware accelerators to securely boot 6mm ×8mm ×1.46mm package.
customers’ IoT devices and protect them from Mobile and wearable medical device
security threats. Cryptographic Algorithm designers are hungry for highly integrated,
Validation Program (CVAP) certification is low-power, wirelessly connected solutions to
expected. The RX23W is available now in meet their high demands. Makers of MCUs,
both 7mm × 7mm 56-pin QFN and 5.5mm × analog ICs and sensors will continue to
5.5mm 85-pin BGA packages with 512KB of address those demands with new innovative
on-chip flash memory. products.
38 CIRCUIT CELLAR • MARCH 2020 #356
Example from EzPCB of a complex PCB assembly job involving multiples types and sizes of components
The assembly phase is a critical step in the production of a board-level product. Fortunately,
there’s a rich set of companies offer all types of PCB assembly services—ranging from
quick turnaround prototypes to large volume runs. This roundup summarizes the PCB
assembly service capabilities available today and whose providing them.
Advanced Assembly launched in 2004 with a Beta Layout’s PCB-POOL operation is Europe’s
new way to assemble just a few boards in 3 days largest manufacturer of PCB prototypes, with
or less: Quick turn PCB assembly. The company over 36,000 customers worldwide. You can
has assembled over 40,000 unique designs in calculate the prices instantly online using the
the last decade for some of the largest and PCB-POOL’s Online price calculation. PCBs using
most innovative tech companies in the world, special technologies and materials can also
including many Fortune 500 organizations. be sourced directly from the company, from
Services Summary: Quick turn PCB prototype to series production quantities.
assembly, DFA verification, first article service, Services Summary: Prototype PCBs or
turnkey assembly, PCB fabrication: smallest small series PCBs in 1-6 working days; Laser-
0.25" × 0.25", largest 20" × 24" cut SMD-Stencils in 1-3 working days; Fully
populated SMD and THT prototype boards
PCB Assembly Services: SMT and thru- in 2 working days; Support for PCBs with
hole; Press fits; Parts in any format; ISO embedded UHF RFID modules
9001:2015; Passives down to 01005; BGAs and PCB Assembly Services: Can perform
VFBGA; Box build; Leadless chip carriers / CSP; assembly on PCB prototypes and “small
Double-sided SMT assembly; Fine pitch to 08 series” (up to 50 pieces) with SMT and THT
Mils, BGA repair and reball; Part removal and components starting with just one component
replacement; RoHS and leaded; Flying probe, and from one piece. SMT and THT from size
3D BGA X-ray and functional testing 0402 SOIC, PLCC, TSOP, QFP, BGA Diverse SM-
exotic and SM - connectors.
circuitcellar.com 39
TECH SPOTLIGHT
EasyOEM manufacturing tasks and dispatch
then to various factories. Those tasks include Imagineering acts as a reliable source for
PCB soldering, wire harness assembling, high quality and on time PCBs. Its quick turn
mechanical assembling, chip programming prototypes not just intended for testing and
and more. verification of designs. Every one of its boards
meet IPC-A-600 F (Class2) standard, be it
prototype or production. Specializes in quick
EZPCB turn prototypes and rapid turn production.
www.ezpcb.com Services Summary: PCB capabilities
Location: Shenzhen, China include: 22-layer fabrication, hole sizes down
to 8 mil plated and 5 mil laser drilled, 3 mil
EzPCB is an online provider of PCB line width and spacing, 6 oz. copper and a
manufacturing and PCB assembly products maximum PCB thickness up to .300". Supports
and services. EzPCB has supplied high quality Multi-Layer, Rigid and Flex PCBs.
PCBs—and related products and services— PCB Assembly Services: Same day and
for over 2,000 customers from more than 40 24-hr turnaround; Prototype to production
countries. Its customers include amateurs, volumes; SMT; Flip chip; Thru hole; Flex
small businesses, universities and many circuit assembly; Cable assemblies; PB-free
world-class companies and organizations assembly; Wire harness assembly; AOI –
including Jet Propulsion Laboratory, Micron, Automated Optical Inspection; BGA X-Ray
Siemens, STMicroelectronics and Rohm. Inspection; Functionality testing
Services Summary: PCB manufacturing,
PCB assembly, cabling, enclosures, keypads,
stencils and components, one-stop turnkey
services and design consultation
PCB Assembly Services: For prototype
assembly, the lead time is about 2 weeks for
PCB+ order component+ assembly. For mass
production assembly, the lead time is about
3-4 weeks for all process.
FCT
www.flexiblecircuit.com
Location: Minneapolis, MN
SMT assembly requires screen printing frames and frames (framed and unframed stencils)
Specializes in the complex, advanced technology of
which present excellent stability over time and high wear resistance. Shown here is an PCB fabrication and assembly, producing high quality
example from PCBWay of a stencil PCB, ready to be used during the assembly phase with multi-layered PCBs from elaborate layouts. Expertise in
surface mount devices (SMDs). circuit boards is not limited to PCB manufacturing, but
circuitcellar.com 41
TECH SPOTLIGHT
focused on mass volumes and cost-control through
rigidity, Screaming Circuits specializes in fast and flexible
prototype and short-run assemblies. It offers short-run SLINGSHOT ASSEMBLY
production for higher volumes without forecasts, NRE www.slingshotassembly.com
charges or volume commitments. If you need to go a step Location: Denver, CO
further with scheduled production, its parent company
Milwaukee Electronics provides a full range of electronics SlingShot Assembly’s state-of- the-art production facility
manufacturing services, from original design to volume handles prototype and low-volume production orders. From
production and life-cycle management. a single board and up, they use the latest software, processes
Services Summary: PCB fabrication, PCB assembly, and equipment to produce high-quality assemblies fast and at a
parts sourcing, layout engineering, prototype to volume reasonable price. Customers use the company’s assembly services
production transitioning for early prototype runs when they need high-quality assemblies
PCB Assembly Services: Turn times as short as 24 completed in a matter of a few days. Typically, the quantities for
hours; 1 to 5,000 units; Class II Inspection standard early prototypes range from a single board to about 50. Once
and Class III Inspection available; Lead-free RoHS initial testing of early prototypes is completed, many customers
Certification and ITAR compliance screen available; Lead move to late-stage prototyping or pre-production assemblies.
Free (RoHS) options; Supports 2-Sided SMT; SMT sizes: Services Summary: Specialist in PCB assembly
0201 or larger; Fine pitch: 16 mil (.4 mm) or greater; BGA PCB Assembly Services: Quick turn PCB assembly, standard
pitch: 16mil (0.4mm) or greater; BGA Ball count: Up to assembly turn time: 2 – 3 days (turn times as fast as 24 hours
1932Call for larger parts available), prototype and low-volume production (single orders
welcome, 100% turn-key components, turn-key board fabrication
encouraged, test, conformal coating, limited box build services,
SEEED STUDIO web-based BOM sourcing and more.
www.seeedstudio.com
Location: Shenzhen, China
WELLPCB
Seeed is a hardware innovation platform tailored www.wellpcb.com
for makers to help grow inspirations into differentiating Location: Australia
products, by providing accessible technologies WellPCB, registered in Australia, is a daughter company of
with quality and delivery guaranteed. Seeed Fusion Uniwell Circuits. It’s focused on PCB fabrication and PCB assembly
Service offers one-stop prototyping services for PCB turnkey services and is capable of delivering over 10,000 varieties
manufacturing, PCB assembly and other electronic and monthly. WellPCB can produce quick turns to meet 24-hour
mechanical customized services such as CNC Milling, 3D delivery for double-sided PCBs, 48-hour for 4 to 8-layer and 120-
printing and PCB layout services. hour for 10-layer or higher PCBs.
Services Summary: Seeed Studio offers four kinds of Services Summary: PCB fabrication, PCB assembly turnkey
Fusion electronic service which includes Prototype PCBs, services
PCB assembly, stencil, 3D printing, PCB layout. PCB Assembly Services: SMT, thru-hole assembly, SMT/Thru-
PCB Assembly Services: Quick-turn PCBA service: hole mixed, single or double sided placement; consigned
get the entire PCBA produced in 20 working days from components or partially components procurement; BGA and Micro
order confirmation to dispatch, including sourcing of parts. BGA installation and rework with 100% x-ray inspection,
Prototype, small or large batch: Seeed can cater for as little automated optical inspection, aqueous cleaning and PCB testing
as a single piece 1 to 8000 pieces. Assembly types: SMT services; Capability to handle virtually any device including all
assembly, BGA assembly, through-hole assembly, mixed types of BGAs, CGAs, QFNs, DFNs, CSPs and Sons.
assembly, kit assembly
42 CIRCUIT CELLAR • MARCH 2020 #356
Datasheet:
Industrial Power Supplies
Factory Functionality
DATASHEET
FIGURE 1
By Jeff Child, Power supplies require special cooling and high levels of ruggedness in order
to operate in industrial system environments.
Editor-in-Chief
Over the past couple years, there’s been an increasing trend toward new power
supply products that have some sort of application or industry focus. That means
supplies that include special performance specs or tailored packaging intended
for a specific application area such as industrial control and factory automation.
DATASHEET
5W AC-DC Converter Boasts AC-DC Supplies Meet 650W AC-DC Supplies Offer
Wide Input Voltage Range Green Power Demands Cooling Options
Aimtec’s AMEL5-277NZ is an CUI’s VOF open frame AC-DC power The PQU650 series from Murata are
encapsulated 5W AC-DC converter that supply series delivers higher efficiency open-frame, 650 W-rated AC-DC power
has been designed to offer greater and improved no-load performance to supplies. Murata says the PQU650
economies of scale due to greater meet the growing demand for green series offers the highest power-density
production automation, leading to power technology. Featuring industry product on the market, with forced air-
improved reliability and performance. standard footprints, the VOF’s efficient and convection-cooled ambient ratings.
Offering a wide industrial input voltage design, compact size and high reliability The power supplies offer a multitude
range of 85-305VAC and an output make these power supplies well suited of standard features including wide
voltage range from 3.3-24V, this series for a range of consumer, industrial and output voltage adjustment range,
offers a temperature range of -40°C to ITE applications. auxiliary power rails and a high
+70°C. transient capability.
• 6W to 550W
• Universal Input: 85-305VAC/ • Industry standard footprints • Input voltage range of 90-264 VAC
100-430VDC • Efficiency up to 94% • Efficiency up to 95%
• Operating temperature range: • ITE safety certifications • No system fan requirements up to
-40°C to +70°C • Power densities up to 30 W/in. 3 450W up to 50°C
• High isolation voltage: 4,000VAC • Low no-load power consumption • 300 LFM forced air-cooling for 650W
• Regulated output; Low ripple and • Operating temperatures, from at 50°C
noise: 100mVp-p, max. -40°C to 70°C • Certified to EN 60960 and IEC 60601
• Output short circuit, over-current, • Isolation of 4,000 VA 3rd Edition medical standards
over-voltage protection • Safety approval to UL/cUL/IEC/
• Input voltage: 85-305VAC CUI EN 62368-1 (60950-1), TUV IEC/EN
• Output voltage: 3.3V, 5V, 9V, 12V, www.cui.com 60335-1 & CE Marking
15V, 24V
Murata Power Solutions
Aimtec www.murata-ps.com
www.aimtec.com
DATASHEET URLS:
Aimtec www.aimtec.com/site/Aimtec/files/Datasheet/HighResolution/amel5-277nz.pdf
CUI www.cui.com/open-frame-ac-dc-power-supplies
Murata Power Solutions www.murata-ps.com/datasheet?/data/acdcsupplies/pqu650.pdf
44 CIRCUIT CELLAR • MARCH 2020 #356
High Isolation AC-DC Modules 4,080W Supply Operates from 3 Phase 5kW AC-DC Supply is
DATASHEET
The RAC04-K/277 series from The TDK-Lambda brand TPS4000-24 XP Power’s CMP250 is a series of
RECOM delivers 4W of continuous power supply extends the TDK’s existing high peak-power AC-DC power supply
output power (6W peak) in harsh 3000W rated TPS series. Delivering up units developed to support a wide
industrial and household environments. to 4080W output power (24V at 170A) range of healthcare, industrial and
These modules deliver full load output in a 2U high package, the TPS series IT applications. With a highly flexible
power from -40°C to 75°C across the operates from a wide range Delta or combination of electrical and thermal
entire input range of 80VAC to 305VAC Wye 350-528VAC 3-phase phase input. characteristics, these power supplies
and are certified for operation with This industrial power supply is well deliver up to 500W of peak power for
power derating up to 90°C air ambient. suited for use in many applications up to 60 seconds, as well as providing
They have international safety and EMC including test and measurement up to 250W of continuous convection-
certifications for industrial, domestic, equipment, semiconductor fabrication, cooled power.
ITE and household applications additive manufacturing, printers,
lasers and RF power amplifiers. The • 250W convection-cooled rating
• 80-305VAC input voltage range high voltage, three-phase input avoids • 500W peak power
• 150% peak power capability the requirement for costly step-down • IT and medical safety (BF) approvals
• Wide temperature range: transformers and assists phase load • U Channel 4"×7.5" package
-40°C to +90°C current balancing. • 80-300VAC input voltage
• No load power consumption • 5V/1.5A Standby and 12 V/0.6A
<150mW • 400/440/480VAC (nominal) 3-phase auxiliary
• Household and ITE certified Delta or Wye • AC OK signal, inhibit
• 4kVAC insulation • Voltage and current programming • Current share
• Operating altitude up to 5,000 • -40°C (start up) to +70°C operation
meters • PMBus communication XP Power
• 92% typical efficiency www.xppower.com
RECOM • Built in ORing FETs and Active I
www.recom-power.com share for parallel operation
TDK-Lambda Americas
www.us.tdk-lambda.com
DATASHEET URLS:
RECOM www.recom-power.com/pdf/Powerline_AC-DC/RAC04-K_277.pdf
TDK-Lambda www.us.tdk-lambda.com/ftp/Specs/tps4000.pdf
XP Power www.xppower.com/product/CMP250-Series
M a k e y o u r c o d e e v e n f a s t e r, s m a l l e r, a n d s m a r t e r
w h i l e e n s u r i n g ro b u s t n e s s a n d h i g h q u a l i t y.
for RISC-V
We t a ke R I S C - V t o t h e n ex t leve l .
www.iar.com
46 CIRCUIT CELLAR • MARCH 2020 #356
By
FIGURE 1
Colin O’Flynn Photo of the GreatFET One main board
COLUMNS
Cortex
M0
Cortex
M4
T his month I’m looking at a new(ish) open-source
tool useful for embedded security research. This
particular tool is called GreatFET One, and is made
by Great Scott Gadgets. The main board is shown
in Figure 1. You might be more familiar with this company—or
its founder Michael Ossman—because it produces the popular
HackRF Software Defined Radio (SDR).
GreatFET is an extension of a tool started by Travis
USB1 USB 264 KB USB USB0 Goodspeed, called the GoodFET. The original tool was an open-
SRAM source JTAG programmer for Texas Instruments (TI) MSP430
microcontrollers (MCUs). Later iterations become something
LPC4330 called Facedancer, which is used for working with USB devices.
Facedancer enabled interesting research into what happens if
a USB device misbehaves. For example, what if the USB drive
plugged into a public photo printing kiosk could exploit flaws
SPI Flash
2 MB
in the USB stack of that kiosk to take control of it?
GreatFET extends the hardware that made Facedancer
possible by having a platform that provides two USB ports
that can serve as host or device and then lots of I/O. The
general architecture of the platform is shown in Figure 2. For
FIGURE 2
The base GreatFET board has a simple architecture that allows access to many features
a general-purpose “hacking tool” you might notice there is no
of the NXP LPC4330 MCU. specific connectors in this platform such as an IR interface,
circuitcellar.com 47
COLUMNS
USB DEVICE EMULATOR [ self.ep_from_host, self.ep_to_host ],
The GreatFET can serve as a USB emulator. descriptors
If you’ve done USB development you know )
that getting a simple USB device up—such as
a serial port, USB mass storage or similar—
often requires diving into the specific USB stack LISTING 1
on the MCU you are using. With Facedancer, All the USB configuration is done via Python, giving total flexibility into even the endpoint configuration, for
example.
this is all done through Python instead. You
can easily change the functionality of the USB
device you are emulating using just simple
high-level Python changes. Check USB
An example of a snippet of the Drive Image
mass storage configuration is shown in
Listing 1. You’ll notice things like the size of
USB endpoints and what happens on reads
or writes is all configured over Python.
Having such a flexible USB device has many
uses. You’ll find it useful for embedded No
Abort Validation OK?
research (what if we request too much
data?) Meanwhile, as a developer, you’ll
find it useful for validating whether you’ve
properly handled invalid conditions. Yes
You can also use the USB emulator to
serve as a “magic device type” to give new
functionality to old equipment. For example, Copy Image to
some test equipment added USB support for FLASH
saving data files to USB drives. The first problem
is sometimes old devices only work with smaller
drives, which can be hard to find now. Luckily
you can emulate those old drives with GreatFET
and not worry about such problems. The second
Boot New Image
issue is you might want to be logging that
data onto a network instead, and maybe the
device has no network interface. With GreatFET
you can now emulate a mass storage device, FIGURE 3
while, in reality, the data is getting saved to a A device receiving a new firmware file by a USB flash drive can be attacked. This is done by emulating the
network-accessible location. flash drive to swap the firmware file to a malicious version after the original version passes validation checks.
48 CIRCUIT CELLAR • MARCH 2020 #356
# At this point, we can perform whatever communications we need to to use the target device.
# Usually, this is accomplsihed using the send_on_endpoint and read_from_endpoint functions
# for non-control requests, and the control_request_in and control_request out functions
# for control requests.
LISTING 2
A simple example of configuring GreatFET as a USB host device using the Facedancer project
circuitcellar.com 49
the device thinks the firmware will be OK, USB device connected to a target computer
and flashes it onto the system. If no more and as a USB host stack driving a target
verification is done on boot, the device will device.
boot the incorrect firmware. Because the GreatFET is a complete USB
stack, you can do more than just modify
USB INTERPOSER AND HOST specific packets in-flight. You can interject
Another unique feature of GreatFET is its completely new requests to either the device
ability to serve as a USB interposer. Remember or host, or block certain requests. When
PhyWhisperer-USB that I described in my evaluating security tokens, this can be useful
column in Circuit Cellar 352 (November 2019) since you can modify requests in-flight, or
that could sniff USB traffic? Rather than just even forward requests from one device to
doing that, you can use GreatFET as both a another device.
COLUMNS
- <USBEndpoint number=1 direction=OUT transfer_type=3 sync_type=0 usage_type=0 max_packet_size=64 interval=1ms>
LISTING 3
The output of running Listing 2 with a Trezor USB wallet attached in bootloader mode is shown here.
50 CIRCUIT CELLAR • MARCH 2020 #356
L ACM-031
INTEMAX
on a bus interface and write it directly into internal memory—
and thus download over USB as well. This feature is used to
provide a simple logic analyzer that can run alongside other
commands. 10 U169 FPGA board
This means that, with a single GreatFET device, I could
sniff the SPI traffic on a logic analyzer along with performing 5V I/O support
the actual SPI data transactions. This requires wiring the
SPI data lines to the SGPIOn pins, which I can then use the
logic_analyzer backend to record data with.
The parallel data capture feature allows a lot of interesting
future use cases. For example, an extremely low-cost USB
sniffer is possible since you could actually record low/full-speed
USB 2.0 traffic! This would be similar to the architecture of
the PhyWhisperer-USB I presented in November 2019, except
without the FPGA—which is the most expensive component.
Kate Temkin already has a beta of a neighbor (add-on board)
called Rhododendron that provides this feature to GreatFET.
Keep an eye out for its full release.
COLUMNS
there are many planned neighbors (add-on boards), with only
a few in active release currently. Keep an eye out for the Intel high-performance FPGA MAX 10.
rest of 2020 as this project continues to evolve. But if the It's compact and very simple.
examples I’ve talked about in this article sound interesting,
5V single power supply operation.
I suggest trying to dive into it now and see how you can use
INX XCM-026
XILSpartan-7
GreatFET. The hardware itself has been finalized for some
time, so being the first house on the block might just mean
waiting for updated firmware and documentation to perform
the task you need—or even adding the feature yourself. And FGGA484 FPGA board
as new neighbors move in, you’ll just continue to get more
functionality! 5V I/O support
While I don’t discuss a lot of generic tools in this column,
GreatFET has some unique features. It even allows you to
more directly explore USB commands. This type of tool is
useful for both development and usage of USB stacks (both
host and device side), along with security testing of your
USB products. You can also see the link back to a few of my
previous articles, and how the GreatFET functionality would
have simplified the projects I presented.
Hopefully you found some of these examples useful, and it
gave you some ideas for what you might be able to do with
this new open-source tool. Happy hacking!
the kilogram.
By
George Novacek
FIGURE 1
Kibble Scale by Jennifer Lauren Lee, for the U.S. National Institute of Standards and Technology (NIST).
COLUMNS
continued. around the world.
Scientific teams in more than a dozen However, the IPK can gain mass over time due to adsorption of
countries set off to refine the measurement atmospheric contamination onto its surface. Changes in the IPK’s mass over
results. Among them, proudly, a small team of time can be deduced by comparing it to official copies, but this process is
Canadian scientists at the National Research rarely undertaken and does not have the accuracy of the new standard.
Council (NRC) in Ottawa. With the constant Dr Richard Brown, Head of Metrology at the National Physical Laboratory,
improvement of the Kibble scale hardware as said: “The revised SI future proofs our measurement system so that we are
well as factoring in error causing influences, ready for all future technological and scientific advances such as 5G networks,
such as the fluctuating gravitational pull quantum technologies and other innovations that we are yet to imagine.”
caused by the motion of the moon, the As well as the kilogram, the Ampere will now be defined using the
presence of a few molecules of water on the elementary charge (e), a fixed value; the Kelvin will be defined using the
surface as well as some minor earthquake Boltzmann constant (kB); while the mole will be based on the Avogadro
tremors on the other side of the world, the constant (NA).
NRC team succeeded in bringing the mass
precision down to nine parts per billion.
In cooperation with the U.S. National ABOUT THE AUTHOR
Institute of Standards and the German
National Metrology Institute, the International George Novacek was a retired president
Committee for Weights and Measures voted o f a n a e ro s p a c e c o m p a ny. H e w a s a
to accept the new definition of the kilogram professional engineer with degrees in
with the official adoption scheduled for May Automation and Cybernetics. George’s
20, 2019. So, what does it mean for regular dissertation project was a design of a
folks like you and I? The good news is that the portable ECG (electrocardiograph) with
new standard is expected to last us for a long wireless interface. George contributed
time. But, more than that, those of us articles to Circuit Cellar since 1999, penning
watching our weight can sleep better knowing more than 120 articles over the years.
that as of May 20, 2019 we’ll weigh a little bit George passed away in January 2019, but
less. Infinitesimally less, to be correct, but we’ve been grateful to be able to share with
every little bit counts. you several articles he left with us to be
Editor’s Note: This article was written published, including this final piece.
by George before he passed away, over a year
ago. As a wrap-up to this story we’ve included
a sidebar with a news item “Science Says For detailed article references and additional resources go to:
Goodbye to the Original Kilogram,” posted www.circuitcellar.com/article-materials
on Laboratory News on May 20, 2019. A link
to the original story is available on Circuit References [1] through [4] as marked in the article can be
Cellar’s article materials webpage [4]. found there.
54 CIRCUIT CELLAR • MARCH 2020 #356
Dehumidifier
Revamped for
the IoT Era
Wireless Control
By
Brian Millier
COLUMNS
my electricity provider uses time-of-day
metering. I get electricity for half-price all where it will be heated up beyond ambient
night and on weekends. Since a dehumidifier room temperature. This warmer air will then
uses a fair bit of electricity, it’s best to run be exhausted from the dehumidifier cabinet.
the unit only when the electricity is at this low Once back in the room again, this warmer,
rate. Even before I built this new controller, I drier air will mix with room air and pick up
had used an external timer (a DIY unit with some of the water vapor present in the room
an Espressif Systems’ ESP8266) on the unit, air itself. Then it gets pulled back into the
to limit its run time to nights and weekends. inlet port of the dehumidifier, and the cycle
repeats.
REFRIGERATION-MODE This process will continue efficiently for
DEHUMIDIFIERS a while, but not indefinitely. Within a few
First, let’s look at how a dehumidifier minutes, the evaporator coil will frost up,
works. The most common dehumidifiers which is OK. However, as time passes, the
used in homes are based on the refrigeration evaporator coil would ice up completely, at
principle. I also see dehumidifiers based on which time the water-removing capacity
desiccants on Google, but I’ve never run across would diminish greatly. But before this could
any of these, personally. For the refrigeration happen, there is another thing to consider.
dehumidifier, the basic principle is that the The condenser coil is located close to
colder the air is, the less moisture it can hold. the evaporator coil. Since the refrigeration
At the left of Figure 1a is a coiled aluminum process is not 100% efficient, in practice,
evaporator. To the right is a copper condenser the condenser coil will always produce more
coil with many fins—like a car radiator. To the heat than the evaporator coil can remove.
right of that is a motor, which turns a big fan. Therefore, the heat from the condenser
It isn’t visible in Figure 1a, but can be seen coil will eventually work its way over to the
in Figure 1b, along with the compressor that evaporator coil, thus cancelling out any
powers the refrigeration process. cooling effect that it originally had. This will
Room air is drawn into the dehumidifier by happen even though the fan is pulling the
the fan, passing first through the evaporator hot condenser air away from the evaporator
coil, and then through the condenser coil. coil. You would see the effect if you tried to
The evaporator coil gets cooled down to operate a window air conditioner indoors,
around 0°C. Water vapor will condense out without it being mounted in a window—which
of the air when it flows past the evaporator places the condenser coil outside where it can
coil, and will either condense on the coil and dissipate its heat.
drip down into the storage tank below, or it In my old dehumidifier—with its simple
will produce frost. This cooler, drier air will control system—a thermostat is mounted on
now pass through the warm condenser coil, the evaporator coil. After the unit has been
56 CIRCUIT CELLAR • MARCH 2020 #356
FIGURE 2
Screen capture of the controller’s
webpage. The time-slot matrix is in
the center, and the other parameters
are displayed below and above it.
COLUMNS
running for a while, the evaporator coil gets involved a lot of programming. In contrast,
cold enough to trip the thermostat off. Any I had already written a Web-based control/
frost present on the coil melts and drips into monitoring program for my home’s air
the storage tank. In the time it takes for the exchanger (Heat Recovery Ventilator) that ran
evaporator coil to warm up enough for the on Espressif Systems’ ESP32 microcontroller
thermostat to close again, the condenser (MCU). This program was written and
coil will cool back down to around ambient programmed into the MCU using the Arduino
temperature. When the thermostat closes IDE. Being Web-based, it didn’t require a
again, the cycle will repeat. custom app on the iPhone/iPad, just a Web
It turned out that the thermostat in my old browser. Both projects called for a Web-based
dehumidifier was stuck in the closed position. interface that displayed 24-hour time slots
Therefore, the compressor ran indefinitely, configured by the user, along with several
but the dehumidification process stopped other similar control parameters. Figure 2
working after the first 5 minutes or so. is a screen capture of the unit’s Web page,
While I likely could have found a replacement showing the time-slot matrix in the middle.
thermostat, I decided to design an electronic The hardware requirements for this
controller that would not only control the project were such that the less-expensive
compressor/fan, but also implement the ESP8266 would work just as well as an ESP32.
added features mentioned in the first section Adapting my ESP32-based air exchanger
of this article. This was an attractive option control program to this project wasn’t overly
for me, as I have done several IoT projects difficult. Programming for either Espressif
lately, and this seemed a good fit for IoT. device is very similar, though you must
include different libraries in some cases.
THE CONTROL ELECTRONICS The sensors that I needed for the project
I wanted the dehumidifier to be controlled are itemized as follow:
wirelessly, and I figured that the control
program, itself, wouldn’t be too involved. 1) Humidity sensor. I am using a Silicon Labs
I considered using Bluetooth LE, but the Si7021 humidity/temperature sensor. It’s
control app for my phone or iPad would have inexpensive, uses the I2C interface, and
there is an Arduino library for it.
2) Evaporator temperature sensor. This is
what replaces the mechanical thermostat
ABOUT THE AUTHOR found in the original dehumidifier. I chose
Brian Millier runs Computer Interface Consultants. He was an instrumentation a simple 10kΩ thermistor, which can be
engineer in the Department of Chemistry at Dalhousie University measured using the single ADC input on
(Halifax, NS, Canada) for 29 years. the ESP8266. You can see it attached to
the evaporator in Figure 1a.
circuitcellar.com 57
3) “Tank-full” sensor. This condition in the fan shut off when the tank is full—even if the
dehumidifier was handled by a float ESP8266 happened to get “hung.”
coupled to a SPDT microswitch. I stuck The N.C. contacts of the switch contacts are
with this design and monitored the switch monitored by ESP8266’s GPIO12, allowing the
state with a GPIO pin on the ESP8266. processor to know when the tank is full (when
GPIO12 is LOW). It responds to this condition
For control, I used the following: by removing drive to the two relays—double
redundancy, since it’s also handled by the
1) To switch the compressor on/off I used float switch, itself, as mentioned earlier. It
a small but high-current capacity TE also sends out a packet to the IFTTT website,
Connectivity (P&B) RZF1-1A4-L005 relay. which responds to that packet by sending me
This is rated for 16A continuous duty. an email message stating that the tank is full.
2) I chose an Omron G5SB-1A4 relay for the More on this later.
fan. In the original design, the compressor When the tank is full, the program sits in
and fan were connected in parallel and a loop that produces a beep from the piezo
turned on/off simultaneously, but I every few seconds. The program no longer
did things differently here for reasons responds to incoming Wi-Fi messages trying
discussed later. to access its built-in Web server, since I
assume that either the beeping or the email
For the “tank-full” alarm condition, I message is enough to get me to go down to
added a few features. First, I added a piezo the basement to empty the tank and cycle the
buzzer, which beeps on/off every few seconds dehumidifier power off/on to restore normal
when the tank is full. The tank float switch is operation.
“activated” when the tank is not full—that is, I made the piezo alarm loud enough to be
when the float is hanging in mid-air. Therefore, noticed only in the basement or on the first
COLUMNS
the N.O. contacts of the SPDT float switch are floor of the house, but not from the bedroom
used to provide a ground return for the two on the second floor. Because the dehumidifier
2N3904 transistors (T1 and T2), which power is programmed to run at night and all-day
the fan and compressor relays, respectively. on weekends, the chances were high that
This ensures that both the compressor and the alarm would start beeping sometime at
8 9)
,-
./ ,D&
6* -D &1 2
0 G(9J@9+-+
,
8
4AB
8?B
5
7?B
5B
<5
7
<5
4
).
&D: 2
)6
<5 <5 ,D+D5
5,
6= 4@.7
+
4 4A 4
, -
8 4
8 8
' ' >
. 1
). > ,
, - ,
)6 >,
./
)-
+ 7=:
<5 > *5
4 8? . 8 )
495 7? 8)7
,'- 7%)G(
./ 012 A
34
8
*)+ 7%
C
8
'3
,- C ,
576**#@ %
HI
8, 6 =1 <)@D.,
:
.5
,-30 , 8-
* 7
7 1 5,
3 '3 ,- .6
)
5,
:
4 4
% 8 1
6 8+
0D6 ,- 5,
1. 06:D
A ,- 7
8 6*
4. 4 1.
3 E@8F%D.,D6
,-
'4
4.
5* 7
FIGURE 3
Schematic of the controller. The ESP8266 MCU on the Huzzah module does all the control/monitoring/Wi-Fi functions.
&;
%& :
58 CIRCUIT CELLAR • MARCH 2020 #356
night, when we didn’t want to be awakened. I than a bare ESP8266 module, but it contains a
check my emails first thing in the morning, so 3.3V LDO regulator, two switches to put it into
I know if the tank is full as soon as I get up. programming mode and a few other necessary
Given the Web-based user interface, I “glue” components. More importantly, it uses
could have gotten away without any display a 0.1” pin footprint, allowing me to mount it
on the dehumidifier, itself. However, things easily on a Vector board, rather than designing
don’t always work as expected. The possibility a custom PCB.
exists that the ESP8266 might not connect Unlike the Adafruit ESP32 modules
successfully to my Wi-Fi router, or it might that I have also used, the ESP8266 Huzzah
not be able to resolve the address of the NTP doesn’t contain a USB-Serial bridge chip
server that I use to set the system’s Real-time (for programming/debugging purposes).
Clock. Possibly, the ESP8266 won’t receive Therefore, you must use a USB-Serial cable,
the time packet returned by the NTP server. such as the FTDI Serial TTL-232 USB cable
Maybe the humidity sensor isn’t responding (also sold by Adafruit) for programming/
to I 2C commands. debugging.
If any of these error conditions occur, they Figure 4 is a photo of the finished control
are displayed on a 4-digit LED display that I board. I chose a Hi-Link 5V 600 mA power
have included in the design. Other than the module, due to its small size and low price.
possible error indication, the display normally It is a switching power supply, so I added a
shows the relative humidity in the room. 2,200µF reservoir capacitor to keep the 5V
The LED display is sold by Adafruit, and it’s from dropping too much when the compressor
interfaced to the MCU via the I 2C bus (as is starts up. The 5V powers the relays and piezo
the Si7021 humidity/temperature sensor). buzzer directly. The ESP8266 Huzzah module
The ESP8266 doesn’t contain many GPIO is powered by 5V via its V+ pin. It contains its
pins, so it’s important to use I 2C peripherals own 3.3V regulator, which powers the ESP8266
COLUMNS
COLUMNS
messaging to/from the NTP server. FIGURE 5
Adafruit_7segment. This class library This graph shows the extraction rate of a 14 liter/day dehumidifier at 40% and 80% humidity. The dotted red
handles the 4-character I2C LED display. line is a 5 liter/day lower threshold of efficiency that I chose to use in the controller algorithm.
60 CIRCUIT CELLAR • MARCH 2020 #356
client needed to interact with the IFTTT repeatedly until the unit is powered down.
cloud server. The loop() function contains the following
basic functions:
Next, the setup() routine runs. The
LED display is initialized and tested using an 1) Checks the water-level switch for a “tank-
“8888” display for a few seconds. All the GPIO full” condition. If full, sounds the beeper
lines are configured, and then the EEPROM and sends an IFTTT message saying that
subsystem is initialized. Connection is then the tank is full. More on IFTTT later.
made with the Wi-Fi access point. The Wi-Fi 2) Once per minute, executes the
SSID and passphrase must be defined in lines ControlLoop() function, which I’ll
48,49 of the code. Next, I start up the ESP8266 describe in more detail later.
mDNS server, which allows me to access 3) Prints out all relevant parameters/conditions
the controller from my iPad using the URL via the serial port, for debug purposes.
“esp8266.local.” Without this, I would have to 4) Checks the Wi-Fi connection, and if it has
know the actual IP address of the controller. been disrupted, shuts off the compressor/
I can set up my Wi-Fi router to assign a fixed fan and tries to re-establish it.
IP number to any device that uses DHCP, but 5) Once per hour, checks the time-slot array
it’s easier all around to just use the mDNS and determines whether the unit should
service and access the controller by name. be active or not for the next hour. Every
You don’t have to use the name “esp8266. hour, runs the DetermineEfficiency()
local.” You can assign a different name on line routine to monitor the temperature and
53 of the program. Note that the “.local” part humidity, and decides whether conditions
is not used here—it’s implied. are such that the unit can operate
Next, we must contact an NTP server efficiently (Figure 5).
(Network Time Protocol) to initialize the 6) Once per day, at 1400 hours, re-connects
COLUMNS
Real-time Clock (RTC). I’ve been stung in the to the NTP server and re-synchronizes the
past by designating the fixed IP number of a ESP8266’s RTC.
common NTP server in my program. Oddly, 7) Checks for incoming messages from a Web
the IP numbers of these large NTP servers client (initiated by the user accessing the
seem to change frequently. In this program, ESP8266.local URL in a Web-browser). If
I designate the NTP server as “time.nist.gov” found, serves up the webpage shown in
on Line 58, and use this function to get its Figure 2 (filled in with current parameters).
current IP number: Then checks for the presence of parameters
that the user may have entered into the
WiFi.hostByName(timeServer, three windows or five buttons on the page,
timeServerIP); and sets the appropriate SRAM variables.
8) Toggles a panel LED on and off- to act as a
“heartbeat” indicating that the software is
The last things done in the setup() running properly.
routine are to start up the Web server, and
access the EEPROM to load in the user-set THE CONTROL LOOP
humidity setpoint. This routine takes the humidity/
After setup, the program enters the temperature sensor readings and decides
loop() structure, where it iterates whether to activate the compressor and
fan. The humidity reading is compared to
the humidity setpoint, and if the humidity is
For detailed article references and additional resources go to: above setpoint, it activates the compressor.
www.circuitcellar.com/article-materials However, this only happens if the current
time falls into a time slot that is user-
programmed as being an active one. In my
RESOURCES case, electricity is half-price between 11 PM
Adafruit | www.adafruit.com
and 7 AM every day, so those eight time slots
are set to “active.” Alternately, if it is during
Espressif Systems | www.espressif.com the weekend (also half-price) the unit is active
FTDI | www.ftdichip.com 24 hours a day, for both days. Overriding the
above decision process, if the temperature
Hi-Link | www.hlktech.net
and humidity fall outside the efficient range
Microchip Technology | www.microchip.com (from Figure 5), the unit will not run.
For test purposes more than anything
Omron Electronic Components | www.components.omron.com
else, I include an OVERRIDE button on the
Silicon Labs | www.silabs.com webpage. This allows me to set the unit’s
TE Connectivity | www.te.com “active” status to the true state, regardless of
circuitcellar.com 61
the time of day or day of the week. I set this of 4 minutes before re-start, which is quite
override interval as 5 hours, but this can be conservative. This 4-minute interval also
changed in line 45 of the program. applies when the controller is first powered
There is one important consideration that up, even though the compressor was not likely
complicates the operation of the control-loop running in this case. However, this particular
routine. The refrigeration function of the timeout exists in case the user turns the unit
dehumidifier is performed by a compressor, off and back on quickly. It would also protect
evaporator coil, compressor coil and a the compressor in the event of a short power
pressure-reducing device. The pressure- interruption.
reducing device is merely a capillary tube. As mentioned earlier, I don’t switch the
The compressor takes the incoming Freon compressor and fan simultaneously, for a
gas, pressurizes it and pumps it through couple of reasons. First, I was a bit concerned
the condenser coil. The gas condenses in the that the starting current of the compressor
condenser coil. At the end of the condenser might be more than the P&B relay could
coil is the capillary tube, which takes the handle. I measured the compressor run
liquid Freon at high pressure, and reduces this current to be 7A, and I know from experience
pressure. This pressure reduction causes the that compressors like this draw about 4
liquid Freon to evaporate in the evaporator times this current for a fraction of a second,
coil, thereby cooling the evaporator coil. The while starting. The P&B relay can handle 16A
gas exiting from the evaporator coil returns continuously, but the datasheet didn’t actually
to the inlet port of the compressor. specify its rated surge current. Since I didn’t
want to push the compressor relay too hard, I
SIDE EFFECT decided to switch the fan separately. It draws
A side effect of this process occurs when an amp or so.
the compressor is switched off. For several Second, I believe that switching the fan
COLUMNS
minutes, the high pressure developed by and compressor separately allowed me to
the compressor will remain in the condenser improve efficiency. I didn’t see any reason for
coil, until it can slowly bleed off through the fan to be running for the first minute after
the capillary tube. The compressors used the compressor started, since it would take at
in refrigerators, A/Cs and dehumidifiers least this much time for the evaporator coil
are not designed to start up with this high to cool down. Similarly, after the compressor
“head pressure.” They will just stall out if shuts off, the coils remain cool for a few
you try to re-start them soon after they are minutes, so I leave the fan running for a
shut off. This stall condition will result in the few extra minutes. I can’t prove this is more
compressor drawing 4 to 10 times its normal efficient, but the compressor relay rating
run current. If this were allowed to persist, issue mentioned earlier enough reason to
either a circuit-breaker would trip in your implement this split-switching arrangement.
electrical entrance panel, or the compressor The error codes displayed on the LED
windings themselves would fail if it occurred display are as follows:
too frequently.
For domestic appliances, a small, Err1. Can’t find Wi-Fi access point.
cylindrical device is mounted on the side of the Err2. Can’t set up mDNS service.
compressor, next to the power inlet terminals. Err3. Can’t find NTP URL via DNS server.
These protection devices (called Klixons) Err4. Haven’t gotten time packet back from
interrupt the power to the compressor when NTP server.
either an over-current condition persists for Err5. Can’t find Si7021 Sensor after second
more than a fraction of a second—the normal I 2C scan.
motor start time—or the compressor case
itself over-heats. They are simple devices
containing a small bimetallic strip/heater, IFTTT (IF THIS, THEN THAT)
which opens a switch contact when the This project uses the IFTTT cloud server to
bimetallic strip deforms due to heat—from send an email message when the water tank is
either over-current or a hot compressor case. full. The ESP8266 is already connected to the
Even though the compressor is protected by Wi-Fi access point, and it sends out a TCP/IP
a Klixon, we want to avoid a situation where packet to a specific URL. This URL is assigned
this protection is needed, since we don’t uniquely when the user registers with IFTTT.
want high stall current flowing through the The IFTTT cloud server will respond to this
compressor relay contacts. “trigger” by:
The controller software must therefore
keep track of the time when the compressor 1) Sending a TCP/IP packet back to the
is turned off, and must wait awhile to let the Huzzah Wi-Fi module, to acknowledge
gas pressure bleed off. I chose an off time receipt of the original packet sent out
62 CIRCUIT CELLAR • MARCH 2020 #356
by the ESP8266 Huzzah module. This is profiting from all the information that its
useful during the debugging phase of the users are freely providing it, doesn’t concern
program development. me. For this project, the small amount of
2) Sending an email message indicating that “non-interesting” data that they’d get from
the dehumidifier tank is full. my dehumidifier is of no interest to me, apart
from appreciating that I am getting a very
Let’s look more closely into the IFTTT useful service for free.
cloud service available on the Internet. It’s To use IFTTT, you must visit the ifttt.
a free service, which is nice. Its primary use, com website and register. Registration is
from looking over the available applets, is to simple. You can register using your Google
allow people to associate the occurrence of or Facebook account ID. I have a Google
some Internet-based event (the “trigger”) account, so I used that. The IFTTT registration
with the generation of one or more Internet- procedure has security features to ensure
based actions (“services”). The combination that random people can’t set up IFTTT apps
of a trigger and one or more services is called in your name—assuming they knew your
an “applet.” You can either write your own Google credentials. During registration, they
applet, or merely use one of hundreds of will send you an email message which you
applets that others have written and posted must respond to properly, to verify that you
on the IFTTT website. are actually the person that is attempting to
When you visit the IFTTT website it’s set up the account. Like most websites these
immediately obvious that most of the applets days, the IFTTT website uses cookies, so when
are centered around social media such as you visit the website later, it will recognize
Facebook, Instagram and Twitter. Social you and you’ll be automatically logged in.
media are very popular these days, and the
IFTTT cloud service is also very popular. SET-UP PROCEDURE
COLUMNS
The fact IFTTT is centered on social media I am going to briefly cover the procedure
activities is why it can be a free service: the needed to set up your IFTTT applet for this
users are not really the customers, they are project. However, I did not “invent this
the product. In other words, IFTTT can make wheel” myself. I found an online tutorial that
money selling the “big data” generated by explained how to use IFTTT in detail. A link
all the social media events that are captured to the tutorial is available on Circuit Cellar’s
when they are used in the many IFTTT article materials webpage. This tutorial
applets. describes how to send SMS messages, but
I don’t use any social media sites, so sending an email is similar. I had used this
whether the big social media companies are feature about 6 months earlier in a Wi-Fi
water-leak detector, and my IFTTT applet for
that project was still working. In fact, it saved
me a bundle of money when it alerted me to
a small leak that had developed in a pipe in
my basement.
Once registered with IFTTT, search for
the email applet. You will have to enter your
email address. Here again, there is security
to ensure that some rogue individual doesn’t
write an applet that floods you with email
messages. After you enter your email address,
IFTTT will send you an email message with an
ID number that you must re-enter into the
webpage that you have just used to register
your email account.
After you have set up the action that you
want performed, you must then set up the
“trigger” that initiates it. To do this, you use
the “Webhooks” applet, so search for that.
Then press the Connect button and you will
see a screen like the one shown in Figure 6.
Notice the long URL that is displayed. (I have
hidden the last few digits of the personal ID
part at the end of this URL.) It is a template
FIGURE 6 of your personal URL at IFTTT that must
This shows a sample of the IFTTT Webhooks settings. The long alphanumeric ID string (partially redacted be accessed by the ESP8266. Note that in
because it’s my ID) must be placed in the controller firmware, as detailed in the article. my program, the first section of the URL
circuitcellar.com 63
then + that
this button! It will generate a new URL, and
you can’t revert to the old one! if
You have now created a custom “service”
applet and a custom “trigger” applet. You b)
COLUMNS
want to have performed. You will see the must send to your personal IFTTT URL (as
screen shown in Figure 7b, and this time click mentioned earlier). When you are on the
on the blue “+” icon next to “that”. Search for Webhooks page, you will see a button marked
64 CIRCUIT CELLAR • MARCH 2020 #356
“Documentation.” When you click on it, you routine, at the end of the setup() function,
will see the format of the message that the it should send IFTTT the proper packet at the
ESP8266 must send. In the URL, where the custom URL, and you should receive an email
{event} appears, replace this with the event message shortly thereafter. You can also test
name that you chose earlier—when you were just the IFTTT applet alone by selecting your
configuring the Webhooks applet. You can test applet from “My Applets” and clicking the
the triggering of your applet at this point by “Check now” button.
clicking on “Test it,” after you have done the
{event} replacement. CONCLUSIONS
That line of code that you have just seen/ Where I’m located on the East coast of
edited must be inserted into the ESP8266 Canada, I don’t need to run a dehumidifier
program code for the project. If you look at until mid-summer through fall, when the hot,
the “sendITFFFmessage() routine in my humid outdoor air gets into the cool basement.
program , you will find the line: At that time, I’ll likely get mildew or mold
developing if I don’t lower the humidity.
String url = “/trigger/humidifier It was early summer when I developed the
tank full/with/key/ project and wrote this article. Even though
That’s followed by the long personal ID this dehumidifier is more than 25 years old,
string described earlier. You will have to fill in the compressor and associated refrigeration
the rest of the URL as I described above in the components—called the “sealed system” in
Document section of the Webhooks service. the trade—are still in good working condition,
When the ESP8266 program code has been so I hope that I will get many more years of
customized with your own URL, if you were to service out of it.
perform a call to the “sendIFTTTmessage() Figure 8 shows the unit with my new
controller tacked onto the front panel. While
COLUMNS
FIGURE 8
The unit with the finished controller mounted on the front panel. The red LED to the right is the “heartbeat”
LED, described in the main article text.
———————————————
RESCHEDULED 7-9 July 2020
66 CIRCUIT CELLAR • MARCH 2020 #356
I
Jeff Bachiochi
’ve discussed LIDAR in the past, most limited—it will power up without a separate
recently in Circuit Cellar 300 (July 2015) supply. Start-up current is around 600mA, but
COLUMNS
and Circuit Cellar 301 (August 2015). If it scans at around 400mA, so most powered
you were with me back then, the $100 USB ports can handle it. Physically, the unit is
LIDAR-Lite from PulsedLight (now Garmin) about the size of your fist.
used time-of-flight to calculate distance from
a reflected laser beam. This was a single SAFETY AND SCOPE
collimated point system that could be aimed The RPLIDAR A1 system use a low-power
using servos. Today I want to discuss the (less than 5mW) modulated-pulse infrared
RPLIDAR-A1 from Slamtec, which has been laser as its light source. The laser’s short
taking the market by storm thanks to its $100 emission time frame assures Class I laser
price tag. This is a 360-degree laser range safety standards, making it safe for both
scanner that uses a laser triangulation ranging humans and pets. Although you won’t need to
principle to calculate distance. Its spinning wear special glasses to use it, you should treat
head allows it to make distance calculations it as you would any potentially dangerous
for all angles in a complete 2D plane. piece of equipment.
The RPLIDAR-A1’s development package Figure 1 gives you a good look at how this
contains the laser head, a TTL-to-USB dongle laser system is set up. Note that the motor
and connecting cables. You can plug it into your is driving the laser head with a drive belt—
PC and—as long as your USB port isn’t current similar to many old turntables or disk drives.
FIGURE 1
The RPLIDAR measures the angle
of reflection of a pulsed laser beam.
Computations of distance are made
based on the angle measured at the
receiver [1].
circuitcellar.com 67
RPLIDAR emits a modulated infrared laser the need for any brushes.
signal, which is then reflected by the object to After I gained some confidence in the
be detected. The returning signal is sampled communications, I started by running the
by a Vision Acquisition System (VSC). The serial terminal application RealTerm on my
VSC comprises an embedded DSP to process PC to invoke some of the API commands. I
the sample data and output distance and decided to talk TTL directly to my Arduino
angle values. The ranging scanner system is Mega, and set aside the dongle. The RPLIDAR
mounted on a spinning rotor with a built-in uses 115200 baud, 8N1 serial protocol, so it
angular encoding system. was easy to set up “Serial1” on the Mega for
Multiple distance scans are performed this purpose. This still leaves “Serial” console
during each rotation. The motor defaults for programming and debugging. Let’s look at
to 5.5rps, but can operate from 1-10rps.
Scans begin when requested with a single
point sample based on angle of return,
processing and communications timing. A new
sample begins only after the previous one is
completed (or times out) up to a maximum
of approximately 8,000Hz. It has accuracies
of less than 1% of the distance and greater
than 1 degree of angle. RPLIDAR-A1 (Rev5) can
measure distances up to 12m (40') and down
to 150mm (6").
COMMUNICATIONS
I mentioned earlier that the development
COLUMNS
kit included a TTL-to-USB dongle. I’ll want
to communicate via TTL, so I won’t be using
that. The designers used a 7-pin Molex
connector (#0022035075) for the TTL output
of the interface board. This is a 2.54mm (0.1")
pitch Mini-SPOX system. The interface board
just translates the separate electronics and
FIGURE 2
motor connectors into a single connector. If
I removed the cover of the spinning turret so you could see the physical parts reflected in Figure 1. The DC
you want to connect directly to those, you’ll
motor drives the turret via a rubber (O-ring) belt. There are separate connectors from the motor and the
need to use a Molex (#538-53048-0450) & turret that are combined on the interface PCB.
(#538- 53048-0310), which is a 1.25mm
(0.05") pitch PicoBlade system.
You can use the included dongle if you
wish to connect with your PC and talk to it—
using the API via a Windows application—or
simply a serial terminal program. The software
development kit that comes with it has a few
examples that will give you a head start on
using RPLIDAR, but I’m not going to use those.
I will use the API document “Interface Protocol
and Application Notes” for this discussion.
Note that in Figure 2 the protective
cap was removed from the rotating turret.
You can see the laser on the right, receiver
on the top center and the vertical circuit
board that does all of the control and
computations. The turret spins via the
belted DC motor on the left. Getting power
and communication to and from a spinning
turret is an engineering feat. You can see
evidence of the two coils that wirelessly
pass power from the stationary base to the
rotating turret in Figure 3. With the turret
circuit board removed, note the SMT (surface FIGURE 3
mount technology) devices in the center of When the Laser PCB is removed from the turret, you can see that power is transferred wirelessly, using
the hollow shaft. Communications are sent a coil on the base and a coil on the turret. A hollow shaft allows communication via a suspected infrared
via LED transmitter/receiver pair, eliminating transmitter/receiver pair.
68 CIRCUIT CELLAR • MARCH 2020 #356
TABLE 1
Requests take the form of a packet of
Start Flag Command Value Payload Size Payload Data Checksum
data. 1 byte (0xA5) 1 byte 1 byte 0-255 bytes 1 byte
TABLE 2
Responses have their own packet
Start Flag1 Start Flag2 Data Response Length Send Mode Data Type
format. 1 byte (0xA5) 1 byte (0x5A) 30 bits 2 bits 1 byte
TABLE 4
Each of these commands uses the same request and response formats. The format for the data packet that follows the response (if any) will be specific to each command.
COLUMNS
port serial can still be used. The motor
packet that follows the response (if any) will control comes from a digital I/O pin
be specific to each command. (3), which can turn ON/OFF the motor.
An Arduino library for the RPLIDAR [2]
contains several example programs, and I will
not be using that here. Instead, I want the
communication to be more visible to you, so
that you can customize it to your individual
requirements. The 7-wire connection to my
Arduino Mega is shown in Figure 4. It is a
straightforward 5V TTL interface with Serial1 of
the Mega. The motor control line is connected
to a digital pin to turn the motor ON or OFF.
My primary interest is to give the user a
way of exploring all the API commands. This
is accomplished via a serial terminal program
connected to the Arduino via the standard
USB Serial port. The first order of business
was to decide on using a two-letter command
format. It’s always a good idea to give the user
help on what commands are supported. This
is done through a menu that will be displayed RP Lidar 2-Letter Menu
by sending a “?.” Most commands begin with SCan
INfo
the first two letters of the command, but due
DAta
to limitations of using only two letters, the Clear Path
menu shows all the commands, and capitalizes Object Path
those used for the command. Sub Menu
The SCAN command is therefore displayed 2-Letter plus ‘=’ and a value
as “SCan” meaning for a user to type in “S” and Angle Left of center=? (0-180), presently aaa
“C” followed by a <CR> (carriage return). I’ll use Angle Right of center=? (0-180), presently aaa
that convention from here forward in the article Distance miN (mm)=? (100-150), presently ddddd
when I mention commands. The last command Distance maX (m)=? (0-15), presently dddddd
in Table 4 is “GET_LIDAR_CONF” and it has ? this menu
configuration values that can be requested. One
is the maximum distance of the scanning mode. LISTING 1
The menu item displayed for that command is Because the menu is displayed as a list, I wanted to give priority to those commands that are more useful
“maX Distance” which indicates the two-letter by splitting this into a main menu and a sub menu.
command is “XD.” Should a command require The main menu is shown here, with the sub menu shown in Listing 2.
70 CIRCUIT CELLAR • MARCH 2020 #356
a value, its menu item is displayed with an being restricted in any way. I’ll be using this
appended “=?” which suggests the command function for both the console (Serial) and
format will be two letters followed by the equal the RPLIDAR (Serial1). Note that an UNO
sign, a decimal value and <CR>. could be used, but since communication with
the RPLIDAR is the highest priority, it should
SERIAL EVENT be connected to Serial and a software serial
A special function, SerialEvent can routine could be implemented for console I/O.
be used with receiving serial data. It is Initial testing was accomplished by hand
not actually an interrupt, but will be called assembling the API-required data packet
once every time through the loop function, for each of the API’s commands I sent using
so it is dependent on the loop timing not Real Term. Constructing a more friendly
user interface seemed appropriate, because
I wanted to off load as much of the work as
RP Lidar 2-Letter Sub Menu possible. Because the menu is displayed as a
REset list, I wanted to give priority to those commands
STop that are more useful by splitting this into a main
HEalth menu (Listing 1) and a sub menu (Listing 2).
Sample Rate You’ll notice that most of the informational
Mode Count commands are on the sub menu, which is
maX Distance
available with the “SM” command. Meanwhile,
Answer Type
Time per Sample commands that may be used frequently are
Mode Typical on the main menu and are available with the
Mode Name “?” command. You also may have noticed
2-Letter plus ‘=’ and a value some other commands that don’t seem to be
ID=? (0-2), presently # part of the RPLIDAR’s API. We’ll get to them
COLUMNS
RPm=? (0-255 later. But first let’s see what happens when a
? main menu command is entered.
User input commands are expected to end
LISTING 2 with a <CR>, so serialEvent() gathers
Sub menu of commands user input into the userInput[] array. The
first character is saved as userCommand
and the second character is saved as
void loop()
{ userSubCommand. These variables are
if(userCommand) initially set to “0” so the main loop() has
{ nothing to do unless a command has been
switch (userCommand) received, which alters those variables. Should
{ a third character in the userInput[] array
... be the equal character “=”, an integer value
case ‘S’: is expected before the <CR>. I wanted a way
switch (userSubCommand) to set some parameters, even though the
{ RPLIDAR APIs don’t require data input (for
case ‘C’: // SCan
the most part). Anyway, this integer value is
rplidarScan();
flushCommand(); saved as the commandValue.
break; So, let us assume the “SC” command was
... entered, therefore userCommand = S and
default: userSubCommand = C. In the main loop(),
flushCommand(); there are only two things to do—execute some
break; code when the userCommand <> 0 (user has
} input a command), and responseCommand
… <> 0 (RPLIDAR has responded to a request).
default: We have not yet discussed gathering
flushCommand();
RPLIDAR’s responses via serial1Event(),
break;
} so let’s continue with the SC command.
} Using the Arduino’s switch/case
if(responseCommand) function, we can zero in on the SC command
{ (Listing 3). Here switch is based on
userCommand, and so execution will look for
} the case “S.” Execution branches to the code at
} case S and this has a secondary switch/case
function based on the userSubCommand.
LISTING 3 Again, execution branches to the code at
Code for the “SCan” command case C. We now execute any code for the
circuitcellar.com 71
scan command requested by the user. incorrectly, because there is no indication that
The rplidarScan() routine will begin a this has happened. This means that you must
scan. This action can only be interrupted by a be absolutely sure to handle everything that
STop command as it continuously repeats its is sent. Using an Arduino has its limitations.
scan routine. The scan routine sends out laser Once started, I want to be sure I spend all my
pulses and looks for a return of the reflected time handling this function, so as not to cause
pulses up to its maximum flight time. If the any delay in this process. The rplidarScan()
pulses are returned, then a distance is calculated function has two components: start the scan
and the present rotation angle and distance are and turn on the motor.
sent out as a 5-byte packet. This repeats ad
nauseam and is the subject of a gotcha. Serial1.write(0xA5);
There is no flow control and the 5-byte Serial1.write(0x20);
packet has no absolute unique byte that can digitalWrite(RPLIDAR_MOTOR, true);
be used to sync the data. That means that
if you can’t take the data as fast as they The userCommand is then set to ‘0’ using
are sent, you will lose data and become un- the flushCommand() routine. And we can
synced. You might continue to interpret data begin to look for an RPLIDAR response.
void serialEvent1()
{
while (Serial1.available())
{
switch (mode)
{
…
COLUMNS
case 3
while(Serial1.available() > 4)
{
Serial1.readBytes(responseDescriptor, 5);
quality = responseDescriptor[0];
if (quality & 1)
{
scanCount++;
}
angle = ((responseDescriptor[2] * 256) +
responseDescriptor[1]) / 128;
if (angle < 0)
{
angle = angle + 512;
}
distance[angle] = ((responseDescriptor[4] * 256) +
responseDescriptor[3]) >> 2;
}
if (scanCount > 2)
{
newData = true;
rplidarStop();
dataCount = 0;
for(int c=0; c<360; c++)
{
if(distance[c]>0)dataCount++;
}
Serial.println(“Data Count = “ + String(dataCount));
mode = 0;
}
break;
…
default:
Serial.println(“Unknown Mode:0x” +String(mode,HEX));
mode = 0;
responseCommand = 0x00;
break;
}
}
} LISTING 4
Code for the serial1Event() function
72 CIRCUIT CELLAR • MARCH 2020 #356
[plotData]
‘radius=200 pixels
‘zoom=1 maxdistance=12000
‘1 pixel=12000/200=60
print #main.graphicbox, “cls” ‘ clear the plot area
print #main.graphicbox, “color red” ‘ change the pen color
print #main.graphicbox, “goto 10 10” ‘ goto x,y coordinate
print #main.graphicbox, “down” ‘ drop pen to draw
COLUMNS
LISTING 5
Because I wanted to see the points plotted, I wrote a simple program in Liberty Basic to do this on my PC.
circuitcellar.com 73
COLUMNS
newData = true, and we’re done here. direction, so no math is required!
PRODUCT NEWS
XP Power | www.xppower.com
PRODUCT NEWS
PRODUCT NEWS
buck regulator, two secondary low-voltage synchronous
buck regulators, and a low-dropout (LDO) voltage regulator.
With integrated feedback and integrated compensation, all
that is left to complete the high efficiency power supply is
the output inductor and capacitors.
Mass production quantities of the ISL78083 automotive
camera PMIC are available now in a 4mm × 4mm, 24-lead
SCQFN wettable flank package.
Gateworks | www.gateworks.com
76 CIRCUIT CELLAR • MARCH 2020 #356
PRODUCT NEWS
Maxim Integrated
www.maximintegrated.com
series of 10W DC-DC converters with ultra-high isolation output models ranging 3.3-24VDC and dual output models
power solutions. The MIE10-HI Series consists of 24 models ±12V, ±15V delivering 10W of output power.
Further features include I/O Isolation of 5000VAC, high
average efficiency up to 88%, operating ambient temperature
range of -40°C to +90°C, no minimum load requirement,
built-in EMC filter for EMI emission EN55032 Class A without
additional components required, and under-voltage/overload/
voltage/short-circuit protection. All models have been qualified
per the CB scheme with safety approvals to UL/cUL/IEC/EN
62368-1 standards.
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.
Revenue Control Experience the POWER of a PIC® MCU in your USB port!
Systems PnP
- Pick & Place Machines starting @ $6,250
- Direct U.S. Sales, Support, Training,
Parts, Accessories, Warranty Capabilities and Features
- PCB Fabrication Equipment • Pushbutton,Two LEDs &
I/O Cable
- Reflow Ovens
• Quick Way to Log/Graph
Analog Data
757-258-0910
• Easy Graphing of PIC® MCU Data
www.ccsinfo.com/CC320
RCSPnP.com
sales@ccsinfo.com – 262-522-6500 x 35
THIRD PARTY
Problem 1— The venerable 555 timer IC, Problem 2— In addition to its basic
originally developed by Hans R. Camenzind timing functions (monostable and astable
at Signetics (now part of NXP), despite multivibrators), the 555 can be used to
being quite old (1971—almost 50 years!), create:
is still widely used. Let’s see how well you
understand it. Start by describing the • Set-reset flip-flop
internal functional blocks. • Schmitt trigger
Problem 3— Where do the constants 0.693 Problem 4— What are the characteristics of
and 1.1 come from in the timing equations the 555 reset input?
for the multivibrators?
Circuit Cellar
2019 Archive
TESTS YOUR EQ
cc-webshop.com
Order yours today
circuitcellar.com 79
T he robotics industry is
at a turning point. We’re
leaving the industry’s
open, exploratory infancy,
and entering the more rigid realm of
maturity. During this period, we will
SENSORS, SENSORS,
SENSORS
When we talk about robots occupying
novel spaces, it’s important that we
understand “how” they’ve made this
shift. The short answer is: by ingesting,
see some hard lines start to form— processing and transmitting lots of
exploration will yield to well-worn paths, complicated data. The transformative
and experimentation will take a back nature of modern robotics data isn’t
seat to best practices. And while there merely a question of total data volume.
will always be space for innovation, this Nor is it simply the rate at which data
Jeff Linnell,
landscape will be the terrain on which must be ingested and processed. It is CEO, Formant
our industry’s titans take root. also a matter of the types and variety of
As someone on the “front lines” of data a single machine must work with in
this industry, I can feel this sea change order to reliably perform its role.
coming. And the companies poised to To help illustrate this idea, let’s
“come out on top” after this seismic look at a real-world use-case. Amazon
shift aren’t the types of companies most (among others) has recently started
imagine. In the near future, the titans of using robots in their distribution centers
robotics will be those who deal in data, to perform “pick & pack” labor. These
not devices. robots are given product codes and
Until recently, robots were largely tasked with locating items, retrieving
confined to the safe, predictable confines them and delivering them to packaging
of the factory floor—bolted down to fixed station.
positions along assembly lines. However,
for today’s generation of robotics, one
of its most recognizable characteristics
is mobility. In addition to its literal
The nature of Google’s transformational ascent is better left for another virtually every industry imaginable. For each of
time. However, the question of how Google managed to achieve such market those industries, there is an immeasurable
supremacy has never been much of a secret. In fact, Google indirectly amount of value to gain from the distillation of
identifies it in its public mission statement: “Google’s mission is to organize insight from digital exhaust. And as the role of
the world’s information and make it universally accessible and useful.” robotics matures, both the stakes and the
While the “universally accessible” clause is debatable, the mission challenges are bound to rise. The time to start
statement is remarkably direct. It can also be used to cast light on tackling this problem is already upon us. Any
robotics’ current data problem. First, one must ask:” Why would a search company considering employing robotics in their
engine startup remake itself into an advertising megalith?” Well, in their operations should already have a plan in place
efforts to “organize information and make it accessible and useful,” they regarding how best to make use of their robotic
realized something extremely important: information has the potential to data. Because, those who don’t will invariably be
be priceless. The operative word there, however, is “potential.” left behind.
F O R
A R E D
CL E O M S
CU S T
N
R A
F
TA I W
OM
Technology:
Technology: Materials:
Materials:
UpUptoto
5050 Layers
Layers Fr4
Fr4
Any
Any Layer
Layer HDI
HDI MetalCore
Metal Core
Sequential
Sequential Lamination
Lamination Isola
Isola
Blind
Blind / Buried
/ Buried Vias
Vias Rogers
Rogers
Laser
Laser Drilling
Drilling // Routing
Routing Polyimide- -Flex
Polyimide Flex
Heavy
Heavy Copper
Copper Magtron
Magtron
www.PCB4u.comsales@PCB4u.com
www.PCB4u.com sales@PCB4u.com
FROM THE OUTBACK
TO OUTER SPACE