DisplayPort: Taming The Altmode

The DisplayPort altmode is semi-proprietary, but it can absolutely be picked apart if we try. Last time, we found a cool appnote describing the DisplayPort altmode in detail, switched the FUSB302 into packet sniffing mode and got packet captures, learned about PD VDMs (vendor-defined messages), and successfully replayed the captured messages to switch a USB-C port into the DisplayPort altmode. Today, we will go through the seven messages that summon the DisplayPort altmode, implement them, and tie them all into a library – then, figure out the hardware we need to have DisplayPort work in the wild.

For a start, as you might have seen from the diagram, a single command can be either a request or a response. For instance, if you get a Discover Identity REQ (request), you reply to it with a Discover Identity ACK (response), adding your identity data to your response along the way. With some commands, the DP source will add some data for you to use; for most commands, your DP sink will have to provide information instead – and we’ll do just that, armed with the PDF provided and the packet captures.

We have seven commands we need to handle in order to get DisplayPort out of a compatible USB-C port – if you need a refresher on these commands, page 13 of the ST’s PDF on the DP altmode will show you the message sequence. These commands are: Discover Identity, Discover SVIDs, Discover Modes, Enter Mode, DP Status Update, DP Configure, and Attention. Out of these, the first four are already partially described in the base USB PD standard, the two DP commands afterwards are DisplayPort-altmode-specific but sufficiently described in the PDF we have, and the Attention command is from the base standard as well, mostly helpful for reporting state of the HPD pin. Let’s start with the first two! Continue reading “DisplayPort: Taming The Altmode”

Let’s Listen To A Tape — Paper Tape

These days, data is as likely as not to be “in the cloud.” Otherwise, it’s probably on a USB flash drive or SD card. But in the old days, paper tape was a widespread way to store and retrieve data. A common way to start the day at the office was to toggle in a few dozen bytes of bootloader code, thread a bigger bootloader tape into your TeleType paper tape reader, and then get your coffee while the more capable bootloader clunked its way into memory. Then you could finish your brew while loading the tape with your compiler or whatever you wanted. [Scott Baker] has a Heathkit H8 and decided using a paper tape machine with it and some of his other gear would be fun.

Instead of a TeleType, [Scott] picked up a used paper tape machine from FANUC intended for the CNC industry. They are widely available on the surplus market, although a working machine might run you $500. [Scott] paid $200, so he had some work to do to make the unit operational.

Paper tape had a few varieties. For computer work, you usually had a tape that could hold eight holes across, one for each bit in a byte. However, there are also 6-bit and 5-bit tapes for special purposes or different encodings (old TeleTypes used 5-bit characters in Baudot). The paper choice varied too. You could get plain paper, oiled paper, which maybe didn’t jam as often, and Mylar, which is less likely to shred up when it does jam.

To make things even more difficult, the machines all worked a little differently as well. Sure, punches almost all use solenoids. But the tape transport was sometimes a pinch roller and sometimes a sprocket-style drive. Reading the holes could be done with mechanical contacts or optically. Some punches left little “hanging chads” on the tape, so you didn’t have to empty a confetti box to throw away the chad.

The repair job was interesting. Inside the machine is an 8051 microcontroller. There was no clock, and the circuit used two custom modules. One was simply a crystal, and the other was an oscillator. Removing both allowed a modern can oscillator to replace both modules. The next problem was a fried serial output driver. Replacing that got things working except for random resets due to a faulty brown-out reset circuit. That was easy to fix, too.

Of course, if you are really cheap, it is easy to make a paper tape reader from 8 phototransistors, and pulling tape through by hand isn’t unheard of. It can even talk USB. We’ve even seen a conference badge that can read tapes.

Continue reading “Let’s Listen To A Tape — Paper Tape”

Get MOST Into Your Pi

When looking the modify a passenger vehicle, the Controller Area Network (CAN) bus is a pretty easy target. In modern vehicles it has access to most of the on-board systems — everything from the climate control to the instrument cluster and often even the throttle, braking, and steering systems. With as versatile as the CAN bus is, though, it’s not the right tool for every job. There’s also the Media Oriented Systems Transport (MOST) bus which is increasingly found in automotive systems to handle multimedia such as streaming music to the stereo. To access that system you’ll need to approach it slightly differently as [Rhys] demonstrates.

[Rhys] has been working on replacing the dated head unit in his Jaguar, and began by investigating the CAN bus. He got almost everything working with replacement hardware except the stereo, which is where the MOST bus comes into play. It provides a much higher bandwidth than the CAN bus can accommodate but with almost no documentation it was difficult to interact with at first. With the help of a Raspberry Pi and a lot of testing he is able to get the stereo working again with a much more modern-looking touchscreen for control. It is also able to do things like change CDs in the car’s CD player, gather song information from the CD to display on the panel, and can perform other functions of the infotainment center.

For more detailed information on the MOST bus, [Rhys] also maintains a website where he puts his discoveries and other information he finds about this system. Unfortunately car stereo systems in modern vehicles can get pretty complicated these days, but adapting car stereos in older vehicles to modern technology carries some interesting challenges as well.

Continue reading “Get MOST Into Your Pi”

Kalman Filters Without The Math

If you program using values that represent anything in the real world, you have probably at least heard of the Kalman filter. The filter allows you to take multiple value estimates and process them into a better estimate. For example, if you have a robot that has an idea of where it is via GPS, dead reckoning, and an optical system, Kalman filter can help you better estimate your true position even though all of those sources have some error or noise. As you might expect, a lot of math is involved, but [Pravesh] has an excellent intuitive treatment based around code that even has a collaborative Jupyter notebook for you to follow along.

We have always had an easier time following code than math, so we applaud these kinds of posts. Even if you want to dig into the math, having basic intuition about what the math means first makes it so much more approachable.

Continue reading “Kalman Filters Without The Math”

The Simplest Curve Tracer Ever

To a lot of us, curve tracing seems to be one of those black magic things that only the true wizards understand. But as [DiodeGoneWild] explains, curve tracing really isn’t all that complicated, and it doesn’t even require specialized test instruments — just a transformer, a couple of resistors, and pretty much whatever oscilloscope you can lay your hands on.

True to his handle, [DiodeGoneWild] concentrates on the current-voltage curves of Zener diodes in the video below, mainly as a follow-up to his recent simple linear power supply project, where he took a careful look at thermal drift to select the best Zener for the job. His curve tracer is super simple — just the device under test in series with a bunch of 10-ohm resistors and the secondary winding of a 12-volt transformer. The probes of his oscilloscope — a no-frills analog model — go across the DUT and the resistor, and with the scope in X-Y mode, the familiar current-voltage curve appears. Sure, the trace is reversed, but it still provides a good visualization of what’s going on. The technique also works on digital scopes; just be ready for a lot of twiddling to get into X-Y mode and to get the trace aligned.

Of course it’s not just diodes that can be tested with a curve tracer, and [DiodeGoneWild] showed a bunch of other two-lead components on his setup. But for our money, the neatest trick here was using a shorted bridge rectifier to generate a bright spot on the curve to mark the zero crossing point. Clever indeed, and pretty useful on a scope with no graticule.

Continue reading “The Simplest Curve Tracer Ever”

The AI Engine That Fits In 100K

Running your own AI models is possible, but it requires a giant computer, right? Maybe not. Researchers at NVidia are showing off Perfusion, a text-to-image model they say is 100KB in size and takes four minutes to train. The model specializes in customizing a photo. For example, the paper shows a picture of a teddy bear and a prompt to dress it as a wizard. In all fairness, the small size and quick training are a little misleading, we think, because the results are still using the usual giant model. What’s small and fast is the customization of the existing model.

Customizing models is a common task since you often want to work with something the model doesn’t contain. For example, you might want to alter a picture of your face or your pet, which probably isn’t in the original model. You can create a special keyword and partially train the model for what you want using something called textual inversion. The problem the researchers identified is that creating textual inversions often causes the new training to leak to unintended areas.

They describe “key locking,” a technique to avoid overfitting when fine-tuning an existing model. For example, suppose you want to add a specific dog picture to the model. With typical techniques, a special keyword like dog* will indicate the custom dog image, but the keyword has no connection with generic dogs, mammals, or animals. This makes it difficult for the AI to work with the image. For example, the prompts “a man sitting” and “a dog sitting” require very different image generations. But if we train a specific dog as “dog*” there’s no deeper understanding that “dog*” is a type of “dog” that the model already knows about. So what do you do with “dog* sitting?” Key locking makes that association.

Continue reading “The AI Engine That Fits In 100K”

Open-Source Firmware For Soldering Irons

For most of us, the first soldering iron we pick up to start working on electronics has essentially no features at all. Being little more than resistive heaters plugged straight into the wall with perhaps a changeable tip, there’s not really even a need for a power switch. But doing anything more specialized than through-hole PCB construction often requires a soldering iron with a little more finesse, though. Plenty of “smart” soldering irons are available for specialized soldering needs now, and some are supported by the open-source IronOS as well.

The project, formerly known as TS100, is a versatile soldering iron control firmware that started as an alternative firmware for only the TS100 soldering iron. It has since expanded to have compatibility with several other soldering irons and hosts a rich set of features, including temperature control, motion activation, and the ability to temporarily increase the temperature when using the iron. The firmware is also capable of working with irons that use batteries as well as irons that use USB power delivery.

For anyone with a modern smart soldering iron, like the Pinecil or various Miniware iron offerings, this firmware is a great way of being able to gain fine control over the behavior of one’s own soldering iron, potentially above and beyond what the OEM firmware can do. If you’re still using nothing more than a 30W soldering iron that just has a wall plug, take a look at a review we did for the TS100 iron a few years ago to see what you’re missing out on.

Photo via Wikimedia Commons