Skip to content

Sense and Control: so many options

OK. got the Sonoff stuff going OEM. Now for the next step. I’m looking for two major features. (1) FOSS and (2) local without dependencies. Complexity is another factor as I’d rather the component count be in hardware rather than software. It’d also be nice if it was possible to get into customization and modification without needing a major development environment. VSCode and PlatformIO is about the limit for development.

The structure of the forest needs to be kept in mind as the entire ecosystem has to mesh and work together. At the device level there is the firmware. That can be OEM for purpose built devices or it can be ESPeasy, ESPurna, Tasmota or whatever. These may be stand alone but most systems depend upon a message broker often handling MQTT. Then there’s the decision and computation section to gather status and sensor information and send out control messages. Node Red shines big on that. Finally, there’s the User Interface. It can get complicated.

9 Home Automation Open-Source Platforms for Your projects provides an insight into just how many options are out there and gives you an idea of why a decision can be difficult. 6 open source home automation tools by Jason Baker — “Build a smarter home with these open source software solutions.” cites a few more packages and a few more issues.

OpenHab vs Home Assistant vs Domoticz – What fits you best? by David C hits another point. ” in this post we will focus on the three biggest communities. A big community translates into more ideas and more people sharing their knowledge with you.”

Home Assistant seems to be a mover and shaker right now. It is a Python 3 app and the developer has started the move to asyncio as in Python 3.4. It includes an MQTT broker. It’s UI is web based so there is no need for a special app. There are some leads to its use with micropython but that needs more research about what it’d take to get an ESP8266 device as a client with micropython rather than the more common prebuilt FOSS firmware.

When comparing these web based interfaces with ‘big’ apps such as Node-Red or the Jupyter Notebook, the impression is that a good web UI is a major Javascript development effort and the Internet of Things people have their focus elsewhere. That means the application sector is still feeling its way and getting standards and methods ironed out.

What makes Python interesting

Python is different but not too different and that makes it interesting and worthwhile for study. An example is Loop better: A deeper look at iteration in Python by Trey Hunner — “Dive into Python’s for loops to take a look at how they work under the hood and why they work the way they do.” A pre-requisite is some familiarity with “iterators” and “generators” and “dictionaries” as these are fundamental concepts utilized by Python looping constructs. They are reviewed in the article.

Unlike traditional C-style for loops, Python’s for loops don’t have index variables. There’s no index initializing, bounds checking, or index incrementing. Python’s for loops do all the work of looping over our numbers list for us.

So while we do have for loops in Python, we do not have have traditional C-style for loops. The thing that we call a for loop works very differently.

Hunner has a nice comparison and contrast to illustrate his point. The reason for all of this is noted:

There are lots of iterators built into Python, in the standard library, and in third-party Python libraries. These iterators all act like lazy iterables by delaying work until the moment you ask them for their next item.

This has implications in handling large sets of calculated things. Instead of carrying around a huge array or other data object, the one you need is obtained only when you need it for the amount of time you need to do something with it. That is a conceptual step up from basic programming paradigms.

Itead Sonoff for an easy start

USB does fine for a microcontroller power development platform. But what do you do when you want to let some project loose in the wild? That is one of features Itead includes in its Sonoff line. For about the price of an ESP8266 development board (~ $5) you can get an ESP8266 with 1 MB SPI RAM, an LED, a pushbutton, a relay, and a power supply that taps off the 90 to 240 VAC that the device is intended to control all in a nice box. In addition, you get firmware on the chip, a free Android or Apple app, and a service to connect between the chip and the app for control and status. That means you can easily get up and running to see what is possible. Then you can look at doing your own firmware, control network. and software.

Itead says

Our goal is to fuel an innovation revolution with easy to use prototyping modules, low cost development platforms, and even custom made solutions to help you get your great ideas in to fruition in the quickest possible time.

Towards this end, they have made it easy to add a header to their boards so you can attach a serial to USB adapter and upload your own firmware. There are several projects online that require just a small step in difficulty from the Itead supplied system. ESPEasy puts a web page on your Sonoff to configure your ESP8266 device including working with some of the more popular home automation systems. Sonoff-Tasmota needs configuration in its source code but is more focused on Sonoff and MQTT. Others include ESPurna and KmanSonoff, and Jonathan Oxer has Six Sonoff Secrets, a blog post with a few more ideas including upgrading the flash RAM.

You can also run micropython on these things. That is rather cramped with the standard memory chip but the code for many Itead accessories and other peripherals you might want to use for an IoT device are readily available.

It’s not much to invest in either money or time or learning to find out what the Internet of Things is all about.


Sonoff, VSCode, ESP8266, IOT

Another Amazon sale, another opportunity. This time is was a 4 pack of basic Sonoff switches. These are $5 boxes controlling a relay via Wifi meaning an app or Alexa. They run off of, and switch, 90-240 VAC and use an ESP8266 for the smarts and radio. As they are easy to take apart and access the ESP and they are cheap, they make good targets for modification and extension, and learning. One example is the Tasmota project

“Provide ESP8266 based Sonoff by iTead Studio and ElectroDragon IoT Relay with Serial, Web and MQTT control allowing ‘Over the Air’ or OTA firmware updates using Arduino IDE.

What you do is to solder a four or five pin header to the circuit board in order to attach a USB to Serial cable. Then you can run the Arduino IDE to update the firmware. Another option is to use PlatformIO with the VSCode IDE,

VSCode or Visual Studio Code is an interesting study itself. Microsoft released it in 2015 as cross platform FOSS (Wikipedia).  The Tasmota Wiki provides step by step instructions. Other ideas raise the question about what compiler the Tasmota process is using. See 

Programming ESP8266 using Visual Studio Code with Arduino Extension by Yoppy Chia

Install the IDE PlatformIO extension for Visual Studio Code (VSCode): Windows, 32-bit Linux

Installing Visual Studio Code for ESP8266

You can start with just using the Sonoff as-is and follow the instructions to set up the eWeLink app or Alexa Skill. From there, the sky’s the limit. Setting up Tasmota and an MQTT system has good step by step instruction as a paved road. That will set you up for code modification or creation and ESP8266 application development. Then you can start to learn about the Integrated Development Environments. And that just a start.

Sleep tracking

One thing leads to another and fitness trackers for sleep monitoring is no exception. The Simple Dollar post showed up referring to an app that tracks sleep via your phone’s accelerometer and microphone without needing additional hardware: A Simple Tactic for Improving Sleep That 84% of People Miss by  Drew Housman.

The post has some good information about sleep and its health effects as well as a few ideas for sleep monitoring. The app cited is Sleep Cycle alarm clock with free and premium versions. The app website also has some interesting reading.

Wrist Actigraphy and Latest Crazes: Fitness Trackers

It started with a report based on How Much Sleep Do Fitbit Users Really Get? A New Study Finds Out by Danielle Kosecki. That lead to research about Wrist actigraphy. And then Amazon had a sale on the Letscom Fitness Tracker. Actigraphy has been around since the 50’s. The cell phone sensor revolution has put it into the realm of every day, every man use.

A fitness tracker is a stripped down cell phone worn on the wrist. Bluetooth is the usual communications method used to pass data to a cell phone app. The sensors are an accelerometer and a pulse meter. A display, battery, and an SOC round out the package. On the Letscom, the accelerometer is  Kionix KX022 and the SOC is a Nordic nRF51822. From a modern hardware perspective, there isn’t much there. It’s the software and the social and cultural aspects that make the product.

First up on software is the device firmware. It needs to track activity and control and present its measures in a reasonable fashion. It also usually provides wrist watch functions and some Smartphone coordination for alarms and messaging.

The second level is the phone app. Letscom uses VeryFitPro (Google Play). Google has been involved in this area and has Google Fit for an API and some other standardization for sharing on social networks and interactions between devices. It is this sharing that Fitbit may be using with cloud storage to collect data from its users that makes data mining research feasible and useful. The app provides extended data storage and analysis for the fitness tracker as well as serving as a larger display and control and configuration device.

Third level software is where the fun starts. That is where you tap into the data flow for doing your own presentation and analysis. This is not directly supported but there are several websites out there about methods to get fitness tracker data to your own database.

The Letscom costs quite a bit less than the market leading FitBit. It seems well built and both the firmware and the app are well rated and quite usable. Even at the normal $30 Amazon price, it offers a lot for the cost, especially as a starting point on how the development of modern sensors can be used for new products and in reducing costs of medical studies or other quality of life interests.

The problem with science is people

This is a book review. The field is medicine but the concepts apply to any ‘fuzzy’ research (including climate change and weather).

Rigor Mortis: What’s Wrong with Medical Science and How to Fix It by Harriet Hall — “Medical research has been plagued by less-than-rigorous practices and a culture that rewards quantity over quality. In a new book, Richard Harris identifies the problems, proposes solutions, and offers hope.”

“Scientific medicine has made great strides, but much of today’s research is unreliable. As Harris says, “Biomedicine’s entire culture is in need of serious repair.” He has done a stellar job of identifying the problems, possible solutions, and promising efforts that are already underway. Research jobs and tenure in academia should be awarded based on quality, not quantity of papers published. Studies must be replicated before they are relied on to direct future research. We need better incentives: today, it pays to be first to publish; it doesn’t pay to be right. We can do better. We are trying to do better.

Anyone who does research or reads about research studies will profit from reading this book. It’s well-written and accessible, with short chapters and lots of entertaining vignettes.

There are some interesting lists about faults found and issues discovered.


Why Modern Computers Struggle to Match the Input Latency of an Apple IIe By Joel Hruska — “The system with the lowest input latency — the amount of time between when you hit a key and that keystroke appears on the computer — is the Apple IIe, at 30ms.”

There is a table of measurements that included latency, clock speed and computer year. It doesn’t include the TRS-80 nor list CPU so you can’t tell how much latency is based on system design or CPU design or other factors. The table does list the number of transistors in the CPU’s under test. “the color coding shows that chips with higher numbers of transistors tend to be in systems with more latency, and faster systems tend to be older than slower ones.”

An Apple IIe isn’t handling sophisticated multi-tasking commands. It isn’t juggling background threads, or dealing with multiple applications that aren’t designed to be aware (or careful) of one another. It isn’t polling a huge array of devices that range from audio and network controllers to discrete GPUs and storage. The Apple IIe OS doesn’t use a compositing window manager, which adds latency. This article, by Pavel Fatin, is an in-depth breakdown on latency processing and discusses how each much delay each step in a modern system adds, from keyboard scan to final output.

Latency is a big issue in movies as well as people notice when the lip sync gets too far off. Typists learn to touch type and that doesn’t involve latency except that the machine can keep up. Virtual reality, gaming, and graphics can make latency critical for error reduction. The real question is how much is OK and how much is too much. Human’s have latency, too, 


N1GNV Christmas Message

John Bee, N1GNV, of Quicksilver Radio Products  sent a Christmas greeting that contains good advice for the Amateur Radio enthusiast and some ideas everyone should think about for making and enjoying happy and prosperous

I just want to take a minute to wish you and yours the very best for the Holiday Season.  May it be filled with the joy and warmth that family and friends bring.  I have many wonderful memories of my own childhood Christmases; many more of them when my children were young; and now we’re making new ones as they have grown into adulthood.  Seeing one’s children grow into happy and productive people is truly one of the best gifts we can receive.  Many of my customers are already Grandparents, and I’m sure that is another source of happiness, especially at this time of year. 

2017 will mark the 15th straight year of growth for Quicksilver Radio.  Without such great customers, this would never have been possible.  It’s always gratifying to hear either in person at a Hamfest, or by e-mail, that you enjoy my newsletters and find useful information on my Web Site.  I truly appreciate your support, and your business.  Having a job that I enjoy in a field that I love is something I’m thankful for every day.

As 2017 slides into 2018, it’s natural to think about plans for the coming year.  And I’d like to ask a favor of you — please put Ham Radio on your list of New Year’s Resolutions.  Here are some ideas to consider:

1.  If, by chance, you are not yet a licensed Ham Radio Operator, get your license this year.  If you have not yet passed your General or Extra test, do it this year.  Having trouble studying or passing?  I have some tips on my Web Site that I think will be helpful.  Click here to see them

2.  Try something.  A good friend of mine likes to say that there are 30 different kinds of Ham Radio, and there’s something there for everyone.  FM repeaters and HF SSB just scratch the surface.  You already have a computer.  New digital and sound card modes seem to appear weekly.  A year ago, no one had heard of FT-8.  It’s now, by many accounts, the most popular HF Digital mode.  D-Star, DMR, and other digital voice modes are growing by leaps and bounds.  Have you tried 6 Meters yet?  The Magic Band can yield some surprising contacts.  How about SSB or CW on 2 Meters or 70 Centimeters?  Every Ham has full privileges on all of the bands above 30 MHz.  Antennas are small and easy to construct from hardware store parts.  It doesn’t have to be pretty — an ugly antenna will radiate just as well.  Use your imagination and try something different! 

3.  Do something.  Set an achievable Ham Radio goal for the year — and then work at it!  Earn DXCC or WAS, maybe on a single band?  Better your contest score by 10%?  Get your CW speed up to 20 WPM?  Reorganize and rewire the shack?  Order a copy of the ARRL Handbook or Antenna Book, and start increasing your technical knowledge?  Convert your paper logs to electronic format and start using Logbook of the World?  One of my father’s favorite sayings was “Whether you think you can or you think you can’t, you’re probably right.”  Just do it!!

4.  Build something.  Too many years ago, as I newly licensed Ham I got very involved in Packet Radio.  With a double throw switch and some mic connectors, I built a box to allow either voice or data use by just flipping the switch.  Not exactly cutting edge, but it worked and led me to build plenty of other handy gadgets over the years.  Simple projects can also be a great way to teach new hams the basics of soldering and kit-building.  String up that antenna you’ve been thinking about forever and see how it plays. Download a free antenna modeling program and learn how to use it to design and build your own BandBlaster.  Order a kit and assemble it.  Melt some solder and have fun!  Once you start you’ll be hooked.

5.  Learn something.  Microcontrollers like the Arduino, Raspberry Pi, and PICaxe are quite inexpensive.  With a few LEDs and pushbuttons you can learn simple programming to get started.  There are plenty of useful Ham Radio projects that you can find online.  And if you have an idea for your own gadget, you’ll have a lot of fun learning how to roll your own computer code. 

6.  Teach something.  You know how to do things others don’t, but would like to learn.  Are you already familiar with programming microcontrollers?  How about a club project to teach the basics to other members?  Or a demonstration on using Anderson Powerpoles?  Or properly installing coax connectors?

7. Become a “HAMbassador”.  Get just one person (or two, or three) interested in Amateur Radio.  Offer to demonstrate Ham Radio at the Senior Citizens’ center, Boy or Girl Scout meetings, the Rotary Club, or any similar organization.  Groups like that are always looking for an interesting speaker or activity.  A simple but impressive and effective demonstration is to bring an HT and ask for a “Roll Call”.  Notify your club in advance… all they need to do is reply with “This is (name, callsign) in (town).”  Remember that we’re Hams because we enjoy talking to other people.  The more Hams, the more contacts we can make.

8.  Get involved!  Join your local Radio Club.  If you already belong, attend the meetings.  Just about every club (not just Radio Clubs) has the same problem — 10% of the people do 90% of the work.  You don’t need to volunteer for everything… select an area that interests you, and help with that.  Even better, suggest an activity and then take the lead in organizing it.  Something as simple as “I’m going to set up a portable station at the park on Saturday morning, everyone is welcome to come by” can be a great time.  If you add “Free coffee and donuts” to your announcement, you’ll draw a real crowd 😉

9.  Stay positive, ignore the negative.  Don’t listen to the cranky old farts who insist that “Ham Radio is dying”.  Or better yet, point them here where they’ll find that the number of licensees is at an all-time high.  Participation in contests remains strong, even at the bottom of the sunspot cycle.  Manufacturers continue to introduce new models that we could barely dream of just a few years ago.  Hamfests that are well-organized and well-run are thriving. 

10.  Most of all, resolve to have more fun with Ham Radio in 2018!

Once again, my sincere best wishes to you and your family for a happy, healthy, and safe Holiday Season and New Year.

Thanks and warm 73,
John Bee, N1GNV
Quicksilver Radio Products 

Do something constructive. John suggests a first step. Your turn.

ESP32 and where we are now

Back a year ago, Hackaday found a Basic Interpreter Hidden In Esp32 Silicon (by Elliot Williams).  Documentation now exists at Read the Docs.

Now, for comparison, consider the TRS 80 Model I “introduced by Radio Shack on August 3, 1977….The initial price was $599.95, which included a typewriter-style (not membrane) keyboard, monitor, and cassette recorder. … It ran a Zilog Z80 at 1.77 MHz and came with 4K of RAM, and a 4K ROM of what was called Level I BASIC.” The display was 16 lines of 64 characters or 128×48 graphics. The cassette interface could run at up to 500 baud. 

Now consider the ESP32. It has 448 KB of ROM, 520 KB SRAM, another 8 KB of clock SRAM, and 1 K bit of one time write chip parameter memory. In addition to this, a basic system often has another 4 MB of external flash memory for program storage. See an Overview of ESP32 features. What do they practically mean?  That means this chip has 112 times the TRS 80 fixed memory, 130 times the working memory, and some extra. The external program storage would hold about 24 floppies worth of data.

There are three processors in the chip. Two are 32 bit and run at 240 MHz. The serial I/O will run at 960,000 baud. The third CPU is a special low power processor designed for long battery life while calling for the main processors and the radio only as needed. The two main processors run at 135 times the speed of the TRS 80 and handle four times the data on each cycle. The low power processor in its most battery saving but still alive mode still runs at nearly five times the TRS-80 speed.

And an ESP 32 ready to go can be had for under $10. Add in a power supply, keyboard, and display and you have an outlay less than a tenth the cost of a TRS 80 without considering inflation.