I ran Photoshop on a £0.60 computer chip

145 points by colinprince a day ago on hackernews | 44 comments

a1o | a day ago

For a more capable but still underpowered computer, I found Antix can run well in almost 20year old hardware - I use it in an EEEPC 4G Surf, but I modded it to have more storage recently.

hyperhello | a day ago

Black and white photoshop, yes.

retrac | a day ago

I'm reminded that chips like the Intel 8080 and Motorola 6800 were not intended to be general-purpose computers, and were originally designed mostly to be embedded controllers and as building blocks for "real" computers like terminal and disk controllers.

I suppose in principle the RPi Pico could self-host its own OS and devel environment. 520 KB of RAM in the old days was plenty to fit an OS and compiler. No MMU so no paging though.

ant6n | a day ago

Which “old days” would those be. Sounds like it would be 50 years ago

benj111 | a day ago

64k was acceptable 40 years ago.

duskwuff | a day ago

> I suppose in principle the RPi Pico could self-host its own OS and devel environment. 520 KB of RAM in the old days was plenty to fit an OS and compiler.

With two cheap PSRAM chips and a bit of trickery, you can upgrade that to 32(.5) MB, which is certainly enough to run a small OS.

In principle you can add even more memory with bank switching, but 32 MB is the limit for a flat address space.

benj111 | a day ago

Window 95 ran on 8mb of ram.

The first Amigas had 512k of ram. Both had much less processing power.

With 32mb you could probably run some kind of Linux.

abanana | a day ago

Well, the first Amigas had only 256KB of RAM. Doubling that to 512KB (via a memory expansion card) was a luxury!

kstrauser | 18 hours ago

Correct. My dad was unamused when he bought me an Amiga, and it didn’t have enough RAM to load the advertised features of AmigaBASIC and the speech synthesizer at the same time.

Clamchop | a day ago

Even better, 8MiB was recommended for Windows 95 but it minimally required just 4.

skipkey | a day ago

When I first ran linux you could boot it off of a 1.2mb floppy. The 486 I ran it on had 4mb of ram at the time, later upgraded to 16mb.

mayli | a day ago

mikepurvis | a day ago

uCLinux was a real thing for a good long while, though I think at this point real microprocessors are cheap, simple, and widely available enough that there hasn't been much need.

ChickeNES | a day ago

> I'm reminded that chips like the Intel 8080 and Motorola 6800 were not intended to be general-purpose computers, and were originally designed mostly to be embedded controllers and as building blocks for "real" computers like terminal and disk controllers.

While the proposed use cases were things like that, I'd push back on saying that they weren't "intended to be general-purpose computers". I have the original 8080 manual in front of me, and it's very clear they considered them computers to be applied to problems (the first chapter is literally "The Functions of a Computer"). Oh, and the 8080 manual clearly identifies it as the "Intel 8080 Microcomputer Systems" and the 6800 calls it the "Benchmark Family for Microcomputer Systems"

tomcam | 22 hours ago

> I have the original 8080 manual in front of me

In case anyone's wondering what makes HN so damn great

I've still got my well-thumbed https://archive.org/details/c64-programmer-ref

I spent pretty much all of the 1988-9 school year (I was 10) inhaling it.

kstrauser | 18 hours ago

That’s the greatest manual I’ve ever touched. It taught me a huge chunk of what I know about hardware, from bitmap graphics to assembler and addressing modes, to IO. I knew that if you wanted to make your BASIC programs go faster, you wrote parts of them in assembly. Fortunately no one bothered to tell me that this was supposed to be harder so I charged ahead, soaking it up like a sponge.

Seriously, it was fantastic.

brcmthrowaway | 17 hours ago

Could you have a SoftMMU based on a microkernel?

joshuaissac | a day ago

Caveat: 60p RP2350 microcontroller on a board that sells for $40 and has 8MB of RAM (as opposed to the 520K that the RP2350 comes with). But that is only needed for Photoshop. The 520K is more than enough to emulate the Mac 128K.

utopcell | a day ago

How much does the monitor cost?

prmoustache | 6 hours ago

You can get a used 15" or 17" monitor for free or next to nothing.

Lerc | a day ago

These are only $10 and you get a screen https://www.waveshare.com/rp2350-lcd-1.47-a.htm?sku=30557

You can use XIP to run code from Flash, so you can be get away with that in lieu of a decent amount of RAM.

The screens are really fragile, I've stuck my fingernail through three and broke one with an inadvertent tap from a screwdriver.

But they're only $10 and still work as a microcontroller.

yellers | 20 hours ago

I thought the same when I read "This was done (...) on a Raspberry Pi RP2350 chip, (...) for around 60p. Add the various extra parts (...) built today for a few pounds in one-off quantities. Call it the price of coffee and a cake in a European café today." "I opted for the Adafruit Fruit Jam (...)" ($39.95)

Unless you're paying $40 for coffee and cake I'll call bullshit.

kotaKat | 12 hours ago

The Adafruit tax strikes again!

sieve | a day ago

I am using the Xteink X4 as my primary e-reader now-a-days. Simple ESP32 microcontroller. Plastic+glass shell with an e-ink screen. MicroSD card works like a cache. Battery lasts for weeks. Works great.

Don't get me wrong. I like modern CPUs with huge caches and incredible power, but you do not need this for most devices. Also leads to lazy programming practices and calculators consuming hundreds of megabytes of RAM.

andai | 19 hours ago

It's a bit smaller than a phone screen? Seems a bit tight, but I suppose I have read entire books on my phone!

sieve | 14 hours ago

Size is pretty similar to the original iPhone. The actual screen is the size of a credit card. You do not really notice the size once you get reading. It is light enough to be carried anywhere.

But you need a strategy to protect the screen which is the most delicate part of the entire assembly. They do sell screen protectors of various kinds and even supply one in the original box. I bought their magnetic case which works for my use case (I do not store it in a pocket with keys and other objects that might damage the screen).

DuncanCoffee | 12 minutes ago

One of the main idea is sticking it on the back of the phone so it must be smaller

vardump | a day ago

"easily adds 4Mb RAM". A bit misleading way to say 512 kB RAM.

boznz | a day ago

I'm currently building a RP2350 board with the HDMI/USB and I2S Audio I have also added the 16MB SRAM and higher vCore for overclocking which the RP2350 supports for a similar personal project to this. My first PCB had a few newbie mistakes which due to my lousy hand/eye coordination I wasnt able to fix so I am spinning up a V2 to go to JLPCB in the next week or two (https://rodyne.com/?p=3999). Your post resonated with a lot of why I am doing it so keep up the good work.

tomcam | a day ago

I am thrilled by this. While the world is understandably complaining about the price of RAM and CPU I keep thinking about the demo scene or people like this. In the worst case scenario, we could retool our lives to some extent using optimized version of older tech.

kbrannigan | a day ago

This is wonderful and amazing. Computing can be very simple. I think constraints and hardware restrictions can unlock creativity.

Imagine running an GPT-3 Generation model on a raspberry pi . This would be great

Markstar | a day ago

I wish I had time to fiddle with stuff like this. sigh

yeahnigga | a day ago

How long did Filter Gallery > Cutout with max levels and complexity take?

Because this is how I fake vectorized images in 2005 and it took dayyyyys

Transformanshen | 23 hours ago

It's funny how we're all chasing power, and yet here's a 60-cent chip emulating a Mac that people actually got work done on. Not hating on modern devices, they're awesome and all. But it's still interesting.

Also, kinda want to order a RP2350 board now too, but I know I'll probably end up having zero time to do anything with it and it'll just sit in a drawer somewhere...

em3rgent0rdr | 17 hours ago

Hey, the RP2350 is a "modern device".

winrid | 23 hours ago

You can get an early gen i3 for a couple bucks and it will run modern PS, too.

jherskovic | 21 hours ago

On the other end of the spectrum, today I needed to build a complicated piece of software on x86-64 Linux and all I have handy are ARM Macs. One qemu later, I have an 8-core “PC” building merrily. It won’t win speed records, but it’s entirely usable.

nxobject | 20 hours ago

I know your needs were already met, but would a Docker image with a ready-to-go cross-compiler have done the job? (I've run into this task before.)

raphlinus | 21 hours ago

I have a Fruit Jam and several other board (including the Olimex). It's great fun and I'm enjoying programming it. The biggest delight is that it's actually possible to reason about performance, extremely difficult on larger computers because of all the complexity.

That said, Photoshop doesn't feel like the sweet spot of what to run on this hardware. There's only 520kB of fast static RAM, and that's not enough to run a framebuffer with enough bit depth to hold a photo reasonably. I have invented a 4bpp compression scheme which opens up possibilities, but it's asymmetrical and in its current form compression is very slow, so it wouldn't be suitable for interactive work.

As a general matter, emulation makes a ton of sense. You can emulate all kinds of computers up to the late 80s, including video subsystems. Of course Mac and PC don't really do anything interesting like tiles and sprites, they're pretty much just dumb framebuffers.

justinator | 20 hours ago

Sir, we standardized on DOOM.

nxobject | 20 hours ago

Well, la-dee-dah, look at this person with an input device. Back in my day we looked at Bad Apple while twiddling our hands and we loved it!

pikuseru | 12 hours ago

At last a post about computing that appeals to me. Low powered and energy efficient computing.

I’ve actually been wondering if it could be possible to design a small computer that powered off in between key presses (paired with an e-ink screen.) If the CPU state could be stored and reloaded in between key presses. I was mainly thinking about turn based games on an e-ink device, but I guess it could be suited to anything event driven that triggered the next set of CPU cycles to perform some work before a “sleep” instruction put the computer back into hibernation.

I did search online to see if anyone was thinking about something similar and there was a paper “Design of a nonvolatile-register-embedded RISC-V CPU with software-controlled data-retention and hardware-acceleration functions” which looked interesting.

https://www.sciencedirect.com/science/article/pii/S277306462...

bArray | 8 hours ago

For an OLED low-powered system, I use exactly this approach [1] [2]. The trick is to wake up, do some tasks, then go back to sleep until either a timeout or triggered by an event. The best approach so far has been the light sleep [3] which keeps some things up and running, but just sipping at the current.

I'm taking these learnings and applying them to an 5 inch e-ink device with an ESP32 to be a modern-ish PDA device.

[1] https://coffeespace.org.uk/projects/smart-watch-v1.html

[2] https://coffeespace.org.uk/projects/smart-watch-v2.html

[3] https://docs.espressif.com/projects/esp-idf/en/stable/esp32/...