Paolo Amoroso's Journal

Tech projects, hobby programming, and geeky thoughts of Paolo Amoroso

The Z80-MBC2 board, a Z80 homebrew computer I ordered, finally arrived and I connected it via serial USB to my i7 ASUS Chromebox 3, hoping to control the board from a terminal emulator.

I got a professionally assembled and tested Z80-MBC2 unit and the developer confirmed I hooked it up correctly, so I'm confident the hardware is working. All the right leds are on, as shows this photo of the board connected to the Chromebox at right (the “Z80 inside” logo alone is worth the board).

Z80-MBC2 Z80 computer board connected to an ASUS Chromebox 3.

However, the Chromebox doesn't recognize the board neither under Crostini, nor Android, nor chromeOS.

In Crostini, the output of lsusb doesn't list the board:

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

The output of usb-devices doesn't list it either:

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 8
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev=05.10
S:  Manufacturer=Linux 5.10.110-15808-ge5740beba59b xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=0000:00:0c.0
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#=0x0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=5000 MxCh= 8
D:  Ver= 3.00 Cls=09(hub  ) Sub=00 Prot=03 MxPS= 9 #Cfgs=  1
P:  Vendor=1d6b ProdID=0003 Rev=05.10
S:  Manufacturer=Linux 5.10.110-15808-ge5740beba59b xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=0000:00:0c.0
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#=0x0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

There's no entry related to the Z80-MBC2 in the output of ls -l /dev:

total 0
drwxr-xr-x 3 root   root          60 Jun 16 12:30 bus
crw--w---- 1 root   tty     136,   0 Jun 16 12:30 console
lrwxrwxrwx 1 root   root          11 Jun 16 12:30 core -> /proc/kcore
drwxr-xr-x 2 root   root          80 Jun 16 12:30 dri
lrwxrwxrwx 1 root   root          13 Jun 16 12:30 fd -> /proc/self/fd
crw-rw-rw- 1 nobody nogroup   1,   7 Jun 16 12:30 full
crw-rw-rw- 1 root   root     10, 229 Jun 16 12:30 fuse
lrwxrwxrwx 1 root   root          12 Jun 16 12:30 initctl -> /run/initctl
crw-rw---- 1 root   kvm      10, 232 Jun 16 12:30 kvm
lrwxrwxrwx 1 root   root          28 Jun 16 12:30 log -> /run/systemd/journal/dev-log
drwxr-xr-x 2 nobody nogroup       60 Jun 16 12:30 lxd
drwxrwxrwt 2 nobody nogroup       40 Jun 16 12:30 mqueue
drwxr-xr-x 2 root   root          60 Jun 16 12:30 net
crw-rw-rw- 1 nobody nogroup   1,   3 Jun 16 12:30 null
crw-rw-rw- 1 root   root      5,   2 Jun 16 12:43 ptmx
drwxr-xr-x 2 root   root           0 Jun 16 12:30 pts
crw-rw-rw- 1 nobody nogroup   1,   8 Jun 16 12:30 random
drwxrwxrwt 2 root   root          40 Jun 16 12:30 shm
drwxr-xr-x 2 root   root         140 Jun 16 12:30 snd
lrwxrwxrwx 1 root   root          15 Jun 16 12:30 stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root   root          15 Jun 16 12:30 stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root   root          15 Jun 16 12:30 stdout -> /proc/self/fd/1
crw-rw-rw- 1 nobody nogroup   5,   0 Jun 16 12:30 tty
crw-rw-rw- 1 nobody nogroup   1,   9 Jun 16 12:30 urandom
crw-rw-rw- 1 root   root    245,   0 Jun 16 12:30 wl0
crw-rw-rw- 1 nobody nogroup   1,   5 Jun 16 12:30 zero

In the Android contanier I use the Serial USB Terminal terminal emulator app, but the Z80-MBC2 doesn't show up in its list of USB devices.

Finally, on chromeOS I use a few terminal emulator web apps based on the USB Web Serial API, such as this one. Again, there's no Z80-MBC2 entry in the app's list of USB devices.

I connected the Z80 board also to my Lenovo Yoga N26 Chromebook. Same result under chromeOS and Android, i.e. the device isn't detected. I don't use Crostini on the Chromebook.

I have a couple more things to try, but I suspect chromeOS doesn't support the board's serial adapter.

I knew USB is chromeOS' Achille's heel. But, although I expected USB issues with Crostini because of its heavily sandboxed environment, what suprised me is the Z80-MBC2 is not detected by chromeOS or the Android container, which may have fewer USB restrictions and wider support.

#z80mbc2 #sbc #CPM

Discuss... Email | Reply @amoroso@fosstodon.org

Simon Wilson celebrated 20 years of blogging by featuring his most influential posts, describing his publishing platforms and tools, and discussing the evolution of his blog's design. Simon's software development career is equally impressive as he was a co-creator of the Django Python web framework.

#blogging

Discuss... Email | Reply @amoroso@fosstodon.org

I'm about to resume working on my Suite8080 project after putting it aside for a few months. And I bought a Z80 homebrew computer.

To refresh my 8080 Assembly to work on the Suite8080 code, and my Z80 to play with the new computer, I'm rereading the book Z-80 and 8080 Assembly Language Programming by Kathe Spracklen (Hayden Books, 1979).

It's a short, clear resource that includes several worked out exercises. It presents and compares the code samples and concepts in both instruction sets. The book also covers how to implement basic data structures in Assembly, which makes it stand out.

#Assembly #intel8080 #z80 #books

Discuss... Email | Reply @amoroso@fosstodon.org

While I decide what to do with my old blog, I turned off commenting. I have always moderated comments and never let any junk show up, but these days the volume of comment spam is annoying enough to no longer justify the effort. Besides, socials killed blog commenting anyway and I haven't been getting any legitimate ones for years.

#blogging

Discuss... Email | Reply @amoroso@fosstodon.org

8bitnews is a newsletter curating and handpicking retrocomputing content. I read it cover to cover and don't miss an issue.

The newsletter covers retrocomputing news and projects with quality curation, a wide variety of resources, and a distinctive upbeat voice. I particularly like 8bitnews for its wide scope. While many retrocomputing blogs and publications focus on gaming, 8bitnews shares also content about vintage-related technologies, devices, software, and programming.

#retrocomputing #newsletters

Discuss... Email | Reply @amoroso@fosstodon.org

The historical novel The Physicists’ Daughter by Mary Anna Evans has just been published.

As a beta reader I had the opportunity of contributing feedback on the manuscript. I loved the story, the protagonist, and the setting. I nodded at all the geeky references to physics and the history of 20th century science, which is not suprising given the author's professional background in physics and engineering. However, the novel is for everyone and hooks you from the start.

A couple of decades ago I helped Evans brainstorm an astronomy related plot element of her novel Artifacts, and I have been enjoying her books since then.

#books

Discuss... Email | Reply @amoroso@fosstodon.org

Since getting a Xiaomi Redmi Watch 2 Lite smartwatch I've been monitoring the battery usage of the Mi Fitness (Xiaomi Wear) companion app for Android. On my Pixel 4 XL phone, with the watch turned off battery usage was at 10%, then dropped to an acceptable 4% a couple of days later.

I'll wear the watch mostly when on the go, so I want to control the resources the app consumes when the device is not in use.

#Android #smartwatch

Discuss... Email | Reply @amoroso@fosstodon.org

Thanks tmo for the shout-out to my journal in his blogroll. Check it out, there are good blogs I didn't know about.

When I blog, I post mostly for publishing a record of my notes and projects I can reference later. Although I do every effort for creating interesting or helpful content, I write with not much expectation of being read, as I'm used to the typical platform algorithms burying me and not bringing many readers.

So it's really rewarding when an actual person reads my blog and finds it interesting enough to recommend it. This is why I appreciate tmo's mention so much.

#blogging

Discuss... Email | Reply @amoroso@fosstodon.org

I bought a Xiaomi Redmi Watch 2 Lite smartwatch for use with my Pixel 4 XL Android phone. Here's the product packaging.

Xiaomi Redmi Watch 2 Lite product packaging

I wasn't familiar with Xiaomi's line-up of smartwatches but an Android Police article drew my attention to the Watch 2 Lite. I realized it's what I was looking for as it has the features and price point I want in a smartwatch.

Why did I get the product? Is it any good?

Motivation

I loved the glanceability and essentiality of the early Android Wear. Then came apps and Android Wear — later Wear OS — smartwatches became expensive, bloated, dog slow, and clumsy smartphone replicas.

All I want in a smartwatch is a cheap device that mirrors my phone's notifications, with vibration for incoming calls as a plus. Exactly what the Android Police article advocates for, highlighting the Watch 2 Lite as an example.

Although I don't care about fitness tracking, the Xiaomi Mi Band seemed perfect. I tried a Xiaomi Mi Band 4 but returned the product, as the screen was too small and notifications were barely legible with my prescription glasses.

The 1.55” display of the Watch 2 Lite seemed large enough. At a price not much higher than the Mi Band's, I decided to give it a shot.

Hardware

I've been using the Watch 2 Lite for over a day and text is comfortably legible with my glasses, particularly the text of notifications. Withouth glasses I can even read most large text. For example, the options of the system settings menu look like this.

System settings menu options on the display of a Xiaomi Redmi Watch 2 Lite smartwatch

The device is light and feels comfortable on the wrist. I don't care much for the design, which is good enough for me.

Touch sensitivity seems uneven. At times I have to tap icons or perform gestures more than once to make the actions go through.

The reviews of the Watch 2 Lite warn about the one-second delay between activating the display and it turning on, so it's something I expected. But the delay may be less of an issue than anticipated because, by the time I raise the wrist close to the eyes to view the screen after pressing a button to activate it, the display has already turned on.

It's still early to evaluate battery life. I turned off the fitness tracking features and functionality I don't need, so I expect it to be higher than average. Something to watch for is the battery usage of the Mi Fitness (Xiaomi Wear) companion app for Android, which is constantly at 10% on my Pixel 4 XL even with the smartwatch turned off.

Software

It didn't take much to familiarize with the few features of the smartwatch. The notifications shade is just a swipe-down gesture away from the home screen.

The companion app Mi Fitness (Xiaomi Wear) is a bit confusing though, especially when signing up for a new account. But, again, exploring the app clarifies how it works.

#Android #smartwatch

Discuss... Email | Reply @amoroso@fosstodon.org

I ordered a Z80-MBC2 Limited Edition Tin, an awesome homebrew Z80 single-board computer. It's available as a kit but I picked an assembled unit as I'm not familiar with hardware and soldering.

It was part planned and part impulse buy.

My Suite8080 project, a suite of Intel 8080 Aseembly cross-development tools I'm writing in Python, is making me rediscover the 8080 and Z80 CPUs, CP/M, and retrocomputing.

I'm having a lot of fun writing 8080 Assembly programs and running them under CP/M emulators, but I'd like to test my code also on actual hardware. So a few months ago I ordered a Z80 Membership Card, a homebrew 4 MHz Z80 single-board computer that runs CP/M 2.2. It comes only as a kit, so I'm having a hardware-savvy friend assemble it.

Yesterday I was googling for more Z80 homebrew computers and run across the Z80-MBC2. I noticed its impressive features such as an 8 MHz Z80, support for running different operating systems, including CP/M 2.2 and 3, and more. The product soon ended up in my shopping cart.

There's another reason why I want a second Z80 computer: redundancy.

I'll access these computers by connecting them to my Chrome OS devices via serial USB and running a terminal emulator. However, Chrome OS may or may not support the serial USB adapters of those computers and the only way to know is to try them. A second unit improves the odds at least one of them works.

For maximum flexibility I'd like to access the computers from Crostini Linux, but its sandbox may limit USB access. There are other options, such as running a Web Serial terminal emulator app under Chrome OS, or a similar app in the Android container. As a last resort, it should be possible to hook up the computers to my Android devices via an OTG USB adapter.

The Z80-MBC2 is about to be shipped and I look forward to receiving it.

#z80mbc2 #sbc #retrocomputing #CPM

Discuss... Email | Reply @amoroso@fosstodon.org

Enter your email to subscribe to updates.