The Many Faces Of JTAG

Wouldn’t it be great if there were just one standard for attaching to, programming, and debugging hardware?  If you could just plug in and everything would just work? Dream on, dreamer! But of course we hobbyists aren’t the only people to suffer from multiple standards. Industry has the same problems, writ large. In response to the proliferation of smart devices — microcontrollers, sensors, and their friends — on any given PCB makes it difficult to test them all, much less their function as a system.

The Joint Test Action Group (JTAG) got together in the mid-80s to make automated testing of circuit boards a standardized process. A JTAG port can be found on almost any piece of consumer electronics with enough brains to warrant it, and it’s also a tremendously useful entry point for debugging your own work and hacking into other’s. You’re going to need to use JTAG someday.

Implemented right, it’s a very cool system that lets you test any compliant IC on the board all from a single connector. It’s mostly used by hackers for its ability to run and halt individual processors, and put them in debugging modes, inspecting their memory states, etc. Essentially every microcontroller responds to JTAG commands, and it’s an incredibly widespread and powerful standard. A victory for rationality and standardization!

The connector pinout was, of course, left up to the manufacturer. The horror!

Five Signals

In principle, JTAG uses five signal lines. They form a chain starting at the debugger, where one device’s output is the next device’s input, until the result is returned back to the debugger.

654px-jtag_chain
JTAG, as imagined by Vindicator CC BY 2.5
  • Test Data In (TDI) is the input from the debugger
  • Test Data Out (TDO) is the return end of the chain
  • Test Clock (TCK) clocks this data along synchronously, similarly to SPI
  • Test Mode Select (TMS) lets the devices know that they’re being debugged — it’s a global chip select
  • Test Reset (TRST) is an optional signal that resets all devices in the chain

Continue reading “The Many Faces Of JTAG”

A How-To In Homebrew Design, Fab, And Assembly With Structural Framing Systems

At this point, the internet is crawling with butt-kicking homebrew 3D printers made with extruded profiles, but it’s easy to underestimate the difficulty in getting there. Sure, most vendors sell a suite of interlocking connectors, but how well do these structural framing systems actually fare when put to the task of handling a build with sub-millimeter tolerances?

I’ve been playing around with these parts for about two years. What I’ve found is that, yes, precise and accurate results are possible. Nevertheless, those results came to me after I failed and–dry, rinse, repeat–failed again! Only after I understood the limits of both the materials and assembly processes was I able to deliver square, dimensionally accurate gantries that could carry a laser beam around a half-square-meter workbed. That said, I wrote a quick guide to taming these beasts. Who are they? What flavors do they come in? How do we achieve those precision results? Dear reader, read on.

Continue reading “A How-To In Homebrew Design, Fab, And Assembly With Structural Framing Systems”

Set Your Clocks To Decimal Time

Many stop lights at street intersections display a countdown of the remaining seconds before the light changes. If you’re like me, you count this time in your head and then check how in sync you are. But did you know that if the French had their way back in the 1890s when they tried to introduce decimal time, you’d be counting to a different beat? Did you know the Chinese have used decimal time for millennia? And did you know that you may have unknowingly used it already if you’ve programmed in Linux? Read on to see what decimal time is along with the answers to these questions.

Continue reading “Set Your Clocks To Decimal Time”

Compiling A $22 Logic Analyzer

On my way to this year’s Hackaday SuperConference I saw an article on EE Times about someone taking the $22 Lattice iCEstick and turning it into a logic analyzer complete with a Python app to display the waveforms. This jumped out as pretty cool to me given that there really isn’t a ton of RAM on the stick, basically none that isn’t contained in the FPGA itself.

[Jenny List] has also written about the this application as created by [Kevin Hubbard] of Black Mesa Labs and [Al Williams] has a great set of posts about using this same $22 evaluation board doing ground up Verilog design using open source tools. Even if you don’t end up using the stick as a logic analyzer over the long haul, it’ll be very easy to find many other projects where you can recompile to invent a new purpose for it.

Continue reading “Compiling A $22 Logic Analyzer”

The Many Uses Of The Neon Lamp

Neon lights are that kind of nostalgic item that everybody seems to love. The neon lamp is a type of gas discharge lamp, they generate light when an electrical discharge travels through an ionized gas, or plasma. When the voltage between the electrodes exceeds certain threshold, the gas ionizes and begins conducting electricity. The basic process that generates light is the return of the ions to the ground energy state, with the emission of a photon of light. The light color depends on the emission spectra of the atoms in the gas, and also  on the gas pressure, among other variables.  Gas discharge lamps can be classified by the pressure of the gas:

  • Low pressure: includes the neon lamp, fluorescent lamps and low pressure sodium lamps.
  • High pressure: such as the metal halide, high pressure sodium and mercury vapor lamps.

Another classification comes from the heating method of the cathode:

  • Hot cathode lamps: the electric arc between the electrodes is created via thermionic emission, where electrons are expelled from the electrodes because of the high temperature.
  • Cold cathode lamps: In these, the electric arc results from the high voltage applied between the electrons, that ionizes the gas and conduction can take place.

High intensity lamps are another type of gas discharge lamp where a high power arc is formed between tungsten electrodes. Power levels of several kilowatts can be easily produced this type of lamp. Of course we can’t forget to mention nixie tubes, which are a type of cold cathode neon lamp, popular for building retro clocks. Fortunately, they are now in production again.

Continue reading “The Many Uses Of The Neon Lamp”

Diodes: The Switch You Never Knew You Had

Vishay's take on the 1N4148 data sheet (PDF), describing it as a switching diode.
Vishay’s take on the 1N4148 data sheet (PDF), describing it as a switching diode.

When looking across the discrete components in your electronic armory, it is easy to overlook the humble diode. After all, one can be forgiven for the conclusion that the everyday version of this component doesn’t do much. They have none of the special skills you’d find in tunnel, Gunn, varicap, Zener, and avalanche diodes, or even LEDs, instead they are simply a one-way valve for electrical current. Connect them one way round and current flows, the other and it doesn’t. They rectify AC to DC, power supplies are full of them. Perhaps you’ve also used them to generate a stable voltage drop because they have a pretty constant voltage across them when current is flowing, but that’s it. Diodes: the shortest Hackaday article ever.

Not so fast with dismissing the diode though. There is another trick they have hiding up their sleeves, they can also act as a switch. It shouldn’t come as too much of a shock, after all a quick look at many datasheets for general purpose diodes should reveal their description as switching diodes.

So how does a diode switch work? The key lies in that one-way valve we mentioned earlier. When the diode is forward biased and conducting electricity it will pass through any variations in the voltage being put into them, but when it is reverse biased and not conducting any electricity it will not. Thus a signal can be switched on by passing it through a diode in forward bias, and then turned off by putting the diode into reverse bias.

Continue reading “Diodes: The Switch You Never Knew You Had”

Hacking Your Way Through NASA

The 2016 Hackaday SuperConference took place last month in sunny Pasadena, California. Also calling Pasadena home is the Jet Propulsion Laboratory, the place where Mars rovers are built, where probes are guided around the solar system, and where awesome space stuff happens.

JPL had a large contingent at the SuperCon and two of them teamed up to present their talk: Charles Dandino and Lucy Du. Lucy is a mechatronics engineer at JPL and already has a little bit of fame from fielding a Battlebot in the last two seasons of ABC’s series. Charles is also in mechatronics, with experience with Curiosity, the Mars 2020 rover, and the (hopefully) upcoming asteroid redirect mission.

In their talk, Charles and Lucy uncovered some of the hacks happening in the background at JPL. There’s a lot of them, and their impact goes much further than you would expect. Everything from remote control cars to keeping spacecraft alive on the other side of the solar system.

Continue reading “Hacking Your Way Through NASA”