3D render of the badge programming adapter PCB

Supercon 2022 Badge Gets A Tinkering Helper Add-on

Are you one of the lucky ones to own a Hackaday Supercon 2022 badge? Would you like to make it even easier to program than it already is? [brokebit] has exactly the project you might’ve been dreaming of all along — it’s a Supercon 2022 Badge programming adapter. With pass-through for all badge pins, four buttons, a total of ten DIP switches and four LEDs, the sheer IO of this add-on makes good use of the badge’s expansion header. But that’s not all, as there’s a USB-UART converter accessible through a MicroUSB socket.

Using mostly through-hole components, this board won’t leave you digging through parts drawers for exotic buttons or pin headers; most everything is jellybean. The pass-through capability of the adapter means that other badge add-ons will be compatible and you can even use this adapter to debug them, with DIP switches helping you disconnect whatever onboard circuitry interferes. For instance, if you’re not looking for USB-UART functionality provided by the classic CP2102, the dual DIP switches are right there for you to disconnect it on the fly.

The board is 6 layers, but since the quoted price was the same as a 4-layer board, it made for a more comfortable layout. Want a refresher on the badge? Here you go, and here’s our write-up about it before Supercon. Hackers have been stretching the limits of what the 2022 badge can get done — here’s a punch card reader, for instance.

Steve showing a circuit built with spintronics blocks

Electronics Explained With Mechanical Devices

It can be surprisingly hard to find decent analogies when you’re teaching electronics basics. The water flow analogy, for instance, is decent for explaining Ohm’s law, but it breaks down pretty soon thereafter.

Hydraulics aren’t as easy to set up when you want an educational toykit for your child to play with, which leaves them firmly in the thought experiment area. [Steve Mould] shows us a different take – the experimentation kit called Spintronics, which goes the mechanical way, using chains, gears, springs and to simulate the flow of current and the effect of potential differences.

Through different mechanical linkages between gears and internal constructs, you can implement batteries, capacitors, diodes, inductors, resistors, switches, transistors, and the like. The mechanical analogy is surprisingly complete. [Steve] starts by going through the ways those building blocks are turned into mechanical-gear-based elements. He then builds one circuit after another in quick succession, demonstrating just how well it maps to the day-to-day electronic concepts. Some of the examples are oscillators, high-pass filters, and amplifiers. [Steve] even manages to build a full-bridge rectifier!

In the end, he also builds a flip-flop and an XOR gate – just in case you were wondering whether you could theoretically build a computer out of these. Such a mechanical approach makes for a surprisingly complete and endearing analogy when teaching electronics, and an open-source 3D printable take on the concept would be a joy to witness.

Looking for something you could gift to a young aspiring mind? You don’t have to go store-bought – there are some impressive hackers who build educational gadgets, for you to learn from.

Showing a USB-C tester running the DingoCharge script, charging a battery pack at 7V. To the right is a battery pack being charged, and a USB-C charger doing the charging.

Use USB-C Chargers To Top Up Li-Ion Packs With This Hack

In USB-C Power Delivery (PD) standard, the PPS (Programmable Power Supply) mode is an optional mode that lets you request a non-standard voltage from a charger, with the ability to set a current limit of your choice, too. Having learned this, [Jason] from [Rip It Apart] decided to investigate — could this feature be used for charging Li-Ion battery packs, which need the voltage and current to vary in a specific way throughout the charging process? Turns out, the answer is a resounding “yes”, and thanks to a USB-C tester that’s programmable using Lua scripts, [Jason] shows us how we can use a PPS-capable USB-C charger for topping up our Li-Ion battery packs, in a project named DingoCharge.

The wonderful write-up answers every question you have, starting with a safety disclaimer, and going through everything you might want to know. The GitHub repo hosts not only code but also full installation and usage instructions.

DingoCharge handles more than just Li-Ion batteries — this ought to work with LiFePO4 and lithium titanate batteries, too.  [Jason] has been working on Ni-MH and lead-acid support. You can even connect an analog output thermal sensor and have the tester limit the charge process depending on the temperature, showing just how fully-featured a solution the DingoCharge project is.

The amount of effort put into polishing this project is impressive, and now it’s out there for us to take advantage of; all you need is a PPS-capable PSU and a supported USB-C tester. If your charger’s PPS is limited by 11V, as many are, you’ll only be able to fully charge 2S packs with it – that said, this is a marked improvement over many Li-Ion solutions we’ve seen. Don’t have a Li-Ion pack? Build one out of smartphone cells! Make sure your pack has a balancing circuit, of course, since this charger can’t provide any, and all will be good. Still looking to get into Li-Ion batteries? We have a three-part guide, from basics to mechanics and electronics!

Showing the same thumbdrive plugged into the same USB-C port in two different orientations, enumerating as two different USB ports

Dirty USB-C Tricks: One Port For The Price Of Two

[RichardG] has noticed a weird discrepancy – his Ryzen mainboard ought to have had fourteen USB3 ports, but somehow, only exposed thirteen of them. Unlike other mainboards in this lineup, it also happens to have a USB-C port among these thirteen ports. These two things wouldn’t be related in any way, would they? Turns out, they are, and [RichardG] shows us a dirty USB-C trick that manufacturers pull on us for an unknown reason.

On a USB-C port using USB3, the USB3 TX and RX signals have to be routed to two different pin groups, depending on the plugged-in cable orientation. In a proper design, you would have a multiplexer chip detecting cable orientation, and routing the pins to one or the other. Turns out, quite a few manufacturers are choosing to wire up two separate ports to the USB-C connector instead.

In the extensive writeup on this problem, [Richard] explains how the USB-C port ought to be wired, how it’s wired instead, shows telltale signs of such a trick, and how to check if a USB-C port on your PC is miswired in the same way. He also ponders on whether this is compliant with the USB-C specification, but can’t quite find an answer. There’s a surprising amount of products and adapters doing this exact thing, too, all of them desktop PC accessories – perhaps, you bought a device with such a USB-C port and don’t know it.

As a conclusion, he debates making an adapter to break the stolen USB3 port out. This wouldn’t be the first time we’re cheated when it comes to USB ports – the USB2 devices with blue connectors come to mind.

Fritzing diagram of connections between the Wemos D1 board, the TP4056 board, the pushbutton and the LiIon battery

Battery-Powered ESP8266 Sensor? Never Been Simpler

Say, you’re starting your electronics journey with a few projects in mind. You have an ESP8266 board like the Wemos D1, a Li-Ion battery, you want to build a small battery-powered sensor that wakes up every few minutes to do something, and you don’t want to delve into hardware too much for now. Well then, does [Mads Chr. Olesen] have a tutorial for you! Here, you’ll learn the quick and easy way to get your sensor up and running, learn a few tricks for doing sleep Arduino environment, and even calculate how long your specific battery could last. Continue reading “Battery-Powered ESP8266 Sensor? Never Been Simpler”

a Pi Pico on a breadboard, running a 7-segment counter gateware, with a 7-segment digit and a pushbutton next to the Pico

Want To Play With FPGAs? Use Your Pico!

Ever want to play with an FPGA, but don’t have the hardware? Now, if you have one of those ever-abundant Pi Picos, you can start playing with Verilog without getting an FPGA board. The FakePGA project by [tvlad1234], based on the Verilator toolkit, provides you with a way to compile Verilog into C++ for the RP2040. FakePGA even integrates RP2040 GPIOs so that they work as digital pins for the simulated GPIOs, making it a significant step up from computer-aided FPGA code simulation

[tvlad1234] provides instructions for setting this up with Linux – Windows, though untested, could theoretically run this through WSL. Maximum clock speed is 5KHz – not much, but way better than not having any hardware to test with. Everything you’d want is in the GitHub repo – setup instructions, Verilog code requirements, and a few configuration caveats to keep in mind.

We cover a lot of projects where FPGAs are used to emulate hardware of various kinds, from ISA cards to an entire Game BoyCPU emulation on FPGAs is basically the norm — it’s just something easy to do with the kind of power that an FPGA provides. Having emulation in the opposite direction is unusual,  though, we’ve seen FPGAs being emulated with FPGAs, so perhaps it was inevitable after all. Of course, if you have neither a Pico nor an FPGA, there’s always browser based emulators.

Continue reading “Want To Play With FPGAs? Use Your Pico!”

Screenshot of the framework-built app, showing it running through Firefox

Turn A Webpage Into A Desktop App With Gluon

Electron is software for running web-written apps in the same way as native ones, and has gotten plenty of bad press for its RAM appetite around these parts. But while the execution might leave something to be desired, the concept itself is quite solid —  if you’ve already got code written for the web, a quick and easy way to bring it over to the desktop would be very valuable.

Which is why [CanadaHonk] is building a framework called Gluon, which aims to turn your web pages into desktop apps with little to no effort. We’ve seen their work a few months ago with the OpenASAR project, hacking the Discord desktop app to speed it up. Drawing from that experience, Gluon is built to be lean – with apps having low RAM and storage footprints, lightning-speed build times, and a no-nonsense API.

One of the coolest parts is that it’s able to use your system-installed browser, and not a bundled-in one like Electron. Firefox support is firmly on the roadmap, too, currently in experimental stage. Linux support is being worked on as well — the framework is Windows-born, but that’s to change. There’s also room to innovate; [CanadaHonk] recently added a hibernation feature with aggressive RAM and CPU footprint reduction when the app is minimized, something that other frameworks like this aren’t known for.

If you want to write user-facing software, JavaScript’s a decent language, and quite a few of you are going to be familiar with it. You aren’t limited to the software side of the tech world, either — tools like WebUSB and WebSerial will let you write a user interface for a board that you’ve just developed. For instance, here’s a WebSerial-based oscilloscope, a nifty serial terminal, or a hacker conference badge programming toolkit. For all that browsers have gotten wrong, they certainly don’t seem to become less abundant, and if that means you can quickly develop cross-platform hardware-facing apps, it’s certainly a useful addition to one’s toolkit.