Tools Of The Trade: Dirt Cheap Or Too Dirty?

We’ve recently seen a couple reviews of a particularly cheap oscilloscope that, among other things, doesn’t meet its advertised specs. Actually, it’s not even close. It claims to be a 100 MHz scope, and it’s got around 30 MHz of bandwidth instead. If you bought it for higher frequency work, you’d have every right to be angry. But it’s also cheap enough that, if you were on a very tight budget, and you knew its limitations beforehand, you might be tempted to buy it anyway. Or so goes one rationale.

In principle, I’m of the “buy cheap, buy twice” mindset. Some tools, especially ones that you’re liable to use a lot, make it worth your while to save up for the good stuff. (And for myself, I would absolutely put an oscilloscope in that category.) The chances that you’ll outgrow or outlive the cheaper tool and end up buying the better one eventually makes the money spent on the cheaper tool simply wasted.

But that’s not always the case either, and that’s where you have to know yourself. If you’re only going to use it a couple times, and it’s not super critical, maybe it’s fine to get the cheap stuff. Or if you know you’re going to break it in the process of learning anyway, maybe it’s a shame to put the gold-plated version into your noob hands. Or maybe you simply don’t know if an oscilloscope is for you. It’s possible!

And you can mix and match. I just recently bought tools for changing our car’s tires. It included a dirt-cheap pneumatic jack and an expensive torque wrench. My logic? The jack is relatively easy to make functional, and the specs are so wildly in excess of what I need that even if it’s all lies, it’ll probably suffice. The torque wrench, on the other hand, is a bit of a precision instrument, and it’s pretty important that the bolts are socked up tight enough. I don’t want the wheels rolling off as I drive down the road.

Point is, I can see both sides of the argument. And in the specific case of the ’scope, the cheapo one can also be battery powered, which gives it a bit of a niche functionality when probing live-ground circuits. Still, if you’re marginally ’scope-curious, I’d say save up your pennies for something at least mid-market. (Rigol? Used Agilent or Tek?)

But isn’t it cool that we have so many choices? Where do you buy cheap? Where won’t you?

Hackaday Podcast 218: Open Source AI, The Rescue Of Salyut 7, The Homework Machine

This week, Editor-in-Chief Elliot Williams and Kristina Panos have much in the way of Hackaday news — the Op Amp Challenge is about halfway over, and there are roughly three weeks left in the Assistive Tech challenge of the 2023 Hackaday Prize. Show us what you’ve got on the analog front, and then see what you can do to help people with disabilities to live better lives!

Kristina is still striking out on What’s That Sound, which this week honestly sounded much more horrendous and mechanical than the thing it actually is. Then it’s on to the hacks, beginning with the we-told-you-so that even Google believes that open source AI will out-compete both Google’s own AI and the questionably-named OpenAI.

From there we take a look at a light-up breadboard, listen to some magnetite music, and look inside a pair of smart sunglasses. Finally, we talk cars, beginning with the bleeding edge of driver-less. Then we go back in time to discuss in-vehicle record players of the late 1950s.

Check out the links below if you want to follow along, and as always, tell us what you think about this episode in  the comments!

Download and savor at your leisure.

Continue reading “Hackaday Podcast 218: Open Source AI, The Rescue Of Salyut 7, The Homework Machine”

Hackaday Prize 2023: Meet The Ten Re-Engineering Education Finalists

They say time flies when you’re having fun, and doubly so when you’re hacking hardware. If you can believe it, we’ve already closed out the first challenge of the 2023 Hackaday Prize, and you know what that means — it’s time to announce the 10 finalists.

As a reminder, each of these projects not only takes home $500 USD, but moves on to the next round of judging. During the recently announced 2023 Supercon, we’ll announce the six projects that were selected by our panel of judges to collect their share of $100,000 in prize money– plus a residency at Supplyframe’s DesignLab and eternal hacker glory for the Grand Prize winner.

Continue reading “Hackaday Prize 2023: Meet The Ten Re-Engineering Education Finalists”

Retro Gadgets: I Swear Officer, I Was Listening To 45

Audio in cars has a long history. Car radios in the 1920s were bulky and expensive. In the 1930s, there was the Motorola radio. They were still expensive — a $540 car with a $130 radio — but much more compact and usable.  There were also 8-tracks, cassettes, CDs, and lately digital audio on storage media or streamed over the phone network. There were also record players. For a brief period between 1955 and 1961, you could get a car with a record player. As you might expect, though, they weren’t just any record players. After all, the first thing to break on a car from that era was the mechanical clock. Record players would need to be rugged to work and continue to work in a moving vehicle. As you might also expect, it didn’t work out very well.

It all started with Peter Goldmark, the head of CBS Laboratories. He knew a lot about record players and had been behind the LP — microgroove records that played for 22 minutes on a side at 33.3 RPM instead of 5 minutes on a side at 78 RPM. He knew that a car record player needed to be smaller and shock-resistant. Of course, in those days, it would have tubes, but that could hardly be helped.

The problem turned into one of size. A standard 10- or 12-inch disk is too big to easily fit in the car. A 45 RPM record would be more manageable, but who wants to change the record every three or four minutes while driving?

Continue reading “Retro Gadgets: I Swear Officer, I Was Listening To 45”

Share Your Projects: Making Helpful PCBs

When it comes to things that hackers build, PCBs are a sizeable portion of our creative output. It’s no wonder – PCB design is a powerful way to participate in the hardware world, making your ideas all that more tangible with help of a friendly PCB fab. It’s often even more lovely when the PCB has been designed for you, and all you have to do is press “send” – bonus points if you can make a few changes for your own liking!

A lot of the time, our projects are untrodden ground, however, and a new design needs to be born. We pick out connectors, work through mechanical dimensions, figure out a schematic and check it with others, get the layout done, and look at it a few more times before sending it out for production. For a basic PCB, that is enough – but of course, it’s no fun to stop at ‘basic’, when there’s so many things you can do at hardly any cost.

Let’s step back a bit – you’ve just designed a board, and it’s great! It has all the chips and the connectors you could need, and theoretically, it’s even supposed to work first try. Now, let’s be fair, there’s an undeniable tendency – the more PCBs you design, the better each next one turns out, and you learn to spend less time on each board too. As someone with over two hundred PCBs under her belt, I’d like to show you a bunch of shortcuts that make your PCB more helpful, to yourself and others.

There’s a few ways that you can share your PCB projects in a more powerful way – I’d like to point out a few low-hanging fruits, whether README.md files or markings on the PCB itself. I’ve been experimenting quite a bit with external and embedded documentation of PCBs, as well as PCB sharing methods, got some fun results, and I’d like to share my toolkit through a few punchy examples and simple tricks. I’d also like to hear about yours – let’s chat! Continue reading “Share Your Projects: Making Helpful PCBs”

A Literate Assembly Language

A recent edition of [Babbage’s] The Chip Letter discusses the obscurity of assembly language. He points out, and I think correctly, that assembly language is more often read than written, yet nearly all of them are hampered by obscurity left over from the days when punched cards had 80 columns and a six-letter symbol was all you could manage in the limited memory space of the computer. For example,  without looking it up, what does the ARM instruction FJCVTZS do? The instruction’s full name is Floating-point Javascript Convert to Signed Fixed-point Rounding Towards Zero. Not super helpful.

But it did occur to me that nothing is stopping you from writing a literate assembler that is made to be easier to read. First, most C compilers will accept some sort of asm statement, and you could probably manage that with compile-time string construction and macros. However, I think there is a better possibility.

Reuse, Recycle

Since I sometimes develop new CPU architectures, I have a universal cross assembler that is, honestly, an ugly hack, but it works quite well. I’ve talked about it before, but if you don’t want to read the whole post about it, it uses some simple tricks to convert standard-looking assembly language formats into C code that is then compiled. Executing the resulting program outputs the desired machine language into a desired file format. It is very easy to set up, and in the middle, there’s a nice C program that emits machine code. It is not much more readable than the raw assembly, but you shouldn’t have to see it. But what if we started the process there and made the format readable?

At the heart of the system is a C program that lives in soloasm.c. It handles command line options and output file generation. It calls an external function, genasm with a single integer argument. When that argument is set to 1, it indicates the assembler is in its first pass, and you only need to fill in label values with real numbers. If the pass is a 2, it means actually fill in the array that holds the code.

That array is defined in the __solo_info instruction (soloasm.h). It includes the size of the memory, a pointer to the code, the processor’s word size, the beginning and end addresses, and an error flag. Normally, the system converts your assembly language input into a bunch of function calls it writes inside the genasm function. But in this case, I want to reuse soloasm.c to create a literate assembly language. Continue reading “A Literate Assembly Language”

Ask Hackaday: Why Do Self Driving Cars Keep Causing Traffic Jams?

Despite what some people might tell you, self-driving cars aren’t really on the market yet. Instead, there’s a small handful of startups and big tech companies that are rapidly developing prototypes of this technology. These vehicles are furiously testing in various cities around the world.

In fact, depending on where you live, you might have noticed them out and about. Not least because many of them keep causing traffic jams, much to the frustration of their fellow road users. Let’s dive in and look at what’s going wrong.

Continue reading “Ask Hackaday: Why Do Self Driving Cars Keep Causing Traffic Jams?”