ESP32, We Have Ways to Make You Talk

One of our favorite scenes from the [James Bond] franchise is the classic exchange between [Goldfinger] and [Bond]. [Connery] (the One True Bond) says, “You expect me to talk?” And the reply is, “No Mr. Bond, I expect you to die!” When it comes to the ESP32, though, apparently [XTronical] expects it to talk. He posted a library to simplify playing WAV files on the ESP32. There is also a video worth watching, below.

Actually, you might want to back up to his previous post where he connects a speaker via one of the digital to analog converters on the board. In that post, he just pushes out a few simple waveforms, but the hardware is the same setup he uses for playing the WAV files.

Continue reading “ESP32, We Have Ways to Make You Talk”

Inventing The Microprocessor: The Intel 4004

We recently looked at the origins of the integrated circuit (IC) and the calculator, which was the IC’s first killer app, but a surprise twist is that the calculator played a big part in the invention of the next world-changing marvel, the microprocessor.

There is some dispute as to which company invented the microprocessor, and we’ll talk about that further down. But who invented the first commercially available microprocessor? That honor goes to Intel for the 4004.

Path To The 4004

Busicom calculator motherboard based on 4004 (center) and the calculator (right)
Busicom calculator motherboard based on 4004 (center) and the calculator (right)

We pick up the tale with Robert Noyce, who had co-invented the IC while at Fairchild Semiconductor. In July 1968 he left Fairchild to co-found Intel for the purpose of manufacturing semiconductor memory chips.

While Intel was still a new startup living off of their initial $3 million in financing, and before they had a semiconductor memory product, as many start-ups do to survive they took on custom work. In April 1969, Japanese company Busicom hired them to do LSI (Large-Scale Integration) work for a family of calculators.

Busicom’s design, consisting of twelve interlinked chips, was considered a complicated one. For example, it included shift-register memory, a serial type of memory which complicates the control logic. It also used Binary Coded Decimal (BCD) arithmetic. Marcian Edward Hoff Jr — known as “Ted”, head of the Intel’s Application Research Department, felt that the design was even more complicated than a general purpose computer like the PDP-8, which had a fairly simple architecture. He felt they may not be able to meet the cost targets and so Noyce gave Hoff the go-ahead to look for ways to simplify it.

Continue reading “Inventing The Microprocessor: The Intel 4004”

ESP32 Makes for World’s Worst Radio Station

We can say one thing for [bitluni]: the BOMs for his projects, like this ESP32 AM radio transmitter, are always on the low side. That’s because he leverages software to do jobs traditionally accomplished with hardware, always with instructive results.

In this case, the job at hand is creating an RF oscillator in the broadcast AM band and modulating some audio onto it. From his previous experience using an ESP32 to watch video on an oscilloscope, [bitluni] knew that the microcontroller’s DACs were up to the task of producing an 800-kHz signal, and he managed to produce a more-or-less sine wave carrier with some clever code. His sketch takes data from a header file, modulates it onto the carrier, and sends it out over the ether using a short stub of wire for an antenna. The range is severely limited, but for what it is, it gets the job done and shows the basics. And as a bonus, [bitluni] included a bit of JavaScript that turns an audio file into a header file that’s ready to go out over the airwaves for all your trolling needs.

If you’re looking for a little more range for your low power transmitter and you’re a licensed amateur operator, you might want to explore the world of QRP radio.

Continue reading “ESP32 Makes for World’s Worst Radio Station”

Arcade Style Computer Hotkeys

Prolific maker [Sean Hodgins] has taken the wraps off of his latest one-day build, and as usual, it takes the kind of spare parts most people reading Hackaday will have in their parts bins and turns it into something fun and useful. This time around, he takes a bunch of spare arcade-style buttons he had from a previous project and combines them with an Adafruit Trinket (SAMD21 flavor) to make a USB input device for his computer.

[Sean] uses 1/4 inch acrylic to make the case, though he does mention that it could just as easily be 3D printed. But using the acrylic is easy and gives a nice glossy look to the final hardware. With a saw and a drill press you can make some very professional cases out of acrylic, which goes to show that you don’t necessarily need to have a high end 3D printer to create great looking enclosures.

As explained in the video, the Adafruit Trinket is not strictly necessary for this build, it’s just what [Sean] had lying around. Any microcontroller that can present itself to the operating system as a USB Human Interface Device (HID) will work fine for a project like this.

Software wise, a modified Arduino demo program is used to equate the states of the digital pins to pre-defined key combinations to be sent to the computer. In this simple example the key combinations are hard-coded into the Trinket’s source code, but a future enhancement could be adding a method of setting up new key combinations with a configuration tool.

We’ve covered our fair share of non-traditional USB input devices, all operating on largely the same principle. As it turns out, hackers have quite a pension for making oddball input devices.

Continue reading “Arcade Style Computer Hotkeys”

DIY Graphene Putty Makes Super Sensitive Sensor

It is sort of an electronics rule 34 that if something occurs, someone needs to sense it. [Bblorgggg], for reasons that aren’t immediately obvious, needs to sense ants moving over trees. No kidding. How are you going to do that? His answer was to use graphene.

Actually, his super sensitive sensors mix graphene in Silly Putty, an unlikely combination that he tried after reading (on Hackaday, no less) about similar experiments at Trinity College resulting in Gputty. The Gputty was highly sensitive to pressure, and so it appears is his DIY version called Goophene. At Trinity they claimed to be able to record the footsteps of a spider, so detecting ant stomping didn’t seem too far-fetched. You can see a video of the result, below.

Continue reading “DIY Graphene Putty Makes Super Sensitive Sensor”

Easier End-User Setup for ESP32 Projects

As hackers, we occasionally forget that not everyone is enamored with the same nerdy minutia that we are. Configuring hardware by changing some lines in the code and compiling a new firmware doesn’t sound like that big of a deal to those of us who’ve been around the block a few times, but might as well be ancient Sanskrit to the average person. As long as your projects are for personal use this isn’t really a concern, but what if you plan on distributing the code for a project or perhaps even selling finished products? Shipping it out with hard-coded variables simply isn’t an option.

Code for loading configuration file from SPIFFS

In a recent video, [Proto G] shows a clever way to use WiFiManager to make configuring your ESP32 project easier for end-users. Not only can you use the captive portal system to configure the ESP32’s WiFi against a nearby access point, but it can allow users to enter in configuration data which can be picked up in your code by using SPI Flash File System (SPIFSS).

With the setup demonstrated in the video below by [Proto G], you don’t need anything more exotic than a web browser to configure the device. The end user simply searches for the device’s WiFi network, connects to it, and is presented with an easy to understand dialog which has them select a WiFi network to configure against along with some fields to enter in custom variables. All this information is then stored to a file on the SPI flash. When the ESP32 reboots, it reads the configuration from the saved file and applies the requested settings.

This is very similar to how many consumer devices are now configured, and even the less technically-inclined recipients of such a device should be able to work through the setup with a bit of hand-holding. If you plan on handing one of your ESP32 projects to John Q. Public, this is the kind of configuration you should be aiming for.

We’ve covered using WiFiManager to make ESP32 projects easier to manage, but the addition of arbitrary variables to the captive portal opens up a lot of possibilities. Just the kind of thing you need when you start considering the leap to commercial product.

Continue reading “Easier End-User Setup for ESP32 Projects”

Reverse Engineering the TEC-06 Battery Tester

[Syonyk] read that you could solder a few wires to a TEC-06 battery capacity tester, connect it to a TTL serial adapter, and it would interface with some Windows software via a serial port. You can buy it already enabled for serial, but since he had the non-connected version, he was interested in trying it. Not only did it work, but he took the time to reverse engineer the protocol and made a detailed write up about his findings and how he attacked the problem.

Around here, we never need an excuse to reverse engineer anything. But [Synonyk] mentions that he didn’t like using Windows-only software from China. If he wants it on Linux, or if Windows compatibility breaks with a new version, or if the software has spyware in it, he wants to be able to continue using the device. Of course, he also admits — and we get it — that he just enjoys doing it, too.

Continue reading “Reverse Engineering the TEC-06 Battery Tester”