AVR Bare Metal With Lisp

There are two kinds of programmers: those who don’t use Lisp, and those who need new parenthesis keycaps every six months. Lisp is one of those languages you either really love or really hate. If you love it, you may have checked out ulisp, which runs on Arduino boards of the AVR and ARM variety, as well as ESP chips, RISC-V, and others. A recent update allows the language to insert assembler into AVR programs.

We probably don’t need to convince anyone reading Hackaday why adding assembler is a good thing. It seems to integrate well with the environment, too, so you can write assembler macros in Lisp, which opens up many possibilities.

Continue reading “AVR Bare Metal With Lisp”

Stay Focused With This Distraction Free Cyberdeck

While on the surface they might seem like little more than cosplay accessories, there are perfectly valid and practical reasons for building a custom cyberdeck. For one thing, a hand-built deck is going to be easier to upgrade and modify down the line. A bespoke rig can also be made to fit your exacting specifications, with each and every design choice made specifically to support your personal style and workflow.

For [Conrad Barski], that meant a computer that would stay out of his way and allow him to take notes and write code while keeping distractions to the absolute minimum. All he wanted in his dream machine was a nice mechanical keyboard, a widescreen display, and enough battery power to go mobile should the need arise. Anything else would be gilding the lily. For those who want to distill personal computing down to its simplest form, this build is really the high water mark.

[Conrad] is currently in the early stages of turning his Lisperati1000 into a kit others can build for themselves, so details are a bit sparse at the moment. But we do know there’s a Raspberry Pi Zero W, a Vortex Core 40% keyboard, and 4,400 mAh worth of battery power wrapped up in that slick 3D printed enclosure. Readers may recognize the 1920×480 ultra-wide LCD from the modernized TRS-80 Model 100 we covered recently, or perhaps the gorgeously reimagined retro terminals of [Oriol Ferrer Mesià]. If you’ve got retro-futurism on the brain, this seems to be the display to beat.

Whether you want to explore vintage computing, stylishly take control of your custom race car, or cruise the airwaves with an integrated software defined radio, a completely custom portable computing device can make for an interesting alternative to another ho-hum laptop from the Big Box electronics store.

The Strangest Gameboy Emulator We’ve Seen Yet

In the secret Hackaday bunker, we have some emacs users, some vi users, and some people who don’t really care. However, even the staunchest of our emacs supporters had to do a double take at [Vreeze’s] project that creates a GameBoy emulator using the venerable text editor. You can see [Alexei Nunez’s] reaction to the emulator in the video below.

The Eboy uses unicode characters to output the graphics. You can use emacs commands to load ROM images and use your keyboard to control the game.

Continue reading “The Strangest Gameboy Emulator We’ve Seen Yet”

Program This Badge In Lisp

This hardware badge is a computer programmed with Lisp. You can write your own programs right on the badge using the built-in keyboard, as long as you know Lisp.

If there’s one thing we really like to see, it’s people advancing their own projects based on inspiration from others. The Lisp Badge by [David Johnson-Davies] is a perfect example. With an interface inspired by [Voja Antonic’s] hardware design for the 2018 Hackaday Belgrade Conference Badge, this version is an upgrade of an earlier single-board Lisp machine, now sporting an integrated keyboard.

Unlike the Belgrade badge, which is programmed in BASIC, this new badge is programmed in uLisp, a subset of common lisp designed for microcontrollers. Let’s face it, BASIC is retro, but Lisp is even more so, only pre-dated by FORTRAN as the oldest high-level language. So, if you’re into retro-style programming on small devices (physically small, that is), you should consider building one of these.

A 16 MHz ATmega 1284P serves as the badge’s brain, allowing storage for 2,816 Lisp cells, while the 256×64 pixel OLED display shows 8 lines of 42 characters in 16 gray levels. A full complement of I/O connections includes four analog inputs, two analog outputs, I2C, SPI, serial, and a handful of GPIOs for interfacing with just about anything. Power comes from a LiPO battery, which at a nominal voltage of 3.7 V doesn’t quite meet the datasheet requirements for running the processor at 16 MHz, although it seems to work fine in practice. Really cautious builders could opt for a 12 MHz crystal transplant to avoid any possibility of problems.

The keyboard layout is optimized for uLisp programming: unnecessary keys have been removed and the all-important parenthesis are afforded their own dedicated keys on the bottom row. This is presumably for convenience of use, but we suspect this will also make it easier to replace the parenthesis key switches when they inevitably wear out from overuse [obligatory Lisp/parenthesis joke].

As far as entering uLisp programs, you can simply use the keyboard. The built-in editor buffers a full screen of text, and includes parenthesis matching that highlights each pair as you type. We’re guessing that we won’t see Emacs implemented in the near future, so this bracket management is a great feature for a badge-based editor. If you find the keyboard difficult to type on, you can also enter programs over the serial port.

The other thing we really like to see is open-source projects. [David] doesn’t let us down on this point, either. The Eagle design files for the PCB as well as the source code for the badge are available on GitHub. The PCB is also shared on OSH Park, and there are detailed instructions for installing the bootloader and uploading the code.

If programmable badges is your thing, also check out the 2018 Hackaday Supercon Badge, the successor the Belgrade design.

Thanks to [Sven] for the tip!

That’s A Lisp Machine In Your Pocket

Computer languages have always advanced faster than computer hardware. Case in point: we’re just now getting CPU instructions for JavaScript floating point numbers. The 1970s and 80s wasn’t the garbage fire of JavaScript instructions in silicon, instead they were all about garbage collection. Lisp machines were CPUs designed to run Lisp efficiently. They were great, until the companies responsible realized you had to sell a product to stay in business. Combine an interesting architecture with rarity and historical interest, and you have a centerpiece of any retrocomputing enthusiasts collection. Yes, we all want a Lisp machine.

Now there’s an interesting project on CrowdSupply that will make that possible. It’s the MakerLisp Machine, a credit card-sized computer that runs bare-metal Lisp.

We first saw the MakerLisp Machine in its raw prototype form at VCF West last August, and it was in a very, very raw state. That was just a prototype, though, but the MakerLisp business card-sized computer still features the Zilog eZ80 running at 50MHz. The basic board includes a USB port for a serial connection and a microSD card slot for storage. It boots into a Lisp environment, and you don’t even have to use a NuBus card. We’re living in the future here.

Because this is a credit card-sized computer, there is of course an expansion board that breaks everything out, including the GPIOs. Being a Z80, you’re also going to get CP/M support, but the real story here is Lisp, in your pocket.

VCF West: Homebrew Lisp Machines And Injection Molded PDPs

Someone walks into the Vintage Computer Festival and asks, ‘what’s new?’. It’s a hilarious joke, but there is some truth to it. At this year’s Vintage Computer Festival West, the exhibit hall wasn’t just filled to the brim with ancient computers from the Before Time. There was new hardware. There was hardware that would give your Apple IIgs even more memory. There was new hardware that perfectly emulated 40-year-old functionality. There’s always something new at the Vintage Computer Festival.

Some of the more interesting projects are just coming off the assembly line. If you want a modern-day Lisp machine, that one won’t be assembled until next week, although there was a working prototype at VCF. If you want the greatest recreation of the most beautiful hardware, VCF has your back. Check out these amazing builds below.

Continue reading “VCF West: Homebrew Lisp Machines And Injection Molded PDPs”

Lisp In 200 Lines

Contrary to popular belief, LISP does not stand for “lots of irritating spurious parenthesis.” However, it is true that people tend to love or hate this venerable programming language. Whichever side of the fence you’re on, many of the ideas it launched decades ago have become staples of other newer languages. How much C code do you think it takes to make a functional LISP system? If you guessed more than 200, you’ll want to go look at this GitHub repository.

Actually, the code isn’t as good as the (sort of) literate programming white paper on the program, but it gives a good overview of how 200 lines of C code can produce a working LISP-like language good enough to create its own eval loop. It does lack memory handling and error detection, so if you really wanted to use it, you’d probably need to spruce it up a bit.

Continue reading “Lisp In 200 Lines”