How To Run A Pagekite Server To Expose Your Raspberry Pi

Last time I showed you how to expose a web service on a Raspberry Pi (or, actually, any kind of device) by using a reverse proxy from Pagekite. On your Pi, you just need a simple Python script. However, it also depends on the Pagekite server, which isn’t always convenient. There are limits to the free service, and you don’t control the entire thing. The good news is twofold: the same Python script you use to set up the client-side can also set up a server. The other good news is the entire thing is open source.

In practical terms, then, if you have a computer that is always on and has an IP address that can be found on the public internet, you can run your own Pagekite server (they call it a front end) and service your own backends.

Continue reading “How To Run A Pagekite Server To Expose Your Raspberry Pi”

Hackspace Websites And The Great Software Trap

Part of the job of a Hackaday writer involves seeking out new stories to write for your delectation and edification. Our tips line provides a fruitful fount of interesting things to write about, but we’d miss so much if we restricted ourselves to only writing up stories from that source. Each of us writers will therefore have a list of favourite places to keep an eye on and catch new stuff as it appears. News sites, blogs, videos, forums, that kind of thing. In my case I hope I’m not giving away too much to my colleagues when I say I keep an eye on the activities of as many hackspaces as I can.

So aside from picking up the occasional gem for these pages there is something else I gain that is of great personal interest as a director of my local hackspace. I see how a lot of other spaces approach the web, and can couple it to my behind-the-scenes view of doing the same thing here in our space. Along the way due to both experiences I’ve begun to despair slightly at the way our movement approaches the dissemination of information, the web, and software in general. So here follows a highly personal treatise on the subject that probably skirts the edge of outright ranting but within which I hope you’ll see parallels in your own spaces.

Before continuing it’s worth for a moment considering why a hackspace needs a public website. What is its purpose, who are its audience, and what information does it need to have?

Continue reading “Hackspace Websites And The Great Software Trap”

Expose Your Raspberry Pi On Any Network

Everyone’s talking about the Internet of Things (IoT) these days. If you are a long-time Hackaday reader, I’d imagine you are like me and thinking: “so what?” We’ve been building network-connected embedded systems for years. Back in 2003, I wrote a book called Embedded Internet Design — save your money, it is way out of date now and the hardware it describes is all obsolete. But my point is, the Internet of Things isn’t a child of this decade. Only the name is.

The big news — if you can call it that — is that the network is virtually everywhere. That means you can connect things you never would have before. It also means you get a lot of data you have to find a reason to use. Back in 2003, it wasn’t always easy to get a board on the Internet. The TINI boards I used (later named MxTNI) had an Ethernet port. But your toaster or washing machine probably didn’t have a cable next to it in those days.

Today boards like the Raspberry Pi, the Beagle Bone, and their many imitators make it easy to get a small functioning computer on the network — wired or wireless. And wireless is everywhere. If it isn’t, you can do 3G or 4G. If you are out in the sticks, you can consider satellite. All of these options are cheaper than ever before.

The Problem

There’s still one problem. Sure, the network is everywhere. But that network is decidedly slanted at letting you get to the outside world. Want to read CNN or watch Netflix? Sure. But turning your computer into a server is a little different. Most low-cost network options are asymmetrical. They download faster than they upload. You can’t do much about that except throw more money at your network provider. But also, most inexpensive options expose one IP address to the world and then do Network Address Translation (NAT) to distribute service to local devices like PCs, phones, and tablets. What’s worse is, you share that public address with others, so your IP address is subject to change on a whim.

What do you do if you want to put a Raspberry Pi, for example, on a network and expose it? If you control the whole network, it isn’t that hard. You usually use some kind of dynamic DNS service that lets the Pi (or any computer) tell a well-known server its current IP address (see figure below).

Continue reading “Expose Your Raspberry Pi On Any Network”

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.

path3338

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  

Evernote Snapshot 20160831 181223Now, 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.

Hopefully my diagram doesn't win a prize for awfulness. Then again, an award's an award.
Hopefully my diagram doesn’t win a prize for awfulness. Then again, an award is an award. Remember that the bicycle wheel and  its input gear are rigidly attached to each other.

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.

The problem set-up.
The problem set-up.

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.

A classic. Cheap. Unreliable. Weak. Also Cheap.
A classic.

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.

Hrm..
Hrm..

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.

Damn.
Damn.

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.

Preparing Your Product For The FCC

At some point you’ve decided that you’re going to sell your wireless product (or any product with a clock that operates above 8kHz) in the United States. Good luck! You’re going to have to go through the FCC to get listed on the FCC OET EAS (Office of Engineering and Technology, Equipment Authorization System). Well… maybe.

As with everything FCC related, it’s very complicated, there are TLAs and confusing terms everywhere, and it will take you a lot longer than you’d like to figure out what it means for you. Whether you suffer through this, breeze by without a hitch, or never plan to subject yourself to this process, the FCC dance is an entertaining story so let’s dive in!

Continue reading “Preparing Your Product For The FCC”

Resistance In Motion: What You Should Know About Variable Resistors

Adjusting the volume dial on a sound system, sensing your finger position on a touch screen, and knowing when someone’s in the car are just a few examples of where you encounter variable resistors in everyday life. The ability to change resistance means the ability to interact, and that’s why variable resistance devices are found in so many things.

The principles are the same, but there are so many ways to split a volt. Let’s take a look at what goes into rotary pots, rheostats, membrane potentiometers, resistive touchscreens, force sensitive resistors, as well as flex and stretch sensors.

Continue reading “Resistance In Motion: What You Should Know About Variable Resistors”

3D Printering: Aramid And Carbon Fiber Infused ABS

Last week, we had a look at a carbon-infused PETG filament. This week, I’d like to show you two composites based on a more common thermoplastic in 3D printing: ABS. Among a whole lot of other engineering plastics, the french company Nanovia manufactures Kevlar-like aramid-fiber-infused and carbon-fiber-infused ABS 3D printing filaments. These materials promise tougher parts with less warping while being just as easy to print as regular ABS. Let’s check them out!

Continue reading “3D Printering: Aramid And Carbon Fiber Infused ABS”