This is only a preview of the September 2021 issue of Silicon Chip. You can view 43 of the 112 pages in the full issue, including the advertisments. For full access, purchase the issue for $10.00 or subscribe for access to the latest issues. Articles in this series:
Items relevant to "Touchscreen Digital Preamp with Tone Control – Part 1":
Items relevant to "Second Generation Colour Maximite 2 – Part 2":
Items relevant to "Tapped Horn Subwoofer":
Items relevant to "Micromite to a Smartphone via Bluetooth":
Items relevant to "Sanyo 8-P2 TV (1962)":
Purchase a printed copy of this issue for $10.00. |
The IOT Cricket is a small, ultra-low-power
WiFi module designed for makers, scientists and
hobbyists. It can run for years from a pair of AA
cells. We were sent a sample to test and review.
Review:
IOT Cricket
by Tim Blythman
T
he IOT Cricket was created
by a UK company, Things On
Edge, based in Cambridge.
The IOT Cricket (IOT stands for
‘internet of things’) appears to be their
only product at this stage, but, as they
suggest, it is a versatile module. Things
On Edge also provides an online platform for the IOT Cricket to connect to.
At the time of writing, it is listed at
£16, which equates to about AU$29.
Free shipping is offered when purchasing three or more modules.
What makes the IOT Cricket
different?
The IOT Cricket is different to other
WiFi modules we’ve seen.
It’s designed to be used with sensors to report their state but it requires
virtually no programming. Most other
devices (typically) need to be programmed with high-level software
such as Python. However, with this
one there’s not much more to it than
plugging it in and away it goes.
This makes it an ideal add-on to
a wide variety of applications and
especially suits the “maker” market –
though we believe it will also find ready
acceptance amongst designers and
manufacturers, due to its simplicity.
It’s housed on a small PCB module
measuring 37.2mm by 16.4mm, and
most of its top surface is covered by a
folded metal shield, meaning the unit
is around 4mm thick.
According to the Things On Edge
website, it includes an ESP8266 processor running at 160MHz.
48
Silicon Chip
A notch in one corner of the shield
provides access to a minuscule tactile
switch and LED.
At one edge is a 6-way set of full
(through-hole) and castellated pads.
The reverse has 13 surface test pads,
six of which are arranged in a 2x3
grid, which we suspect is a programming header.
At the opposite end of the board is
a PCB antenna, similar to the antenna
seen on other ESP8266 modules.
Probably the most interesting aspect
of the IOT Cricket is the fact that it can
run for long periods on battery power;
the website claims years on a pair of
AA cells.
We haven’t had the time to test that
statement, but it certainly appears
feasible with aggressive
power saving features.
Those who have
worked with the ESP8266
would know that it is not
a very battery-friendly chip. So they
have used some tricks to achieve low
power consumption. Although Things
On Edge did not share the schematics
with us, the general operating concept
is straightforward.
The six-way edge header provides
connections for a battery, the negative
of which is also circuit ground.
One terminal provides a nominal 3.3V output when the device is
‘awake’, while the remaining pins
are digital inputs, with one capable
of measuring analog voltages.
With the typical supply being a
pair of AA cells, the regulator is of the
boost variety. The IOT Cricket claims
an input of 1V to 3.5V. Most of the
The IOT Cricket is
small and incorporates an
ESP8266 WiFi microcontroller,
a boost power regulator and a temperature sensor. Three I/O pins
provide digital and analog input options, and it can wake from an
external input or onboard real-time clock.
Australia’s electronics magazine
siliconchip.com.au
Screen1: the captive web portal
provides the ability to set up the
WiFi network. Once connected to the
internet, the IOT Cricket can upload
data and receive configuration and
firmware updates.
Screen2: the Info tab indicates that the
WiFi has been correctly configured,
and lists the unique serial number
and password needed to make use of
the Things On Edge MQTT (Message
Queuing Telemetry Transport) broker.
Screen3: the I/O port status can also
be monitored via the web portal;
this is handy for prototyping and
troubleshooting.
time, the ESP8266 on the IOT Cricket
is powered off. An RTC chip can be
configured to wake up the boost regulator at set intervals.
One of the I/O pins can also be configured to wake up the IOT Cricket, and
it also includes a temperature sensor.
This scheme is probably the best
way to get the most battery life out of
a circuit utilising an ESP8266, with
the proviso that it won’t be operating
most of the time.
It has a web configurator which
can be used to change WiFi settings.
Unlike many other ESP8266-based
devices, this one is not intended to be
programmed by the end-user in a lowlevel or high-level language.
Instead, the web configuration is
used to set how often the IOT Cricket
wakes up, what information it reports
and how it reports it.
It’s a very different philosophy from
other ESP8266-based products. Still,
Things On Edge also provides a web
portal which can work with MQTT
(Message Queuing Telemetry Transport) data, which means that it is
straightforward to set up something
that ‘just works’, without having to
worry about programming specifics.
As such, it’s well-suited as a sensor
node, reporting data, status or user
inputs back to another device as part
of a larger system.
to configure is the IOT Cricket’s connection to your WiFi network, using
the Binding tab as seen in Screen1,
which shows ‘CONNECTED’ if this is
successful.
The Info tab shows WiFi and device
information (seen in Screen2). In particular, you will need to note down
the serial number and password (SN
and PWD) to configure other things to
work with the IOT Cricket.
The Dashboard tab (Screen3) shows
the current sensor status. This could
be handy during the testing phase, to
check that your sensors are working
correctly.
The Config tab (Screen4) is used to
set up what inputs are monitored and
siliconchip.com.au
Setup process
The small button is used to enter
the configuration modes; a five
second press is used for initial configuration. After holding the button
for five seconds, the LED flashes at
around 5Hz and a ‘toe_device’ WiFi
network appears.
Connecting to this WiFi network
takes you to the captive portal webpage
(at IP address 192.168.4.1) to enter the
necessary information. The first thing
Features & specifications
Connectivity:
Supply voltage:
Protocols:
Configuration:
Inputs:
Processor:
Wake-up:
WiFi (b/g/n)
1-3.5V (boost regulator onboard)
HTTP and MQTT (free MQTT broker provided)
web portal
two digital, one analog (shared with digital pin),
one wake-up, temperature sensor
ESP8266 running at 160MHz
real-time clock (RTC) or digital input
Australia’s electronics magazine
September 2021 49
where they are reported. These settings
will also be most critical to getting the
best battery life from the IOT Cricket.
We enabled most of the reports to run
some tests, and set the connectivity
to MQTT_TOE, which is Things On
Edge’s MQTT broker.
There are also options for a custom
MQTT broker (which could be on the
internet or a local network) or communicating using HTTP GET or POST
methods, again connecting to either a
remote or local HTTP server.
Clicking the power icon at top right
exits configuration and starts the IOT
Cricket running with its current application settings.
We enabled all sensors for our initial
tests and set the RTC to wake the IOT
Cricket up every 10 seconds. These
settings are certainly not optimal for
power consumption, but made it easy
to check that everything was working
correctly.
MQTT
MQTT stands for Message Queuing
Telemetry Transport and is a protocol
that is well-suited to allowing small
IoT-type devices to communicate.
Devices publish messages to so-called
Screen5: this command, issued after installing the ‘mosquitto’ software, allows
the IOT Cricket’s messages to be checked and monitored. The ‘batt’ topic name
can be replaced with any of the others that are supported, or the ‘#’ MQTT
wildcard to see all messages.
‘topics’ to a broker, and other devices
can subscribe to specific topics. The
broker sends these messages when
they are received.
It is a fairly simple and lightweight
protocol, but supports authentication
via username/password combinations and security using TLS encryption. The client and broker model also
means that many small devices can
share information via a single broker.
Something like a PC or even a singleboard computer like a Raspberry Pi
is typically used as a broker, meaning
that a microcontroller can implement
the lightweight clients. Since one broker can manage many clients, this is
not hard to set up and allows many
clients to send, receive and share data.
Several open-source home automation projects can use MQTT, and there
are also mobile phone apps that can be
configured with custom dashboards to
send and receive messages. So MQTT
is a good choice for integrating with
these sort of home-made projects.
We set up mosquitto (https://
mosquitto.org/), an open-source,
cross-platform MQTT broker and client to test out the setup on our Windows computer, although this should
also work for Mac and Linux (including Raspberry Pi).
Running the command shown in
Screen5, we were able to monitor the
status updates from the IOT Cricket.
Note that the Things On Edge broker (at mqtt.thingsonedge.com) uses
the IOT Cricket’s serial number as its
username and password, and passes
all messages to a topic named for that
Screen4: configuring what and when the IOT
Cricket reports data is critical to how it will
operate and how much power it will use.
50
Silicon Chip
serial number and the property (after
the -t option).
Table1 is a good summary of what
sort of information the IOT Cricket can
capture and report. Note that the configuration will need to be set to allow
the necessary topics to be reported,
and those not used should be switched
off to minimise power consumption.
Using Things On Edge’s MQTT broker and an MQTT dashboard app could
be a simple way to monitor a remote
sensor using not much more hardware
than the IOT Cricket itself.
HTTP
The IOT Cricket can also communicate with a web server via HTTP
POST or GET methods. In either case,
the data is passed by tags which correspond to the topics listed above, but
preceded by a ‘#’. The IOT Cricket then
replaces the tag (eg, ‘#batt’) with its
value when the data is sent.
In the case of a POST, the payload
can be set to a specific string, which
can contain a combination of text and
tags. A GET method includes these at
the end of a URL, typically in the form
of parameters like “?battery=#batt”.
This allows custom content to
be created and passed to an existing server. When the HTTP server
receives a request, it can process the
payload or URL to decode the data.
The HTTP protocol is quite simple,
but it is limited to one endpoint (the
HTTP server).
Testing
We tried a few things out to put
Same-size illustration of the Cricket
(from above) showing its I/O pins
along with the main features.
Australia’s electronics magazine
siliconchip.com.au
temp ......................
batt .......................
io2 ........................
io3 ........................
io1_wake_up ............
rtc_wake_up .............
hwc_wake_up ...........
hwc_wifi_enabled.......
device_sn ................
device_name ............
Temperature in °C to one decimal place
Battery voltage as raw ADC value (up to 8 bits)
Pin state as digital (0-1) or analog (0-255) value
Pin state as digital (0-1) value
Digital value (0-1) if IOT Cricket was woken by pin
Digital value (0-1) if IOT Cricket was woken by RTC
Count of wake-up events
Count of WiFi connections
Device serial number (string)
Device custom name (string)
Table1: these topics are available, and all MQTT data is communicated as
strings of ASCII characters.
the IOT Cricket through its paces. We
found that running it from breadboard
wiring was not always successful,
especially from a single 1.5V cell, but
we had no problem after we had soldered it directly to the battery holder.
The hardware notes for the IOT
Cricket indicate that the power supply
should be able to supply bursts up to
0.5A with a 3.3V supply, and 100mA
continuously.
We ran some tests with a small 0.1Ω
current shunt resistor and an oscilloscope. With a pair of AAA cells providing around 3V, we noted a current
spike of 600mA at start-up, causing
the battery voltage to sag near 2.5V;
see Scope1.
The nature of the boost module
means that a lower supply voltage
will necessarily require a higher current; a 1V supply might need to supply
peaks of around 2A at start-up, possibly causing the battery voltage to sag
even further.
So while the specifications indicate
that the IOT Cricket should be able to
run from a 1V supply, users should be
aware that this would be measured at
the unit itself and they should leave
some headroom for sagging due to
high current bursts. One option could
be to fit an external capacitor to help
with this.
Despite this, we found operation
on a pair of AAA cells to be flawless.
Given that two AAA cells are not much
larger than a single AA cell, we would
be inclined to power the unit in this
fashion. Average current consumption
while active was around 40mA, and
the typical uptime was six seconds.
This means that each update consumes around 67µAh and a 1000mAh
capacity battery (at 3V nominal) can
provide about 15,000 updates, assuming the quiescent power consumption
is negligible.
With this in mind, it is clear that the
siliconchip.com.au
IOT Cricket’s ability to operate for long
periods on battery power is dependent
on spending most of its time in the
low-power state, where presumably,
only the RTC is running. Current in
this state was under 1µA, according
to our multimeter.
The boost regulator inherently limits the upper voltage that can be supplied to the IOT Cricket, since it cannot
regulate down. The notes clearly state
that 3.5V is the upper battery voltage,
which aligns with the 3.6V upper limit
for the ESP8266.
This rules out rechargeable options
such as LiPo or even LiFePO cells without an external regulator, as they can
peak up to 4.2V when fully charged. A
pair of NiMH cells would be the logical alternative (giving around 2.4V to
2.8V), although we haven’t tested that.
We found that the temperature
reported by the IOT Cricket was
slightly higher than expected, although
we were testing with a fairly frequent
update rate, so the unit may have been
suffering from self-heating. We expect
that less frequent updates would ameliorate this issue.
Power saving
Apart from enabling and disabling individual inputs, there’s also
the option only to report changes if
the input changes; this is the “force
update” option seen in Screen3.
When this option is switched off, the
input states are only reported when a
change occurs.
If no data needs to be reported, then
the IOT Cricket can skip the power-hungry process of connecting to a
WiFi network and sending that data,
saving even more power.
Of course, this means that it’s more
difficult to tell when the IOT Cricket
is working correctly.
Resources
An online brochure, quick-start guide
and in-depth IOT Developer Guide are
available at www.thingsonedge.com/
documentation, while sample projects
and other articles are referenced from
the blog page at www.thingsonedge.
com/blog
The IOT Developer Guide also lists
several compatible sensors, including
buttons, light sensors, motion sensors
and even a microphone.
A minimal implementation of
the IOT Cricket requires no more
than a battery to power the unit.
It can be configured to report
temperature (using the integrated
temperature sensor) and battery
status as frequently or infrequently
as needed, down to once per day.
Australia’s electronics magazine
September 2021 51
Scope1: the green trace shows battery voltage while the
yellow trace is the voltage across a 0.1Ω
Ω current shunt
when the IOT Cricket is powering up. The 61mV spike on
the yellow trace is notable; it corresponds to 610mA of
current draw, while the battery voltage sags to 2.54V.
With the 3.3V output, it’s possible to power external sensors only when needed. However, they will need to have
modest current consumption to allow the boost regulator
to work correctly and prolong battery life.
We suggest reading the IOT Developer Guide to get the
most out of the IOT Cricket.
The IOT Cricket can also upgrade its own firmware from
the Things On Edge server. These options are available from
the captive web portal under the Upgrade tab.
There is also an option to load configuration settings from
the Things On Edge server. Enabling this feature could be
a good idea for a unit that has been remotely deployed.
Conclusion
The IOT Cricket has a very different philosophy to many
other similar devices we have seen, requiring practically no
programming and only some minimal setup, at the expense
of the greater options available with a more programmable alternative.
It appears to be well thought out and provides an interesting addition to the spectrum of IoT and remote-sensing
modules on the market.
The ESP8266 is a power-hungry part, and as expected, the
way the IOT Cricket gets around this is by shutting down for
long periods, although the option of RTC and I/O pins for
wake-up should cover most uses for this device.
It requires fairly high currents when it is starting and
awake, so careful design is needed to ensure that there are
no high-resistance paths in the battery circuit, as these will
be a major point of inefficiency. A supply closer to 3.5V
will provide headway above the minimum operating voltage, reducing the current needed for operation.
The provision of an internet connected MQTT broker to
complement the IOT Cricket is a handy feature, meaning
that its data can be accessed from just about anywhere by
multiple clients.
We don’t expect that the IOT Cricket will be useful for
all battery sensor applications, especially those that require
fast and frequent updates. But it is versatile, compact and
easy to use with many common sensors. The IOT Cricket is
SC
available for purchase from www.thingsonedge.com
52
Silicon Chip
Australia’s electronics magazine
siliconchip.com.au
|