When I began programming microcontrollers in 2003, I had picked up the Atmel STK-500 and learned assembler for their ATtiny and ATmega lines. At the time I thought it was great – the emulator and development boards were good, and I could add a microcontroller permanently to a project for a dollar. Then the ESP8266 came out.
I was pretty blown away by its features, switched platforms, except for timing-sensitive applications, and it’s been my chip of choice for a few years. A short while ago, a friend gave me an ESP32, the much faster, dual core version of the ESP8266. As I rarely used much of the computing power on the ESP8266, none of the features looked like game changers, and it remained a ‘desk ornament’ for a while.
About seven weeks ago, support for the libSodium Elliptic Curve Cryptography library was added. Cryptography is not the strongest feature of IoT devices, and some of the methods I’ve used on the ESP8266 were less than ideal. Being able to more easily perform public-private key encryption would be enough for me to consider switching hardware for some projects.
Modern agricultural equipment has come a long way, embracing all kinds of smart features and electronic controls. While some manufacturers would prefer to be the sole gatekeepers of the access to these advanced features, that hasn’t stopped curious and enterprising folks from working on DIY solutions. One such example is this self-steering tractor demo by [Coffeetrac], which demonstrates having a computer plot and guide a tractor through an optimal coverage pattern.
A few different pieces needed to come together to make this all work. At the heart of it all is [Coffeetrac]’s ESP32-based Autosteer controller, which is the hardware that interfaces to the tractor and allows for steering and reading sensors electronically. AgOpenGPS is the software that reads GPS data, interfaces to the Autosteer controller, and tells equipment what to do; it can be thought of as a mission planner.
[Coffeetrac] put it all together with everything controlled by a tablet mounted in the tractor’s cab. The video is embedded below, complete with a “cockpit view” via webcam right alongside the plotted course and sensor data.
We probably don’t have to tell the readers of Hackaday that LEGO isn’t just for kids; we’ve seen plenty of projects that live in an enclosure made of the multi-color bricks, and let’s not even get started on the Mindstorms builds we’ve seen over the years. But while LEGO (and especially the Technic product line) is fine for prototyping and putting together quick projects, the stock electronic components aren’t exactly top of the line. Which is why [Jason Kirsons] has been working on bridging the gap between LEGO and “real” parts.
His LEGO Technic tank is a perfect example of this principle. While the tank design itself is standard LEGO fare, he’s gone all in on the electronics. With an Adafruit Feather ESP32, custom motor controller board, and NEMA 8 steppers with 3D printed Technic adapters, this little tank has a lot more going on under the hood than you might expect. While this project is more a proof of concept than anything, the methods [Jason] demonstrates might be something to consider the next time you’re building with Billund’s best.
[Jason] chose the Feather ESP32 because of its small size, but you could get away with a generic board if you’re not trying to compress everything down into such a small footprint. Of course, if you go with another board you won’t be able to use the PCB he’s designed which attaches to the Feather and holds four Pololu DRV8835 motor drivers.
Easily the most broadly applicable element of this project is the work [Jason] has done designing adapter plates that let you use NEMA 8 motors with LEGO Technic parts. He’s put the adapters up on Thingiverse, for anyone looking for a drop-in solution to give their Technic creations a bit more oomph (technical term).
If you’re building a CNC or laser, there’s an excellent chance you’ll be using Grbl to get moving. It’s also a pretty safe bet you’d end up running it on some variation of the Arduino sitting in a motor controller breakout board. It’s cheap, easy to setup and use, and effectively the “industry” standard for DIY machines so there’s no shortage of information out there. What’s not to love?
Price wise the Arduino and ESP32 are around the same, but the ESP does have the advantage of being much more powerful than the 8-bit Italian Stallion. Its got way more flash and RAM as well, and perhaps most importantly, includes Wi-Fi and Bluetooth out of the box. It still needs to be plugged into a board to hold the motor drivers like the Arduino, but beyond that [bdring] opines the ESP32 is about as close to the perfect Grbl platform as you can get.
[bdring] reports that porting the code over to the ESP32 wasn’t terrible, but it wasn’t exactly a walk in the park either. The bulk of the code went by without too much trouble, but when it came to the parts that needed precise timing things got tricky. The ESP32 makes use of a Real Time Operating System (RTOS) that’s not too happy about giving up control of the hardware. Turning off the RTOS was an option, but that would nuke Bluetooth and Wi-Fi so obviously not an ideal solution. Eventually he figured out how to get interrupts more or less playing nicely with the RTOS, but mentions there’s still some more work to be done before he’s ready to release the firmware to the public.
If you are interested in deploying LoRa — the low power long-range wireless technology — you might enjoy [Rui Santos’] project and video about using the ESP32 with the Arduino IDE to implement LoRa. You can see the video below. He uses the RFM95 transceivers with a breakout board, so even if you want to use a different processor, you’ll still find a lot of good information.
In fact, the video is just background on LoRa that doesn’t change regardless of the host computer you are using. Once you have all the parts, getting it to work is fairly simple. There’s a LoRa library by [Sandeep Mistry] that knows how to do most of the work.
Although the project uses an RFM95, it can also work with similar modules such as the RFM96W or RFM98W. There are also ESP32 modules that have compatible transceivers onboard.
This is one of those projects that probably isn’t useful all by itself, but it can really help you get over that hump you always experience when you start using something new. Once you have the demo set up, it should be easy to mutate it into what you really need.
The ESP8266 has become practically the 555 chip of WiFi connected microcontrollers. Traditionally, you’d buy one on a little breakout board with some pins and a few connectors, and then wire up anything else you need. The ESP8266’s big brother, the ESP32, hasn’t quite taken over from the ESP8266, but it has a lot more power and many more options. [Andreas] has a new video that shows seven new ESP32 boards that have integral displays. These boards can simplify a lot of applications where you need both WiFi and a user interface.
Of the boards examined, six of them have OLED displays, but one has an E-paper display. To summarize results, [Andreas] summarized his findings on these seven along with others in an online spreadsheet.
Many of you will have experimented with driving displays from your microcontroller projects, and for most people that will mean pretty simple status information for which you’d use standard libraries and not care much about their performance. If however any of you have had the need for quickly-updating graphics such as video or game content, you may have found that simpler software solutions aren’t fast enough. If you are an ESP32 user then, [Louis Beaudoin] may have some good news for you, because he has ported the SmartMatrix library to that platform. We’ve seen his demo in action, and the results as can be seen in the video below the break are certainly impressive.
In case you are wondering what the SmartMatrix library is, it’s an LED matrix library for the Teensy. [Louis]’s port can be found on GitHub, and as he was explaining to us over a beer at our Cambridge bring-a-hack, it takes extensive advantage of the ESP32’s DMA capabilities. Making microcontrollers talk with any sort of speed to a display is evidently a hot topic at the moment, [Radomir Dopieralski]’s talk at our Dublin Unconference a few weeks ago addressed the same topic.
We have to admit a soft spot for LED panels here at Hackaday, and given the ESP32’s power we look forward to writing up the expected projects that will come our way using this library.