Two years after the last Synthesised event , I was back again with a revised History of PC Audio exhibit. The hardware is largely the same as before, but with a new hard drive and a new graphics card: Pentium III @ 450 MHz Abit BE6 mainboard Sound Blaster AWE64 PicoGUS 3DFX Voodoo 3 AGP 9 GB IBM Deskstar Hard Drive MT-32 Pi with MT-32 ROMs and SC-55 SoundFont The PicoGUS also has some firmware…
Intro In the last article , I set out the various versions of the Arm Architecture, and ones I've been focussed on whilst developing the aarch32-rt and aarch32-cpu libraries. Building an example that gets into fn main() and perhaps fires a few interrupts is fine and all that, but most people using these big processors are going to want a bit more - some sort of framework that lets them run…
Intro I've recently been spending quite a bit of time working on Rust support for legacy 32-bit ARM architectures. Not in the compiler - that work was done in LLVM long ago, and rustc can just take advantage of it - and not in the standard library - because these are bare metal targets that only use core , and core is largely architecture agnostic. No, what I've been working on is the run-time…
Background I sold my BBC Master at the last Bring and Buy at the Centre for Computing History in Cambridge. However I recently found two of the floppy disks I made for it, and I thought I'd write a few words about them because they are little bit unsual. The BBC Master was a development of the BBC Micro - both made by Acorn and both based around a 6502 processor. Both machines had an external…
An offer you can't refuse Another one of those things happened just before Christmas. Someone sent me a message saying "hey, check this out!", with a link to a message on the debian-sparc mailing list : While having a clear out I have come across some old SPARK hardware and accessories. Is anyone interested in any of the following or knows communities / people who might be? Oh my. Well, how could…
I want to run Debian on my RiscPC, for reasons I'll get into. However, it was unexpectedly difficult to get working, and I want to record the process I went through. Or, at least the outcome of the process - there's been so much rebooting and trying things and rebooting and trying different things and rebooting and trying the first things again because maybe it's different now? And then more…
Background A few weeks back I got a note on Bluesky, linking me to a website offering a free computer. The owner was in Cambridge, not far from me, and the computer was an HP 9000/300 Series - a Model 340, specifically. The HP 9000 line of workstations and servers ran from the early 1980s through to the late 2000s (see this great history page at openpa.net for more details). It encompassed many…
Background I write a lot of embedded software in Rust these days - sometimes for fun, and sometimes as training material, and sometimes for customers building safety-critical systems. This last group are usually already writing safety-critical software in C, and wish to switch to writing Rust. When you are writing safety-critical software in C, you are usually using some kind of Real-Time…
Background This is a follow up to the previous blog post . You should read that first. OK, so last time out we looked at the Sun Fire V100, the Sun Netra T1, the SPARCstation 1, the two SPARCstation 2s. We still have: Three SPARCstation 20s (suisse314759, suisse130242 and tiny) - none of which have CPUs One SPARCstation 10 Two SPARCstation 5s (suisse16511 and mo28282) Where I have duplicates I…
Background I was browsing /r/vintagecomputing , as you do, and I came across this post : Hi all. Back in the day I was a developer working exclusively on Solaris. About 25 years ago, for one reason and another I came into possession of about 30 assorted SPARC based workstations and a few other bits and bobs, network/SCSI cards, keyboards, mice, etc. I think there's also one UltraSPARC in there…
Background Cathode Ray Dude recently did an excellent video about the history of the PC case, particularly the early- and mid-1990s, and the various mainboard layouts that pre-date the ATX standard. You should watch it. Here it is. The rest of this blog will contain some spoilers for that video. UNIX workstations I have a bunch of 1990's RISC/UNIX workstations. I don't really know how it happened,…
Background I have a thing for weird 90's RISC workstations running UNIX. So when Rob said "Hey, I have an AlphaStation in the boot of my car ..." obviously it came home with me. Unfortunately the AlphaStation is dead. The PSU runs (and stays running, unless the case are disconnected in which case it immediately stops running). The voltages look fine. But the two PCI cards in the machine (a 32-bit…
Backstory Having enjoyed some time with my Silicon Graphics POWER Indigo 2 , I started to wonder what the other 1990's UNIX RISC machines might be like in comparison. The ones I had in mind were: Silicon Graphics MIPS running IRIX - got that one Digital Alpha running Tru64 UNIX (or Windows NT...) Sun SPARC running Solaris HP PA-RISC running HP-UX IBM PowerPC running AIX I guess you could add Acorn…
Intro It's been a busy year, so for my own edification, I wanted to record all the events I've attended this year. It's a long list and it's taken me away from home a lot, so I'm committing to attend far fewer in 2025. In fact hopefully I will only attend two events next year. Rust Nation Location: London, England Date: 27-28 March, 2024 Travel: Train to/from London A two day conference in London,…
Amstrad always wanted to have a 'killer product' out for Christmas. Before home computers it might have been a CB Radio, or something like that, but between 1984 and 1995, their big Christmas product was usually some kind of home computer. These were normally announced in July-September, in time to ramp up sales for the Christmas rush. I couldn't find a list anywhere, so here's a list. It's…
On Mastodon , I recently came across a post by Kestral , with a link to their website: I find myself with significantly less time than I’d like to work on restoring all of these devices, so my hope is that folk in the community will take some off my hands, lovingly restore, and help to keep computer history alive. Get in touch with me in the Fediverse if anything here sparks joy. Oooh, me me me!…
Retro Computer Festival 2024 I am presenting again at the Retro Computer Festival 2024, at the Centre for Computing History in Cambridge, England. The event is being held on the 9 and 10 of November, 2024. For my table at this event I have chosen the them "Backwards Compatible". My table offers a small exploration of what it means to be backwards compatible, what this has meant for computer…
Intro No sooner had I published the last piece than I found something really cool that I don't think is that well known. The Cortex-M33 is an Armv8-M processor - that is, it implements the Microcontroller Profile part of Version 8 of the Arm Architecture Specifcation. The Cortex-M55 and Cortex-M85 are Armv8.1-M processors, which means they implement Version 8.1. I sort of knew this, but didn't pay…
Intro Today sees the announcement of the latest additions to Raspberry Pi's microcontroller line-up - the RP2350 family. I've had prototype units for a while, and you can run Rust code on it today. To my knowledge this is the first ever microcontroller launch with Rust support out-of-the-box. If you haven't seen the specs elsewhere, let me catch you up: RP2040 RP235x Main CPUs 2x Arm Cortex-M0+…
This is a brief, abridged, and possibly in accurate history of audio on the IBM PC compatible. It's based on an exhibition I prepared for Synthesised , a special event at the Centre for Computing History in Cambridge, England. Edit: This exhibit came back for 2026. I have notes on what changed here . In the beginning there was the IBM PC 5150 . Launched in 1981, it came with what became known as…
You can now buy Neotron Pico boards direct from Elecrow. See https://www.elecrow.com/neotron-pico-rev-1-1-assembled.html . I have very limited stocks, and they are priced at $99 each, for a PCB with all components fitted except the RP2040 and the CR2023 coin-cell. It's Open Source hardware and there's loads of detail on the Github page . I also wrote a 'MOD' file parser. This is the native music…
Intro What follows are some thoughts I've had swirling around in my head for a while. Note that whilst I am (at the time of writing) a member of the Rust Leadership Council (the t-launching-pad representative) and a staff member at Ferrous Systems, I write this purely from my own perspective. I belong, and/or have previously belonged, to a number of what I will call here societies . Perhaps they…
Intro Floppy disk drives are curious things. We know them as the slots that ingest those small almost-square plastic "floppy disks" and we only really see them now in Computer Museums. But there's a lot going on in that humble square of plastic and I wanted to write down what I've learned so far. The Physical Disks There are four main sizes of Floppy Disk. The 8" Floppy Disk , which is the oldest…
Over the past couple of weeks I've been working on SD Card support for the Neotron Pico. The broad schedule ran like this: Detect when a card is inserted into the slot. Detect when a card is removed from the slot. When a BIOS "List Block Devices" API is called, initialise the SD Card and report its actual capacity. Remember the fact that the card is initialised so we don't initialise it again…
I've spent some time thinking about how to improve the PIO program that runs our Super VGA out. Currently it requires one 16-bit value per pixel, delivered from one of two ping-pong buffers each 1280 bytes long. Loading these buffers with RGB pixels based on characters read from the text buffer takes quite a lot of CPU time. If we limit ourselves to just two colours for the entire screen, we can…
The delivery from JLCPCB arrived yesterday (2022-11-23). I did an unboxing video where I soldered up one example, did a smoke test, programmed the two processors and showed we get VGA video output. Check it out!
I hit BUY at JLCPCB, and ordered: 30 off Rev 1.0.0 (using up all the SMD parts I had pre-purchased and had JLC stash away for me) 25 off Expansion Card Template v0.7.0 Let's hope they work! If you want to buy one, get in touch and I'll see what I can do. Or order your own using the files at https://github.com/Neotron-Compute/Neotron-Pico/releases
I worked on the Neotron BIOS interface this week. I merged a bunch of long-standing changes around sharing a VGA-compatible text framebuffer, and added back in Block Device support. I also updated the Neotron Desktop BIOS and the Neotron OS , so you can now get Key Events from the pix-engine GUI window forwarded into the OS via the BIOS HID API.
As a bit of an experiment, I thought I'd try loading CircuitPython for the Raspberry Pi Pico onto my Neotron Pico board. Whilst the point of the board is to develop and run the Neotron OS, I found that Circuit Python was pretty useful for developing PCB tests and checking out various bits of functionality. The main advantage was that I could interact with well-tested libraries and not have to…
In the last post I referred to some testing of the Audio CODEC using CircuitPython. Here's a video showing the code, with the Neotron audio in the background. I also should mention that the PS/2 keyboard is being received on the BMC chip correctly, but work continues on getting data from the BMC to the main RP2040. Comms is working, but only at around 1 MHz currently. Here's a video showing…
The latest rev 1.0.0 boards arrived today. I worked through a test procedure carefully: Visual Inspection Load through-hole components (and VGA buffer JLCPCB didn't have in stock), but leaving out the PSU 12V input at 40mA current limit showed no issues Manually apply 3.3VP to R1303 and check DC_ON pin of PSU header goes to 5.6V Flash STM32 and check we can power on and power off the board (no PSU…
Back in May 2022, the Rust Foundation awarded funds to the Rust community through their Community Grants Programme. My bid for was funds to cover the next around of Neotron Pico PCBs, and I was lucky enough to receive $3000. So, I've been busy! I have a big box of parts with most of the through-hole components. I've also been revising the PCB design. closing out the tickets I raised on the Rev…
I finally got my head around how the PIO state machines work and how the DMA subsystem works. So now there's real-time 80x25 text mode, written in Rust! It uses just two scanline buffers (640x2 bytes each) and a text buffer of 80x25 bytes. It uses 400 line mode at 70 Hz, but 480 lines at 60 Hz is fine too.
My Pico is now installed in my new Checkmate A1500 Plus case! Minor alignment issues with the rightmost (nearest the PSU) stand offs, but the rest are OK. The green LED is dim, but the forward voltage is likely very near the 3.3V drive voltage, giving very low current. Have a look at https://github.com/Neotron-Compute/Neotron-Pico/issues/46 Note: There used to be a link to a video on X - the Site…
I put the broken board to one side and built up a second. It has a bodge putting a 10k between the base of the PNP and its pad. With this I can start up the Pico with the power switch, using the STM32 for debouncing, and then power it off with a long press! I then tried to get video out of the Pico using the Pico SDK. Sadly, it's a mess because the SDK is really not designed for 12 bit colour.…
It tried to turn on the main DC PSU and I got a short circuit. After a bit more testing, I realised there's a dead short through the two transistors that pull the DC PSU enable line up to VDC when the STM32 output goes to 3.3V(VSB). I added a resistor and tried to jump 3.3V into various points to test it in stages... and it went pop and now always short circuits, even with the transistors removed.…
I designed this board without any other ATX board to compare to, or without an ATX case to measure up. I instead used the ATX 2.03 specification, which can be found online. Today I obtained an old ATX case and I'm delighted to report that not only does it appear that all the screw holes line up, but that expansion cards mounted the "PCI" way around* are also pretty much centered on the expansion…
I got the first five v0.5.0 boards back. They look great! I tried soldering on the LQFP-32 STM32 (which I had in stock but JLCPCB did not), and it didn't go well. The first one I soldered on rotated 90 degrees. Turns out the 'dot' is in the bottom left, not the top left. I'll have to get someone to fix that one with a hot air gun. The second one went better, but was about 3 degrees out. This was…
The v0.5.0 PCB has been ordered from JLCPCB, with assembly for most SMD devices except: The CODEC The STM32 The MCP23S17 The RGB/HV ESD filter The RTC I have those parts in stock at home and will hand-assemble them when the boards arrive.
Well it's been a busy year. I was made Deputy Mayor of St Ives back in May 2019 and that has rather filled up the calendar. I also present Monotron at ACCU 2019 in Bristol, and again at RustFest 2019 in Portland, Oregon. You can checkout the videos below: I've also spent a lot of time thinking about interfaces on old computers systems - floppy drives, IDE, SCSI, Parallel Ports and more. This then…
So, the idea with the Monotron was to ask a simple question - how much can we do with a small, cheap, random microcontroller and the Rust Programming Language. The answer, after some significant development effort, was quite a lot: 800x600 SVGA video signal, with 8 colours 48 x 36 text mode, rendered in real time, with multiple fonts (Code Page 850 and Teletext) FAT32 formatted SD Card support…
Yeah I know I talk about a lot of embedded stuff on here, but I do still think about my Model Railway. I was at the Model Railway show in Peterborough today, where I picked up a lovely boxed Dapol "Yorkshire Voyager" set. It prompted me to think about what I'll run when my railway gets rebuilt and I figured I should write it down for posterity. The model a fictional station set somewhere around…
So now @rustbeltrust is over, I thought it was worth writing down a few details about what Monotron can do. It's had a few upgrades since @RustFest Paris! I tried to keep them under wraps to avoid spoilers but I can share them now. This is an un-roll and re-edit of my Twitter thread, and the features listed here are in no particular order: You can upload binary apps into RAM over serial. 24 KiB is…
It's a couple of months on from my talk at RustFest on Monotron, so I thought it was worth a quick catch up on where we're going next. Graphics and Text As a recap, Monotron currently generates an 800 x 600 VGA signal at 60 Hz (with a pixel clock of 40 MHz). It does this using three synchronised SPI peripherals, a timer generating the horizontal-sync pulse and a GPIO pin for the vertical-sync.…
So, today I did a talk about Monotron at RustFest Paris . You can find the code on my Github and/or on crates.io: The top-level crate The generic embedded VGA Framebuffer Driver , with callbacks for hardware specific bits The command-line menu system The PS/2 keyboard driver (unfinished) The tm4c123x-hal and tm4c123x chip support crates The excellent Cortex-M and Cortex-M-RT crates from japaric.…
I've had a few projects over the past few years using the TI Stellaris Launchpad. It's nothing particularly special - just a Cortex-M4 based LM4F120 MCU at up to 80 MHz with 256 KiB of Flash and 32 KiB of SRAM, an RGB LED and an on-board USB programmer - but it's pretty cheap and I've gotten to know it quite well. The provided StellarisWare software was a 300 MiB installer, so I threw that out and…
I recently picked up an embedded project that I hadn't touched for a few months, so I could add some new features. I was disappointed to note that it no longer compiled - nothing in the code had changed, but it only compiles with Nightly Rust and that had recently had a bunch of changes that completely broke my build. This is then a tale about what I'd like to see from Rust in 2018. I know there's…
Over the past weeks, I've been working through Advent of Code. If you haven't seen it, it's basically a daily programming challenge - one a day for the 25 days running up to Christmas. Each challenge has two parts, and you get points for being in the first 100 people to submit a correct answer (usually a number, or a short string). There's nothing for coming 101st! The challenges open at 00:00 EST…