Pi Pico-Powered ATX Motherboard

For a couple of years, embedded developer and Rust addict [Jonathan Pallant] aka [theJPster] has been working on a simple computer which he calls the Neotron. The idea is to make a computer that is not only easy to use but easy to understand as well. He describes it as a CP/M- or DOS-like operating system for small ARM microcontrollers. His most recent project is powered by a Raspberry Pi RP2040 Pico and built in the format of a microATX motherboard. This board packs a lot of features for a Pico-based design, including 12-bit color VGA and seven expansion slots. See his GitHub repository for a full list of specifications, and all the files needed to build your own — it is an Open Source project after all.

Besides the Neotron Pico itself, a couple of gems caught our eye in this well-documented project. [theJPster] was running out of I/O pins on the Pico, and didn’t have enough left over for all the peripherals’ chip selects. Check out how he uses an MCP23S17 SPI-bus I/O expander and a tri-state buffer to solve the problem.

On a more meta level, we are intrigued by his use of GitHub Actions. Per the standard concept of repositories, they shouldn’t contain the results of a build, be that an executable binary or Gerber files. Distribution of the build products is typically handled outside of GitHub, using something like GitHub’s Large File Storage service, or just ignoring convention altogether and putting them in the repo anyway. [theJPster] uses another method, employing GitHub Actions to generate the files needed for PCB fabrication, for example.

The Neotron Pico is the latest in a series of boards made to run Neotron OS. Previous boards include:

  • Neotron 9x — Microchip SAM9X
  • Neotron 1000 — STM32H7 + Lattice Semi iCE40 FPGA
  • Neotron 600 — Teensy 4.1
  • Neotron 340ST — ST 32F746G-DISCOVERY

Gdbdiff: Diff-ing A Real RP2040 MCU Against An Emulated MCU

What to do when developing an RP2040 emulator but validating the emulator instruction by instruction is a slow and tedious process? Why, automatically compare it against the real hardware if you’re [Uri Shaked], of course. This is the purpose of gdbdiff. This project uses the GDB remote serial protocol via OpenOCD to run test firmware step by step.

During a livestream (video linked via the above link), this allowed [Uri] to find a number of instruction bugs in the emulator this way. These issues involved issues such as incorrect flags in the APSR register and an edge case in the LSRS register. This gdbdiff livestream is part of an entire series of live-coding sessions during which [Uri] writes an RP2040 emulator from scratch.

We applaud [Uri] for creative thinking here, and assume that this way the livestream was probably more entertaining to watch than when doing instruction-level debugging purely by hand :)

New Part Day: RP2040 Chips In Single Unit Quantities

Since the launch of the Raspberry Pi Pico back in January the little board with its newly-designed RP2040 microcontroller has really caught the imagination of makers everywhere, and we have seen an extremely impressive array of projects using it. So far the RP2040 has only been available on a ready-made PCB module, but we have news today direct from Eben Upton himself that with around 600k units already shipped, single-unit sales of the chip are commencing via the network of Raspberry Pi Approved Resellers.

This news will doubtless result in a fresh explosion of clever projects using the chip, but perhaps more intriguingly it will inevitably result in its appearance at the heart of a new crop of niche products that go beyond simple clones of the Pico in different form factors. The special ingredient of those two PIO programmable state machines to take the load of repetitive tasks away from the cores raises it above being merely yet another microcontroller chip, and we look forward to that feature being at their heart.

The Broadcom systems-on-chip that power Raspberry Pi’s existing range of Linux-capable boards have famously remained unavailable on their own, meaning that this move to being a chip vendor breaks further new ground for the Cambridge-based company. It’s best not to think of it in terms of their entering into competition with the giants of the microcontroller market though, because a relative minnow such as the RP2040 will be of little immediate concern to the likes of Microchip, ST, or TI. A better comparison when evaluating the RP2040’s chances in the market is probably Parallax with their Propeller chip, in that here is a company with a very solid existing presence in the education and maker markets seeking to capitalise on that experience by providing a microcontroller with that niche in mind. We look forward to seeing where this will take them, and we’d hope to eventually see a family of RP2040-like chips with different package and on-board peripheral options.

World’s First RP2040 QWERTY Computer

Independent hardware developer [bobricius] is at it again, making what he claims is the world’s first Pico RP2040 QWERTY + IPS development kit — the PICOmputer. This is a palm-sized computer of sorts. It integrates a keyboard made from tactile push button switches, a TFT IPS display, and a RP2040 Pico computer module. At 100 x 65 mm size, it is slightly bigger than your typical ISO-7810-ID-1-sized credit card, and slightly smaller than an A7 piece of paper.

One of [Bobricius]’s goals for this project was to minimize the number of external components, thus maximizing the use of the RP2040’s internal features. And if you peruse the schematic posted on his GitHub repository, you can agree he’s met this goal for sure. There’s a filter capacitor for the optional LoRa module, and two MOSFETs and three resistors to drive a speaker and the TFT backlight. Aside from connectors, the switches, and the submodules themselves, that’s all of the external circuitry.

The arrangement of two USB connectors, type C for power and micro-USB for data, is an interesting aspect of the connector / module placement. He plans to add an Ethernet module in the future, and issue some more revisions to fix small errors and to make the front panel fit more sizes of displays. We wonder if a battery module add-on is in the works, as well.

If you recognize [bobricius], that’s because his previous ARMACHAT handheld LoRa messenger project was among the Hackaday Prize Community Vote (Bootstrap) winners last year. We think tiny keyboards may be an obsession for him — indeed, he freely admits to being blinded by his own enthusiasm. Check out his mini (Pi)QWERTY USB keyboard from 2018, for example. Thanks to [Itay] for bringing this project to our attention via the Hackaday tip line.

Continue reading “World’s First RP2040 QWERTY Computer”

Raspberry Pi RP2040: Hands-On Experiences From An STM32 Perspective

The release of the Raspberry Pi Foundation’s Raspberry Pi Pico board with RP2040 microcontroller has made big waves these past months in the maker community. Many have demonstrated how especially the two Programmable I/O (PIO) state machine peripherals can be used to create DVI video generators and other digital peripherals.

Alongside this excitement, it raises the question of whether any of this will cause any major upheaval for those of us using STM32, SAM and other Cortex-M based MCUs. Would the RP2040 perhaps be a valid option for some of our projects? With the RP2040 being a dual Cortex-M0+ processor MCU, it seems only fair to put it toe to toe with the offerings from one of the current heavyweights in the 32-bit ARM MCU space: ST Microelectronics.

Did the Raspberry Pi Foundation pipsqueak manage to show ST’s engineers how it’s done, or should the former revisit some of their assumptions? And just how hard is it going to be to port low-level code from STM32 to RP2040? Continue reading “Raspberry Pi RP2040: Hands-On Experiences From An STM32 Perspective”

AVR Reverse Engineering Hack Chat

Join us on Wednesday, April 21 at noon Pacific for the AVR Reverse Engineering Hack Chat with Uri Shaked!

We’ve all become familiar with the Arduino ecosystem by now, to the point where it’s almost trivially easy to whip up a quick project that implements almost every aspect of its functionality strictly in code. It’s incredibly useful, but we tend to lose sight of the fact that our Arduino sketches represent a virtual world where the IDE and a vast selection of libraries abstract away a lot of the complexity of what’s going on inside the AVR microcontroller.

While it’s certainly handy to have an environment that lets you stand up a system in a matter of minutes, it’s hardly the end of the story. There’s a lot to be gained by tapping into the power of assembly programming on the AVR, and learning how to read the datasheet and really run the thing. That was the focus of Uri Shaked’s recent well-received HackadayU course on AVR internals, and it’ll form the basis of this Hack Chat. Then again, since Uri is also leading a Raspberry Pi Pico and RP2040 course on HackadayU in a couple of weeks, we may end up talking about that too. Or we may end up chatting about something else entirely! It’s really hard to where this Hack Chat will go, given Uri’s breadth of interests and expertise, but we’re pretty sure of one thing: it won’t be boring. Make sure you log in and join the chat — where it goes is largely up to you.

join-hack-chatOur Hack Chats are live community events in the Hackaday.io Hack Chat group messaging. This week we’ll be sitting down on Wednesday, April 21 at 12:00 PM Pacific time. If time zones have you tied up, we have a handy time zone converter.

Click that speech bubble to the right, and you’ll be taken directly to the Hack Chat group on Hackaday.io. You don’t have to wait until Wednesday; join whenever you want and you can see what the community is talking about.
Continue reading “AVR Reverse Engineering Hack Chat”

New HackadayU Classes: Antenna Basics, Raspberry Pi Pico, And Designing Complex Geometry

Get ’em while they’re hot: a new session of HackadayU just opened with classes from three fantastic instructors and seats are filling up fast.

Introduction to Antenna Basics — Instructor Karen Rucker teaches the fundamentals of antenna design as if it were your first year on-the-job. She’ll cover the common types of antenna designs and the fundamentals of radio frequency engineering that go into them. Begins Thursday, May 6th.

Raspberry Pi Pico and RP2040 – The Deep Dive — Instructor Uri Shaked guides the class through the internals of the RP2040 microcontroller, covering system architecture, hardware peripherals, and dipping into some ARM assembly language examples. Begins Wednesday, May 5th.

Designing with Complex Geometry — Instructor James McBennett helps you up your 3D modelling game with a course on using complex geometries in Grasshopper3D (part of Rhino3D). Dive into Non-uniform rational B-spline (NURBS) and go from simple shapes to incredibly complex objects with a bit of code. Begins Tuesday, May 4th.

Each course includes five weekly classes beginning in May. Being part of the live class via Zoom offers interactivity with the instructor and other attendees. All tickets are “pay-as-you-wish” with a $20 suggested donation; all proceeds go to socially conscious charities.

For the benefit of all, each class will be edited and published on Hackaday’s YouTube channel once this session has wrapped up. Check out our playlists for past HackadayU courses, or watch them all in one giant playlist.

You might also consider becoming an Engineering Liaison for HackadayU. These volunteers help keep the class humming along for the best experience for students and instructors alike. Liaison applications are now open.

Continue reading “New HackadayU Classes: Antenna Basics, Raspberry Pi Pico, And Designing Complex Geometry”