Some assembly code

Programming Space Game For X86 In Assembly Without An Operating System

In this video our hacker [Inkbox] shows us how to create a computer game that runs directly on computer hardware, without an operating system!

[Inkbox] briefly explains what BIOS is, then covers how UEFI replaces it. He talks about the genesis of UEFI from Intel in the late 90s. After Intel’s implementation of UEFI was made open source it got picked up by the TianoCore community who make tools such as the TianoCore EDK II.

[Inkbox] explains that the UEFI implementation provides boot services and runtime services. Boot services include things such as loading memory management facilities or running other UEFI applications, and runtime services include things like system clock access and system reset. In addition to these services there are many more UEFI protocols that are available.

Continue reading “Programming Space Game For X86 In Assembly Without An Operating System”

Your LLM Won’t Stop Lying Any Time Soon

Researchers call it “hallucination”; you might more accurately refer to it as confabulation, hornswaggle, hogwash, or just plain BS. Anyone who has used an LLM has encountered it; some people seem to find it behind every prompt, while others dismiss it as an occasional annoyance, but nobody claims it doesn’t happen. A recent paper by researchers at OpenAI (PDF) tries to drill down a bit deeper into just why that happens, and if anything can be done.

Spoiler alert: not really. Not unless we completely re-think the way we’re training these models, anyway. The analogy used in the conclusion is to an undergraduate in an exam room. Every right answer is going to get a point, but wrong answers aren’t penalized– so why the heck not guess? You might not pass an exam that way going in blind, but if you have studied (i.e., sucked up the entire internet without permission for training data) then you might get a few extra points. For an LLM’s training, like a student’s final grade, every point scored on the exam is a good point. Continue reading “Your LLM Won’t Stop Lying Any Time Soon”

PLA Gears Fail To Fail In 3D Printed Bicycle Drivetrain

Anyone who has ever snapped a chain or a crank knows how much torque a bicycle’s power train has to absorb on a daily basis; it’s really more than one might naively expect. For that reason, [Well Done Tips]’s idea of 3D printing a gear chain from PLA  did not seem like the most promising of hacks to us.

Contrary to expectations, though, it actually worked; at the end of the video (at about 13:25), he’s on camera going 20 km/h, which while not speedy, is faster than we thought the fixed gearing would hold up. The gears themselves, as you can see, are simple spurs, and were modeled in Fusion360 using a handy auto-magical gear tool. The idler gears are held in place by a steel bar he welded to the frame, and are rolling on good old-fashioned skateboard bearings–two each. (Steel ones, not 3D printed bearings.) The healthy width of the spur gears probably goes a long way to explaining how this contraption is able to survive the test ride.

The drive gear at the wheel is steel-reinforced by part of the donor bike’s cassette, as [Well Done Tips] recognized that the shallow splines on the freewheel hub were not exactly an ideal fit for PLA. He does complain of a squeaking noise during the test ride, and we can’t help but wonder if switching to helical gears might help with that. That or perhaps a bit of lubricant, as he’s currently riding the gears dry. (Given that he, too, expected them to break the moment his foot hit the pedal, we can’t hardly blame him not wanting to bother with grease.)

We’ve seen studies suggesting PLA might not be the best choice of plastic for this application; if this wasn’t just a fun hack for a YouTube video, we’d expect nylon would be his best bet. Even then, it’d still be a hack, not a reliable form of transportation. Good thing this isn’t reliable-transportation-a-day!

Continue reading “PLA Gears Fail To Fail In 3D Printed Bicycle Drivetrain”

Possibly The Newest ISA Card

Back when the IBM PC was new, laying out an ISA board was a daunting task. You probably didn’t have a very fast ‘scope, if you had one at all. Board layout was almost certainly done on a drafting table with big pieces of tape. It was hard for small companies, much less hobbyists, to make a new card. You could buy a prototype board and wirewrap or otherwise put together something, but that was also not for the faint of heart. But with modern tools, something like that is a very doable project and [profdc9] has, in fact, done it. The card uses an ATMega328P and provides two SD cards for use as mass storage on an old computer.

The design tries to use parts that won’t be hard to get in the future. At least for a while, yet. There’s capacity for expansion, too, as there is an interface for a Wiznet 5500 Ethernet adapter.

Continue reading “Possibly The Newest ISA Card”

A Function Generator From The Past

It’s always a pleasure to find a hardware hacker who you haven’t seen before, and page back through their work. [Bettina Neumryr]’s niche comes in building projects from old electronics magazines, and her latest, a function generator from the British Everyday Electronics magazine in April 1983, is a typical build.

The project uses the XR2206 function generator chip, a favourite of the time. It contains a current controlled oscillator and waveform shaper, and can easily produce square, triangle, and sine waves. It was always a puzzle back in the day why this chip existed as surely the global market for function generators can’t have been that large, however a little bit of background reading for this write-up reveals that its intended application was for producing frequency-shift-keyed sinusoidal tones.

The two PCBs on the bench, with a multimeter
Yellow-stained boards for the win!

The EE project pairs the XR2206 with an op-amp current generator to control the frequency, and another op-amp as an amplifier and signal conditioner. The power supply is typical of the time too, a mains transformer, rectifier, and linear regulators. There are a pair of very period PCBs supplied as print-outs in the magazine for home etching. This she duly does, though with toner transfer which would have been unheard of in 1983. After a few issues with faulty pots and a miswired switch, she has a working function generator which she puts in a very period project box.

It’s interesting to look at this and muse on what’s changed in electronic construction at our level in the last four decades. The PCB is single sided and has that characteristic yellow of ferric chloride etching, it takes up several times the space achievable with the same parts on the professionally-made dual-sided board designed using a modern PCB CAD package we’d use today. A modern take on the same project would probably use a microcontroller and a DAC, and a small switch-mode supply for less money than that transformer would provide the power. But we like the 1983 approach, and we commend [Bettina] for taking it on. The full video is below the break.

Continue reading “A Function Generator From The Past”

Hackaday Podcast Episode 341: Qualcomm Owns Arduino, Steppers Still Dominate 3D Printing, And Google Controls Your Apps

The nights are drawing in for Europeans, and Elliot Williams is joined this week by Jenny List for an evening podcast looking at the past week in all things Hackaday. After reminding listeners of the upcoming Hackaday Supercon and Jawncon events, we take a moment to mark the sad passing of the prolific YouTuber, Robert Murray-Smith.

Before diving into the real hacks, there are a couple of more general news stories with an effect on our community. First, the takeover of Arduino by Qualcomm, and what its effect is likely to be. We try to speculate as to where the Arduino platform might go from here, and even whether it remains the player it once was, in 2025. Then there’s the decision by Google to restrict Android sideloading to only approved-developer APKs unless over ADB. It’s an assault on a user’s rights over their own hardware, as well as something of a blow to the open-source Android ecosystem. What will be our community’s response?

On more familiar territory we have custom LCDs, algorithmic art, and a discussion of non-stepper motors in 3D printing. Even the MakerBot Cupcake makes an appearance. Then there’s a tiny RV, new creative use of an ESP32 peripheral, and the DVD logo screensaver, in hardware. We end the show with a look at why logic circuits use the voltages they do. It’s a smorgasbord of hacks for your listening enjoyment.

Download yourself an MP3 even without a Hackaday Listeners’ License.

Continue reading “Hackaday Podcast Episode 341: Qualcomm Owns Arduino, Steppers Still Dominate 3D Printing, And Google Controls Your Apps”

QUIC! Jump To User Space!

Everyone knows that Weird Al lampooned computers in a famous parody song (It’s All About the Pentiums). But if you want more hardcore (including more hardcore language, so if you are offended by rap music-style explicit lyrics, maybe don’t look this up), you probably want “Kill Dash 9” by Monzy. There’s a line in that song about “You thought the seven-layer model referred to a burrito.” In fact, it refers to how networking applications operate, and it is so ingrained that you don’t even hear about it much these days. But as [Codemia] points out, QUIC aims to disrupt the model, and for good reason.

Historically, your application (at layer 7) interacts with the network through other layers like the presentation layer and session layer. At layer 4, though, there is the transport layer where two names come into play: TCP and UDP. Generally, UDP is useful where you want to send data and you don’t expect the system to do much. Data might show up at its destination. Or not. Or it might show up multiple times. It might show up in the wrong order. TCP solves all that, but you have little control over how it does that.

When things are congested, there are different strategies TCP can use, but changing them can be difficult. That’s where QUIC comes in. It is like a user-space TCP layer built over a UDP transport. There are a lot of advantages to that, and if you want to know more, or even just want a good overview of network congestion control mitigations, check the post out.

If you want to know more about congestion control, catch a wave.