John's Web Page

Using a Raspberry Pi as a Desktop Computer


Both my mac and my PC died within a week of each other. I was already planning on replacing the PC within the next month, but in the meantime, I broke out a Raspberry Pi and started using it as a desktop computer.

These are the things I either want to do (or have tried to do) with my Raspberry Pi, and the solutions I have figured out. My Pi is a Raspberry Pi 3 B+, stock, no overclocking. Sandisk Ultra 16gb SD card.

Basic office things

Libreoffice (in the desktop Raspbian install) seems to work fine. I haven't done anything extensive but I was able to type up a few things and print them.

Web browsing

Chromium (default install in Raspbian). Works well. For simple websites you can get up to 7-10 tabs before you start running out of memory, for complicated websites, maybe 4. Default Gmail takes a TON of resources. News sites are like, 10 percent chance the pi will lock up as the browser runs out of memory from all the ads and trackers and it starts swapping on the SD card.

If this happens, the fix is to Ctrl-Alt-F1, log in, killall -9 chromium-browser-v7, Ctrl-Alt-F7 to get back to the desktop, then close the (empty) Chromium window. This will take 5-10 minutes as it thrashes the SD card.

Flash games run, but *very* slowly

Youtube seems to work just fine.

Edit my website

I use emacs, with tramp to open my remote files locally. An SSH connection to the server helps to move files around and do any command line tasks.

Edit videos

Openshot is mostly usable, as long as your source video is shot in VGA resolution (640x480). Sometimes rather buggy, just randomly crashes sometimes. Some filters are fine in playback mode, some filters REALLY bog it down. You will have to experiment with encoder settings because some settings cause the cuts to happen in slightly the wrong spots in the output video (!?).

Honestly I am grateful any of this works.

Edit photos

I don't have a good solution for this. So far I have been just using imagemagick to resize photos. convert input.jpg -resize 30% output.jpg. I think I installed the gimp on a previous pi install but I have not really used it much.

Edit raw files

I'm scared to even attempt to google a solution for this.

Oh, alright, I googled and found a command line utility that does conversions. There are a zillion inscrutable options. I might just wait until I replace my PC so I can put Lightroom back on it.

Printing

CUPS. I found some guide to installing it, I installed it, it worked fine. I have an old HP printer, so I also installed hplip, an HP developed linux driver.

So I set up two printers. I have the LaserJet 2200. The first printer is using the default cups driver, set to normal print quality. This is quick to print, and it's pretty good for text. Image quality is poop though.

The second printer is using the HP Postscript driver, and it is DOG SLOW. It takes TWO MINUTES for the printer to start printing after sending a print job. This is a known issue, and as far as I can tell the best way to deal with it is to suck it up if you want 1200x1200 dpi resolution on your print jobs if you have a LaserJet 2200.

RSS Reader

Liferea. Takes a slightly annoying amount of memory to stay resident (when you close the window, it stays active in the taskbar).

Hardware Hacking

Arduino

There is an arduino IDE for ARM that works just fine for everything I have tried it on.

EiBotBoard

I have a project that uses this board, and I recently discovered its possible to control the EBB from the Raspberry Pi. Haven't tested it yet (mostly because I have to unearth the project from where I have stored it) but I am hopeful.

AVR chips

Mostly, I have some assembly language code for a few AVR chips, and I want to use the GCC-AVR toolchain to assemble my code, build a HEX file, and then use avrdude to upload the hex on the chip. In the past I used Atmel Studio to develop all of this, but hahahah Atmel Studio ain't running on the Pi.

I've gotten as far as installing the toolchain, and assembling a very simple example and building a hex file. My assembly code is on my computer (which does not boot) so that's a bit tricky. I think I have a copy on Dropbox, but anyway, that is the next step. Get my code, assemble it, make the hex, and upload it to the target chip.