Lisp Runs This Microcontroller Pendant

As a programming language, Lisp has been around longer than any other active language except for Fortran. To anyone who regularly uses it, it’s easy to see why: the language allows for new syntax and macros to be created fluidly, which makes it easy to adapt it to new situations, like running it on a modern Atmel microcontroller to control the LEDs on this star pendant.

The pendant has simple enough hardware — six LEDs arranged around the points of the star, all being driven by a small ATtiny3227 operating from a coin cell battery. This isn’t especially spectacular on it’s own, but this particular microcontroller is running an integer version of a custom-built Lisp interpreter called uLisp. The project’s creator did this simply because of the whimsy involved in running a high-level programming language on one of the smallest microcontrollers around that would actually support the limited functionality of this version of Lisp. This implementation does stretch the memory and processing capabilities of the microcontroller quite a bit, but with some concessions, it’s able to run everything without issue.

As far as this project goes, it’s impressive if for nothing other than the ‘I climbed the mountain because it was there’ attitude. We appreciate all kinds of projects in that same vein, like this Arduino competitor which supports a programming language with only eight commands, or this drone which can carry a human.

ESP8266 Web Server Saves 60% Power With A 1 Ms Delay

Arduino has a library for quickly and easily setting up a simple web server on an ESP8622-based board, and [Tomaž] found that power consumption on an ESP-01 can be reduced a considerable amount by simply inserting a 1 ms delay in the right place. The reason this works isn’t because of some strange bug or oddball feature — it’s really just a side effect of how the hardware operates under the hood.

[Tomaž] uses the “hello world” example from ESP8266WebServer to explain. In it, the main loop essentially consists of calling server.handleClient() forever. That process checks for incoming HTTP connections, handles them, sends responses, exits — and then does it all over again. A simple web server like this one spends most of its time waiting.

A far more efficient way to handle things would be to launch server.handleClient() only when an incoming network connection calls for it, and put the hardware to sleep whenever that is not happening. However, that level of control just isn’t possible in the context of the Arduino’s ESP8266WebServer library.

So what’s to be done? The next best thing turns out to be a simple delay(1) statement right after each server.handleClient() call in the main loop.

Why does this work? Adding delay(1) actually causes the CPU to spend the vast majority of its time in that one millisecond loop. And counting microseconds turns out to be a far less demanding task, power-wise, than checking for incoming network requests about a hundred thousand times per second. In [Tomaž]’s tests, that one millisecond delay reduced idle power consumption at 3.3 V from roughly 230 mW to around 70 mW — about 60% — while only delaying the web server’s response times by 6-8 milliseconds.

For simple web server applications, this is is for sure a good trick to keep in mind. There are also much more advanced techniques for saving power on ESP8266-based boards; from boards that barely sip a single microamp while sleeping, to coin-cell powered boards that go so far as to modify the TCP/IP stack to help squeeze every bit of power savings possible.

This Snappy 8-Bit Microcomputer Brings The Speed To Retrocomputing

When the need for speed overcomes you, thoughts generally don’t turn to 8-bit computers. Sure, an 8-bit machine is fun for retro gameplay and reliving the glory days, and there certainly were some old machines that were notably faster than the others. But raw computing power isn’t really the point of retrocomputing.

Or is it? [Bernardo Kastrup] over at The Byte Attic has introduced an interesting machine called the Agon Light, an 8-bit SBC that’s also a bit like a microcontroller. The machine has a single PCB that looks about half as big as an Arduino Uno, and sports some of the same connectors and terminals around its periphery. The heart of the Agon Light is an eZ80 8-bit, 18.432 MHz 3-stage pipelined CPU, which is binary compatible with the Z80. It also has an audio-video coprocessor, in the form of an ESP32-Pico-D4, which supports a 640×480 64-color display and two mono audio channels. There’s no word we could find of whether the ESP32’s RF systems are accessible; it would be nice, but perhaps unnecessary since there are both USB ports and a PS/2 keyboard jack. There’s also a pin header for 20 GPIOs as well as I2C, SPI, and UART for serial communication.

The lengthy video below goes into all the details on the Agon Light, including the results of benchmark testing, all of which soundly thrash the usual 8-bit suspects. The project is open source and all the design files are available, or you can get a PCB populated with all the SMD components and just put the through-hole parts on. [Bernardo] is also encouraging people to build and sell their own Agon Lights, which seems pretty cool too. It honestly looks like a lot of fun, and we’re looking forward to seeing what people do with this.

Continue reading “This Snappy 8-Bit Microcomputer Brings The Speed To Retrocomputing”

You Can’t Be Too Rich Or Too Thin — A 2mm Thick Computer

We’ve seen credit card-sized computers before, but [Kn/vD] shows us a PIC18-based computer with 9 components that is only 2 mm thick! With 13 K of RAM and 128 K of flash, you can’t do much with it, but a built-in BASIC interpreter can use half the flash like a disk drive and operate with the 20×4 LCD display and the PCB touch-panel keyboard.

The whole thing only has eleven parts, but that’s only because it needed ancillary components like decoupling capacitors and the battery along with a physical reset switch. All the real functions are in the CPU and the LCD display. The schematic is online, but we didn’t see the files for the PCB or the interpreter yet, but it sounds like they are forthcoming. Meanwhile, we wonder if anyone is up to the challenge of going even thinner.

[Kn/Vd] loves small computers. There are plans for a few other versions of the board with AVR and PIC24 processors. The last time we saw a tiny module from [Kn/vD] it ran C. If you check out other Hackaday.io projects on the account, there are several tiny computers there. If you want a business card that can run Linux, you might need to go a little bit thicker.

Custom Calculator Brings Us Back To The 70s

There are certain design aesthetics from every era that manage to survive the fads of their time and live throughout history. Ancient Greek architecture is still drawn upon for design inspiration in modern buildings, the mid-century modern style from the 60s still inspires various designs of consumer goods, and the rounded, clean looking cars from the 90s are still highly desirable qualities in automotive design. For electronics, though, we like this 70s-inspired calculator that [Aaron] recently built.

The calculator hearkens back to the days of calculators like the HP-29C with its large buttons and dot-matrix display. [Aaron] built the case out of various woods with a screen angled towards the user, and it uses a LCD display similar to those found in antique calculators. The brain of the calculator is an Arduino which fits easily into the case, and [Aaron] also built the keyboard from scratch with Cherry MX-style mechanical keys soldered together into a custom shape.

The software to run the calculator is fairly straightforward, but we are most impressed with the woodworking, styling, and keyboard design in this build. [Aaron] is also still ironing out some bugs with the power supply as it uses a DC-DC converter to power the device from a single lithium battery. For those who are more fond of early 2000s graphing calculators instead, be sure to take a look at this graphing calculator arcade cabinet.

Continue reading “Custom Calculator Brings Us Back To The 70s”

A ’70s TV With ’20s Parts

Keeping older technology working becomes exponentially difficult with age. Most of us have experienced capacitor plague, disintegrating wire insulation, planned obsolescence, or even the original company failing and not offering parts or service anymore. To keep an antique running often requires plenty of spare parts, or in the case of [Aaron]’s vintage ’70s Sony television set, plenty of modern technology made to look like it belongs in a machine from half a century ago.

The original flyback transformer on this TV was the original cause for the failure of this machine, and getting a new one would require essentially destroying a working set, so this was a perfect candidate for a resto-mod without upsetting any purists. To start, [Aaron] ordered a LCD with controls (and a remote) that would nearly fit the existing bezel, and then set about integrating the modern controls with the old analog dials on the TV. This meant using plenty of rotary encoders and programming a microcontroller to do the translating.

There are plenty of other fine details in this build, including audio integration, adding modern video and audio inputs like HDMI, and adding LEDs to backlight the original (and now working) UHF and VHF channel indicators. In his ’70s-themed display wall, this TV set looks perfectly natural. If your own display wall spotlights an even older era, take a look at some restorations of old radios instead.

Continue reading “A ’70s TV With ’20s Parts”

Programmable Resistance Box

For prototype electronics projects, most of us have a pile of resistors of various values stored somewhere on our tool bench. There are different methods of organizing them for easy access and identification, but for true efficiency a resistance substitution box can be used on the breadboard to quickly change resistance values at a single point in a circuit. Until now it seemed this would be the pinnacle of quickly selecting differently-sized resistors, but thanks to this programmable resistor bank there’s an even better option available now.

Unlike a traditional substitution box or decade box, which uses switches or dials to select different valued resistors across a set of terminals, this one is programmable and uses a series of sealed relays instead. That’s not where the features stop, though. It also comes equipped with internal calibration circuitry which take into account the resistance of the relay contacts and internal wiring to provide a very precise resistance value across its terminals. It’s also able to be calibrated manually to account for temperature or other factors.

For an often-overlooked piece of test equipment, this one surely fits the bill of something we didn’t know we needed until now. Even though digital resistor substitution boxes are things we have featured in the past, the connectivity and calibration capabilities of this one make it intriguing.