We’ve all seen the little USB power meters that have become popular since nearly every portable device has adopted some variation of USB for charging. Placed between the power source and the device under test, they allow you to see voltage and current in real time. Perfect for determining how long you’ll be able to run a USB powered device on batteries, or finding out if a USB power supply has enough current to do the business.
[Jonas Persson] liked the idea of these cheap little gadgets, but wanted something a bit more scientific. His design, which he refers to as UPM, is essentially a “smart” version of those ubiquitous USB gadgets. Instead of just showing the data on a little LCD screen, it can now be viewed on the computer and analyzed. His little gadget even allows you to cut power to the device under test, potentially allowing for automated testing of things such as inrush current.
Essentially the UPM works in much the same way as the simple USB meters: one side of the device goes towards the upstream power source, and the device under test plugs into the other side. Between the two devices is a 16 bit ADC and differential amplifier which measures the voltage and current. There’s a header on the board which connects to the ADC if you wanted to connect the UPM to an external microcontroller or other data logging device.
But most likely you would be using the internal microcontroller to analyze the output of the ADC over I2C, which [Jonas] very cleverly connected to the upstream port with an integrated USB hub. One side of the hub goes off to the device being tested, and the other to the microcontroller. So the host device will see both the UPM’s integrated microcontroller and the target device at the same time. From there, you can use the ncurses user interface to monitor and control the device in real-time.
While the hardware looks more or less finished, [Jonas] has some more plans for the software side of UPM, including support for remote control and monitoring over TCP/IP as well as robust logging capabilities. This is definitely a very interesting project, and we’re excited to see it develop further.
In the past we’ve seen homebrew USB power meter builds, and even commercial offerings which boasted computer-based logging and analysis, so it was only a matter of time before somebody combined them into one.
Communicating with microcontrollers and other embedded systems requires a communications standard. SPI is a great one, and is commonly used, but it’s not the only one available. There’s also I2C which has some advantages and disadvantages compared to SPI. The problem with both standards, however, is that modern computers don’t come with either built-in. To solve that problem and allow easier access to debugging in SPI, [James Bowman] built the SPIDriver a few months ago, and is now back by popular demand with a similar device for I2C, the I2CDriver.
Much like the SPIDriver, the I2C driver is a debugging tool that can be used at your computer with a USB interface. Working with I2C is often a hassle, with many things going on all at once that need to sync up just right in order to work at all, and this device allows the user to set up I2C devices in a fraction of the time. To start, it has a screen built in that shows information about the current device, like the signal lines and a graphical decoding of the current traffic. It also shows an address space map, and has programmable pullup resistors built in, and can send data about the I2C traffic back to its host PC for analysis.
The I2CDriver is also completely open source, from the hardware to the software, meaning you could build one from scratch if you have the will and the parts, or make changes to the code on your own to suit your specific needs. If you’re stuck using SPI still, though, you can still find the original SPIDriver tool to help you with your debugging needs with that protocol as well.
[Frank Adams] liked the keyboard on his Lenovo ThinkPad T61 so much that he decided to design an adapter so he could use it over USB with the Teensy microcontroller. He got the Trackpoint working, and along the way managed to add support for a number of other laptop boards as well. Before you know it, he had a full-blown open source project on his hands. Those projects can sneak up on you when you least expect it…
The first step of the process is getting your laptop keyboard of choice connected up to the Teensy, but as you might expect, that’s often easier said than done. They generally use a flexible printed circuit (FPC) “ribbon cable” of some type, but may also be terminated in any number of weirdo connectors. [Frank] goes over the finer points of getting these various keyboards connected to his PCB, from searching the usual suspects such as Aliexpress and Digikey for the proper connector to throwing caution to the wind and cutting off problematic nubs and tabs to make it fit.
You might be on your own for figuring out the best way to connect your liberated keyboard up, but [Frank] has done his part by designing a few PCBs which handle routing the appropriate connections to the Teensy LC or 3.2 microcontroller. He’s such a swell guy he’s even written the firmware for you. As of right now there’s currently a dozen keyboards supported by his software and hardware setup, but he also gives tips on how to get the firmware modified for your own board if you need to.
It should come as no surprise that it was a Thinkpad keyboard that got [Frank] going down this path; as we’ve documented over the years, hackers love their Thinkpads. From fitting them with more modern motherboards to going full on matryoshka and putting a second computer inside of one, it’s truly the laptop that launched a thousand hacks.
Continue reading “Teensy Liberates the ThinkPad Keyboard”
We’ve got two hands, so it’s natural to want to use both of them while diagnosing a circuit with an oscilloscope. Trouble is, keeping both hands on the probes makes it a touch difficult to manipulate the scope. If only there were some way to put your idle lower appendages to work.
This multipurpose oscilloscope footswitch interface makes so much sense that we wonder why such a thing isn’t standard equipment on more scopes. [Paul Roukema]’s interface relies on the USB Test and Measurement Class (USBTMC) protocol that allows most modern scopes to be remotely controlled, somewhat like the General Purpose Interface Bus (GPIB) protocol of old. [Paul]’s interface uses an STM32 microcontroller to talk USBTMC to either Keysight’s Infinium scopes or the Tektronix DPO line, since those were what he had to test against. Tapping the footswitch cycles the acquisition mode on and off or triggers a single acquisition. He’s thoughtfully included the USBTMC specs in his GitHub project, so adapting it to other scopes should be straightforward. We’d even wager that older scopes with GPIB could enjoy the same handsfree control.
Have a down-market scope but still want to go handsfree? [Jenny List]’s primer on running a Rigol with Python might offer some hints on where to start.
Last year, Jiangsu Yuheng Co., Ltd introduced a new microcontroller. The CH554 is a microcontroller with an E8051 core with a 24 MHz clock, a little more than 1 kB of RAM, and a bit more than 14 kB split between the code and data Flash. In short, it’s nothing too spectacular, but it makes up for that with peripherals. It’s got SPI and ADCs and PWM, UARTs, and even a few capacitive touch channels. It’s also a USB device, with some chips in the series able to function as a USB host. You can buy this chip for a quarter through the usual retailers.
Normally, this isn’t huge news. The 8051 is the most copied microcontroller on the planet, and there are probably billions produced each year. Cheap parts are only cheap if your time is free; you’ll usually spend ages trying to digest the datasheet and get a toolchain up and running. That’s where this chip is a little different. There are multiple efforts to bring an Open Source toolchain to this chip. And they’re doing it in Windows and Linux. Someone really cares about this chip.
The current best option for an SDK for this chip comes from Blinkinlabs, with a port of the CH554 SDK from Keil to SDCC. There are real, working code examples for this chip using an Open Source toolchain. Sure, it might just blink a LED, but it’s there. If you can blink a LED, you can do just about anything from there. Programming the chip happens over USB with the ‘official’ WCHISPTool (Windows) or LibreCH551 (command line). The end result is a completely Open Source toolchain to program and upload a hex file to a cheap chip.
There are a few more chips in the CH554 series, ranging from the CH551 in an SOP-16 package to the CH559 in an LQFP48 package, with more features available as the chips get bigger. It’s an interesting chip, with some somehow implementing a USB hub, and could be a very cool chip for some low-level USB hacking.
With the release of Smash Ultimate fast approaching for the Nintendo Switch, [Patrick Hess] wanted to get ahead of the game and make sure his squad had the equipment they’d need. Namely, support for the GameCube controllers that serious Smash Bros players demand. But it wasn’t enough to have one or two of them hooked up, or even four. Not even six GameCube controllers could satiate his desire. No, he needed to have support for eight simultaneous GameCube controllers, and he wanted to look good doing it too.
Enter his meticulously designed eight player GameCube to USB adapter. Made out of dual official Nintendo GameCube to USB adapters (intended for the Wii U) merged together in a 3D printed case, the final result looks like something that could earn the coveted Nintendo Seal of Approval. Or at least, something that might pop up on the import sites in the next month or two for a few bucks.
[Patrick] started the project by recreating the official adapter PCBs and their housings in 3D using a pair of calipers. After a couple of test prints to make sure he had all the dimensions right, he could then move on to designing his final enclosure knowing he had accurate data to model around.
In addition to the two adapter boards, there’s also a four port USB hub inside the device’s case. Each adapter has two USB leads, here shortened to fit inside the case, which connect up to the hub. The integrated hub allows connecting all eight GameCube controllers through only a single USB connection. All controllers worked as expected during intense testing on the Wii U’s version of Smash Bros, though at this point [Patrick] can only assume it will work when the Switch version is released.
If there’s a downside to this project, it’s that the design for the 3D printed case is so intricate that [Patrick] was only able to print it on a machine that supported water-soluble PVA supports. A somewhat tall order for the average hacker; it would be interesting to see if somebody could make a second pass on the enclosure that is geared more towards printability than aesthetics.
While the design of the GameCube controller remains somewhat controversial after all these years, there’s no denying it retains an impressive following. Whether turning them into USB devices, shrinking them to preposterously small dimensions, or just finding increasingly creative ways to use them on Nintendo’s latest console, hackers are definitely in love with the gonzo little controller that’s now pushing 20 years old.
[Dimitris Platis] works in an environment with a peer review process for accepting code changes. Code reviews generally are a good thing. One downside though, is that a lack of responsiveness from other developers can result in a big hit to team’s development speed. It isn’t that other developers are unwilling to do the reviews, it’s more that individuals are often absorbed in their own work and notification emails are easily missed. There is also a bit of a “tragedy of the commons” vibe to the situation, where it’s easy to feel that someone else will surely attend to the situation, but often no one does. To combat this, [Dimitris] built this Code Review Lamp, a subtle notification that aims to prod reviewers into action.
The lamp is based on a ring of RGB LEDs and a Wemos D1 Mini board. The Wemos utilizes the popular ESP8266, so it’s easy to develop for. The LED ring and Wemos are tied together with a slick custom PCB. Mounting the LED ring on the top of the PCB and the Wemos on the bottom allows for easy powering via a USB cable while directing light upward. The assembly is placed in a translucent 3D printed enclosure creating a pleasant diffuse light source.
Every developer gets a Code Review Lamp. The lamps automatically log in to the change management system to check whether anything is awaiting review. If a review is ready, the Lamp glows in a color specific to the individual developer. All this serves as a gentle but persistent reminder that someone’s work is being held up until a review is completed.
We love the way that the device has a clear purpose: it does its job without any unnecessary features or parts. It’s similar to this ESP8266 IoT Motion Sensor in that it has a single job to do, and focuses on it well.
Continue reading “Code Review Lamp Subtly Reminds You To Help Your Fellow Developer”