Close
0%
0%

Neotron Pico

A microATX motherboard that uses a Raspberry Pi Pico as the CPU. SuperVGA output, stereo audio, a BIOS written in Rust and not much RAM!

Similar projects worth following
The Neotron Pico is designed to run Neotron OS, but as it's just a Raspberry Pi Pico at its heart, you can run anything you like on it.

Video output is 12 bit colour, just like an OCS Amiga. We have an R2R DAC, but also a proper RGB video buffer designed to drive 75 ohms, so it should be better quality than your average GPIO-into-VGA hack (like my last two projects, Monotron and Neotron 32).

There's a 16 bit stereo CODEC and an AC'97 header for your case, plus a classic pink/green/blue PC98 triple Jack at the rear.

There's an SD Card slot for storage, an STM32F0 to run the power supply, reset circuit and a couple of PS/2 ports.

There's also an SPI + I²C expansion bus for adding new features. MIDI? SCSI? Why not?!

The design files are at https://GitHub.com/Neotron-compute/neotron-pico. It's all open source hardware, and we use GitHub Actions to reliably convert the KiCad files into PDF Schematics, and Gerber files for manufacturing.

Why GitHub Actions?

Have you ever seen an open source project, but they've put all the built files (PDFs, Gerbers, Firmware HEX files, etc) in the repo with the source code. Pretty common right? But all yourself, how did they make those files? And how can you be sure which version they were made from, and that they are consistent?

This project uses GitHub Actions. There are no Gerbers in the tree - they are built on demand when the repository is tagged. And they means you can see the scripts used to build them - you literally, and by definition, have all the tools and files you need to do what GitHub does. The same goes for schematic PDFs and interactive BoM files. There can be no confusion about which version is which - it's all in the git logs, clearly tagged with each unique version number.

It's not just Open Hardware. It's Reproducible Hardware.

What's with all the comments in the schematic?

As far as possible, I've tried to get the schematics to record not just *what* something is or does, but *why*. This is not just a write-once-read-never dump of some idea I once had. I'm trying to build a learning resource for anyone who wants to know more about electronics, and what you need to make your own ATX compatible main board.

If you think you can improve on what I've done in any way, to make something clearer or to make it more functional, do send a PR!

What is Neotron OS?

Neotron OS is a simple Rust-language operating system, inspired by CP/M and early MS-DOS. It's single-tasking, with a flat memory space. Basically, it's just enough OS to get your application loaded from SD Card into RAM. Once there, you can do what you like!

  • 1 × Raspberry Pi Pico
  • 1 × Texas Instruments TLV320AIC23BPW Amplifier
  • 2 × 3mm LED
  • 1 × Microchip MCP7940N DIP-8
  • 1 × Mornsun K7805-3AR3 PSU

View all 31 components

  • Check Mate

    Jonathan 'theJPster' Pallant07/11/2021 at 08:44 0 comments

    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

    Video: https://twitter.com/therealjpster/status/1413587901229805573?s=19

    .

  • It's working

    Jonathan 'theJPster' Pallant07/07/2021 at 19:00 0 comments

    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. I'll need to hack it a bit to test the DAC properly.

  • A bad thing happened

    Jonathan 'theJPster' Pallant07/01/2021 at 22:57 0 comments

    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 fear I put 12V into the STM32 and blew it up. Oh no!

  • It's definitely micro ATX sized!

    Jonathan 'theJPster' Pallant06/28/2021 at 14:43 0 comments

    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 connections I picked.

    Now I just need to design an expansion card! I'll probably do something with a through-hole prototyping area and get 20 or so made - they won't be very expensive. The trick will be in providing a screw hole that lines up with the kinds of expansion bracket you get from cheap 'scrap' PCI cards, as I don't know if you can buy that sort of thing separately. Note that ISA expansion card headers won't work as they bolt to the other side of the card.

    * PCI cards have components facing 'down' away from the I/O area and hence the PCB aligns with the top edge of the bracket. ISA cards have components facing 'up' towards the I/O area and hence the PCB aligns with the bottom edge of the bracket. Neotron expansion slots are aligned for cards that are the 'PCI' way around.

  • LQFPs are confusing

    Jonathan 'theJPster' Pallant06/27/2021 at 19:20 0 comments

    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 enough to put the legs in between the pads on one side. No good.

    The third seemed to go OK (thankfully - I only have one left!). So far, I've knocked up some firmware to blink the LEDs, check the UART and debounce the power button. It's all at https://github.com/neotron-compute/Neotron-BMC.

    Video: https://twitter.com/therealjpster/status/1408534190434422795

  • Rev 0.5.0 has been ordered

    Jonathan 'theJPster' Pallant06/17/2021 at 16:44 0 comments

    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.

View all 6 project logs

Enjoy this project?

Share

Discussions

adam.klotblixt wrote 06/17/2021 at 20:30 point

A very nice concept! A quad-spi psram would be a great expansion for this, like on the Esp32 modules. Have not had time to make/find any pio interface software yet.

  Are you sure? yes | no

Jonathan 'theJPster' Pallant wrote 06/18/2021 at 10:33 point

Unfortunately, the QSPI XIP silicon on the RP2040 cannot handle writes - it is read-only. You could make a QSPI interface out of a PIO block, but it will not be memory mapped - you will have to call functions to page blocks in and out of SRAM, just like using an SD Card.

  Are you sure? yes | no

adam.klotblixt wrote 06/18/2021 at 12:00 point

Yes, a PIO-block was what I envisioned. As an add-on expansion card to the nice slot system :D
It will be slower than natively memory mapped for sure, but still very usable. Especially if coupled with a small software cache.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates