Vista Normal

Hay nuevos artículos disponibles. Pincha para refrescar la página.
AnteayerSalida Principal

Reverse Engineering A Keyboard Driver Uncovers A Self-Destruct Code

19 Septiembre 2024 at 20:00

Should you be able to brick a keyboard just by writing a driver to flash the lights on it? We don’t think so either. [TheNotary] got quite the shock when embarking on a seemingly straightforward project to learn C++ on the x86-64 architecture with Windows and sent it straight to Silicon Heaven with only a few seemingly innocent USB packets.

The project was a custom driver for the XVX S-K80 mechanical keyboard, aiming to flash LED patterns across the key LEDs and perhaps send custom images to the integrated LCD. When doing this sort of work, the first thing you need is the documentation of the communications protocols. Obviously, this was not an option with a closed-source project, so the next best thing is to spy on the existing Windows drivers and see how they worked. Using Wireshark to monitor the USB traffic whilst twiddling with the colour settings, it was clear that communications were purely over HID messages, simplifying subsequent analysis. Next, they used x32dbg (now x64dbg, but whatever) to attach to the existing driver process and trap a few interesting Windows system calls. After reading around the Windows API, a few candidate functions were identified and trapped. This gave them enough information to begin writing code to reproduce this behaviour. Then things got a bit odd.

There apparently was a lot of extra protocol baggage when performing simple tasks such as lighting an LED. They shortened the sequence to reduce the overhead and noticed an additional byte that they theorized must encode the number of packets to expect in case only a subset of the LEDs were being programmed. Setting this to 0x01 and sending LED code for single keys appeared to work and was much faster but seemed unreliable. After a short experiment with this mystery value, [TheNotary] reverted the code to send all the packets for the full LED set as before, forgetting to correct this mystery value from the 0xFF it was programmed to during the experiment. They were surprised that all the LEDs and LCD were switched off. They were then horrified when the keyboard never powered up again. This value appeared to have triggered an obscure firmware bug and bricked it—a sad end to what would have been a fun little learning project.

Keyboard hacks are so plentiful it’s hard to decide where to start. How about upgrading the keyboard of your trusty ZX81? Here’s a lovely, minimal mechanical keyboard powered by a Pi Pico, and finally while we’re thinking about drivers bricking your stuff, who can forget FTDI gate? We may never forgive that one.

Header image: Martin Vorel, CC BY-SA 4.0.

Nuevos Drivers 24.8.1 de AMD para COD: Black Ops 6 (Beta), Star Wars Outlaws, FF XVI y Anti-Lag 2 para Ghost of Tsushima

Hoy, AMD lanzó AMD Software: Adrenalin Edition 24.8.1, que brinda soporte Radeon Ready para Call of Duty: Black Ops 6 Open Beta, Concord y Star Wars Outlaws. Además, el nuevo driver actualiza el HYPR-Tune para habilitar AMD FidelityFX Super Resolution 3 Frame Generation en juegos compatibles, comenzando con Call of Duty: Modern Warfare III, Marvel’s Spider-Man Remastered y Marvel’s Spider-Man: Miles Morales.

Cuando el AMD HYPR-RX está habilitado en un juego ajustado por HYPR, las tecnologías del juego, como AMD FSR, se activan automáticamente, además de habilitar tecnologías en el controlador, como AMD Radeon Anti-Lag y AMD Radeon Boost (si son compatibles), para proporcionar un aumento de rendimiento adicional y una latencia reducida.

Además del nuevo driver, la compatibilidad con AMD Radeon Anti-Lag 2 ahora está disponible en Ghost of Tsushima DIRECTOR’S CUT, lo que lleva los juegos receptivos al siguiente nivel al reducir aún más el retraso de entrada en los productos gráficos discretos e integrados basados en la arquitectura AMD RDNA.

AMD Radeon Anti-Lag 2 puede reducir la latencia en Ghost of Tsushima DIRECTOR’S CUT hasta en un 28 por ciento cuando se usa AMD FSR 3.1 con generación de fotogramas a 4K en la tarjeta gráfica AMD Radeon RX 7800 XT. Obtené más información sobre AMD Anti-Lag 2 en Ghost of Tsushima DIRECTOR’S CUT en el blog de AMD.

Finalmente, Amuse 2.1 Beta ya está disponible para los usuarios de GPU Ryzen AI y Radeon. La nueva versión beta de Amuse 2.1 es compatible con el modelo FLUX.1 Schnell recientemente lanzado en el hardware AMD aplicable. También incluye varias correcciones de errores e incluso más modelos de Stable Diffusion para que los usuarios mejoren las experiencias. Puedes descargar Amuse 2.1 Beta aquí.

Problemas solucionados y mejoras

  • Es posible que se produzca un bloqueo intermitente de la aplicación o un tiempo de espera del controlador mientras se juega Black Myth: Wukong.
  • Es posible que se produzca un bloqueo intermitente de la aplicación mientras se juega Kunitsu-Gami: Path of the Goddess en algunas GPU de las series Radeon RX 6600 y 6700.
  • Es posible que se produzca un bloqueo intermitente de la aplicación o un tiempo de espera del controlador al iniciar Pacific Drive o KINGDOM HEARTS -HD 1.5+2.5 ReMIX-.
  • Configuración de filtrado anisotrópico y suavizado del software AMD: Es posible que Adrenalin Edition no se aplique correctamente a las aplicaciones OpenGL.
  • Pueden aparecer artefactos al jugar ciertos juegos como Marvel’s Spider-Man: Miles Morales o Rust.
  • Se puede observar un mayor uso de memoria al jugar ciertas versiones de Minecraft Java Edition.
  • Se mejoró el tiempo de «Optimización de sombreadores» al iniciar inicialmente Forza Motorsport.

Problemas conocidos

  • Es posible que se observen sombras demasiado oscuras o colores desaturados mientras se juega Black Myth: Wukong cuando la iluminación global es media o superior. Los usuarios que experimenten este problema pueden configurar la Iluminación global en Baja como solución temporal. [Resolución prevista para 24.9.1]
  • El audio y el video pueden desincronizarse intermitentemente mientras se graba usando el códec AV1 en AMD Software: Adrenalin Edition. [Resolución prevista para 24.9.2]

Notas importantes

  • AMD está trabajando con los desarrolladores de Star Wars Outlaws para abordar un problema de corrupción intermitente que ocurre después de cambiar ciertas configuraciones de gráficos en el juego. Como medida temporal, es posible que los usuarios que experimenten este problema deban reiniciar el juego.
  • Haga clic AQUÍ para obtener el software AMD más reciente: controlador de vista previa de Adrenalin Edition, que incluye los innovadores AMD Fluid Motion Frames (AFMF) 2, un avance importante en la tecnología de generación de cuadros.

Descarga de Nuevos Drivers de AMD 24.8.1

Los usuarios pueden descargar la última versión de AMD Software: Adrenalin Edition en este enlace.

La entrada Nuevos Drivers 24.8.1 de AMD para COD: Black Ops 6 (Beta), Star Wars Outlaws, FF XVI y Anti-Lag 2 para Ghost of Tsushima apareció primero en PC Master Race Latinoamérica.

An Open Source 6kW GaN Motor Controller

19 Agosto 2024 at 08:00

We don’t know how you feel when designing hardware, but we get uncomfortable at the extremes. High voltage or current, low noise figures, or extreme frequencies make us nervous.  [Orion Serup] from CrabLabs has been turning up a few of those variables and has created a fairly beefy 3-phase motor driver using GaN technology that can operate up to 80V at 70A. GaN semiconductors are a newer technology that enables greater power handling in smaller packages than seems possible, thanks to high electron mobility and thermal conductivity in the material compared to silicon.

The KiCAD schematic shows a typical high-power driver configuration, broken down into a gate pre-driver, the driver itself, and the following current and voltage sense sub-circuits. As is typical with high-power drivers, these operate in a half-bridge configuration with identical N-channel GaN transistors (specifically part EPC2361) driven by dedicated gate drivers (that’s the pre-driver bit) to feed enough current into the device to enable it to switch quickly and reliably.

The design uses the LM1025 low-side driver chip for this task, as you’d be hard-pushed to drive a GaN transistor with discrete components! You may be surprised that the half-bridge driver uses a pair of N-channel devices, not a symmetric P and N arrangement, as you might use to drive a low-power DC motor. This is simply because, at these power levels, P-channel devices are a rarity.

Why are P-channel devices rare? N-channel devices utilise electrons as the majority charge carrier, but P-channel devices utilise holes, and the mobility of holes in GaN is very low compared to that of electrons, resulting in much worse ON-resistance in a P-channel and, as a consequence, limited performance. That’s why you rarely see P-channel devices in a circuit like this.

Of course, schematic details are only part of the problem. High-power design at the PCB level also requires careful consideration. As seen from the project images, this involves heavy, thick copper traces on two or more heavily via-stitched layers to maximise copper volume and lower resistance as far as possible.  But, you can overdo this and end up with too much inductance in critical areas, quickly killing many high-power devices. Another vital area is the footprint design for the GaN device and how it connects to the rest of the circuit. Get this wrong or mess up the soldering, and you can quickly end up with a much worse performance!

We’ve seen DIY high-power controllers here a few times. Here’s an EV controller that uses discrete power modules. Another design we saw a few years ago drives IGBTs for a power output of 90kW.

Unusual Tool Gets an Unusual Repair

15 Agosto 2024 at 08:00

In today’s value-engineered world, getting a decade of service out of a cordless tool is pretty impressive. By that point you’ve probably gotten your original investment back, and if the tool gives up the ghost, well, that’s what the e-waste bin is for. Not everyone likes to give up so easily, though, which results in clever repairs like the one that brought this cordless driver back to life.

The Black & Decker “Gyrodriver,” an interesting tool that is controlled with a twist of the wrist rather than the push of a button, worked well for [Petteri Aimonen] right up until the main planetary gear train started slipping thanks to stripped teeth on the plastic ring gear. Careful measurements of one of the planetary gears to determine parameters like the pitch and pressure angle of the teeth, along with the tooth count on both the planet gear and the stripped ring.

Here, most of us would have just 3D printed a replacement ring gear, but [Petteri] went a different way. He mentally rolled the ring gear out, envisioning it as a rack gear. To fabricate it, he simply ran a 60° V-bit across a sheet of steel plate, creating 56 parallel grooves with the correct pitch. Wrapping the grooved sheet around a round form created the ring gear while simultaneously closing the angle between teeth enough to match the measured 55° tooth angle in the original. [Petteri] says he soldered the two ends together to form the ring; it looks more like a weld in the photos, but whatever it was, the driver worked well after the old plastic teeth were milled out and the new ring gear was glued in place.

We think this is a really clever way to make gears, which seems like it would work well for both internal and external teeth. There are other ways to do it, of course, but this is one tip we’ll file away for a rainy day.

❌
❌