Skip to content

Beta firmware - 0.4.0

Pre-release
Pre-release

Choose a tag to compare

@TheRealZago TheRealZago released this 01 May 09:29
· 44 commits to main since this release
1093f2f

Support for PCB rev 6 and rev 7!

IMPORTANT! Support for rev 5 has been (temporarily?) dropped! If you need something that kinda works on the older PCB, stick to v0.3.0!

A new main board & remote control combo is available, now supporting a few new handy features like:

  • Fully I2C-based remote control, this saves us a few GPIOs for other more useful features.
    I/O is managed by an MCP23009 GPIO expander, used for some HW config pins and keypad. For convenience and to avoid "user error" plugging incorrect devices into the card, we opted to use a SATA cable, which: (1) provides enough conductors for all the signals we need, (2) it's well shielded and provides good protection against cross-talk, (3) it's short enough not to make I2C unstable and, most importantly, (4) it's not a bespoke plug, nor a weird D-Sub/DIN/whatever-else plug which might be confused for something else and might not work with some non-standard wiring.
  • By saving I/O from the old remote control pinout, we gained a -12V rail monitor [TBD, negative voltages biased against another measured rail are hurting me poor small brainz] and a bus clock monitor [TBD, I got bamboozled by RP2040 SDK documentation, hoping there was a simple frequency counter, but we'll need a bespoke solution].
  • There's now a jumper for selecting power source, so the PicoPOST can be powered either via the microUSB port on the board, or via the rail on the ISA bus.
  • Custom OLED library with support for SH1106 and SSD1306 I2C displays, in 128x32 and 128x64 variants. When HW is configured correctly, the firmware can make better use of the larger displays. More of a proof-of-concept, as of now, but can open for some better implemented features as we move on.

In other news:

  • Added readers for port 84h (Compaq), 90h (IBM PS/2), 300h (some EISA machines) and 378h (Olivetti to parallel port, we need someone to test if it actually propagates to the whole ISA bus as well).
  • Reset pulse detection no longer works and it's been disabled at compile time. Until I figure out what got messed up, we'll have to deal with some garbage reads and no reset notification on screen.
  • The repo now ships with a known-working debug configuration, for use with Visual Studio Code, the ARM Cortex-M debugger extension and OpenOCD with a PicoProbe as hardware debugger.
  • Code has been thrown under SonarLint for detecting code smells and possible failure points. Now it should result in something easier to read and understand.