A Collection of Raspberry Pi Projects: Volume 3: PiCore

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am finishing off the year with another entry into my Raspberry Pi operating system collection. Let’s get started!

I have a number of Pi projects going around now, and not enough Pi’s equipment for everything. My Pi 4 is mainly serving as the family’s entertainment system (I happened to find a Steam Controller driver for it), and my Pi 400 –which I originally intended for that job– is running my Raspian reverse Wi-Fi router card because it’s not supported yet by LibreELEC outside beta releases. I’m tossing these microSD cards around like playthings, and my family has expressed mild concern.

But today, I am taking notes as I build a side project to help with my Photo Trunk project. I have no idea if it’s going to work well, but I’m hoping! Worst case is I learn a few things and move to something more appropriate.

PiCore Installation

I’ve covered Tiny/Micro Core Linux before. I know it’s very much a build-your-own experience type of distro without being totally unapproachable for beginners intent on learning. I am installing it using BlinkiePie (Pi 3B+) with the intention of moving it to a Pi 4 unit later.

The two documents on the download page, IMPORTANT and README, explain how to install the operating system to an SD card and expand the second partition. I followed along more or less blindly.

At one point, fdisk is opened, and I was instructed to “write down the starting and ending sectors of the second partition.” [source] When I listed them, fdisk reported StartCHS, EndCHS, StartLBA, and EndLBA. I looked, but I wasn’t able to find any other examples of fdisk reporting in this way. I only learned about “Cylinder Head Sector” and “Logical Block Addressing” by separating the acronyms. I proceeded to make a new partition, and fdisk was nice enough to mention the largest size I could go.

Construction Pains

I was expecting to start with something resembling the larger “Tiny” Core variant with a desktop environment, but PiCore only has a “Micro” Core image available. GIMP is very much a textbook GUI program, but the tce package manager was more than happy to install it and I estimate fifty dependencies.

I browsed over to the TinyCore forums, and was actually able to activate my account. The connection still isn’t secure, so don’t go using any personal standardized passwords. 50-99 alphanumeric characters with symbols say that’s not an attack vector against me though.

As I was getting ready to look for help in the dedicated Raspberry Pi section, I noticed a thread here where someone was looking to install a desktop. I went ahead and installed xorg, a name I know has something to do with Linux GUI’s, but like the original poster in the thread, I found myself unable to do anything after booting to a simple black screen.

Further experimentation discovered that by holding CTRL+C during startup, I could interrupt xorg from trapping me away from the command line. The results were a bit unpredictable, though. The first time, I somehow ended up as root. Other times, I found myself as tc, the default username, and other times, no login transpired.

I installed the remaining recommended packages, but neglected the window manager. Results were interesting. There was a dock at the bottom of the screen I could interact with, but no visible pointer. I toyed with the setup before rebooting again. GIMP was no trouble to get running with a window manager on board.

Takeaway

In many ways, MicroCore feels like it’s a model operating system. All the parts are exposed but there aren’t so many the mind can’t grasp the overall system. Additional work will need to be done if I want things like automatic connection to GoldenOakLibry or even Wi-Fi for that matter. I still have much to learn.

Final Question

I don’t like the window manager I found. Which one might you recommend?

Raspberry Pi 400: Another Chance

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am re-evaluating my Raspberry Pi 400 unit I covered last week. Let’s get started!

The Story So Far…

Raspberry Pi 400, is the Pi 4 rearranged and built into a Raspberry Pi keyboard unit, available with multiple standard keyboard units from around the world… but not quite. I already knew about some changes they made to the CPU, but in theory, that shouldn’t have affected the 400’s wireless abilities like I was observing on my 64 bit installations: LibreELEC and ManjaroARM.

But a sample size of 3 (32 bit Raspian images work properly) is too small to claim manufacturer defect. If I was going to pay for warranty shipping, I wanted to see the failure on their own software. That is why I went looking for the elusive Raspberry OS 64 bit. I kept finding the 32 bit version, and had to call it quits last week.

Installation and Testing

But this week, I tried an official card imager with a list of 1st and 3rd party images to install; none were 64 bit Raspberry OS. There’s plenty of stuff out there about Raspberry OS 64, but the download link is well hidden from people who won’t understand what beta software is all about. In the end, I located the correct image, and between downloading, flashing, and testing, it took half an hour of low engagement.

Finally, I booted the Pi 400 using that chip, and it worked unexpectedly. I went ahead with the setup ritual — telling it the country, time zone, passwords, and the like. Options for making Wi-Fi connections came up before I even got around to asking it how many bits it was running on (see last week’s post): 64.

Further Testing

I honestly was expecting to cover the Pi 400’s exchange before this point. I just so happened to have updated my Manjaro card in an attempt to fix a problem keeping us from streaming my church’s Christmas program on Sabbath (turns out https was complaining about system time being set manually, and a couple months behind at that). The freshly updated card worked as well.

At this point, I was convinced it was just a matter of software. I booted into LibreELEC, which amusingly requires inserting the card part way through booting, and ran into the same problem as before. I even tried with an Ethernet cord we used to download the service, and saw no evidence of the clock updating.

Conclusion

The Raspberry Pi 400 is a relatively new product. With a better idea on where to look, I landed on this LibreELEC forum post. It states that the Pi 400 has a “somewhat different [Wi-Fi/Bluetooth] chip,” but by manually updating the kernal somehow, it is possible to hack something together. Honestly, I have other projects I’d rather do, and according to the same post, they’re already planning on supporting the Pi 400 in the next major release. I can wait.

Final Question

Have you ever looked at something as you were about to replace it just to poke at it a bit, only to find there was nothing wrong with it in the first place?

Raspberry Pi 400: First Impressions

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am covering the new Raspberry Pi 400 I have. Let’s get started!

The Raspberry Pi 400 is the latest in the Raspberry Pi lineup. Contrary to all its brethren, there will be no aftermarket case for this small computer: the PCB (Printed Circuit Board) has been redesigned to fit inside an official Raspberry Pi keyboard. The specs are comparable to the Pi 4 model B, but with a heat sink built in under the keyboard and a newer CPU with hardware bugfixes, the Pi 400 comes already running a little faster than its Pi 4 siblings.

Unboxing

I made my own Pi 400 kit because I needed some extra peripherals for my other Pi’s, like an extra, longer HDMI to mini HDMI, and a USB C type power switch. I already have a number of SD cards running around, so I don’t need one included.

As I opened the box, I noticed only three USB ports, two blue and one black. I was otherwise using it for a keyboard, so it works out. Still, universal recievers are a thing, and in such a case, a user would be down a port relative to normal operation. Everything else from the sides appears to now be on the back. Note, I am not intimately familiar with the GIPO pins, but there is a bank of them present.

I am, however, familiar with the camera port normally found in the middle of the board, and no such port is apparent anywhere on the case. This is most likely because it’s being marketed more as a desktop on the go, though the educational/experimental reasons for owning one are still present.

LibreELEC

One of the immediate reasons we got the Pi 400 was so we could have our entertainment system with a keyboard. (For those keeping record, the HDMI by the USB C power port is the HDMI LibreELEC wants.) Eventually, I want to rig an IR sensor to respond to a TV remote and I can pull the Pi 400 in favor of a regular Pi 4.

But the problems start here. It’s a small complaint, but the time isn’t quite right. No matter where I look, there’s no place to set the time manually. It wants an Internet connection, and when I looked into it, it was if the operating system –which was fine on a regular Pi 4– didn’t see the Wi-Fi circuitry.

Debugging

I’m disappointed I have to write this section, but I put my Manjaro card in for easier terminal access, and it doesn’t show up no matter how many commands I try under advisement. With such a new computer on the market, the first help forum topics are still being written.

What is still beyond me is that when I put my Raspian SD in, the thing worked normally. I was able to go online and perform a search. I even pulled up content from SpaceX’s latest fireball, SN 8, fresh that day. The circuitry works, but 2/3 cards say it’s not there.

I’m afraid I was unable to carry on diagnostics past this point. The two cards that didn’t see the wireless were 64 bit, and my Raspian card is 32. I had an image of the lost card (supposedly 64 bit Raspberry OS), so I tried burning it to my last clean micro SD. It took a while to flash, but the Internet worked. getconf LONG_BIT said it was 32 bit though. Same story when I tried downloading a fresh copy of Raspberry OS.

I don’t know if I have a defective unit. What I do know is that any warranty I have is ticking. I’d rather not ship off for a replacement until I’m sure of what’s going on. The closest I saw to these symptoms was maybe something on the Pi 4 jamming its own Wi-Fi somehow. I know I’ve been focusing on 64 vs 32 bit, but my tests could just as easily be official vs 3rd party. My next test should probably be to find a 32 bit 3rd party OS to test. If it doesn’t work, maybe some drivers just need tweaking.

Final Question

I’ll make it simple this time: Where is an official 64 bit OS for the Pi? I believe it exists, but the site led me to believe I was downloading it and not something 32 bit.

Family Photo Chest Part 11: Workflow

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am conceptualizing a workflow for scanning the family photo trunk. Let’s get started!

I don’t have any hard figures, but I’m fairly sure that half the project is getting to the first definitive scan. It’s been a year now, and I have yet to save a single photo to disk, but at least I have answered most of the questions that need asking and have an idea for the remaining questions I still need to look up.

Dots Per Inch

Probably the single biggest unanswered question is what dpi to scan at. Everyone has a variation on the same answer: it depends. Zoom in close enough to any picture, and you run into the individual grains making up the image. Pictures with a slight blur have a more than fair share of redundant data here, so it’s okay to ease off on the disk space they’ll forever occupy. On the other extreme, it may be preferable to scan negatives near the grain threshold to mine out as much of the original content as possible.

The process of printing can only ever lose detail. The same goes for digital image manipulation. There is research into AI’s that can believably upscale an image, but once original detail is lost, it’s gone, and you’re left with purely guesswork. The worst case scenario is to find that all scans to date are low quality, and work on the payload needs to start over.

I hear good things about 600 dpi for general use. I’ll need to experiment for myself though, but I’ve come to think about it from both ends toward the middle. Start with how much detail you need to end up with and adjust for how big of an item you are scanning. You’ll can calculate the appropriate resolution to scan at from there, barring any of the above limitations cited in the above paragraphs.

File Format

My initial impulse was to go with PNG. It’s familiar, it’s lossless, but apparently it doesn’t come enabled by default. It’s grayed out it Image Scan! for Linux, but most software doesn’t even list it. If I want to continue down that path, I’ll need to either brute force a utility to scan it directly, or I will need a converter.

But PNG may not be the proper tool for the job. Digital archivists have been using the TIFF (interchangeably TIF) standard for longer: almost three and a half decades. Still, PNG has its merits. I do intend to put the archive online. TIFF apparently handles metadata more safely and more uniformly though, and metadata is something I intend to research further and learn to manipulate.

Workstation

Next, I’ll need to ask myself exactly what hardware/software I’ll be using. At present, I am most seriously considering scanning directly into GIMP and using a plugin or script to crop multiple pictures on a page at a time. Lightweight repairs should be possible on the spot, then the extracted photos can be saved to network storage.

I have two scanners at my disposal, I’m planning on driving one with my laptop. For the other, I’m considering experimenting with a Pi 4, though if that’s not powerful enough, I can always move a tower like Button Mash, my home Minecraft server, over to the project workspace to drive the second scanner.

My dream setup is to have one workstation controlling all the scanners using some kind of remote login software (to be researched). All parts should be in the same general area and be connected by hard wires and a switch, since I have the equipment.

Workflow

I’m including this section since it is important, but it’s also something that will get refined even after I start the scanning proper. Using two or more scanners, I can keep one or two people busy, even if the computers being used are a tad on the slow side. An organized directory acknowledging preexisting relationship of similar photos, such as an album or original sleeve, can address any automatic numbering schemes.

Pacing is another element here. Had I dedicated this entire blog to this project until I was done, I would have lost interest long ago. I don’t want to be scanning all alone, so I’ll need to coordinate schedules.

Digital repair is a fact of life in such projects because a microfiber cloth can only remove so much dust. Damaged photos that require special attention will need a way to be flagged or edited on the spot. On the whole, I believe the pictures have been well preserved, though we did find one torn photo to practice on.

Takeaway

I won’t pretend to be the definitive guide for digitizing your photo archive. To do the job properly, you may need to spend on reading materials or membership in a community like Scan Your Entire Life. A lot of my research this week came from what is freely accessible from his site, but key details are behind a pay wall. However: a prominent –but unofficial– theme of this blog is using the open-source model whenever possible, and as good as his stuff looks, I don’t have the funds to invest in a paid community.

Final Question

How long have you put off scanning your old family photos?