Hey. Long time no post. How y'all doing? I'm still here. I've gotten a lot of small things done over the past half year, and a lot of things almost done as well... and some long-standing projects not done too. So, I've been almost productive... Anyway, I hope to try something different this month for the RetroChallenge RC2019-10... Let me explain...
The main projects I've been trying to work on recently are:
LL530 USB interface for Amiga serial keyboards and controllersI've been poking at it a little over time, and am really damn close to getting the proper firmware done for it, but I just haven't finished it. Which is stupid because I can actually sell these things once I'm ready! I have keyboard working for all but my A1000 keyboards, and I have joystick/mouse/paddle working... but not at the same time in a way that I'd be proud of. I also will eventually need to rev the board to fix three layout issues; a power/ground short, lack of ICSP programming header, and lack of pull-up resistor for VCS paddle sampling.
Llichen-80 Computer (LL80)Okay, so it's not really a whole other completely new computer... but it is a specific configuration of the RC2014 Z80 computer. It started out this year as a whole lot of customizations to standard (but old, obsoleted) RC2014 boards to add bank switching, using the 8 bit parallel IO board (the one with all the LEDs and switches!). Now, I reworked the idea so that I just use the standard "Switching ROM" board and the "64k RAM" board. That simplifies the design; making it easier to get to the LL80 spec, since just using those two cards replaces two RAM boards, one ROM board, and one IO board... plus no modifications to any of the boards are necessary.
The other part of the LL80 computer is the "LLSuper" board. This is an arduino-based supervisor of sorts that sits on the serial console port. It acts as your usb-serial interface for when you use a desktop computer as a console. This board used a CH376S USB Drive interface to access any flash drive as mass storage (it's a neat part.. like $2 for a board with a USB A port... it talks TTLRS232, SPI or parallel, and handles all of the disk switching, FAT filesystem etc. So there's very little overhead on a tiny ATmega micro. I also have an I2C based clock chip board for this. This sits between your console and the RC, and lets you have a kind of shell access to the disk from the console, as well as from the RC. The RC side of things also got direct access to virtual disk image files with a sector-based interface, as well as direct fileio...
The next steps would have been to write a CPM BIOS and make the thing boot into that.
But I've come to realize that even the LLSuper board is unnecessary. I can accomplish near-similar things using the standard "Pi Serial Console" board. If i use a RasPi Zero, and boot linux on it (or adapt the code in the PiGFX kernel, I can put in my serial-disk IO stuff, for cheaper, without needing to fab up my own board. I started to mess around with this using my new RC2014 Micro, a Pi Zero, and a slight hack to attach the reset line of the RC to a GPIO of the Pi, so i can now reset the RC from the Pi.
I do have the protocol all worked out for the serial interface using unused ANSI escape codes, which are made for custom purposes like this.
A102 - Portable Emulated Amiga in a Tandy 102 shellThis is one i've wanted to work on since last year. I was trying to get it done before Rochester MakerFaire last November, but burned out on it. It essentially is a project that joins together a bunch of parts... all of which I have:
- Raspberry Pi 3, with Amibian... booting right into an emulated Amiga environment
- Tandy 102 shell, rescued from some unrepairable 102's
- Tandy 102 keyboard, also rescued (keys bind as they're pressed though)
- Amiga 500 keyboard interface board, from a long-gone computer
- My LL530 USB serial keyboard interface board
- Amiga mouse
- 3.5" composite LCD panel (new, $10 online!)
- large Power Bank battery pack
This project entailed hacking the keyboard (removing the wiring/traces on the board) to convert the scan matrix to match an Amiga 500 keyboard. This gets connected to the LL530, which is plugged into the Pi. All of it gets jammed into the 102 shell, and becomes a portable computer.
I waffled a bit on this... mainly because the keyboard stuff would be a chore. I want to remove every key, and clean their travel tubes, to eliminate the keys binding. Wiping out the traces and rewiring the board seems like it's going to be a tedious process... So i kept thinking that maybe I should make a cherry-mx switch based board to fit the keyboard space instead... and... yeah... i just kept going down that same path of "maybe i should do this other thing" instead... instead of actually moving forward on any of it.
I also pondered putting the entire Llichen 80 computer into this shell... which brings us to...
RC2019-10!So that's where RC2019-10 comes in. Why almost fail at three projects when I can almost fail at ONE project! Seems a lot more efficient!
The end result for this month will be to have a working portable laptop computer that runs Amibian (Linux), RC2014 (via serial connection to the Pi) and general Linuxy stuff.
Or, more granularly, here are the tasks as I see them now: (in no particular order)
- Finish the Keyboard + Joystick/Mouse firmware for the LL530
- remove the wires on the 102 keyboard PCB
- clean the travel tubes on the keyboard
- rewire the keyboard to match the Amiga's matrix
- Wire the keyboard to the Amiga 500 interface board
- Connect the RC2014 Micro via the Pi's serial interface pins
- Additional buttons on the device to cleanly shut it all down
- Have it all powered from a 5V/USB powerbank mounted internally
- Serial-console textmode app for Linux that provides the beginnings of a backchannel to
- Full drive interface for the RC2014
- CP/M BIOS for the RC2014 that uses the serial protocol
- Fit the RC2014 Mini + 64k RAM + switching ROM + TMS9918A cards inside the case
- Have the video switchable between the Pi and the TMS9918A video card
Not sure how far i'll get, but it globs together all of the recent projects in a way that I won't feel like I'm neglecting one project by working on the others... since they're all the same project now. :D