The old method of turning the Pi Zero into a USB device required the user to modify and recompile the kernel. Obviously, this isn’t an ideal solution. [Tobias]’ implementation fixes this by putting everything into userland. Everything is configurable through a script and a few tweaks to how the Pi starts up.
The result is a Raspberry Pi Zero that will appear as any USB peripheral. [Tobias] goes through the usual examples: setting the Pi up as a serial device for hacking and code cracking in a terminal, as an Ethernet device to give the Pi Zero networking capabilities, as a keyboard to send keypresses to another computer, and as a mass storage device so that other computers can read a small portion of the Pi’s SD card.
There are plenty more USB gadgets the Pi can emulate, from printers to audio devices to MIDI adapters to webcams. If you can wrap your head around what a Pi Zero could do when configured as one of these devices, drop a note in the comments.
It is reasonably easy to make a microcontroller spit out some Morse code. What makes [pavlin’s] take on this project interesting is that it resides on a tiny USB board with an ARM processor. The design for the board is available with single-sided artwork suitable for production using simple methods like toner transfer.
The STM device has a built-in USB bootloader. It can also act as a serial port, which makes the project very simple. The only external parts are a speaker and an optoisolator. The program provides a command line interface over the serial port that you can use to program the message and set other options like speed and the delay between messages. The code is available on GitHub.
When it comes to electronic hobbyists and EEs, there is no company that deserves a few raised eyebrows than FTDI. They made their name with USB converter chips, namely USB to serial chips that are still very popular today. So popular, in fact, that clones of these chips are frequently found in the $2 Arduinos from China, and other very low-cost devices. A little more than a year ago, a few clever people noticed FTDI drivers were bricking these counterfeit chips by setting the USB PID to 0000. The Internet reacted to this move and FTDI quickly backed down from that position. The Windows driver was fixed, for about a year until the same shenanigans were found again.
Adafruit recently sat down with [Fred Dart], CEO of FTDI, giving us all the first facts and figures that aren’t from people frustrated with Windows’ automatically updated drivers. The most interesting information from [Fred Dart] is how FTDI first found these counterfeit chips, what FTDI chips are being counterfeited, and how many different companies are copying these chips.
The company first realized they were being cloned when they couldn’t reproduce results of a Chinese-made ‘FTDI’ USB to RS232 cable that behaved strangely. A sample of the cables were shipped to FTDI and after inspecting the chip inside, FTDI found it was a clone with a significantly different architecture than a genuine chip.
So far, the counterfeiters appear to only be counterfeiting the SSOP version of the FT232RL and occasionally the older FT232BL chip. From what FTDI has seen, there appears to be only one or two companies counterfeiting chips.
As the CEO of FTDI, [Fred] has a few insights into what can be done to stop counterfeiters in China. The most important is to trademark the logo. This isn’t just the logo for a webpage, but one that can be laser etched onto the plastic package of the chip. US Customs has been very amenable to identifying counterfeit components, and this has led to several shipments being destroyed. Legal action, however, is a bit hard in China, and FTDI is dealing with a gang that counterfeits more than FTDI chips; there’s a high likelihood this gang was responsible for the fake Prolific PL23o3 chips a few years ago.
As far as FTDI bricking counterfeit chips is concerned, [Fred Dart] wasn’t silent on the issue, he merely wasn’t asked the question and didn’t bring it up himself.
[Sean Hodgins’] acute approach is orthogonal to most of the other hubs we’ve seen. He’s mating the hub at right angles to the Zero. The hub plugs into both the on-the-go USB port and the USB power port. No extra cables or wiring needed. [Sean] plans to release the design on GitHub after his Kickstarter campaign ends. He’s supplying bare boards for those who like the smell of solder paste.
This project nicely triangulates the issues of adding a hub to the Zero. The physical connection is solid with the boards connecting via the USB connectors. Power is supplied through the hub the way the Pi expects, which means all the protections the Pi Foundation built into the onboard conditioning are left in place. This also reduces surge problems that might occur when back powering through a hub and hot swapping USB devices. Another neat feature is the notched corner leaving the HDMI port accessible. Similarly, the Pi’s GPIO pins are free of encumbrance. One drawback is the hub is fused at 2 amps, just like the Pi. It would be nice to have a little more headroom for power hungry USB devices. Maybe another 0.5 amp to allow for the Zero’s usage.
USB has been on our desktops and laptops since about 1997 or so, and since then it has been the mainstay of computer peripherals. No other connector is as useful for connecting mice, keyboards, webcams, microcontroller development boards, and everything else; it’s even the standard power connector for phones. The latest advance to come out of the USB Implementers Forum is the USB Type-C connector, a device with gigabits of bandwidth and can handle enough current to power a laptop. It’s the future, even if Apple’s one-port wonder isn’t.
The cable of the future is, by default, new. This means manufacturers are still figuring out the port, and how to wire it up. You would think remembering ‘red = power, black = ground’ is easy, but some manufacturers get it so terribly wrong.
The cable in question was a SurjTech 3M cable that has thankfully been taken down from Amazon. Swapping GND and Vbus weren’t the only problem – the SuperSpeed wires were missing, meaning this was effectively only a USB 2 cable with a Type-C connector. The resistor required by USB spec was the wrong value, and was configured as a pull-down instead of a pull-up.
This isn’t an issue of a cable not meeting a design spec. Ethernet cables, specifically Cat6 cables, have been shown to work but fail to meet the specs for Cat6 cables. That’s shady manufacturing, but it won’t break a computer. This is a new low in the world of computer cables, but at least the cable has disappeared from Amazon.
Just over a year ago, FTDI, manufacturers of the most popular USB to serial conversion chip on the market, released an update to their drivers that bricked FTDI clones. Copies of FTDI chips abound in the world of cheap consumer electronics, and if you’ve bought an Arduino for $3 from a random online seller from China, you probably have one of these fake chips somewhere in your personal stash of electronics.
After a year, we have the latest update to FTDI gate. Instead of bricking fake chips, the latest FTDI drivers will inject garbage data into a circuit. Connecting a fake FTDI serial chip to a computer running the latest Windows driver will output “NON GENUINE DEVICE FOUND!”, an undocumented functionality that may break some products.
FTDI gate mk. 1 merely bricked fake and clone chips, rendering them inoperable. Because fakes and clones of these chips are extremely common in the supply chain, and because it’s very difficult to both tell them apart and ensure you’re getting genuine chips, this driver update had the possibility to break any device using one of these chips. Cooler heads eventually prevailed, FTDI backed down from their ‘intentional bricking’ stance, and Microsoft removed the driver responsible with a Windows update. Still, the potential for medical and industrial devices to fail because of a random driver update was very real.
The newest functionality to the FTDI driver released through a Windows update merely injects unwanted but predictable data into the serial stream. Having a device spit out “NON GENUINE DEVICE FOUND!” won’t necessarily break a device, but it is an undocumented feature that could cause some devices to behave oddly. Because no one really knows if they have genuine FTDI chips or not – this undocumented feature could cause problems in everything from industrial equipment to medical devices, and of course in Arduinos whose only purpose is to blink a LED.
Right now, the only option to avoid this undocumented feature is to either use Linux or turn off Windows Update. Since the latter isn’t really a great idea, be prepared constantly roll back the FTDI driver to a known good version.
We’ve got two hacks in one from [Serge Rabyking] on fingerprint scanning. Just before leaving on a trip he bought a laptop on the cheap. He didn’t pay much attention to the features and was disappointed it didn’t have a fingerprint scanner. Working in Linux he uses sudo a lot and typing the password is a hassle. Previously he just swiped his finger on the scanner and execution continued.
He found a cheap replacement fingerprint scanner on hacker’s heaven, also known as eBay. It had four wires attached to a 16 pin connector. Investigation on the scanner end showed the outer pair were power and ground which made [Serge] suspect it was a USB device. Wiring up a USB connector and trying it the device was recognized but with a lot of errors. He swapped the signal lines and everything was perfect. He had sudo at his finger tip.
Next he wonder if it would work with a Raspberry Pi. He installed the necessary fingerprint scanning software, ran the enrollment for a finger, and it, not terribly surprisingly, worked.
On Linux the command fprintd-enroll reads and stores the fingerprint information. By default it scans and saves the right index finger but all ten fingers can be scanned and stored. Use libpam-fprintd to enable account login using a finger. Anyone know how you can trigger other events using a different finger? A quick search didn’t turn up any results.
In true hacker style, [Serge] created his own fingerprint reader from a replacement part. But you can jump start your finger usage by purchasing one of many inexpensive available readers.