Learn AI Via Spreadsheet

While we’ve been known to use and abuse spreadsheets in the past, we haven’t taken it to the level of [Spreadsheets Are All You Need]. The site provides a spreadsheet version of an “AI” system much like ChatGPT 2. Sure, that’s old tech, but the fundamentals are the same as the current crop of AI programs. There are several “lesson” videos that explain it all, with the promise of more to come. You can also, of course, grab the actual spreadsheet.

The spreadsheet is big, and there are certain compromises. For one thing, you have to enter tokens separately. There are 768 numbers representing each token in the input. That’s a lot for a spreadsheet, but a modern GPT uses many more.

Continue reading “Learn AI Via Spreadsheet”

How To Build Your Own 16-Bit System-on-Spreadsheet

Back in the hazy days of the  early home computers, many of us would rejoice at running our first BASIC applications, some of us even built our own 8-bit system from a handful of ICs and felt elated the moment the connected LEDs, screen or other output device would show signs of life. It is this kind of excitement that [Inkbox] has managed to bring to the bane of every office worker: spreadsheet programs like Excel. How, you may ask? Why, by implementing a completely functional 16-bit system with 16 general purpose registers, 128 kB of RAM and a 128×128 pixel color display, all inside an Excel spreadsheet, making it conceivably the world’s first System-on-Spreadsheet (SoS).

Perhaps the most tantalizing aspect of this approach is that it provides a very good visual way to indicate what is happening inside the system using color codes and clearly segregated and marked functional elements. Not only can it be programmed manually, but [Inkbox] also created an assembler for the CPU’s ISA – called Excel-ASM16 – all of which is available from the ExcelCPU GitHub project page. The ASM is assembled into a ROM.xlsx file that can then be run by the CPU.xlsx file by triggering the Read ROM button. After this you are confronted with the realization that although it all works, it’s also incredibly slow, at about 2-3 Hz.

Still, with all the elegance of an IMSAI 8080 front panel, we cannot help but give full points for this achievement. Plus it gives many of us something to do during those exceedingly dull meetings where only serious applications like office suites are allowed.

Continue reading “How To Build Your Own 16-Bit System-on-Spreadsheet”

Organise Your Hacks With TreeSheets: An Open Source Hierarchical Spreadsheet

Some people may have heard of Dutch programmer [Wouter Van Oortmerssen] since he’s the creator of the Amiga-E programming language, as well as being involved with several game engines. Heard of SimCity? How about Borderlands 2 or Far Cry? Having had clearly a long and illustrious career as a programmer for a variety of clients — including a long stint at Google, working on Web Assembly — many people will be familiar with at least some of his work. But you may not have heard of his TreeSheets productivity tool. Which would be a shame, as you’ve been missing out on something pretty darn useful.

TreeSheets is described as a hierarchical spreadsheet, which is intended as a replacement for several distinct tools; think spreadsheets, mindmaps and text editors and similar. In [Wouter]’s words:

It’s like a spreadsheet, immediately familiar, but much more suitable for complex data because it’s hierarchical.
It’s like a mind mapper, but more organized and compact.
It’s like an outliner, but in more than one dimension.
It’s like a text editor, but with structure.

Having been in development for about a decade, TreeSheets might look a bit dated here and there, but the design is clear and distraction-free, which is exactly what you need when you’re trying to focus on the task in hand. Why not give it a try and see if it works for you? After the break, you can see a video tutorial by YouTube user [DrilixProject].

No strangers to productivity hacks, here’s Pomodachi, a cute pomodoro timer crossed with a Tamagotchi. Sometimes productivity isn’t solved with software tools, but more to do with your attitude to projects. Finally sometimes the route to greater productivity is a little closer to home, like inside your head.

Continue reading “Organise Your Hacks With TreeSheets: An Open Source Hierarchical Spreadsheet”

DSP Spreadsheet: The Goertzel Algorithm Is Fourier’s Simpler Cousin

You probably have at least a nodding familiarity with the Fourier transform, a mathematical process for transforming a time-domain signal into a frequency domain signal. In particular, for computers, we don’t really have a nice equation so we use the discrete version of the transform which takes a series of measurements at regular intervals. If you need to understand the entire frequency spectrum of a signal or you want to filter portions of the signal, this is definitely the tool for the job. However, sometimes it is more than you need.

For example, consider tuning a guitar string. You only need to know if one frequency is present or if it isn’t. If you are decoding TouchTones, you only need to know if two of eight frequencies are present. You don’t care about anything else.

A Fourier transform can do either of those jobs. But if you go that route you are going to do a lot of math to compute things you don’t care about just so you can pick out the one or two pieces you do care about. That’s the idea behind the Goertzel. It is essentially a fast Fourier transform algorithm stripped down to compute just one frequency band of interest.  The math is much easier and you can usually implement it faster and smaller than a full transform, even on small CPUs.

Continue reading “DSP Spreadsheet: The Goertzel Algorithm Is Fourier’s Simpler Cousin”

Little Hex Tricks Make Little Displays A Little Easier

Depending on the device in hand and one’s temperament, bringing up a new part can be a frolic through the verdant fields of discovery or an endless slog through the grey marshes of defeat. One of the reasons we find ourselves sticking with tried and true parts we know well is that interminable process of configuration. Once a new display controller is mostly working, writing convenience functions to make it easier to use can be very satisfying, but the very first thing is figuring out how to make it do anything at all. Friend of Hackaday [Dan Hienzsch] put together a post describing how to use a particular LED controller which serves as a nice walkthrough of figuring out the right bitmath to make things work, and includes a neat trick or two.

The bulk of the post is dedicated to describing the way [Dan] went about putting together his libraries for a 7-segment display demo board he makes. At its heart the board uses the IS31FL3728 matrix driver from ISSI. We love these ISSI LED controllers because they give you many channels of control for relatively low cost, but even with their relative simplicity you still need to do some bit twiddling to light the diodes you need. [Dan]’s post talks about some strategies for making this easier like preconfigured lookup tables with convenient offsets and masking bits to control RGB LEDs.

There’s one more trick which we think is the hidden star of the show; a spreadsheet which calculates register values based on “GUI” input! Computing the bit math required to control a display can be an exercise in frustration, especially if the logical display doesn’t fit conveniently in the physical register map of the controller. A spreadsheet like this may not be particularly sexy but it gets the job done; exactly the kind of hack we’re huge fans of here. We’ve mirrored the spreadsheet so you can peek at the formulas inside, and the original Excel document is available on his blog.

DSP Spreadsheet: Talking To Yourself Using IQ

We’ve done quite a bit with Google Sheets and signal processing: we’ve generated signals, created filters, and computed quadrature signals. We can pull all that together into an educational model for two SDRs talking to each other, but it’s going to require two parts: modulation and demodulation. Guess what? We can do that with a spreadsheet.

The first step is to generate a reference clock for the carrier. You’ll need a cosine wave (I) and sine wave (Q). Of course, you also need the time base. That’s columns A-C in the spreadsheet and works like other signal generation we’ve seen.

Continue reading “DSP Spreadsheet: Talking To Yourself Using IQ”

DSP Spreadsheet: IQ Diagrams

In previous installments of DSP Spreadsheet, we’ve looked at generating signals, mixing them, and filtering them. If you start trying to work with DSP, though, you’ll find a topic that always rears its head: IQ signals. It turns out, these aren’t as hard as they appear at first and, as usual, we’ll tackle them in a spreadsheet.

What does IQ stand for? The I stands for “in phase” and the Q stands for quadrature. By convention, the I signal is a cosine wave and the Q signal is a sine wave. Another way to say that is that the I and Q signals are 90 degrees out of phase. By manipulating the amplitude of I and Q, you can create complex modulation or, conversely, demodulate signals. We’ll see a spreadsheet that shows that completely next time.

Continue reading “DSP Spreadsheet: IQ Diagrams”