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”

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”

Take Your PCBs From Good To Great: Toner Transfer

dscf8697
One-offs that I never would have gotten professionally made, but that were infinitely handy during development

A lot of us make circuit boards at home. I find it a useful skill to have in my bag of tricks for intermediate steps along the way to a finished project, even if the finished version is going to be sent out to a PCB fab. When I need a breakout board that meshes with other development tools, for instance, there’s nothing like being able to whip something up that plugs right in. Doing it quickly, and getting on with the rest of the project instead of placing an order and waiting for delivery, helps keep me in the flow.

Toner transfer is by far the fastest way to make a circuit board at home — simply print the circuit out on a laser printer, iron it onto the copper, and etch. When it works, it’s awesome. When it doesn’t, it can be a hair-pulling exercise in figuring out which of myriad factors are misaligned.

For a long time now, I’ve been using a method that’s very reliable and repeatable. Recently, I’ve been tweaking a bit on the performance of the system, and I thought I’d share what I’ve got. At the moment, I’m able to very reliably produce boards with 6 mil (0.15 mm) traces and 8 mil (0.20 mm) spacing. With a little care in post-production, 4 mil / 6 mil is entirely plausible.

Continue reading “Take Your PCBs From Good To Great: Toner Transfer”

How To Use Docker To Cross Compile For Raspberry Pi (and More)

It used to be tedious to set up a cross compile environment. Sure you can compile on the Raspberry Pi itself, but sometimes you want to use your big computer — and you can use it when your Pi is not on hand like when on an airplane with a laptop. It can be tricky to set up a cross compiler for any build tools, but if you go through one simple step, it becomes super easy regardless of what your real computer looks like. That one step is to install Docker.

Docker is available for Linux, Windows, and Mac OS. It allows developers to build images that are essentially preconfigured Linux environments that run some service. Like a virtual machine, these images can run together without interfering with each other. Unlike a virtual machine, Docker containers (the running software) are lightweight because they share the same underlying kernel and hardware of the computer.

The reality is, setting up the Raspberry Pi build environment isn’t any easier. It is just that with Docker, someone else has already done the work for you and you can automatically grab their setup and keep it up to date. If you are already running Linux, your package manager probably makes the process pretty easy too (see [Rud Merriam’s] post on that process). However, the nice thing about the images is it is a complete isolated environment that can move from machine to machine and from platform to platform (the Windows and Mac platforms use a variety of techniques to run the Linux software, but it is done transparently).

Continue reading “How To Use Docker To Cross Compile For Raspberry Pi (and More)”

Circuit Design? Spread The Joy

Accountants and MBAs use spreadsheets to play “what if” scenarios with business and financial data. Can you do the same thing with electronic circuits? The answer–perhaps not surprisingly–is yes.

Consider this simple common emitter amplifier (I modeled it in PartSim, if you’d like to open it):

In this particular case, there are several key design parameters. The beta of the transistor (current gain) is 220. The amplifier has an overall voltage gain of about 3 (30/10). I say about, because unless the transistor is ideal, it won’t be quite that. The supply voltage (Vcc) is 12 volts and I wanted the collector voltage (VC) to idle at 6V to allow the maximum possible positive and negative swing. I wanted the collector current (IC) to be 200mA.

Continue reading “Circuit Design? Spread The Joy”

Tips For Buying Your First Milling Machine

If you’re interested in making things (and since you’re reading this, we’re going to assume you are), you’ve almost certainly felt a desire to make metal parts. 3D printers are great, but have a lot of drawbacks: limited material options, lack of precision, and long printing times. If you want metal parts that adhere to even moderately tight tolerances, a milling machine is your only practical option. There is, after all, a very good reason that they’re essential to manufacturing.

However, it can be difficult to know where to start for the hobbyist who doesn’t have machining experience. What kind of milling machine should you get? Should you buy new or used? What the heck is 3-phase power, and can you get it? These questions, among many others, can be positively overwhelming to the uninitiated. Luckily, we — your friends at Hackaday — are here to help give you some direction. So, if you’re ready to learn, then read on! Already an expert? Leave some tips of your own in the comments!

Continue reading “Tips For Buying Your First Milling Machine”

How To Build Anything With Delrin And A Laser Cutter — Advanced Tricks

Everyone wants their prototypes to look polished, as opposed to looking like 3D-squirted weekend afterthoughts. The combination of Delrin and a Laser Cutter make this easy, especially if you learn a few tricks-of-the-trade that will make your assemply pop, both functionally and aesthetically.

Last time, we took a deep dive into fabbing parts with Delrin and a typical 40-watt laser cutter, and we discussed some of the constraints of the material. More recently, [Gerrit] gave us a close look at the material itself. It’s been about a year since our first post, but the list of tricks is far from complete.

If you’re just getting started in this domain, let me introduce you to two classic techniques for laser-cut prototypes: puzzle-piecing and the T-nut-slotting. While these techniques are tried-and-true, I hope, fearless reader, that they’ll leave you hungry for something cleaner, something more refined. If that’s the case, read on!

Continue reading “How To Build Anything With Delrin And A Laser Cutter — Advanced Tricks”