A screenshot of the release page, showing the headline and a crop of the release notes

MicroPython 1.23 Brings Custom USB Devices, OpenAMP, Much More

MicroPython is a wonderful Python interpreter that runs on many higher-end microcontrollers, from ESP8266 to STM32 to the RP2040. MicroPython lets you build devices quickly, and its latest release, 1.23, brings a number of improvements you should be aware of.

The first one is custom USB device support, and it’s a big one. Do you want to build HID devices, or play with MIDI, or do multiple serial streams with help of PIO? Now MicroPython lets you easily create USB devices on a variety of levels, from friendly wrappers for creating HID or MIDI devices, to low-level hooks to let you define your own USB descriptors, with user-friendly libraries to help all the way through. Currently, SAMD and RP2040 ports are supported in this part of code, but you can expect more in the future.

Hooray to 10 years of MicroPython!

There’s more – support for OpenAMP, an inter-core communication protocol, has received a ton of improvements for systems where MicroPython reigns supreme on some of the CPU cores but also communicates with different systems on other cores. A number of improvements have made their way through the codebase, highlighting things we didn’t know MicroPython could do – for instance, did you know that there’s a WebAssembly port in the interpreter, letting you run MicroPython in your browser?

Well, it’s got a significant overhaul in this release, so there’s no better time to check it out than now! Library structure has been refactored to improve CPython compatibility, the RP2040 port receives a 10% performance boost thanks to core improvements, and touches upon areas like PIO and SPI interfaces.

We applaud all contributors involved on this release. MicroPython is now a decade old as of May 3rd, and it keeps trucking on, having firmly earned its place in the hacker ecosystem. If you’ve been playing with MicroPython, remember that there are multiple IDEs, graphics libraries, and you can bring your C code with you!

Assembled FPC PCB panels of the project

Give Your Thinkpad X1 Nano An Internal USB Port

How hard could it be to add an extra USB port inside your laptop? As [Joshua Stein] shows, it can be decently hard, but you will have fun along the way. His journey involves a Thinkpad X1 Nano, and his tech setup means it’d be most comfortable for him to have a USB port inside its case, for a Logitech mouse’s USB receiver. It wasn’t smooth sailing all throughout, but the end result is no doubt beautifully executed.

M.2 B-key, A-key and E-key slots have USB 2.0 available on them – you’d think that’s perfect for such a receiver, and there’s even plug and play adapters for this on places like eBay. Unfortunately, none of these, as Lenovo implements wireless card whitelists to this day. Tinkering with the whitelist on [Joshua]’s laptop resulted in BIOS digital signature check failures, and the USB-connected fingerprint reader was ultimately chosen as the most viable path.

Initially, he’s tested the fingerprint reader with an FPC breakout, having the USB connection work – many a hacker would stop here, pulling a few bodge wires from the breakout. [Joshua], however, raised the bar, creating a flexible PCB that would pull the fingerprint connector signals to a spot in the case where the USB receiver could fit neatly, with a 5 V step-up on the board, too.

[Joshua] tops it off by showing a 3D-printed spacer that goes into now-vacant spot where the fingerprint reader used to be. This mod is not open-source as far as we can see, but it’s definitely an inspiration. Want to put even more USB devices inside your laptop? Perhaps a tiny USB hub would help, in line with the EEE PC mods that aimed to stuff the tiny laptop with the largest amount of USB devices possible.

Use That One Port For High-Speed FPGA Data Export

There’s a good few options for exporting data out of FPGAs, like Ethernet, USB2, or USB3. Many FPGAs have a HDMI (or rather, sparkling DVI) port as well, and [Steve Markgraf] brings us the hsdaoh project — High-Speed Data Acquisition Over HDMI, using USB3 capture cards based on the Macrosilicon MS2130 chipset to get the data from the FPGA right to your PC.

Current FPGA-side implementation is designed for Sipeed Tang chips and the GOWIN toolchain, but it should be portable to an open-source toolchain in the future. Make sure you’re using a USB3 capture card with a MS2130 chipset, load the test code into your FPGA, run the userspace capture side, and you’re ready to add this interface to your FPGA project! It’s well worth it, too – during testing, [Steve] has got data transfer speeds up to 180 MB/s, without the USB3 complexity.

As a test, [Steve] shows us an RX-only SDR project using this interface, with respectable amounts of bandwidth. The presentation goes a fair bit into the low-level details of the protocol, from HDMI fundamentals, to manipulating the MS2130 registers in a way that disables all video conversion; do watch the recording, or at least skim the slides! Oh, and if you don’t own a capture card yet, you really should, as it makes for a wonderful Raspberry Pi hacking companion in times of need.

Internals of the Blu-ray player, showing both the blu-ray drive and the custom PCBs

An Ingenious Blu-Ray Mini-Disk Player

[befi] brings us a project as impressive as it is reminiscent of older times, a Blu-Ray mini disk player. Easily fitting inside a pocket like a 8 cm CD player would, this is a labour of love and, thanks to [befi]’s skills both in electronics and in using a dremel tool.

A BluRay drive was taken apart, for a start, and a lot of case parts were cut off; somehow, [befi] made it fit within an exceptionally tiny footprint, getting new structural parts printed instead, to a new size. The space savings let him put a fully custom F1C100S-powered board with a number of unique features, from a USB-SATA chip to talk to the BluRay drive, to USB pathway control for making sure the player can do USB gadget mode when desired.

There’s an OLED screen on the side, buttons for controlling the playback, power and battery management – this player is built to a high standard, ready for day-to-day use as your companion, in the world where leaving your smartphone as uninvolved in your life as possible is a surprisingly wise decision. As a fun aside, did you know that while 8 cm CDs and DVDs existed, 8 cm BluRay drives never made it to market? If you’re wondering how is it that [befi] has disks to play in this device, yes, he’s used a dremel here too.

Everything is open-sourced – 3D print files, the F1C100S board, and the Buildroot distribution complete with all the custom software used. If you want to build such a player, and we wouldn’t be surprised if you were, there’s more than enough resources for you to go off. And, if you’re thinking of building something else in a similar way, the Buildroot image will be hugely helpful.

Want some entertainment instead? Watch the video embedded below, the build journey is full of things you never knew you wanted to learn. This player is definitely a shining star on the dark path that is Blu-Ray, given that our most popular articles on Blu-Ray are about its problems.

Continue reading “An Ingenious Blu-Ray Mini-Disk Player”

Screenshot of Microsoft Flight Simulator with the Dune expansion, and in the top right corner, the mod's author is shown using their phone with an attached gamepad for controlling a Dune ornithopter.

Take Control Of MS Flight Sim With Your Smartphone

Anyone with more than a passing interest in flight simulators will eventually want to upgrade their experience with a HOTAS (Hands On Throttle-And-Stick) setup that has buttons and switches for controlling your virtual aircraft’s assorted systems, which are well supported by games such as Microsoft Flight Simulator (MSFS). But a traditional HOTAS system can be a bit of an investment, so you might want to thank [Vaibhav Sharma] for the virtualHOTAS project that brings a configurable HOTAS interface to your phone — just in time to try out that Dune expansion for MSFS.

The phone’s orientation sensors are used as a joystick, and on the screen, there’s both sliders and buttons you can use as in-game controls. On the back-end there’s a Python program on the computer which exposes a webserver that the phone connects to, translating sensor and press data without the need for an app. This works wonderfully in MSFS, as [Vaibhav] shows us in the video below. What’s more, if you get tired of the touchscreen-and-accelerometer controls, you can even connect a generic smartphone-designed game controller platform, to have its commands and movements be translated to your PC too!

All the code is open source, and with the way this project operates, it will likely work as a general-purpose interface for other projects of yours. Whether you might want to build an accessibility controller from its codebase, use it for your robot platform, maybe simply repurpose this project for any other game, [Vaibhav]’s creation is yet another reminder that we’re carrying a sensor-packed platform, and it might just help you build a peripheral you didn’t know you needed.

Don’t have a phone handy? Perhaps an Xbox controller could work with just a few 3D printed upgrades, or you could stock up on buttons and build your own joystick from scratch. Oh, and keeping HOTAS principles in mind can be pretty helpful — you might get to redesign the venerable computer mouse, for instance!

Continue reading “Take Control Of MS Flight Sim With Your Smartphone”

The end result of the build, a supersized ultrasonic sensor, held in a person's hands

A Super-Size Functional Tribute To An Ultrasonic Sensor

Sometimes, it’s time to shut down the oscilloscope, and break out the cardboard and paints. If you’re wondering what for, well, here’s a reminder of an Instructable from [CrazyScience], that brings us back to cardboard crafts days. They rebuild one of the most iconic components for an electronics tinkering beginner — an ultrasonic distance sensor, and what’s fun is, it stays fully functional after the rebuild!

This project is as straightforward as it gets, describing all the steps in great detail, and you can complete it with just a hot glue gun and soldering iron. With materials being simple cardboard, aluminum foil, popsicle sticks, some mesh, and a single ultrasonic sensor for harvesting the transmitter and receiver out of, this is the kind of project you could easily complete with your kids on a rainy day.

Now, the venerable ultrasonic sensor joins the gallery of classics given a size change treatment, like the 555 timer we’ve seen two different takes on, or perhaps that one Arduino Uno. Unlike these three, this project’s cardboard skeleton means it’s all that simpler to build your own, what’s with all the shipping boxes we accumulate.

Continue reading “A Super-Size Functional Tribute To An Ultrasonic Sensor”

Photo of a Nice-Power supply

Quick & Capable WiFi For Your Nice-Power Supply

Rejoice, those of us who have purchased a Nice-Power lab PSU from an Eastern source. Yes, the name might sound like a re-brand of a generic product, maybe you will even see this exact PSU on a shelf at a physical store near you, under a more local brand name and with a fair markup. Nevermind the circumstances, the most important part is that [Georgi Dobrishinov] found a way to add an ESP8266 to the PSU by tapping its internal UART control interface, and wrote a web UI for all your Internet-of-Lab-PSUs needs, called the PowerLinkESP project.

All you need is a Wemos D1 development board, or any other ESP8266 board that has UART pins exposed and handles 5 V input. [Georgi] brings everything else, from pictures showing you where to plug it in and where to tap 5 V, to extensive instructions on how to compile and upload the code, using just the Arduino IDE. Oh, and he tops it off with STLs for a 3D printed case, lest your Wemos D1 board flop around inside.

With [Georgi]’s software, you can monitor your PSU with interactive charts for all readings, export charts in both PNG and CSV, and access a good few features. Your ESP8266’s network uplink is also highly configurable, from an STA mode for a static lab config, to an AP mode for any on-the-go monitoring from your phone, and it even switches between them automatically! The firmware makes your PSU all that more practical, to the point that if you’re about to build an interface for your PSU, you should pay attention to [Georgi]’s work.

Lab PSUs with WiFi integration are worth looking into, just check out our review of this one; smart features are so nice to have, we hackers straight up rewrite PSU firmware to get there if we have to. Oh, and if you ever feel like standardizing your work so that it can interface to a whole world of measurement equipment, look no further than SCPI, something that’s easier to add to your project than you might expect, even with as little as Python and a Pi.