# How to Get Started with the ESP32

ESP32 is the hottest new wireless chip out there, offering both WiFi and Bluetooth Low Energy radios rolled up with a dual-core 32-bit processor and packed with peripherals of every kind. We got some review sample dev boards, Adafruit and Seeed Studio had them in stock for a while, and AI-Thinker — the company that makes the most popular ESP8266 modules — is starting up full-scale production on October 1st. This means that some of you have the new hotness in your hands right now, and the rest of you aren’t going to have to wait more than a few more weeks.

As we said in our first-look review of the new chip, many things are in a state of flux on the software side, but the basic process of writing, compiling, and flashing code to the chip is going to remain stable. It’s time to start up some tutorials!

# Creating A PCB In Everything: Eagle DRC and Gerber Files

For the next post in the Creating A PCB series, we’re going to continue our explorations of Eagle. In Part 1,  I went over how to create a part from scratch in Eagle. In Part 2, we used this part to create the small example board from the Introduction.

This time around I’ll be going over Design Rule Check (DRC) — or making sure your board house can actually fabricate what you’ve designed. I’ll also be covering the creation of Gerber files (so you can get the PCB fabbed anywhere you want), and putting real art into the silkscreen and soldermask layers of your boards.

The idea behind this series is to explore different EDA suites and PCB design tools by designing the same circuit in each. You can check out the rest of the posts in this series right here.

# Creating A PCB In Everything: Eagle, Part 2

In the last (and first) post in this series, we took a look at Eagle. Specifically, we learned how to create a custom part in Eagle. Our goal isn’t just to make our own parts in Eagle, we want to make schematics, boards, and eventually solder a few PCBs.

The board we’ll be making, like all of the boards made in this Creating A PCB In Everything series, is the Nanite Wesley, a small USB development platform based on the ATtiny85. This board has less than a dozen parts, most of which are through-hole. This is the simplest PCB I can imagine that has sufficient complexity to demonstrate how to make a board.

With that said, let’s get onto the second part of our Eagle tutorial and lay out our circuit board.

# Creating A PCB in Everything: Eagle, Part 1

For the first in a series of posts describing how to make a PCB, we’re going with Eagle. Eagle CAD has been around since the days of DOS, and has received numerous updates over the years. Until KiCad started getting good a few years ago, Eagle CAD was the de facto standard PCB design software for hobbyist projects. Sparkfun uses it, Adafruit uses it, and Dangerous Prototypes uses it. The reason for Eagle’s dominance in a market where people don’t want to pay for software is the free, non-commercial and educational licenses. These free licenses give you the ability to build a board big enough and complex enough for 90% of hobbyist projects.

Of course, it should be mentioned that Eagle was recently acquired by Autodesk. The free licenses will remain, and right now, it seems obvious Eagle will become Autodesk’s pro-level circuit and board design software.

Personally, I learned PCB design on Eagle. After a few years, I quickly learned how limited even the professional version of Eagle was. At that point, the only option was to learn KiCad. Now that Eagle is in the hands of Autodesk, and I am very confident Eagle is about to get really, really good, I no longer have the desire to learn KiCad.

With the introduction out of the way, let’s get down to making a PCB in Eagle.

# Grinding Gears: Figuring Out The Ratio

Practically any combination of motor and gearbox can be mathematically arranged to fit all sorts of problems. You could lift a crane with a pager motor, it just might take a few hundred years. However, figuring out exactly what ratio you need can feel bit backwards the first time you have to do it.

A gear is nothing more than a clever way to make two circles rotate in concert with each other as if they were perfectly joined at their circumferences. Rather than relying on the friction between two rotating disks in contact, the designer instead relies on the strength of a gear tooth as the factor limiting the amount of torque that can be applied to the gear.

Everything is in gearing is neatly proportional. As long as your point of reference is correct, and some other stuff. Uh, it gets easier with practice.

$\frac{radius_1}{radius_2} = \frac{velocity_1}{velocity_2} = \frac{tangentialforce_1}{tangentialforce_2} = \frac{torque_1}{torque_2}$

Now as my physics professors taught me to do, let’s skip the semantics and spare ourselves some pedantics. Let us assume that all gears have a constant velocity when you’ve averaged it all out. Sure there is a perceptible difference between a perfect involute and a primitive lantern gear, but for the sake of discussion it doesn’t matter at all. Especially if you’re just going to 3D print the thing. Let’s say that they’re sitting on perfect bearings and friction isn’t a thing unless we make it so. Also we’ll go ahead and make them perfectly aligned, depthed, and toleranced.

Typically, a gearbox is used for two things. You have a smaller torque that you’d like to make into a bigger one or you have one rotational velocity that you’d like to exchange for another.  Typically torque is represented with a capital or lowercase Tau (Ττ) and rotational velocity likes to have a lowercase omega (ω). It also doesn’t matter at all; it just makes your equations look cooler.

Now a lot of tutorials like to start with the idea of rolling a smaller circle against a bigger one. If the smaller circle is a third as large as the big one, it will take three rotations of the small circle to make the big one rotate twice.  However, it is my opinion that thinking it in terms of the force applied allows a designer to think about the gearing more effectively.

If the friction between the two surfaces of the circle is perfect, then any force applied tangentially to one of the circles will result in a perfectly perpendicular and equal force to the other circle at the point of contact between the two. Midway through writing the preceding sentence I began to understand why textbooks are so abstruse, so I also drew a picture. This results in two equations.

$\tau_1 = F * r_1$

$\tau_2 = F * r_2$

Now, when you have a force perpendicular to the line drawn to describe the radius, the equation for torque becomes really simple.

Multiply the length of the “lever arm”, “radius”, etc. by the force to get the preceding equations. Make sure to include the units.

You should end up force-unit * length-unit. Since I usually work in smaller gears I like to use N * mm. American websites typically use oz-in to rate motors. It is technically ozf-in (ounce-force), but the US customary system has a fetish for obtuseness.

We can make some observations. The smaller gear always sees less torque at its center. This initially seemed a bit counter-intuitive to me. If I’m using a cheater bar to turn a bolt the longer I make the bar the more torque I can put on the bolt. So if I touch the outside of a really large gear I should be seeing a ton of torque at the center of a small gear rotating along with it. However, as we mentioned before, any torque applied on the outside of the larger gear is seen equal and tangential on the smaller. It’s as if you’re touching the outside of the small gear. The torque has to be smaller.

This is why you have to pedal so much harder when the rear sprocket on a bicycle gets smaller.  Each time you make the sprocket smaller you shrink the torque input into the wheel. If the perpendicular output where the wheel hits the ground is <input from the small gear> / <radius of the wheel> then it’s obvious why this happens.

It’s also important to note that any time you increase the torque, the speed of the gears slow by the same proportion. If you need 60 N*m out of a motor that can give 20 N*m and you use a 3:1 gearbox to do it. If the motor previously ran at 30 rpm it’s now running at 10 rpm.

Let’s jump right into an example. Let’s say you want to make a device that automatically lifts your window blinds. You’ve got some junk and a 3D printer.

Now you’ve taken a spring scale and pulled until the shutter moves and you know you need 10 lbs. of pull to get the blinds to pull up. To make it easy on yourself you multiply this number by two so you know you need exactly 20 lbs of force to pull the curtain up. Then to make it really easy on yourself convert it all to Newtons. It’s approximately 90 N.

Now you don’t really care how fast the blinds pull up, but you go ahead and pull them up yourself. You get the feeling that the blinds won’t appreciate being lifted faster than the whole range in two seconds. You personally don’t care if takes ten seconds to, but you’d like it not to take too long.

You also measure the length of string pulled out to raise the blinds. It’s 1.2 meters.

Lastly, you only have one spare power supply and a matching motor left in your entire laboratory after you followed the advice in a Hackaday article. Cursing the day the author was born, you sullenly write down the last specifications. You’ve got one of those cheap GM9 gear motors. 5 V, 66 rpm, and 300 N*mm. You damn him as you think fondly of your mountain of windshield washer motors and 80 lb server rack power supplies that you tossed out.

To start with, you do some experiments with a pulley. You arbitrarily pick, 3D print, and find that a 100 mm in diameter pulley seems to wind it up nicely by hand. By the end of the winding the outside diameter of the string is 110 mm. So you use the torque equations above. You find that at the end of the rotation, if you attach the motor directly, there is only 5.45 N of force being applied to the string. Not nearly enough.

So, since you know everything is more or less proportional, you divide 90 N / 5.45 N, and arrive at an answer of 17. So, at a minimum for every turn of the pulley you need 17 turns of the motor to get the torque needed.

That would be okay, but it messes with our other specification. At a 17:1 ratio, it will take our 66 rpm motor pretty close to a minute to wind the blinds up.

This is a moment for some pondering. Make a coffee. Maybe go write a relaxing comment to a Hackaday writer listing their various flaws, perceived and true, in excruciating detail.

What if you wound the string up on a closet rod? Those are only about 30 mm in diameter. You take a bit of rod and wind it up. It seems to work and since it’s wider the string only ends up adding 5 mm to the final diameter. You rework the calculation and find that in this case you only need a ratio of 6! Yes.

Now some of you who have done this before are likely gnashing your teeth, or more likely already down in the comments. Unfortunately it’s all proportional. While you only need a ratio of 6:1 now, nearly a third. You also need to rotate the pulley approximately three times as much to pull the same length of cord.

Sometimes you can’t win. In this case the only solution is to order a new motor. You look online for a bit and realize that one of the 12 V motors you threw away last week would work perfectly for this. You wouldn’t even need a gear box. You could attach it straight to the pulley. You look around your perfectly clean and orderly garage and feel empty.

However, just for fun you build a 6:1 gearbox anyway. It’s a hack after all.

Cover photo of the hilariously complicated Do Nothing Machine credit to the Joe Martin Foundation.

# Diodes With Hats: Zener and Schottky

For beginners, diode types can sometimes be a bit of mental gymnastics. If all it does is act like a magic pixie check valve, why are there so many kinds? Schottky diodes are typically  hard to mentally set apart from the standard when described by a data sheet. Zener diodes can be downright baffling for beginners, especially when mistakenly thrown in a circuit in place of a regular 1N4001. [Afrotechmods] put together a great video explaining their difference and use cases.

In both videos he does an excellent job of describing the pros and cons while setting up experiments to exhibit each. For the Schottky it’s the faster switching and lower voltage drop. For Zener it’s less about the cons and more about exploiting its strange configuration for voltage clamps, regulators, and making expensive guitars sound bad with audio distortion circuits.

He finishes both videos with good design tips for selecting and using the parts as a burgeoning circuit designer. Diode data sheets should be less of a mystery afterwards.

# Build Your Own Import Variable Lab Bench Power Supply

Does it ever just kill you that someone in a factory somewhere got to have all the fun of assembling your bench tools? There are a lot of questionable circuit boards floating around the Internet, and they can replicate practically any section of a circuit. When it comes to putting a prototype these days you can pretty much just buy each block of your system’s overview flowchart and string them together. [GreattScott!] combines a few of these into a relatively useful variable power supply with current limiting.

Admittedly, this is more of academic exercise if your only metric for success is monetary savings. Comparable power supplies can be purchased for the same amount of local currency as the parts in this build. However, there is something to be said for making it yourself.

The core of this build is based around the LTC3780, a bit of silicon from LT that offers both buck and boost converting along with a current control mode. It’s useful for a lot of things. The here is rated for up to 130 watts of power, which makes is a decent amount of power for a bench supply.

With a few modifications, like replacing the world’s most untrustworthy potentiometers and adding a nice ABS box, the build is completed. Along the way, [GreatScott!] offers a few tricks for testing and some reminders of how not to make yourself dead when playing with electricity.

The end is a working lab bench supply project that can easily keep a hacker entertained on a lazy Sunday afternoon.