Silicon ChipIOT Cricket WiFi Module - September 2021 SILICON CHIP
  1. Outer Front Cover
  2. Contents
  3. Publisher's Letter: Upcoming price changes
  4. Feature: Advanced Imaging - Part 2 by Dr David Maddison
  5. Feature: The Cromemco Dazzler by Dr Hugo Holden
  6. Project: Touchscreen Digital Preamp with Tone Control – Part 1 by Nicholas Vinen & Tim Blythman
  7. Review: IOT Cricket WiFi Module by Tim Blythman
  8. Project: Second Generation Colour Maximite 2 – Part 2 by Geoff Graham & Peter Mather
  9. Project: Tapped Horn Subwoofer by Phil Prosser
  10. Serviceman's Log: 'Playing' with fire by Dave Thompson
  11. Project: Micromite to a Smartphone via Bluetooth by Tom Hartley
  12. Review: the tinySA Spectrum Analyser by Allan Linton-Smith
  13. PartShop
  14. Vintage Radio: Sanyo 8-P2 TV (1962) by Dr Hugo Holden
  15. Product Showcase
  16. Market Centre
  17. Advertising Index
  18. Notes & Errata: Programmable Hybrid Lab Supply with WiFi, May & June 2021; Hugh-Current Four Battery/Cell Balancer, March & April 2021; Speedo Corrector Mk.3, September 2013
  19. Outer Back Cover

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:
  • Advanced Medical & Biometric Imaging – Part 1 (August 2021)
  • Advanced Medical & Biometric Imaging – Part 1 (August 2021)
  • Advanced Imaging - Part 2 (September 2021)
  • Advanced Imaging - Part 2 (September 2021)
Items relevant to "Touchscreen Digital Preamp with Tone Control – Part 1":
  • Touchscreen Digital Preamp PCB [01103191] (AUD $12.50)
  • Touchscreen Digital Preamp ribbon cable/IR adaptor PCB [01103192] (AUD $2.50)
  • PIC32MX170F256B-50I/SP programmed for the Touchscreen Digital Preamp, 2.8in screen version [0110319A.hex] (Programmed Microcontroller, AUD $15.00)
  • PIC32MX170F256B-50I/SP programmed for the Touchscreen Digital Preamp, 3.5in screen version [0110319B.hex] (Programmed Microcontroller, AUD $15.00)
  • Micromite LCD BackPack V3 complete kit (Component, AUD $75.00)
  • Micromite LCD BackPack V2 complete kit (Component, AUD $70.00)
  • Micromite LCD BackPack V1 complete kit (Component, AUD $65.00)
  • Firmware for the Touchscreen Digital Preamp (Software, Free)
  • Touchscreen Digital Preamp PCB patterns (PDF download) [01103191/2] (Free)
Articles in this series:
  • Touchscreen Digital Preamp with Tone Control – Part 1 (September 2021)
  • Touchscreen Digital Preamp with Tone Control – Part 1 (September 2021)
  • Touchscreen Digital Preamp with Tone Control – Part 2 (October 2021)
  • Touchscreen Digital Preamp with Tone Control – Part 2 (October 2021)
Items relevant to "Second Generation Colour Maximite 2 – Part 2":
  • Second-generation Colour Maximite 2 PCB [07108211] (AUD $15.00)
  • Colour Maximite 2 software and documentation (Free)
  • Second-generation Colour Maximite 2 PCB pattern (PDF download) [07108211] (Free)
Articles in this series:
  • Second Generation Colour Maximite 2 – Part 1 (August 2021)
  • Second Generation Colour Maximite 2 – Part 1 (August 2021)
  • Second Generation Colour Maximite 2 – Part 2 (September 2021)
  • Second Generation Colour Maximite 2 – Part 2 (September 2021)
Items relevant to "Tapped Horn Subwoofer":
  • Dimensions and sheet cutting diagrams for the Tapped Horn Subwoofer (Panel Artwork, Free)
Items relevant to "Micromite to a Smartphone via Bluetooth":
  • Micromite Bluetooth sample software (Free)
Items relevant to "Sanyo 8-P2 TV (1962)":
  • Sanyo 8-P2 Diagrams (Software, Free)

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