Easy, Extensible, Open

I’m a huge DIY’er. I don’t like to buy things when I can build them myself. But honestly, that doesn’t always end up in the optimal allocation of my time, when viewed from a getting-stuff-done perspective. Sometimes, if you’ve got a bigger project in mind, the right way is the quick way, and the quick way is buying something that already works. But when that something is itself not hackable, you’d better be darn sure that it does what you need, and what you could reasonably expect to need in the future, out of the box. And that’s where extensibility comes in.

It’s rare to find products out there that are designed to be both easy to use for the newbie, but extensible for the advanced user. For one, it’s hard work to tick either one of these boxes alone, so it’s twice as hard to nail both. But my other sinking suspicion is that designers tend to have an end user in mind, and maybe only one end user, and that’s the problem. When designing for the newbie, convenience is king. Or if targeting the pro, you maximize flexibility, but perhaps at the expense of designed-in complexity.

There’s a way out, a cheat code, if you will. And that’s making the project open source. Go ahead and hide the complexity from the new user if you want — as long as the pro is able to dive into the schematics or the source code, she’ll figure out how to extend it herself. Openness frees the designers up to worry about making it easy to use, without compromising its flexibility.

I think that this blend of easy and extensible, through openness, is what fundamentally drove the success of Arduino. On the surface layer, there are libraries that just do what you want and drop-down menus with examples to access them. But when you needed to actually use the chip’s hardware peripherals directly, there was nothing stopping you. For the community at large, the fact that all of the code was openly available meant that extending the base was easy — and let’s not beat around the bush, the community’s libraries, tutorials, and example projects are the real reason for the success of the platform.

Look around you, and look out when you’re making that next non-DIY shortcut purchase. Is it easy to use? Can you make it do the things that it doesn’t yet do? Just two simple requirements, yet they seem to knock out so many products if you want both. Then look at those that are both simple and flexible — are they also open? At least in my little world, the answer is almost always “yes”.

Hacked DSP5005 unit showing amp-hours screen

Another DPS5005 Alternative Firmware

These cheap Chinese-built programmable power supplies are nothing new, we’ve been using them for years. They’re not particularly good power supplies, since current feedback is in software, but for some tasks they’re a great fit and you can’t argue with the price. Alternative firmware projects have also been a thing for a while too, but none we’ve seen have been quite as capable and polished as this latest DPS firmware project by [Profi-max.] We’ve not come across the source code yet, but at least the binary image is freely downloadable.Battery charge screen on hacked DPS5005

The firmware has some interesting features, such as programmable pre-sets intended for battery charging applications. In fact, there is a dedicated battery charge mode screen. We want to warn, however, that charging lithium ion batteries with this might not be at all wise, not in the least because of a lack of protection hardware in place. It would be very easy to destroy the unit or overheat a battery this way! However, if you must do this, there are a few features to help you out, such as a handy ‘counters’ screen showing approximate charge delivered.

Remote programmability is, as usual, via the easily hacked in serial port, with firmware support for Bluetooth serial modules if wired USB serial doesn’t suit. For those who like to mount things differently, the screen can be rotated by holding a key on power-up, or if you hook up a MPU6050 accelerometer/gyro module it will even do it automatically!

To update a stock DPS unit, the only requirements are access to an ST-Link compatible programmer dongle, to target the STM32 SWD programming interface, and the STM32CubeProgrammer utility. Open source alternatives to that are also available, stlink comes to mind as a good option. Once you have the module PCB popped out of its plastic casing, only three wires need tacking onto a handy set of pads to complete the connection to the programmer dongle. Pretty simple stuff.

If you’re looking for a similar project, with source immediately available, then checkout the OpenDPS project we covered a few years ago, and if you’re thinking of going crazy, building a DIY open source electronics lab, we got you covered.

Continue reading “Another DPS5005 Alternative Firmware”

Designing Electronics That Work

[Hunter Scott] who has graced these pages a fair few times, has been working on electronics startups for the past ten years or so, and has picked up a fair bit of experience with designing and building hardware. Those of us in this business seem to learn the same lessons, quite often the hard way; we call it experience. Wouldn’t it be nice to get up that learning curve a little quicker, get our hardware out there working sooner with less pain, due to not falling into the same old traps those before us already know about? The problem with the less experienced engineer is not their lack of talent, how quickly they can learn, nor how much work they can get done in a day, but simply that they don’t know what they don’t know. There’s no shame in that, it’s just a fact of life. [Hunter] presents for us, the Guide to Designing Electronics that Work.

The book starts at the beginning. The beginning of the engineering process that is; requirements capturing, specifications, test planning and schedule prediction. This part is hard to do right, and this is where the real experience shows. The next section moves onto component selection and prototyping advice, with some great practical advice to sidestep some annoying production issues. Next there’s the obvious section on schematic and layout with plenty of handy tips to help you to that all important final layout. Do not underestimate how hard this latter part is, there is plenty of difficulty in getting a good performing, minimal sized layout, especially if RF applications are involved.

The last few sections cover costing, fabrication and testing. These are difficult topics to learn, if up till now all you’ve done is build prototypes and one-offs. These are the areas where many a kickstarter engineer has fallen flat.

Designing Electronics That Work doesn’t profess to be totally complete, nor have the answer to everything, but as the basis for deeper learning and getting the young engineer on their way to a manufacturable product, it is a very good starting point in our opinion.

The book has been around a little while, and the latest version is available for download right now, on a pay what-you-want basis, so give it a read and you might learn a thing or two, we’re pretty confident it won’t be time wasted!

Flipper Zero tool reading bank card, displaying data on LCD

What’s On Your Bank Card? Hacker Tool Teaches All About NFC And RFID

The Flipper Zero is a multipurpose hacker tool that aims to make the world of hardware hacking more accessible with a slick design, wide array of capabilities, and a fantastic looking UI. They are struggling with manufacturing delays like everyone else right now, but there’s a silver lining: the team’s updates are genuinely informative and in-depth. The latest update is all about RFID and NFC, and how the Flipper Zero can interact with a variety of contactless protocols.

Drawing of Flipper Zero and a variety of RFID tags
Popular 125 kHz protocols: EM-Marin, HID Prox II, and Indala

Contactless tags are broadly separated into low-frequency (125 kHz) and high-frequency tags (13.56 MHz), and it’s not really possible to identify which is which just by looking at the outside. Flipper Zero can interface with both, but the update at the link above goes into considerable detail about how these tags are used in the real world, and what they look like from both the outside and inside.

For example, 125 kHz tags have an antenna made from many turns of very fine wire, with no visible space between the loops. High-frequency tags on the other hand will have antennas with fewer loops, and visible space between them. To tell them apart, a bright light is often enough to see the antenna structure through thin plastic.

Low-frequency tags are “dumb” and incapable of encryption or two-way communication, but what about high-frequency (often referred to as NFC) like bank cards and applications like Apple Pay? One thing demonstrated is that mobile payment methods offer up considerably less information on demand than a physical bank or credit card. With a physical contactless card it’s possible to read the full card number, expiry date, and in some cases the name as well as recent transactions. Mobile payment systems (like Apple or Google Pay) don’t do that.

Like many others, we’re looking forward to it becoming available, sadly there is just no getting around component shortages that seem to be affecting everyone.

Two hands on a book labeled "hardware crowdfunding"

Successfully Crowdfunded Hardware: Everything Behind The Scenes

Crowdfunding hardware has its own unique challenges, and [Uri Shaked] wrote a fascinating report that goes into excellent detail about his experience bringing a crowdfunded hardware project to life.

A skull-shaped PCB with two red eyes[Uri]’s project was The Skull CTF, an electronic hardware puzzle that came in the shape of a PCB skull, and his detailed look behind the scenes covers just about every angle, from original concept to final wrap-up, along with his thoughts and feedback at every stage. His project reached its funding goal, got manufactured and shipped, and in the end was a success.

[Uri] started with a working project, but beyond that was virtually a complete novice when it came to crowdfunding. He eventually settled on using Crowd Supply to make his idea happen, and his writeup explains in great detail every stage of that process, including dollar amounts. What’s great to see is that not only does [Uri] explain the steps and decisions involved, but explains the research that went into each, and how he feels each of them ended up working out.

The entire thing is worth a read, but [Uri] summarizes the experience of crowdfunding a hardware project thus: an excellent way to test out the demand for an idea and bring a product into existence, but be aware that unless a project is a runaway success it probably won’t be much of an income generator at that stage. It was a great learning experience, but involved a lot of time and effort on his part as well.

[Uri] really knows his stuff, and considering his skill at hunting down pesky bugs, it’s probably no surprise that this wasn’t his first hardware puzzle.

Custom RISC-V Processor Built In VHDL

While ARM continues to make inroads into the personal computing market against traditional chip makers like Intel and AMD, it’s not a perfect architecture and does have some disadvantages. While it’s a great step on the road to software and hardware freedom, it’s not completely free as it requires a license to build. There is one completely open-source and free architecture though, known as RISC-V, and its design and philosophy allow anyone to build and experiment with it, like this build which implements a RISC-V processor in VHDL.

Since the processor is built in VHDL, a language which allows the design and simulation of integrated circuits, it is possible to download the code for the processor and then program it into virtually any FPGA. The processor itself, called NEORV32, is designed as a system-on-chip complete with GPIO capabilities and of course the full RISC-V processor implementation. The project’s creator, [Stephan], also struggled when first learning about RISC-V so he went to great lengths to make sure that this project is fully documented, easy to set up, and that it would work out-of-the-box.

Of course, since it’s completely open-source and requires no pesky licensing agreements like an ARM platform might, it is capable of being easily modified or augmented in any way that one might need. All of the code and documentation is available on the project’s GitHub page. This is the real benefit of fully open-source hardware (or software) which we can all get behind, even if there are still limited options available for RISC-V personal computers for the time being.

How does this compare to VexRISC or PicoSOC? We don’t know yet, but we’re always psyched to have choices.

Adding In-Game Reset To Classic Playstations

The first Playstation is quickly approaching three decades since its release, and while this might make some of us who were around for that event feel a little aged, the hardware inside these machines isn’t getting any younger either. Plenty of people are replacing the optical drive in the original hardware with an optical drive emulator as they begin to fail, and with that comes the option for several other modifications to the hardware like this in-game reset mod.

In-game reset is a function that allows a console to be reset via a controller button combination rather than pressing the console’s reset button directly. Especially for devices modified with either the XStation or PSIO drive emulators, this can be a handy feature to have as this method can more easily take the user back to the emulator menu as well as physically reset the device. The modification is a small PCB which attaches to the controller port and, unlike previous versions, only requires a single pin to be soldered to the Playstation’s control board.

If you’re someone who enjoys playing games on original hardware rather than a patchwork of emulators, this could be an excellent addition to your PS1 that still allows most of the original feel and experience the PS1 offered. The drive emulator can greatly expand the range of the hardware as well, much like this NES cartridge which similarly expands the capabilities of that much older system.