Samy Kamkar’s LED Balloon Network

Writing this in the frigid darkness of a Northern Hemisphere January evening, I have to admit to more than a little envy of Samy Kamkar and his friends. One of their summer events is a private party at a secluded campground somewhere that looks quite warm, which from here seems mighty attractive.

Samy wanted to provide a spectacle for his friends. What he came up with is glowing orbs; LED balloons that would float above the campsite and wow his friends with their pretty synchronised illumination. Thus an adventure in wireless communications, lighter-than-air flammable gasses versus electronics weight calculations, and code optimization began, the details of which were shared in Samy Kamkar’s 2018 Hackaday Superconference talk embedded below.

Continue reading “Samy Kamkar’s LED Balloon Network”

Original Xbox Gets Hardware Transplant, And Is Very Fast

The original Xbox launched way back in 2001, to much fanfare. This was Microsoft’s big first entry into the console market, with a machine packing a Pentium III CPU, and commodity PC hardware, contributing significantly to its bulk. Modding was a major part of the early Xbox scene, and as the original hardware has grown too feeble to keep up with modern tasks, enterprising makers have instead turned to packing the black box with modern hardware. The team at [Linus Tech Tips] decided that other builds out there weren’t serious enough, and decided to take things up a notch.

The build starts with a passively cooled compact power supply, a Core i5 8400 6-core CPU, and a GeForce RTX2070 to handle graphical tasks. Parts were carefully selected for a combination of performance, packaging, and with an eye to the thermal limits inherent in stuffing high-powered modern hardware into a tight Xbox shell.

All manner of oddball techniques are used to make the build happen. The GPU is connected through a PCI Express cable, which we were surprised to learn was a thing, given the nature of high-speed signals and long transmission lines. The Xbox shell had its original metal insert and plastic standoffs removed, with an aluminium inner shell being CNC cut and bent up on a pan brake to act as a new internal chassis. There’s yet more carnage to come, as the GPU has its extraneous DVI port hacked off with a grinding wheel.

In the end, after much cutting and cajoling, the parts come together and fit inside the case, making the sleeper build a reality. It’s fun to watch the team fiddle with config files and struggle to load and play local multiplayer games, as they realise that there are just some things that consoles do better.

Regardless, it’s an impressive casemod that goes to show what you can pull off with some off-the-shelf parts, a well-stocked workshop, and some ingenuity. If you’re looking for more case mod inspiration, try out this all-in-one printer build. Video after the break.

[Thanks to Keith O for the tip!]

Continue reading “Original Xbox Gets Hardware Transplant, And Is Very Fast”

Video: Putting High Speed PCB Design To The Test

Designing circuit boards for high speed applications requires special considerations. This you already know, but what exactly do you need to do differently from common board layout? Building on where I left off discussing impedance in 2 layer Printed Circuit Board (PCB) designs, I wanted to start talking about high speed design techniques as they relate to PCBs.  This is the world of multi-layer PCBs and where the impedance of both the Power Delivery Network (PDN) and the integrity of the signals themselves (Signal Integrity or SI) become very important factors.

I put together a few board designs to test out different situations that affect high speed signals. You’ve likely heard of vias and traces laid out at right angles having an impact. But have you considered how the glass fabric weave in the board itself impacts a design? In this video I grabbed some of my fanciest test equipment and put these design assumptions to the test. Have a look and then join me after the break for more details on what went into this!

Continue reading “Video: Putting High Speed PCB Design To The Test”

Break Your Scope’s Bandwidth Barrier

Oscilloscope bandwidth is a tricky thing. A 100 MHz scope will have a defined attenuation (70%) of a 100 MHz sine wave. That’s not really the whole picture, though, because we aren’t always measuring sine waves. A 100 MHz square wave, for example, will have sine wave components at 100 MHz, 300 MHz, and the other odd harmonics. However, it isn’t that a 100 MHz scope won’t show you something at a higher frequency — it just doesn’t get the y-axis right. [Daniel Bogdanoff] from Keysight decided to think outside of the box and made a video about using scopes beyond their bandwidth specification. You can see that video, below.

[Daniel] calls this a “spec hacks” but they aren’t really hacks to the scope. They are just methods that don’t care about the scope’s rated bandwidth. In this particular spec hack, he shows how the frequency counter using a 70 MHz scope’s trigger circuit can actually read up to 410 MHz. A 100 MHz scope was able to read almost 530 MHz.

Continue reading “Break Your Scope’s Bandwidth Barrier”

Cool Tools: A Little Filesystem That Keeps Your Bits On Lock

Filesystems for computers are not the best bet for embedded systems. Even those who know this fragment of truth still fall into the trap and pay for it later on while surrounded by the rubble that once was a functioning project. Here’s how it happens.

The project starts small, with modest storage needs. It’s just a temperature logger and you want to store that data, so you stick on a little EEPROM. That works pretty well! But you need to store a little more data so the EEPROM gets paired with a small blob of NOR flash which is much larger but still pretty easy to work with. Device settings go to EEPROM, data logs go to NOR. That works for a time but then you remember that people on the Internet are all about the Internet of Things so it’s time to add WiFi. You start serving a few static pages with that surprisingly capable processor and bump into storage problems again so the NOR flash gets replaced with an SD card and now the logs go there too. Suddenly you’re dealing with multiple files and want access on a computer so a real filesystem is in order. FAT is easy, so the card grows a FAT filesystem. Everything is great, but you start to notice patches missing from the logs. Then the SD card gets totally corrupted. What’s going on? Let’s take a look at the problem, and how to reach embedded file nirvana.

Continue reading “Cool Tools: A Little Filesystem That Keeps Your Bits On Lock”

The Mac That Helped Build The Xbox Rides Again

The original Xbox, released in 2001 by Microsoft, was notable for being built out of largely off-the-shelf PC components. With a custom Pentium III CPU and IDE peripherals, the console was much closer to a contemporary desktop computer than any of the dedicated game consoles which had come before it. Which of course makes perfect sense if you think about it. Microsoft would want to use technology they were intimately acquainted with on their first foray into gaming market, and if there’s anything Microsoft knows better than forced system updates, it’s x86 computers.

But for their follow-up system, the Xbox 360, Microsoft decided to go with a PowerPC processor they co-developed with IBM. Naturally this meant they needed PowerPC development systems to give to developers, which is how Microsoft ended up briefly distributing PowerMac G5’s. [Pierre Dandumont] came into possession of one of these oddball Microsoft-branded Macs, though unfortunately the hard drive had been wiped. But with the help of a leaked drive image and some hardware sleuthing, he’s now got the machine up and running just like it was when Microsoft was sending them to developers between 2003 and 2005.

Since you’re reading this on Hackaday, you might have guessed there was a little more to the story then just downloading an ISO and writing it to the hard drive of a PowerMac G5. There’s apparently some debate in the community about whether or not it’s some form of rudimentary DRM on Microsoft’s part, but in any event, the development kit operating system will only run on a G5 with very specific hardware. So the challenge is not only figuring out what hardware the software is looking for, but finding it and getting it installed over a decade after its prime.

Most of the required hardware, like the Intel 741462-010 network card or 160 GB Seagate ST3160023AS hard drive were easy enough to track down on eBay. But the tricky one was finding a Mac version of the ATi Radeon X800 XT. [Pierre] ended up getting a much more common ATi FireGL X3 and flashing it with the Mac X800 firmware. This is a little easier said than done as depending on which manufacturer made the memory on your specific video card you have to fiddle with the clock speeds to get a usable image, but in the end he found the winning combination and the development kit OS booted up with his hacked graphics card.

So what does all this get you in 2019? [Pierre] admits nothing terribly useful, but it’s still pretty cool. The system lets you run Xbox and Xbox 360 binaries, and even features the old Xbox 360 “blade” style dashboard. He says that he’s only had limited success getting retail games to actually run on the thing, but if your goal was running Xbox 360 games in 2019 there’s certainly better ways to do that anyway. Like, buying an Xbox 360.

We’ve previously talked about the Xbox 360’s rather unusual processor, but around these parts we more often see projects which involve tearing Microsoft’s sophomore console apart than digging into how it actually worked.

Continue reading “The Mac That Helped Build The Xbox Rides Again”

Running OpenCL On A Raspberry Pi GPU

This is an interesting development for media users and machine learning hackers: [doe300] has implemented OpenCL on the Raspberry Pi 3 Model B+called VCFCL That’s big news because the Pi 3+ has a Graphics Processing Unit (GPU) built into the processor that has been generally underutilized. The VideoCore IV GPU is built into the Broadcom BCM2837B0 and is surprisingly capable for a low-power chip. Although this GPU is well documented, it hasn’t been used that widely because you have to code specifically for this class of GPU. Adding in support for a high-level framework like OpenCL will make it much easier to run and adapt existing packages.

Continue reading “Running OpenCL On A Raspberry Pi GPU”