Introduction

The Deductotron-1000 (or D1000 for short) is a weird style of computer. It's built to be a bit like the last generation of Acorn PCs (A7000, Risc PC type things) but with some slightly more modern interfaces. Really, that would describe a Raspberry Pi, but this is more modest in specification. The project is designed to be hand assembled (although it is pretty tough SMD soldering), to fulfil that goal the CPU is actually a microcontroller which means it doesn't have a memory management unit. I'd spent a while designing MMUs and looking at options but in the end I decided to see how far I could get without it and use cheap SDRAM chips with the built in memory controller on the impressive STM32H7 processor.

Basic Specifications

  • STM32H745BIT6 - 208 pin LQFP dual core ARM processor
  • It's an asymmetric dual core with a 480MHz Cortex-M7 and a 240MHz Cortex-M4
  • Nominally the M7 will be the CPU and the M4 will be GPU
  • 128MB of SDRAM
  • Two SDIO SD card interfaces, a 4bit internal SD card to use as the main drive and a 1bit interfaced peripheral for removable storage
  • 3 USB host ports at Full Speed via a hub (for keyboard/mouse)
  • An audio codec
  • A 24bit colour HDMI interface, driven by the STM32's LTDC parallel output and a TI TFP410PAP HDMI serialiser
  • Wi-Fi via an ESP32 module
  • 2 UART interfaces (one can be connected to the ESP32 internally
  • 10/100 Ethernet interface via RMII
  • RTC backup using super capacitor
  • Expansion slots
  • Single 5V power input

Project Goals

The plan is to play with the advanced peripherals and to see if a basic multi-tasking operating system can be built on the platform. Initially at least the software will be built upon modern embedded software tools:

  • FreeRTOS
  • LwIP
  • TinyUSB

Then I'll be adding a console command interpreter, my own Gristle FAT32 driver and EmbExt Ext2 driver, a video driver and some basic tools.

I'd like to get to something like the basic GUI experience of RiscOS that came built into the flash on the last Acorn computers but there's a long way to go to achieve that.

Hardware

The hardware is designed. I've done the schematic capture and board layout in KiCad 7 and the boards have been fabbed by JLC. For the first time in several years I was able to just order all the parts in the design without back-orders.

A front view of an empty, large modern PCB.
Top view of the blank PCB, it's a 6 layer board.
A rear view of an empty, large modern PCB.
Mostly just decoupling capacitors on the back.

The main board has a set of expansion connectors. These are using the Neotron Compute expansion scheme which gives a shared I2C bus to all modules (mainly for identification via an addressed EEPROM) and an SPI bus with a unique select line per slot. There are 4 standard slots plus an edge-connector using a PCIe x1 slot connector (because it was cheap). The plan is for this side-loading connector to allow a battery management add on to make the motherboard into a laptop using an appropriate HDMI display.