Learn Software Reverse Engineering: Ghidra Class Videos From HackadayU Now Available!

The HackadayU video series on learning to use Ghidra is now available!

Ghidra is a tool for reverse engineering software binaries — you may remember that it was released as Open Source by the NSA last year. It does an amazing job of turning compiled binaries that tell the computer how to operate into human-readable C code. The catch is that there’s a learning curve to making the most out of what Ghidra gives you. Enter the Introduction to Reverse Engineering with Ghidra class led by Matthew Alt as part of the HackadayU series. This set of four one-hour virtual classroom videos were just made available so that you can take the course at your own pace.

Matthew has actually been schooling us for a while. He’s also known as [wrongbaud] and we’ve been spending a lot of time covering his reverse engineering projects, including the teardowns of NES-on-a-chip hardware and his excellent hacker’s guide to JTAG. His HackadayU class continues that legacy by pulling together course materials for a high-quality hands-on walk through Ghidra. You’ll get a dose of computer architecture, the compilation process, ELF file structure, and x86_64 instructions sets along the way. He’s done a superb job of making example code for the coursework available.

While this was the first HackadayU course, there are more on the way. Anool Mahidharia just finished teaching KiCAD & FreeCAD 101 and videos will be published a soon as the editing process is complete. The fall lineup of classes is shaping up nicely and will be announced soon. As a sneak peak, we have instructors working on classes covering tiny machine learning, a second set of classes on Ghidra reverse engineering, a protocol deep dive (I2C, SPI, one-wire, JTAG etc.), Linux on Raspberry Pi, building interactive art, and all about LEDs, and an intro to design with Rhino. Keep your eye on Hackaday for more info as classes are added to the schedule.

Continue reading “Learn Software Reverse Engineering: Ghidra Class Videos From HackadayU Now Available!”

Panic Button Is An Audio-Visual Parachute Out Of Zoom Calls

Everyone has been learning how to stream this year whether they want to or not. This has given rise to the embarrassment paradox, which states that the more urgently you need to kill your camera and microphone feeds in a videoconference call, the more difficult and time-consuming it will be. Zoom in particular will toggle the mic and camera with keyboard shortcuts, but when your toddler waddles into the room swinging a used diaper around in the air, keyboard shortcuts will seem woefully under-powered.

What you need is a single sturdy button that sends both of these toggle commands as quickly as possible. [Simon Prickett]’s panic switch does exactly that. It’s a delightfully tactile arcade button connected to a Trinket M0, which can emulate a keyboard quite easily as an Arduino or CircuitPython device.

This little keyboard doesn’t send these macros directly, because that would be way too risky. What if you were reading Hackaday instead of staring into the tiled faces of your coworkers? Then it wouldn’t work, because Zoom is out of focus.

Instead, it sends an obscure four-key macro to the computer that triggers an AppleScript. [Simon]’s AppleScript checks to see if Zoom is running. If not, it has the system announce the fact. If it is running, then the script sends cmd+shift+a and cmd+shift+v to Zoom directly to toggle the audio and video. Check out the demo after the break.

As you might expect, we’ve seen a couple of videoconference survival hacks over the past few months. Need to show something or work with your hands, but only have one camera? All you need is a mirror, a clothespin, and a length of wire for a simple split-screen setup.

Continue reading “Panic Button Is An Audio-Visual Parachute Out Of Zoom Calls”

TinyPilot Provides KVM-over-IP, With Low Cost And Even Lower Latency

Remote access is great, but if the machine stops booting, ceases to connect to the network, or needs low-level interaction like BIOS settings or boot management, remote access is worthless because it’s only available once the host computer is up and running. The usual solution is to drag a keyboard and monitor to the machine in question for physical access.

Ubuntu laptop (right) being accessed over IP, via web browser on the left.

For most people, swapping cables in this way is an infrequent task at best. But for those who work more closely with managing hardware or developing software, the need to plug and unplug a keyboard and monitor into machines that otherwise run headless can get tiresome. The modern solution is KVM (keyboard, video, mouse) over IP, but commercial options are expensive. [Michael Lynch]’s TinyPilot on the other hand clocks in at roughly $100 of parts, including a Raspberry Pi and USB HDMI capture device. It does have to drop the ‘M’ from KVM (meaning it does not support a mouse yet) but the rest of it hits all the bases, and does it all from a web browser.

What exactly does TinyPilot do? It provides remote access via web browser, but the device is an independent piece of hardware that — from the host computer’s point of view — is no different from a physical keyboard and monitor. That means keyboard and video access works before the host machine even boots, so even changing something like BIOS settings is no problem.

[Michael] demonstrates his design in the video embedded below, but we encourage you to check out the project page for a fascinating exploration of all the challenges that were part of TinyPilot’s development.

Continue reading “TinyPilot Provides KVM-over-IP, With Low Cost And Even Lower Latency”

An Easier Way To Roll Your Own LED Ball

Yes, circuit sculptures are amazing. But the patience and skill required puts most of the designs we’ve seen fairly far out of reach of the average beginner. We totally understand — not everyone finds fun in fiddly, structural soldering.

[Hari Wiguna] was captivated by the LED ball that [Jiří Praus] made last Christmas and figured there had to be less painful ways to cover a sphere in blinkenlights than printing a negative to use as a soldering jig. Turns out there is at least one way — just design the structure to use PCBs in place of brass rod, and fit everything together like a 3D puzzle made of FR4.

This SMD LED ball is almost ready for prime time. [Hari] wants this to be accessible for everyone and completely parametric, so he’s still working out the kinks. Check out the current form after the break as [Hari] rolls the ball through the various display modes using an Arduino and talks about the failures along the way, like having to file out the LED slots because they were designed too tightly the first time. [Hari] is also working on the friction fit of the pieces so the ball is easier to assemble, especially at the beginning.

3D prints as circuit sculpture soldering jigs are great tools, don’t get us wrong. How else are you gonna solder brass rod together on a curve?

Continue reading “An Easier Way To Roll Your Own LED Ball”

Surgery On The Arduino IDE Makes Bigger Serial Buffers

It is pretty well-known that I’m not a big fan of the Arduino infrastructure. Granted, these days you have more options with the pro IDE and Platform IO, for example. But the original IDE always gives me heartburn. I realized just how much heartburn the other day when I wanted to something very simple: increase the receive buffer on an ATmega32 serial port. The solution I arrived at might help you do some other things, so even if you don’t need that exact feature, you still might find it useful to see what I did.

Following this experience I am genuinely torn. On the one hand, I despise the lackluster editor for hiding too much detail from me and providing little in the way of useful tools. On the other hand, I was impressed with how extensible it was if you can dig out the details of how it works internally.

First, you might wonder why I use the IDE. The short answer is I don’t. But when you produce things for other people to use, you almost can’t ignore it. No matter how you craft your personal environment, the minute your code hits the Internet, someone will try to use it in the IDE. A while back I’d written about the $4 Z80 computer by [Just4Fun]. I rarely have time to build things I write about, but I really wanted to try this little computer. The parts sat partially assembled for a while and then a PCB came out for it. I got the PCB and — you guessed it — it sat some more, partially assembled. But I finally found time to finish it and had CP/M booted up.

The only problem was there were not many good options for transferring data back and forth to the PC. It looked like the best bet was to do Intel hex files and transfer them copy and paste across the terminal. I wanted better, and that sent me down a Saturday morning rabbit hole. What I ended up with is a way to make your own menus in the Arduino IDE to set compiler options based on the target hardware for the project. It’s a trick worth knowing as it will come in handy beyond this single problem.

Continue reading “Surgery On The Arduino IDE Makes Bigger Serial Buffers”

Build An Everlasting Continuity Tester

When you need a continuity tester at the bench, what do you reach for? Probably your multimeter, right? It may surprise you to know that the continuity tester in the meter isn’t all that sensitive, even if it’s the yellow expensive kind. [Leo]’s will beep even if there is 50Ω of resistance in the line.

Disgusted by modern commercial testers, [Leo] set out to make the ideal continuity tester in the spirit of old school tools that do one thing and do it really well. It had to be simple to use, always ready to go, and capable of measuring continuity at 5Ω or less resistance (video, embedded below).

There’s no power switch or even labels, because it doesn’t need any. Just put the probes where you want ’em, and it either beeps and lights the LED or it doesn’t. It looks simple, but inside that blast-resistant enclosure are lots of cool features that certainly make it seem like the ideal tester to us.

Our favorite has to be the transient blocking unit that works like a little circuit breaker. They’re used to protect circuits from lighting and electrostatic discharge by way of depletion-mode MOSFETs and switches to protected mode in under a microsecond. Watch [Leo] build this workbench necessity and then abuse test it with mains power after the break.

Making your own tools, however simple or complex is a great experience. If you want to up your speedy prototyping game, [Leo]’s got you covered there with a special scratching tool for hand-scribing copper PCBs. Continue reading “Build An Everlasting Continuity Tester”

Learn The Secrets Of Matching Bottle Cap Threads To One Another

Do you want to design something to match existing threads on a bottle, or a cap? It turns out there’s an easier way than reaching tiredly for the calipers and channeling one’s inner reverse-engineer. Bottle cap threads — whose industry term is the neck finish — aren’t arbitrary things; they are highly standardized, and [Noupoi] researched it all so that you don’t have to! The Bottle Cap Thread Calculator takes a few key measurements and spits out everything needed to model exact matches. Need some guidance on how exactly to use the information the calculator spits out? There is a handy link to a Fusion360 tutorial on creating bottle threads (YouTube video) to demonstrate.

This all came from [Noupoi] wanting to model an adapter to transfer the contents of one bottle to another, smaller bottle. By identifying which thread was used on each bottle, the job of modeling a matching adapter was much easier. It turns out that the bottle necks were an SP 28-415 (larger) and a 24-415 (smaller), and with that information the adapter was far simpler to design. If you want to check the adapter out, it’s available on Thingiverse.

If truly reverse-engineering bottle threads is needed, here’s a method we covered that involves making a simple cast and working from that.

[via Reddit]