A photo of the SigCoreUC

SigCore UC: An Open-Source Universal I/O Controller For The Raspberry Pi

Recently, [Edward Schmitz] wrote in to let us know about his Hackaday.io project: SigCore UC: An Open-Source Universal I/O Controller With Relays, Analog I/O, and Modbus for the Raspberry Pi.

In the video embedded below, [Edward] runs us through some of the features which he explains are a complete industrial control and data collection system. Features include Ethernet, WiFi, and Modbus TCP connectivity, regulated 5 V bus, eight relays, eight digital inputs, four analog inputs, and four analog outputs. All packaged in rugged housing and ready for installation/deployment.

[Edward] says he wanted something which went beyond development boards and expansion modules that provided a complete and ready-to-deploy solution. If you’re interested in the hardware, firmware, or software, everything is available on the project’s GitHub page. Beyond the Hackaday.io article, the GitHub repo, the YouTube explainer video, there is even an entire website devoted to the project: sigcoreuc.com. Our hats off to [Edward], he really put a lot of polish on this project.

If you’re interested in using the Raspberry Pi for input/output you might also like to read about Raspberry Pi Pico Makes For Expeditious Input Device and Smart Power Strip Revived With Raspberry Pi.

Continue reading “SigCore UC: An Open-Source Universal I/O Controller For The Raspberry Pi”

The Unusual Pi Boot Process Explained

If you’ve ever experimented with a microprocessor at the bare metal level, you’ll know that when it starts up, it will look at its program memory for something to do. On an old 8-bit machine, that program memory was usually an EPROM at the start of its address space, while on a PC, it would be the BIOS or UEFI firmware. This takes care of initialising the environment in both hardware and software, and then loading the program, OS, or whatever the processor does. The Raspberry Pi, though, isn’t like that, and [Patrick McCanna] is here to tell us why.

The Pi eschews bringing up its ARM core first. Instead, it has a GPU firmware that brings up the GPU. It’s this part of the chip that then initialises all peripherals and memory. Only then does it activate the ARM part of the chip. As he explains, this is because the original Pi chip, the BCM2835, is a set-top-box chip. It’s not an application processor at all, but a late-2000s GPU that happened to have an ARM core on a small part of its die, so the GPU wakes first, not the CPU. Even though the latest versions of the Pi have much more powerful Broadcom chips, this legacy of their ancestor remains. For most of us using the board it doesn’t matter much, but it’s interesting to know.

Fancy trying bare metal Pi programming? Give it a go. We’ve seen some practical projects that start at that level.

Plug Into USB, Read Hostname And IP Address

Ever wanted to just plug something in and conveniently read the hostname and IP addresses of a headless board like a Raspberry Pi? Chances are, a free USB port is more accessible than digging up a monitor and keyboard, and that’s where [C4KEW4LK]’s rpi_usb_ip_display comes in. Plug it into a free USB port, and a few moments later, read the built-in display. Handy!

The device is an RP2350 board and a 1.47″ Waveshare LCD, with a simple 3D-printed enclosure. It displays hostname, WiFi interface, Ethernet interface, and whatever others it can identify. There isn’t even a button to push; just plug it in and let it run.

Here’s how it works: once plugged in, the board identifies itself as a USB keyboard and a USB serial port. Then it launches a terminal with Ctrl-Alt-T, and from there it types and runs commands to do the following:

  1. Find the serial port that the RP2350 board just created.
  2. Get the parsed outputs of hostname, ip -o -4 addr show dev wlan0, ip -o -4 addr show dev eth0, and ip -o -4 addr show to gather up data on active interfaces.
  3. Send that information out the serial port to the RP2350 board.
  4. Display the information on the LCD.
  5. Update periodically.

The only catch is that the host system must be able to respond to launching a new terminal with Ctrl-Alt-T, which typically means the host must have someone logged in.

It’s a pretty nifty little tool, and its operation might remind you, in concept, of how BadUSB attacks happen: a piece of hardware, once plugged into a host, identifies itself to the host as something other than what it appears to be. Then it proceeds to input and execute actions. But in this case, it’s not at all malicious, just convenient and awfully cute.

Putting KDE On Raspberry Pi OS Simpler Than Expected

Raspberry Pi boards are no longer constrained – these days, you can get a quad-core board with 8 or 16GB of RAM to go around, equip it with a heatsink, and get a decently comfortable shop/desk/kitchen computer with GPIOs, cameras, speedy networking, maybe even NVMe, and all the wireless you’d expect.

Raspberry OS, however, remains lightweight with its pre-installed LXDE environment – and, in many cases, it feels quite constrained. In case you ever idly wondered about giving your speedy Pi a better UI, [Luc] wants to remind you that setting up KDE on your Raspberry OS install is dead simple and requires only about a dozen commandline steps.

[Luc] walks you through these dozen steps, from installation to switching the default DE, and the few hangups you might expect after the switch; if you want to free up some disk space afterwards, [Luc] shows how to get rid of the original LXDE packages. Got the latest Trixie-based Pi OS? There’s an update post detailing the few necessary changes, as well as talking about others’ experiences with the switch.

All in all, [Luc] demonstrates that KDE will have a fair bit of graphical and UX advantages, while operating only a little slower, and if you weren’t really using your powerful Pi to the fullest, it’s a worthwhile visual and usability upgrade. For the regular desktop users, KDE has recently released their own distro, and our own [Jenny] has taken a look at it.

RP2350 Done Framework Style

Ever want a microcontroller addon for your laptops? You could do worse than match one of the new and powerful microcontrollers on the block to one of the most addon-friendly laptops, in the way the Framework RP2350 laptop card does it. Plug it in, and you get a heap of USB-connected IO coming out of the side of your laptop – what’s not to love?

The card utilizes the Framework module board space to the fullest extent possible, leaving IO expansion on SMD pads you could marry to a male or female header, your choice. With about seventeen GPIOs, power, and ground, there’s really no limit on what you could add to the side connector – maybe it’d be a logic analyzer buffer, or a breadboard cable, or a flash chip reader, maybe, even an addon to turn it into a pirate version of a Bus Pirate? There’s a fair few RP2350 peripherals available on the side header GPIOs, so sky’s the limit.

Naturally, the card is fully open-source, and even has two versions with two different USB-C plug connectors, we guess, depending on which one is better liked by your PCBA process. Want one? Just send off the files! Last time we saw an addon adding GPIOs to your laptop, it was a Pi Zero put into the optical bay of a Thinkpad, also with an expansion header available on the side – pairing yet another legendary board with a legendary laptop.

One Lucky 3DS Gets A Switch-Style Dock

The Nintendo Switch dock set a new bar for handheld docking user experience – just plug your console in to charge it, output image to your monitor, and keep it working with any USB peripherals of your choice. What if a 3DS is more your jam? [KOUZEX] shows off a Switch-style dock design for his gorgeous yellow 3DS, with Switch Pro controller support, and this dock wasn’t just a 3D printing job – there’s a fair bit of electronics to show, too.

While the 3DS looks stock at a glance, it has already been upgraded internally – there’s a USB-C capture card built in, half-ticking the “monitor output” requirement, and a Raspberry Pi board turns that output into HDMI. Building a charging dock is also pretty simple, with just two contacts on the side that desire 5V. Now, the pro controller support was a fair bit harder – requiring an internal modchip for emulating buttons, and trying out receiver boards for the Switch controller until a well-functioning one was found.

The build video is quite satisfying to watch, from assembling some QFNs onto tiny OSHPark boards using a hotplate and soldering them into the 3DS, to planning out, building, and dremeling some prints to create a true slide-console-into-dock experience, same way the Switch pulled it off. It even has the same USB-C and HDMI arrangement as the Switch dock, too! Want a simpler dock for your 3DS? Don’t forget that you can build a charger dock for yours with just a 3D print and a few wires.

Continue reading “One Lucky 3DS Gets A Switch-Style Dock”

Intel GPUs On Raspberry Pi Is So Wrong It Feels Right

While you might not know it from their market share, Intel makes some fine GPUs. Putting one in a PC with an AMD processor already feels a bit naughty, but AMD’s x86 processors still ultimately trace their lineage all the way back to Intel’s original 4004. Putting that same Intel GPU into a system with an ARM processor, like a Raspberry Pi, or even better, a RISC V SBC? Why, that seems downright deviant, and absolutely hack-y. [Jeff Geerling] shares our love of the bizarre, and has been working tirelessly to get a solid how-to guide written so we can all flout the laws of god and man together.

According to [Jeff], all of Intel’s GPUs should work, though not yet flawlessly. In terms of 3D acceleration, OpenGL works well, but Vulkan renders are going to get texture artifacts if they get textures at all. The desktop has artifacts, and so do images; see for yourself in the video embedded below. Large language models are restricted to the not-so-large, due to memory addressing issues. ARM and RISC V both handle memory somewhat differently than x86 systems, and apparently the difference matters. Continue reading “Intel GPUs On Raspberry Pi Is So Wrong It Feels Right”