When USB Charger Marketing Claims Are Technically True

The 600W is not the output rating, despite all appearances. (Credit: Denki Otaku, YouTube)
The 600W is not the output rating, despite all appearances. (Credit: Denki Otaku, YouTube)

We have seen many scam USB chargers appear over the years, with a number of them being enthusiastically ripped apart and analyzed by fairly tame electrical engineers. Often these are obvious scams with clear fire risks, massively overstated claims and/or electrocution hazards. This is where the “600W” multi-port USB charger from AliExpress that [Denki Otaku] looked at is so fascinating, as despite only outputting 170 Watt before cutting out, it’s technically not lying in its marketing and generally well-engineered.

The trick being that the “600W” is effectively just the model name, even if you could mistake it for the summed up output power as listed on the ports. The claimed GaN components are also there, with all three claimed parts counted and present in the main power conversion stages, along with the expected efficiency gains.

While testing USB-PD voltages and current on the USB-C ports, the supported USB-PD EPR wattage and voltages significantly reduce when you start using ports, indicating that they’re clearly being shared, but this is all listed on the product page.

The main PCB of the unit generates the 28 VDC that’s also the maximum voltage that the USB-C ports can output, with lower voltages generated as needed. On the PCB with the USB ports we find the step-down converters for this, as well as the USB-PD and other USB charging control chips. With only a limited number of these to go around, the controller will change the current per port dynamically as the load increases, as you would expect.

Considering that this particular charger can be bought for around $30, is up-front about the limitations and uses GaN, while a genuine 300 Watt charger from a brand like Anker goes for $140+, it leads one to question the expectations of the buyer more than anything. While not an outright scam like those outrageous $20 ‘2 TB’ SSDs, it does seem to prey on people who have little technical understanding of what crazy amounts of cash you’d have to spend for a genuine 600 Watt GaN multi-port USB charger, never mind how big such a unit would be.

Continue reading “When USB Charger Marketing Claims Are Technically True”

Implementing A Kalman Filter In PostgreSQL To Smooth GPS Data

Usually databases are treated primarily as fairly dumb data storage systems, but they can be capable of much more. Case in point the PostgreSQL database and its – Ada-based – PL/pgSQL programming language, which allows you to perform significantly more complex operations than would be realistically possible with raw SQL. Case in point the implementation of a Kalman Filter by the folk over at Traconiq, which thus removes the necessity for an external filtering pipeline.

Using a Kalman Filter is highly desirable when you’re doing something like vehicle tracking using both dead-reckoning and GPS coordinates, as it filters out noise that can be the result of e.g. GPS reception issues. As noted in the article, transferring state from one row to the next requires a bit of lateral thinking, but is doable with some creative SQL usage. As PL/pgSQL is very similar to Oracle’s PL/SQL, this same code should work there too without too much porting required.

The code for the different implementations and associated benchmarks can be found on GitHub, though the benchmark results make it abundantly clear that the most efficient approach is to run an offline aggregate processing routine. This coincides with the other batch processing tasks that are typically performed by a database server to e.g. optimize storage, so this isn’t entirely unsurprising.

On 3D Scanners And Giving Kinects A New Purpose In Life

The concept of a 3D scanner can seem rather simple in theory: simply point a camera at the physical object you wish to scan in, rotate around the object to capture all angles and stitch it together into a 3D model along with textures created from the same photos. This photogrammetry application is definitely viable, but also limited in the sense that you’re relying on inferring three-dimensional parameters from a set of 2D images and rely on suitable lighting.

To get more detailed depth information from a scene you’d need to perform direct measurements, which can be done physically or through e.g. time-of-flight (ToF) measurements. Since contact-free ways of measurements tend to be often preferred, ToF makes a lot of sense, but comes with the disadvantage of measuring of only a single spot at a time. When the target is actively moving, you can fall back on photogrammetry or use an approach called structured-light (SL) scanning.

SL is what consumer electronics like the Microsoft Kinect popularized, using the combination of a visible and near-infrared (NIR) camera to record a pattern projected onto the subject, which is similar to how e.g. face-based login systems like Apple’s Face ID work. Considering how often Kinects have been used for generic purpose 3D scanners, this raises many questions regarding today’s crop of consumer 3D scanners, such as whether they’re all just basically Kinect-clones.

Continue reading “On 3D Scanners And Giving Kinects A New Purpose In Life”

Mesa Project Adds Code Comprehension Requirement After AI Slop Incident

Recently [Faith Ekstrand] announced on Mastodon that Mesa was updating its contributor guide. This follows a recent AI slop incident where someone submitted a massive patch to the Mesa project with the claim that this would improve performance ‘by a few percent’. The catch? The entire patch was generated by ChatGPT, with the submitter becoming somewhat irate when the very patient Mesa developers tried to explain that they’d happily look at the issue after the submitter had condensed the purported ‘improvement’ into a bite-sized patch.

The entire saga is summarized in a recent video by [Brodie Robertson] which highlights both how incredibly friendly the Mesa developers are, and how the use of ChatGPT and kin has made some people with zero programming skills apparently believe that they can now contribute code to OSS projects. Unsurprisingly, the Mesa developers were unable to disabuse this particular individual from that notion, but the diff to the Mesa contributor guide by [Timur Kristóf] should make abundantly clear that someone playing Telephone between a chatbot and OSS project developers is neither desirable nor helpful.

That said, [Brodie] also highlights a recent post by [Daniel Stenberg] of Curl fame, who thanked [Joshua Rogers] for contributing a massive list of potential issues that were found using ‘AI-assisted tools’, as detailed in this blog post by [Joshua]. An important point here is that these ‘AI tools’ are not LLM-based chatbots, but rather tweaked existing tools like static code analyzers with more smarts bolted on. They’re purpose-made tools that still require you to know what you’re doing, but they can be a real asset to a developer, and a heck of a lot more useful to a project like Curl than getting sent fake bug reports by a confabulating chatbot as has happened previously.

Continue reading “Mesa Project Adds Code Comprehension Requirement After AI Slop Incident”

Segger’s Awkward USB-C Issue With The J-Link Compact Debugger

Theoretically USB-C is a pretty nifty connector, but the reality is that it mostly provides many exciting new ways to make your device not work as expected. With the gory details covered by [Alvaro], the latest to join the party is Segger, with its J-Link BASE Compact MCU debugger displaying the same behavior which we saw back when the Raspberry Pi 4 was released in 2019. Back then so-called e-marked USB-C cables failed to power the SBC, much like how this particular J-Link unit refuses to power up when connected using one of those special USB-C cables.

We covered the issue in great detail back then, discussing how the CC1 and CC1 connections need to be wired up correctly with appropriate resistors in order for the USB-C supply – like a host PC – to provide power to the device. As [Alvaro] discovered through some investigation, this unit made basically the same mistake as the RPi 4B SBC before the corrected design. This involves wiring CC1 and CC2 together and as a result seeing the same <1 kOhm resistance on the active CC line, meaning that to the host device you just hooked up a USB-C audio dongle, which obviously shouldn’t be supplied with power.

Although it’s not easy to tell when this particular J-Link device was produced, the PCB notes its revision as v12.1, so presumably it’s not the first rodeo for this general design, and the product page already shows a different label than for the device that [Alvaro] has. It’s possible that it originally was sloppily converted from a previous micro-USB-powered design where CC lines do not exist and things Just Work™, but it’s still a pretty major oversight from what should be a reputable brand selling a device that costs €400 + VAT, rather than a reputable brand selling a <$100 SBC.

For any in the audience who have one of these USB-C-powered debuggers, does yours work with e-marked cables, and what is the revision and/or purchase date?

Playing DOOM In Discord With A Special Image URL

Can you play DOOM in Discord? At first glance, that may seem rather nonsensical, as Discord is a proprietary chat service and neither a hardware device nor something else that may seem like an obvious target for being (ab)used for demon-shooting points. That is, until you look at Discord’s content embedding feature. This is where [PortalRunner]’s Doomcord hack comes into play, allowing you to play the entire game in a Discord client by submitting text messages after embedding a very special image URL.

Rather than this embedding being done in the client as done with e.g., IRC clients, the Discord backend handles the content fetching, caching, and handing off to clients. This system can easily be used with an animated GIF of gameplay, but having it be seen as a GIF file required adding .gif to the end of the URL to trick Discord’s backend into not simply turning it into a static PNG. After this, Discord’s throttling of message speed turned out to kill the concept of real-time gameplay, along with the server load.

Plan C thus morphed into using Chocolate Doom headless, rendering gameplay into cached video files by using the demo gameplay feature in DOOM. The Doomcord server template project provides a server if you want to give it a whirl yourself. Since this uses recorded gameplay, the switch was made from GIF to the WEBP format to save space, along with a cache expiry system. Just level 1 with all possible input sequences takes up 12 TB of disk space.

Continue reading “Playing DOOM In Discord With A Special Image URL”

The New Raspberry Pi 500+: Better Gaming With Less Soldering Required

When Raspberry Pi released the Pi 500, as essentially an RPi 5 integrated into a chiclet keyboard, there were rumors based on the empty spots on the PCB that a better version would be released soon. This turned out to be the case, with [Jeff Geerling] now taking the new RPi 500+ to bits for some experimentation and keyboard modding.

The 500’s case was not designed to be opened, but if you did, you’d find that there was space allocated for a Power-Over-Ethernet section as well as an M.2 slot, albeit with all of the footprints unpopulated. Some hacking later and enterprising folk found that soldering the appropriate parts on the PCB does in fact enable a working M.2 slot. What the 500+ thus does is basically do that soldering work for you, while sadly not offering a PoE feature yet without some DIY soldering.

Perhaps the most obvious change is the keyboard, which now uses short-travel mechanical switches – with RGB – inside an enclosure that is now fortunately easy to open, as you may want to put in a different NVMe drive at some point. Or, if you’re someone like [Jeff] you want to use this slot to install an M.2 to Oculink adapter for some external GPU action.

After some struggling with eGPU devices an AMD RX 7900 XT was put into action, with the AMD GPU drivers posing no challenge after a kernel recompile. Other than the Oculink cable preventing the case from closing and also losing the M.2 NVMe SSD option, it was a pretty useful mod to get some real gaming and LLM action going.

With the additions of a presoldered M.2 slot and a nicer keyboard, as well as 16 GB RAM, you have to decide whether the $200 asking price is worth it over the $90 RPi 500. In the case of [Jeff] his kids will have to make do with the RPi 500 for the foreseeable future, and the RPi 400 still finds regular use around his studio.

Continue reading “The New Raspberry Pi 500+: Better Gaming With Less Soldering Required”