More ESP32 Info Dribbles Out

In case you’ve been hiding under a virtual rock over the last two years, you might have missed it when Espressif turned the IoT game on its head by releasing a chip with WiFi and a decent embedded processor for under $1 in bulk, and costing not much more than that in a module.

They’re looking to repeat the success of the ESP8266 with the ESP32, that should be coming out any time now. As we get closer to the release date, details start to dribble out. [Alberto], who makes very nice-looking pinout diagrams for a number of our favorite chips and modules, has already made us an ESP32 module pinout diagram.

And [Rudi] has been digging up nearly every crumb of info on the ESP32 that’s publicly available. For instance, it was through his website that we learned that the new RTOS SDK source is already up on GitHub.

There’s also a source of official information in the ESP32 forum, but there’s not much news there just yet. We expect this to change as more beta units make it out into the wild.

We covered the announcement of the forthcoming ESP32 last month, and we have to say that we’re looking forward to getting a module or two in our hands. Twin cores, BTLE support, and better DMA are tops on our list of neat features.

A Peek Under the Hood of the 741 Op-Amp

First introduced as an IC back in 1968, but with roots that go back to 1941, the 741 has been tweaked and optimized over the years and is arguably the canonical op-amp. [Ken Shirriff] decided to take a look inside everybody’s favorite op-amp, and ended up with some good-looking photomicrographs and a lot of background on the chip.

canRather than risk the boiling acid method commonly used to decap epoxy-potted ICs, [Ken] wisely chose a TO-99 can format to attack with a hacksaw. With the die laid bare for his microscope, he was able to locate all the major components and show how each is implemented in silicon. Particularly fascinating is the difference between the construction of NPN and PNP transistors, and the concept of “current mirrors” as constant current sources. And he even whipped up a handy interactive chip viewer – click on something in the die image and find out which component it is on the 741 schematic. Very nice.

We’ve seen lots of chip decappings before, including this reveal of TTL and CMOS logic chips. It’s nice to see the guts of the venerable 741 on display, though, and [Ken]’s tour is both a great primer for the newbie and a solid review for the older hands. Don’t miss the little slice of history he included at the end of the post.

I2C Bus Splitting with a more Professional Touch

Last week, I covered some of the bitter details of an interesting hack that lets us split up the I²C clock line into multiple outputs with a demultiplexer, effectively giving us “Chip Selects” for devices with the same address.

This week, I figured it’d be best to layout a slightly more practical method for solving the same problem of talking to I²C devices that each have the same address.

I actually had a great collection of comments mention the same family of chips I’m using to tackle this issue, and I’m glad that we’re jumping off the same lead as we explore the design space.

Recalling the Work of Our Predecessors

Before figuring out a clever way of hacking together our own solution, it’s best to see if someone before us has already gone through all of the trouble to solve that problem. In this case–we’re in luck–so much that the exact bus-splitting behavior we want is embedded into a discrete IC, known as the PCA9547.


It’s worth remembering that our predecessors have labored tirelessly to create such a commodity piece of silicon.

The PCA9547 (PDF) is an octal, I²C bus multiplexer, and I daresay, it’s probably the most practical solution for this scenario. Not only does the chip provide 8 separate buses, up to seven more additional PCA9547s can be connected to enable communication with up to 64 identical devices! What’s more, the PCA9547 comes with the additional benefit of being compatible with both 3.3V and 5V logic-level devices on separate buses. Finally, as opposed to last week’s “hack,” each bus is bidirectional, which means the PCA9547 is fully compliant with the I²C spec.

Selecting one of the eight I²C buses is done via a transfer on the I²C bus itself. It’s worth mentioning that this method does introduce a small amount of latency compared to the previous clock-splitter solution from last week. Nevertheless, if you’re planning to read multiple devices sequentially from a single bus anyway, then getting as close-as-possible to a simultaneous read/write from each device isn’t likely a constraint on your system.


With a breakout board to expose the pads, I mocked up a quick-n-dirty Arduino Library to get the conversation started and duplicated last week’s demo.

Happily enough, with a single function to change the bus address, the PCA9547 is pretty much a drop-in solution that “just works.” It’s definitely reassuring that we can stand on the shoulders of our chip designers to get the job done quickly. (They’ve also likely done quite a bit more testing to ensure their device performs as promised.) Just like last week, feel free to check out the demo source code up on Github.

Until next time–cheers!

Homemade High Voltage Caps

Do you happen to have any 15,000 volt capacitors sitting around? [Ludic Science] didn’t so he did the next best thing. He built some.

If you understand the physics behind a capacitor (two parallel conductors separated by a dielectric) you won’t find the build process very surprising. [Ludic] uses transparency film as an insulator and aluminum foil for the conductive plates. Then he wraps them into a tube. He did throw in a few interesting tips about keeping the sheets smooth and how to attach the wires to the foil. The brown paper wrapper reminded us of old caps you might find in an antique radio.

The best part by far, though, was the demonstration of drawing an arc from a high voltage power supply with and without the capacitor in the circuit. As you might expect, playing with a few thousand volts charged into a capacitor requires a certain amount of caution, so be careful!

[Ludic] measured the capacitance value with a standard meter, but it wasn’t clear where the 15,000 volt rating came from. Maybe it was the power supply he used in the video and the capacitor could actually go higher.

Continue reading “Homemade High Voltage Caps”

Decapping the CC2630 and CC2650

[Jelmer] got curious about the TI CC26XX wireless MCUs and did a little decapping.

TI sells four different models of their CC26XX wireless MCUs. Three support one of the following: RF4CE, Zigbee/6LoWPAN, and Bluetooth and a further model which supports all protocols. Each IC has the same baseline specification: 128Kb Flash, 20Kb RAM and 15 GPIOs. cc26xx_nitric[Jelmer] was curious to know if the price difference was all in the software. And in order to verify this decided that decapping was the only thing to do!

We’ve covered decapping using Nitric acid before, as well as lower tech techniques. Luckily [Jelmer] had access to Nitric acid and a fume hood, not the easiest items to get hold of outside of a research lab (checkout the video of the IC bubbling away below). [Jelmer] got some great die shots under an optical microscope and was able to confirm that the die markings are identical. This opens the door to future hacks, which might allow the cheaper models to be re-flashed, expanding their capabilities.

Continue reading “Decapping the CC2630 and CC2650”

Using a Voltage Regulator as a Constant Current Source

[Afroman] contacted us to share his new video on the LM317. The humble LM317 adjustable voltage regulator is everywhere. From wifi routers, to high spec lab equipment. Given a noisy input and a variable load, a voltage regulator will give a nice clean, stable output voltage. We’ve covered the basic operation and usage of the LM317 many times. But even the most common of parts can be used in new and interesting ways.

In his video [Afroman] describes how the LM317 can be used to regulate current rather than voltage to provide a constant current source under varying load. This can useful for a number of applications including driving LEDs and laser diodes. While this circuit may not be as efficient as an LED driver module or a switching solution the LM317 is cheap and readily available. [Afroman] also describes how the circuit works in detail allowing us to enjoy this ubiquitous part in this slightly unusual application.

Continue reading “Using a Voltage Regulator as a Constant Current Source”

Another Radio Module for IoT fun – EMW3162

The availability of cheap radio modules is making them ubiquitous in an increasing number of projects that we have been seeing recently. The usual go-to solution is using any one of the several modules based on the ESP8266 device. [Willem] wrote in to share with us his experiences with another radio module – the EMW3162 from MXChip, which at $10 isn’t as cheap as the ESP8266 modules, but is a more capable, power packed, device.

The EMW3162 (PDF datasheet) is a low-power embedded WiFi module with integrated wireless LAN, and a STM32F205 Cortex-M3 microcontroller that runs a “self-hosted” WiFi networking library and software application stack. The microcontroller has 1M flash, 128k RAM and runs at 120MHz. And since MXChip is a Broadcom partner, they are allowed to use the WICED_SDK.

The on-board ARM M3 means all kinds of useful interfaces are available: UART, SPI, I2C, ADC, DAC, PWM, TIMERS, GPIO, and a JTAG flash interface. The good news could be on the power consumption figures – the module is touted to be low-power, and the data sheet shows 7mA when connected to an access point but with no data transfer. When transmitting at 20kbps, the current draw is about 24mA, which goes up to 320mA at 11Mbps.

[Willem] has his EMW3162_WICED repository up on Github, but also take a look at the MXChips MICO (Mico-controller based Internet Connectivity Operation System) repository. At the moment, he has it working using Linux, with a gnu gcc compiler and a JLINK JTAG programmer. He also has the WICED SDK working and has a WiFi AP with an on-board 120MHz arm chip. It would be interesting to hear about other users’ experiences with this radio module. Do let us know in the comments below!