Nov 09

ESP of ThingSpeak

Here’s a cloud-connected outdoor temperature module on the 23rd storey at Yonge and Wellesley in Toronto. The ESP8266EX WiFi controller reads a DS18B20 digital temperature sensor every 30 seconds, continuously updating the data to ThingSpeak. This proof-of-concept prototype demonstrates the ability to collect remote data and upload it wirelessly to a web-based IoT message broker.

Here’s the board perched upon my balcony rail, hand-wired by yours truly:


It’s comprised of a first-generation module from AI Thinker that integrates the WiFi controller from Expressif Systems and a printed circuit antenna.

What’s cool about the ESP is that it incorporates an integrated 32-bit Tensilica MCU that can be programmed as a general purpose processor. This eliminates the need for a separate onboard Atmel or PIC microcontroller, opening the door to some super-small, low-power embedded designs with the WiFi stack built in. There are several SDKs currently available and the device can be programmed in C++ and LUA, with the NodeMCU firmware.

This board has been running for a week now on a single set of AA batteries — it’s completely standalone and wireless. It updates every 30 seconds from my balcony directly to the cloud. The chart below is updated moreless in real time as we speak…

My next-gen prototype is more refined and much smaller. It utilizes the latest ESP-12F module and has four sensors: temperature, humidity, barometric pressure and light level. It’s about two inches long, and I’m hoping to run it from a tiny battery from within a pill bottle. This should be online later this week.


Nov 09

NodeMCU Development Platform

mcuWe just received a bunch of these NodeMCU boards. Everything you need to develop apps for the Espressif ESP8266 SoC is here, including an ESP-12F module from AI Thinker. This evaluation board breaks out the Tensilica 32-bit MCU’s programmable I/O pins, making them available to interface with real-world IoT applications.

I’ve added the second USB serial port dedicated to debugging info. As you can see, the screen on the left is the programming console showing a scan of local WiFi access points.

screensThe screen on the right is the debug console showing useful information to aid development. The module comes pre-loaded with the Espressif SDK V1.5.2 firmware.

More on this exciting new project soon.

Nov 09

AXIS-21 Stepper Motor Controller

Here’s a prototype for an X-Y motor controller. The AXIS-21 controller lab is a proof-of-concept prototype for developing movement control software.


The initial application for the project was to track a directional UHF antenna. The technology lends itself well to anything that needs to be “pointed”, such as a camera, telescope, laser and such. The project can be adapted for use in robotics and instrumentation.Axis1.08

This first breadboard incorporates a couple of surplus scanner stepper motors. It is driven by two Allegro A4988 stepper motor controller boards of the type you would find in a 3D printer. These are fed commands from an Arduino with an Atmel ATMega386 MCU. The firmware contains the popular AccelStepper library which facilitates a number of motor control routines using acceleration.


The movement routines are pretty boring at this early stage of development, but the idea is to program the pushbutton switches with pre-programmed sketches to exercise direction, speed, step rate, acceleration and micro-stepping.



Nov 09

Those Ubiquitous ESP-12 White Breakout Boards: Mystery Solved

This article is an attempt to clear up some of the confusion surrounding the wiring of those traces5ubiquitous white ESP-12 breakout boards.

As with a lot of these parts flowing in from offshore factories, there’s good news and bad news.

The good news is that these boards are an excellent solution for breaking out the pins of your ESP-12 modules, making them usable on regular .1-inch spacing breadboards and PC boards. Also, the convenient onboard surface-mounted resistors save you some off-board wiring.

The bad news is there are mistakes on almost all of these boards. Specifically, the voltage regulator solder pads on the back of the board. Take note, the input and output pins are reversed!

I’ve included some hand-sketched diagrams tracing out the connections to help illustrate how these boards are wired, as I’ve yet to see a schematic or instructions or a wiring diagram from any of the vendors.

As is often the case with offshore electronics manufacturing, a design with a defect is replicated and copied exactly by multiple manufacturers, thereby flooding the market with faulty boards. All of the ones I’ve received have the same flaw. The following are a few tips that I hope will save you some time and frustration.traces6

Some vendors even include an LM 1117-3.3 regulator that you can solder onto the board yourself. The idea is that you can use a battery or 9V AC adapter as the power source, without having to add an extra power circuit. This is great if you’re trying to save real estate to make a tiny project.

There are also three surface-mounted resistors on the board, including two 10K pull-up resistors. There is also a mysterious zero-ohm resistor in the middle, and people have wondered what purpose it serves.

It’s actually a jumper that shorts the input and output solder pads of the regulator, for when you’re not using one. If you are going to use the onboard regulator, then you must desolder the jumper resistor.

traces9So like a lot of people, I soldered in the 3.3V regulator and applied a 9V battery to the board. Funny, I’m getting 9V at the ESP 12 module where I should be getting 3.3V.

What has happened is that without removing the zero-ohm jumper, I’d immediately shorted the regulator. It’s a moot point, as I also realized by tracing out the circuit that the regulator pins two and three have been reversed! Your ESP-12 may already be fried, long before you ever see that comforting purple flash of the LED upon power up.

This sketch traces out the circuit board wiring as I received them. As you can see, pads number two and three are reversed for an LM1117 regulator.

Best thing to do is leave the board alone and just use an external 3.3V supply. That way it works fine with the shorting resistor in place.

If you absolutely have to have a surface-mounted 3.3V regulator on the board, you’ll have to cut a few traces and run a jumper or two, as well as remove the zero-ohm resistor.

traces1Here’s a photograph of the modification that seems to work fine. You’ll need to cut the traces at the red lines and solder in the jumpers as shown.

traces2 There has been some confusion as to the connection to GPI02. It is in fact GPI015 that is held low, and it’s just the way they silkscreen lines up on the connector that is a bit confusing.

These are the correct connections for the pull-up resistors. Just remember to remove the zero-ohm resistor if you’re adding a regulator.