Curious Inventor Blog

  • This is a small but useful tip we got from talking to David at uCHobby about lead trimming. When leads are clipped they usually go flying off and are a pain to clean up as well as an eye hazard. By resting a finger on the tip of the lead while clipping, the lead just falls to the table. It's faster than grabbing the sides of the lead, although with thicker leads (voltage regulators, some diodes, etc.), grabbing the sides is more prudent unless you don't mind a lead hanging out of your finger.

  • A logic analyzer isn’t the most common piece of equipment in a hobbyist’s shop, so we thought we’d write a small introduction about what it is and what it’s good for. A logic analyzer is commonly used to debug circuits where two or more chips are talking to each other, like a central uC interfacing with external memory, a peripheral camera or mp3 decoder. The main advantages over an oscilloscope are that more than 4 channels can be watched at the same time (sometimes more than 80), and that the logic analyzer can trigger / record right where it’s needed, not just on the first (or every) rising edge. For instance, you could program one to trigger and record data only after a particular byte sequence occurs. Read on for the (brief) basics of how to use a logic analyzer, what features to look for, some links to inexpensive analyzers as well as home-brew versions, and our attempt to digest a play station 2’s controller protocol.

     

    small disclaimer: This is for a beginner and written by one… please point out errors and omissions!

    Features and Basics of operation:

    First, a small sanity saving feature: labels.

    Instead of input 1, 2, 3,… the inputs can be labeled CLOCK, WRITE_ENABLE, CHIP_SELECT, etc., and multi-line buses can be configured to display hex values instead of binary. Reading a sequence of hex values (0x4D etc) is much easier than trying to decode stacks of square waves byte by byte.

    State Analyzer or Timing Analyzer mode:

    There are two modes that determine when a logic analyzer will sample:

    In State Analyzer mode, the logic analyzer samples all the test signals on the SUT’s (System Under Test) own clock signal, so the analyzer sees data exactly the same as the test circuit.

    In Timing Analyzer mode, the logic analyzer uses its own internal clock to decide when to sample. This mode provides more resolution, and is useful for making sure all the signals in the test circuit are transitioning correctly, ie, data is stable a sufficient amount of time before and after the clock signal. High end analyzers enable overlaying of both state and timing information to speed troubleshooting.

    Triggering:

    Besides having many more channels available than an oscilloscope, the other main advantage of a logic analyzer is its ability to record only the data of interest, even if it’s buried in the middle of a complex and long exchange. For example, a trigger could be designed to start recording only after seeing a particular bit pattern 4 times, followed by a delay, followed by another particular pattern, etc.

    Newer PC-based logic analyzers make use of the PC’s infinite storage, so precise triggering isn’t necessary to capture the target communications. However, many argue that it’s better to setup a precisely targeted trigger in the first place to avoid spending time searching through megabytes of data. ECNasia mag has a good review of many inexpensive PC-based analyzers, some of which are even less than $200.

    This hack-a-day comment listing includes lots of great links to parallel port and other home-brew logic analyzers.

    Programming the Trigger:

    example trigger programming sequence levels
    Trigger programming used to detect a configuration command from a play station 2

    Doug Beck of HP has an excellent introduction to trigger programming and some common mistakes. The basic idea is to set conditions for when the analyzer should record. The conditions typically involve a sequence of events and not simply a rising edge. For instance:

    1. 1) wait until DATABUS = 0x3D
    2. then, if WRITE has 4 rising edges within 400 ms, goto 3, else goto 1
    3. 3) Record whenever ADDR = 0x56 (until record buffer full)

    Each clock cycle of input data is tested against a step’s conditions until they are met, at which point the analyzer begins comparing input data to a new step in the chain. Note: after a level is completed, new input data is collected to test the next level. So if you wanted to check to see if ADDR=0x3D at the same time as DATA=0x32, both of these tests would have to be performed in the same level using an AND operator, not two different levels. The basic building blocks include timers, counters, Boolean logic , comparisons and edge triggers.

    One very useful feature is the ability to automatically digest serial data (USART, SPI, I2C, etc.). This feature isn’t included in all logic analyzers, so be sure to look for it when purchasing.

    This excellent Tektronix XYZ's of Logic Analyzers ( / Advertisement for their $10k+ analyzers) says channel count is still important even for serial-only applications, because 32 bit instructions get re-mapped vertically across 32 different channels even though the data stream comes in on one wire.

    Finding the Configuration bytes in a PlayStation 2's Initial Hand Shaking with a Controller:

    logic analyzer probing play station 2 cable
    In our efforts to develop the MIDIATOR kit (PlayStation / Guitar Hero --> MIDI), we spliced into an extension cord and attached oscilloscope and logic analyzer probes to the Command, Data, Clock and Attention Lines. Also shown in the picture are some PICs that were used to listen in on the serial (SPI) communications and dump out the data to a computer via RS-232. The MPLAB C-code is available on our PS2 Interface Guide.

    In this case, we got away with sloppy wiring since the PlayStation protocol is relatively slow (500kb/s), but attaching probes can require careful consideration of how much the probes themselves will affect a circuit. Too much added capacitance will cause the rise and fall times of a fast signal to round, which could lead to erroneous readings. Many modern circuits are designed with special interfaces just for logic analyzer probes. This is especially helpful when there are upwards of 64 lines to watch.

    logic analyzer and oscilloscope displaying and comparing the same signals
    The logic analyzer does not record unnecessary analog data, and has a much larger memory that you can zoom in on and scroll through.

    Unfortunately, this particular analyzer did not have built in functionality for analyzing and triggering off serial data (only parallel), but we were still able to setup a trigger that found the configuration byte, and then recorded after a certain delay. The trigger uses edge detection and a timer to find a step of a certain size. Admittedly, a better example would have involved a parallel bus, but we were still able to get more out of the communication than with an oscilloscope.

  • Despite the large number of guides already out there that describe how to communicate with a play station controller (or guitar hero), most do not cover all the details, or do so sparsely. We consolidated and tested all the info we could find in our new ps2 interface guide, including wiring connections, low and high level communication protocol. Also, MPLAB c source code for a PIC18f4550 is provided that demonstrates how to read all analog buttons (joysticks and button pressures) and control the vibration motors (works with the guitar hero controller, too). Most of the research was done while developing our MIDIATOR kit.

  • Pindar has created a robotic painting system named Zanelle that does everything from mixing paint to algorithmically shaping digital source images. Upwards of 25,000 brush strokes are applied in 12-36 hours to complete a painting. It would appear that Zanelle is intended to be more than a complex plotter, but rather a system that adds its own artisitc aesthetic (with some guidance from Pindar, perhaps). Read on for some pictures of the final paintings, as well as some before-and-after pictures from the neural net pre-processing.

    The effect almost seem reminiscent of the rotoscoping in the movie 'A Scanner Darkly' and all those Charles Schwab commercials. I wonder how much is from the robotic arm versus the pre-processing algorithms. A question with any robotic artists (musicians, painters, etc) is what role the robot plays... why not just have a speaker or printer?

    This is from a DC Dork Bot presentation.

    Brushes apparently only last 2-3 paintings before requiring replacement.

    Pindar says the next step is to add a camera to give the robot direct feedback from its output.

  • specs say it all: 20 Megabyte hard disk drive, 720K floppy, 16 bit microcontroller, 2 DC motors, 1 Castor, polyethylene shell... Capabilites: straight line and turning motion, object detection, classroom education, security, home manager?, friend. $7k (~$12k today) according to goretro's blog. From the theme song: "Bring the future home to you, he's watching you." Do we really need human-like robots (like ASIMO) that try to do everything? Task-specific machines seem to do fine for many things, like a dish washer, dryer, or a chess program on a computer. A dish washer would be horribly inefficient if it had to make use of two arms...

  • Our new open-source kit is a PS2 to MIDI converter based on a PIC microcontroller, and we call it the MIDIATOR. It turns a PS2 or guitar hero controller into a MIDI controller. We'll be posting info on how to interface a PS2 controller with any microcontroller soon.

  • We went to Maker Faire 2008 in San Mateo, CA, and brought our video camera along. This is just a small sample of everything that was there, including the destruction of Pleo (cute robot dinosaur) in the battle bot arena, powered recliners wheeling around (and cupcakes), cement and candy 3d printers, a dirt cheap multi-touch table, Tesla coils, lots of fire, and a bunch of music interfaces. Check out the makerfaire website for more info.

  • We attended the annual concert / exhibition by GaTech's music technology and digital media groups. Here are some highlights: There was a multi-touch table with a variety of games and interactive movies, two Indian songs involving computers writing their own accompaniment based on real-time analysis, a virtual world where your movements create music, and a bit of wii art. And I almost forgot the computer-keyboard band... Click the heading for some links.

    listening machines concert / exhibit program
    gatech music technology department
    gatech digital media department
    One of the links in the video was wrong for the Sarod Indian piece: slowTheka

  • We get an overview of the GaTech IEEE Robotic Team's 2008 competition bot, which has a ridiculous amount of gizmos on board, including a 300V light bulb charger / flasher, bluetooth-to-serial communication and wireless playstation controller operation, RFID, IR range finders, a block finding vision system and a lithium laptop battery power system. But the most impressive part is the block picker-upper... just a wheel and a loose strip of vinyl.

  • Sometimes solder suckers lose their suction even though nothing appears to be clogging the tip. By cleaning and re-lubing the O-ring inside, this simple tool can oftentimes be brought back to life. Click the title for more pictures and steps.

     

    If you hold your finger against the tip and release the plunger, the vacuum should be enough to keep the spring from extending. If you don't feel any suction and the plunger pulls back with little hesitation, it's time to clean the innards...

    First, make sure the tip isn't clogged. Most solder suckers have an internal rod that automatically pushes out any debris when the plunger is pushed in, but a drill bit will work if the rod isn't doing it's job.

    Now unscrew the main cylinder and pull out the plunger.

    Clean out the inner tube and O-ring with paper towels.

    Before reinserting the plunger, lube up the O-ring with a few drops of oil.

    Before screwing everything back together, check to see if the suction works again by manually pushing the plunger in and out while sealing the tip with a finger.

Items 121 to 130 of 144 total