Hacker News new | past | comments | ask | show | jobs | submit login
Lisp Badge: A single-board computer that you can program in uLisp (ulisp.com)
162 points by lnyan 11 months ago | hide | past | favorite | 25 comments

2816 Lisp cells (11264 bytes). A bit on the small side, but you get 5ms garbage collections because the memory is so tiny.

We need more little systems that are somewhere between underpowered Arduinos and entire Linux systems.

If only Blackberry hadn't killed off open-source QNX. A board with a few megabytes of RAM and QNX in ROM would be a nice system for many embedded applications. You get processes, threads, message passing, and real-time scheduling. But disks, users accounts, networking, etc. are optional add-ons. Nice for embedded applications where you need to control hardware but have other things to do as well.

> 2816 Lisp cells (11264 bytes). A bit on the small side,

More than the memory you would have on a small PDP-6 LISP system! Enough to run PROLOG: :)


These days an ESP-8266 is scarcely more expensive than the ATmega128 and has a lot more memory, in fact the ESP32 is only a few cents/pennies/kroner more, even an ATmega328 would give twice as much memory.

I wonder if uLisp is portable to the ESP.

According to the uLisp site [0], there are actually already implementations for both the ESP32 and 8266 (linked to the 8266 page). It’s definitely awesome how cheap such powerful stuff is these days.

[0] http://www.ulisp.com/show?2CF9

Sure it fits perfectly: https://aaron-fischer.net/tdn (sorry, post is written in German)

It looks like this is using the ATmega 1284 which has 4 times the flash (128 kB vs 32 kB) and 8 times the RAM (16 kB vs 2 kB) as the 328.

Oops, sorry, missed the significance of the trailing 4.

I think ESP32 fits nicely that purpose.

They are surely more powerful that the Amstrad PC1512 that we used to play Defender of the Crown back in the high school computer club.

And MS-DOS had plenty of nice high level languages to choose from.

However even those 5ms might not be an issue, if the chip is doing single purpose tasks, like wake-up, do its thing, go to sleep, like opening a garage door, read a measurement and send it off, ...

> We need more little systems that are somewhere between underpowered Arduinos and entire Linux systems.

That's not a lot of gap; openwrt is tiny and "embedded" boards grow more powerful every year. Every time I see a new board, one of my first questions is, "does it have enough RAM+flash for Linux?" and we're getting close - if the teensy 4.1 had a touch more ram it'd work (well, uclinux, but still).

It's not the hardware, it's the headaches. A Linux system needs a lot of stuff, which offers a big attack surface. Real-time OSs have less excess baggage.

Okay, so use micropython or such; we're closing the gap from all sides.

I recently built three of these. There's no kit, so to build one you have acquire all the parts and learn TQFP soldering. The result is a really neat little computer. I did a write-up on my blog:


Can anyone provide ideas of what this can be used for?

(Just to clarify: I am not trying to dismiss this as "useless". I am genuinely interested about knowing about use cases: in part because embedded systems or low resource self-contained systems are not my area of expertise).

This is a genuine question but in the following sense.

I see it asked today more like "What of the programs that we've already think of by today can we run on this? With an implicit answer that it seems so underpowered for anything non trivial and we already have more powerful systems so why bother with its limitations?"

When I was starting to learn about computers everything about them was cool and awesome (later but soon enough I've learned later that they do games as well). But if I would have been asked by my father what good were they then I would have not have an answer that would be acceptable in the 'business' sense. Computers were cool in themselves. The process of hacking them was its own reward but my father would see me typing or playing games. The most important realization for me was that I could make them do "anything" that I could think of. The realization that I was not limited in the space of programming was empowering.

So yes. Running most of today's programs doesn't make sense on it. But if you can see it as a playing (safe exploration) ground then the question is irrelevant. The most important issue is that playing may be the only thing that would allow you to imagine applications that you would not be able to imagine otherwise.

I have no expertise in this area, but I've been fascinated by the uLisp project and hope to get into it as a hobby.

Its use cases are probably similar to Arduino and other single-board computers, to interface with many kinds of hardware I/O, sensors and signals. I imagine the Lisp Badge has unique advantages and constraints, due to its choice of components and form factor.

Since it has a display and keyboard, an idea that comes to mind is: programmable calculator for education.

And maybe for professional niches - that require, I don't know, certain kinds of common calculations, formulae, graphs, to be done "on-site" (somewhere awkward for carrying laptops, but a smart calculator in a pocket would be handy).

From its size, cost, and simplicity of hardware/software design, perhaps it's suitable for computer/engineering education - including for beginners, children, or in developing countries.

The article contains some applications!

I'd like to build out something similar with a mechanical keyboard, where I could write/program on the go, then connect up to a full size computer and upload my work over usb, bluetooth or ps2. You could manage keyboard layout/chording along with password key management, and rudimentary calculations. I imagine an esp32 would be more in line once wifi/bluetooth were required. Esp-lisp already has a rudimentary Emacs...so perhaps most of the heavy lifting has already been done.

Couldn’t find BOM but processor is Atmega1284p, so between Arduino Uno and Mega. 1284p is also used in some low-end 3D printers.

Is it hard to do a touch keyboard on devices like this? Full tactile switch arrays adds so many solder points and I feel it drives up costs somewhat.

Is it hard to do a touch keyboard on devices like this?

At this size, yeah. It's tough to make touch keys large enough that you don't tap multiple buttons at once.

It also takes a lot of processor IO, and generally a dedicated cap sense peripheral as well. Plus, many of those peripherals have a scan interval that's laggy when you get to large IO counts.

I find the BOM with a link which is shown just before the Specification section.

Check this link http://www.technoblogy.com/show?2AEE

and the "Parts list" is shown in the Construction section

Very cool. You can also flash Arduino with the uLisp firmware and program it in uLisp over serial.

You can but I found my available memory afterwards was very small, when running on an Arduino Uno. I think I had ~14kb available afterwards?

Does this come assembled or is it a DIY? I did not find details on the order page other than “2 Layers PCB 61 x 106.7 mm FR-4, 1.6 mm, 1, HASL with lead, Black Solder Mask, White silkscreen”

It's a DIY

Here are the details about how to build one: http://www.technoblogy.com/show?2AEE

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact