Releases: TheRetroWeb/PicoPOST
Beta firmware - 0.4.2
Implemented a coarse approximation for the -12V rail monitor
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!
My brain started hurting real bad trying to understand how to work with the voltage divider used to monitor this negative voltage rail. At some point, I decided to run the circuit into a SPICE simulator, only to find out the voltage clamp clamps too high and the ADC gets saturated very early on. Also, in the active ADC range, the behavior is almost perfectly linear, so I decided to apply an approximated line instead.
According to my tired calculations, the realistic range is -34V up to -8.6V. Anything above that is harshly truncated to 0V. (I guess I could replace it with a more graphically appealing LOW
or THRS
, but there's always time for that...)
If anyone smarter than me is able to comprehend these EE shenanigans better than me, please chime in and fix my ugly hacks.
Happy PicoPOSTing!
Beta firmware - 0.4.1
Eye-candy!
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!
No major features here, instead there's some graphical tweaks to distract y'all from the missing and non-working features. 😶🌫️
- Fixed crash on port reader exit;
- Slightly optimized display redraw routines so it looks a bit less glitchy on some context changes;
- Added official pixel-art PicoPOST banner from documentation as landing place for "Info" menu entry;
- Added standby mode, where the OLED is dimmed when there's no user or data activity for more than 15 seconds;
- Added a Flying Toasters! screensaver, so if still in the main menu for more than 30 seconds, a small sprite starts moving across the screen;
- If you want to see the reset pulse detection not working, there's a CMake define you can also be depressed with us.
VERY VERY IMPORTANT! You will find a PicoPOST-v0.4.1-RESET.uf2
firmware file down below, which, as you might have already guessed, enables the 2nd PIO engine for attempting to see the bus reset pulse occurring, when running a port reader. There's an extremely high chance it won't work and it might even lock up the entire Pico. If you have any idea why it sucks so much and you have suggestions, or even patches, please get in contact with us!
Beta firmware - 0.4.0
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.
Beta firmware - 0.3.0
Summary
First working demo for PCB rev 5. Not perfect, but serviceable.
What works
- Failsafe output to USB CDC serial
- OLED display + GPIO keypad user interface (UP+DOWN to exit)
- Port 80h reader
- Voltage monitor for +5V and +12V
- Info banner
To-do
- Support for PCB rev 6
- POST code database
Full Changelog: https://github.com/TheRetroWeb/PicoPOST/commits/v0.3.0