Let’s start off with proof. Below is an animation of a measurement of airplanes and meteors I made using a radar system that I built with a few simple easily available pieces of hardware: two $8 RTL software defined radio dongles that I bought on eBay, and two log-periodic antennas. And get this, the radar system you’re going to build works by listening for existing transmissions that bounce off the targets being measured!
I wrote about this in a very brief blog posting a few years ago. It was mainly intended as a zany little side story for our radio telescope blog, but it ended up raising a lot of interest. Because this has been a topic that keeps attracting inquiries, I’m going to explain how I did the experiment in more detail.
It will take a few posts to show how to build a radar capable of performing these types of measurements. This first part is the overview. In later postings I will go through more detailed block diagrams of the different parts of a passive radar system, provide example data, and give some Python scripts that can be used to perform passive radar signal processing. I’ll also go through strategies to determine that everything is working as expected. All of this may sound like a lot of effort, but don’t worry, making a passive radar isn’t too complicated.
Most hobbyists say that it is easier to build a functional prototype of an electronic device, than to make the enclosure for it. You could say that there are a lot of ready-made enclosures on the market, but they are never exactly what you need. You could also use a 3D printer to build a custom enclosure, but high-end 3D printers are too expensive, and the cheaper ones produce housings which are often not robust enough, and also require a lot of additional treatment.
Another way is to build the enclosure out of FR4, a material which is commonly used in PCB production. Such enclosures are low-cost, with thin walls but yet very strong, nice looking, pleasant to the touch and have excellent thermal and moisture stability. FR4 offers some more possibilities – efficient wiring with no wires inside the housing, integrated UHF or SHF antennas or RFID coils, capacitive switches, electrical shielding, selective semi-transparency, water or air tightness, and even integration of complex mechanical assemblies.
Here I shall explain the process of building those “magic” enclosures. It is based on nearly fifty years of personal experience and more than a hundred enclosures, built for most of my projects. Here are two examples – this case for a hardware password manager is just a few centimeters long, while the other one (protective transportation cover for my son’s synthesizer) measures 125cm (about 49 inches), and yet both of them are strong enough to withstand a grown man standing on top of them.
The global approach is simple – you take the sheet of single-sided copper clad FR4, cut it and solder the parts together. That sounds simple, but there are a lot of details which should be met if you want to get top results. Please read about them carefully. You might be tempted to skip some of the steps described here, but if you do so, you will most likely end up being disappointed with the results.
For a few years now I’ve been developing an interactive army of delta robots. This ongoing project is fueled by my desire to control many mechanical extremities like an extension of my body (I’m assuming I’m not the only one who fantasizes about robots here).
Since my army doesn’t have a practical application… other than producing pretty light patterns and making the user feel extremely cool for a minute, I guess you’d call it art. In the past I’ve held a Kickstarter to fund the production of my art which I can now happily show at cool events with interesting people; Maker Faire being one of them.
Interactivity and Sprawling Crowds
Last year, for our debut at the big Bay Area Maker Faire, my collaborator, [Mark], and I displayed a smaller sampling of 30 robots for our installation. We also decided to create an interactive aspect for others to experience. After the end of our crowdfunding period last March, we had a little over a month to do any development before the big event, so our options were slim. The easy solution was to jam our delta code into the hand tracking demo which comes with the Xbox Kinect’s Open NI within Processing. This was cool enough to exhibit, but we hadn’t really anticipated how it would go over in an environment as densely packed as the dark room at Maker Faire.
We should have known better. Both of us were aware that there would be many, many children… all with micro hands to confuse and bewilder the Kinect, but we did it anyway. Our only resolve was to implement the feature that would force the Kinect to track one hand at a time, only after being waved at in a very particular fashion. After needing to explain this stipulation to every person who stopped by our booth over the course of the weekend, we decided never to use the Kinect for crowds ever again; lesson learned.
Delta Robots and DMX
Over the past year since that experience, we’ve tripled the size of the installation and brainstormed some better demo ideas. As of now, the robots are all individually addressable over an RS485 bus, and we use the DMX protocol over a CAT5 cable to send commands. If you aren’t familiar with it, DMX is used in show production to control stage lighting… to which there is a super neat and free application called QLC+ that allows you to effectively orchestrate the motion and color of many individual light units; perfect for our cause.
Functionally, each of the 84 delta robots in the installation believes that it is a stage light (robots with identity issues). We mapped the X and Y axis of the end effector to the existing pan and tilt values, and the z axis to the beam focus value. The RGB of the LED mounted in the end effector of each delta maps directly to the RGB value of the stage light.
By using the sliders in the QLC+ GUI, I could select groups of robots and create presets for position and color. This was great, someone like me who doesn’t really write a lot of code could whip up impressive choreography with little sweat. Additionally, the program comes with a nice visualizer, where you can layout virtual nodes and view your effects as you develop them.
This is the layout of our installation mapped in QLC+. The teal and purple sliders around each light represent pan and tilt (or in our case X and Y):
Lighting control was an interesting solution. Having autonomous robots this year changed how people responded to them, as they were less like an army you’d command and more of a hypnotic field of glowing grass.
[Mark] and I are considering picking up some flex sensors and maybe playing with the Leap or an EEG headset as a means to reintroduce the interactive aspect. Bottom line, I have this cool new toy that I can’t wait to play with over the summer!
I usually see retro-gaming projects using tiny screens with a fair number of pixels (64×64) but what I really like is the look of making every pixel count. With this in mind I built 1-Pixel Pac-Man, the classic coin-op experience but with characters that consist of just one pixel. Playing a throw-back like this wouldn’t be the same without some vintage controls so I picked up an Atari joystick, patched it into a microcontroller, and started coding. Check it out:
Smartmatrix Bundle
32×32 RGB panel with acrylic diffuser
Back of the Smartmatrix
This piece of hardware made the project build really easy: the Smartmatrix. [Louis Beaudioin] developed the Smartmatrix and it’s been in the Hackaday Store for a while now. The display module itself is a commodity item that is used in LED billboards. There are shrouded headers on the back of the panels, to the left and right sides, which allow them to be daisy chained. The Smartmatrix PCB plugs into one of these shields, provides a soldering footprint for the Teensy 3.1 which drives the display, and gives you the wiring to connect screw terminals from the PCB to the power terminals on the module. Why the need for beefy power jumpers? At full white the thing can draw about 3.5A — don’t worry there’s a power supply included in the bundle.
Also integral to making this look good is the diffuser panel which is frosted acrylic. The Smartmatrix is designed to be housed in a shadowbox frame; it even includes a frame backer board with a cut-out for the Teensy 3.1 so it can be programmed without opening the thing up. I like looking at the guts so I’m leaving my free floating until I come up with an interesting way to mount everything as one unit.
Programming Pac-Man from the Ground Up
If you haven’t looked into it before, the ghost AI and gameplay details for Pac-Man are absolutely brilliant. [Toru Iwatani] did a masterful job with the original, and you should take a look at all of the analysis that has been done over the years. The best collection I could find was the Pac-Man Dossier and I based most of my code on the rules described there.
Basically the ghosts have two modes, chase and scatter. The modes set the enemy targets differently; to points at the four corners of the board in scatter, and to points relative to the player in chase. The relative part is key; only the red enemy actually chases you. Another one of them looks at the red enemy’s distance and angle, and targets the reflection of that vector. Really easy, really clever, and results in enemy behavior that’s believable. It isn’t just the enemy movement, little touches like a speed penalty (1/60 of a second) for each dot the player gobbles up means the enemies can catch up if you continuously eat, but you can escape by taking the path already-eaten.
Library, DMA, and Extra Hardware
Teensy 3.1
DB9 Connector for Joystick
Extras in the Bundle
Kickstarter remote and RTC Module
The hardware and software running the Smartmatrix made the display portions of the project really simple. First off, the Teensy 3.1 is fast, running at 96MHz in this case. Second, it has Direct Memory Access (DMA) which [Louis] used in the Smartmatrix library. This means that driving the display takes almost no CPU time at all, leaving the rest for your own use. This example of a game is under-utilizing this power… it’s totally capable of full-motion video and calculating amazing visualizations on the fly.
The PCB hosting the Teensy 3.1 breaks out several pins to one side. I’m not sure what I’ll add in the future so I actually used the extra surface-mount IO pins on the bottom of the Teensy to connect the Atari joystick (which is simply a set of switches). The are enough pads for two joysticks so I used pin sockets to interface the Teensy to the PCB so that I can get to it again later.
The kit also includes an IR receiver and remote, and also a microSD card to loading animations (there’s an SD socket on the PCB). The bundle in the Hackaday Store is a kit you solder yourself, but [Louis’] company, Pixelmatix, has a Kickstarter running for fully-assembled versions that come with a black remote and sound-visualization hardware.
Future Improvements
The game is fully working, but there are a few key things that I really want to add. The Teensy 3.1 has a single DAC pin available. I’m fairly certain the original coin-op game had mono audio. It should be possible to reproduce the sound quite accurately with this board. That would really make the project pop.
There are also a bunch of touch-ups that need to happen. I’d like to add an animation when the player is eaten by an enemy, and a countdown before the level restarts. The score, shown in binary on the right column, should be scrolled out in decimal when the game ends, and what’s a coin-op recreation without a high-score screen?
Summer is heating up and so is the Hackaday Prize. In two weeks we’ll put down stakes in San Francisco for a day-long workshop followed by a meetup in the hippest of bars.
The Zero to Product workshop will be held on June 13th at Highway1 — the well-known hardware startup accelerator in San Francisco. This workshop is created and led by [Matt Berggren] who is an expert in electronic design and PCB layout.
RSVP Before Tickets are Gone!
Zero to Product workshop in Pasadena a few weeks ago
RSVP for the workshop and you’ll be well on your way to knowing what goes into professional-level PCB design. Basic knowledge of electronics is all you need, prior layout experience isn’t required. Bring along a computer with the newest version of Eagle on it if you want to follow along, but this is not a requirement. It will certainly jumpstart any PCB design you are working on for your 2015 Hackaday Prize entry. If you haven’t started your entry yet, this is a great crowd to help with brainstorming!
Whether or not you are at the workshop, we’re planning to head out for a bit of fun afterward. This casual meet up is at Lucky Strike starting around 7:30pm. It’s up to you if you want to bowl, imbibe, or both. Please RSVP; since we haven’t rented the place out we’d like to have an idea of how many hackers are coming. And don’t forget, it’s a tradition at Hackaday bar meetups to bring a small bit of hardware to show off as you meet new people. See you in June!
It’s time to do a series on logic including things such as programmable logic, state machines, and the lesser known demons such as switching hazards. It is best to start at the beginning — but even experts will enjoy this refresher and might even learn a trick or two. I’ll start with logic symbols, alternate symbols, small Boolean truth tables and some oddball things that we can do with basic logic. The narrative version is found in the video, with a full reference laid out in the rest of this post.
Invert
The most simple piece of logic is inversion; making a high change to low or a low change to high. Shown are a couple of ways to write an inversion including the ubiquitous “bubble” that we can apply almost anywhere to imply an inversion or a “True Low”. If it was a one it is now a zero, where it was a low it is now a high, and where it was true it is now untrue.
AND
Moving on to the AND gate we see a simple truth table, also known as a Boolean Table, where it describes the function of “A AND B”. This is also our first opportunity to see the application of an alternate symbol. In this case a “low OR a low yields a low”
NAND
Most if not all of the standard logic blocks come in an inverted form also such as the NAND gate shown here. The ability to invert logic functions is so useful in real life that I probably used at least three times the number of NAND gates as regular AND gates when doing medium or larger system design. The useful inversion can occur as spares or in line with the logic.
That’s right, we’re headed to the epicenter of electronics manufacturing next month: Shenzhen, China. We have a ton planned and this is the quick and dirty overview to get you thinking. If you are in the area (or are itching to travel) join us for a week of hardware hacker culture. Highlights for our tour include:
Meet Up on June 18th – (RSVP details coming soon)
Zero to Product PCB Workshop on June 19th – RSVP Now
Hackaday Talks presented at Maker Faire Shenzhen on June 19th and June 21st
Hackaday Booth at MFSZ on June 20-21
Zero to Product Workshop at MakerCamp Shenzhen
MakerCamp brings 30 talented Makers, Hackers, Designers, and Engineers together for a few days to build a makerspace inside of a shipping container.
We won’t be part of that build team (registration is open until 6/1 if you want to be). We will be supporting the event as part of the workshops that help celebrate the completion of the space. A mobile hackerspace full of interesting tools is one thing. But the sharing of knowledge, experience, and skill is what truly makes a hackerspace work.
Our Zero to Product workshop created by [Matt Berggren] has been generating a ton of buzz and will be offered at Shenzhen MakerCamp.
The workshop runs from 10am to 6pm on Friday, June 19th on the grounds of Maker Faire: Shenzhen. The event covers PCB design and at the end you will have laid out a development board for use with the ESP8266 WiFi module.
We were totally sold out for the workshop in LA a few weeks ago this is another chance to join in. If Shenzhen is a bit too far for you to travel, we are also planning the next installment in San Francisco on June 13th.
Hackaday Shenzhen Meetup
If you just want to hang out, so do we! On the night of Thursday, June 18th we’ll be rolling into an area bar for a tasty beverage and a night of interesting conversation. As always, we want to see the hardware you’ve been working on. We do recommend bringing things that fit easily in your pocket or backpack since we’re meeting up to spend some time with other Hackaday community members in the area.
We don’t have the location nailed down for this one. Check this post again as we’ll be adding it here. And if you have a bar to suggest to us please leave a comment below.
The picture above is from just a few weeks ago. We had a huge turnout for the BAMF meetup. There was a ton of hardware on hand which makes for really easy conversation as you meet other hackers for the first time.
Talks by [Mike] and [Sophi] plus Booth at Maker Faire Shenzhen
[Mike] is giving a talk on Friday, June 19th about the power of Open Design to move education forward. [Sophi] will be presenting her talk on Sunday, June 21st about making stuff that matters and working on research equipment used to investigate the world around us such as solar, medicine and disease.
Come to the Faire to hear our talks, but make sure you swing by the Hackaday booth as well. We’ll be bringing some of our most favorite projects to exhibit but we can’t resist the opportunity to do something interactive. Stop by and build an oscillator, wire up a sequencer, and create your own rudimentary music based on [Elliot Williams’] series Logic Noise.
Tag Along with Hacker Camp Shenzhen?
One of the adventures we’ve always wanted to take part in is Hacker Camp Shenzhen which is run by Hackaday alumnus and Hackaday Prize Judge [Ian Lesnet]. The week-long camp leverages [Ian’s] knowledge of the area, manufacturers, markets, and people to provide tours and workshops for those interested in manufacturing. It just so happens that HackerCamp lines up the same week as all of the Hackaday events. We can’t take part in the entire thing, but are hoping that we have a free day to meet up (and possibly tag along) with the HackerCamp crew.