New Video Series: Raspberry Pi Pico And RP2040 Deep Dive With Uri Shaked

In case you’ve been living under a rock that doesn’t have internet access, the Raspberry Pi Foundation got into the silicon sales and microcontroller game all at once this year with the Raspberry Pi Pico. It’s small, it’s capable, and it costs a measly $4. Surely you have one or two of them by now, right? But how much do you know about what it can do?

Or maybe you don’t have one yet, but it’s on your list. In either case, you can get started learning about them right away because [Uri Shaked]’s Raspberry Pi Pico and RP2040 Deep Dive course has recently been freed from the hallowed halls of HackadayU. He even built an emulator to go with it. [Uri] is a great instructor, and we’re sure that goes double if you ever need a salsa dance teacher, which he has also mastered.

This class was held for five weeks beginning in May 2021, with each session being roughly an hour long. The only prerequisite is a basic understanding of bitwise math, but there are resources for that on the class IO page linked above.

Each class is incredibly well-organized and informative. In the first class, [Uri] begins building a living document that includes the class agenda, links to all resources used and mentioned, code examples, and assembly instructions where applicable. It’s basically a syllabus plus a whole lot more. [Uri] also spends a lot of time in the incredibly thorough 649-page data sheet for the RP2040, and a little bit of time in the much shorter Getting Started guide. If you think the data sheet is inaccessible, you’ll likely change your tune by the end of the first class after you’ve seen [Uri] use and peruse it.

Continue reading “New Video Series: Raspberry Pi Pico And RP2040 Deep Dive With Uri Shaked”

Raspberry Pi Pico Oscilloscope

As you dive deeper into the world of electronics, a good oscilloscope quickly is an indispensable tool. However, for many use cases where you’re debugging low voltage, low speed circuits, that expensive oscilloscope is using only a fraction of its capabilities. As a minimalist alternative for these use cases [fhdm-dev] created Scoppy, a combination of firmware for the Raspberry Pi Pico and an Android app to create a functional oscilloscope.

As you would expect, the specifications are rather limited, capturing a maximum of 100 kpts at a speed of 500 kS/s shared between the two channels. Without some additional front end circuitry to protect the Pico, the input voltage is limited to 0-3.3 V. Neither the app nor the firmware is open source, and getting access to the second channel and removing ads requires a ~$3 in-app purchase. Even so, we can still think of plenty of practical uses for a ~$7 oscilloscope. If you do decide to add some front-end circuitry to change to voltage range, you can set them in the app, and switch between them by pulling certain GPIO pins high or low. The app has most of the basic oscilloscope features covered, continuous and single shot capture, adjustable trigger settings and a scalable waveform display.

Simple, cheap oscilloscopes like these have their place, but you start to understand why the “real” ones are so expensive when you see what goes into developing a high performance oscilloscope.

VGA Library For The Raspberry Pi Pico

[Miroslav Nemecek] really pushes the limits of the Pico with his PicoVGA project, which packs a surprising number of features. His main goal with this library is to run retro games which can fit within the limited RAM and processing power of the Pico, but the demo video below shows a wide array of potential applications.

The library provides a whole slew of features, including frame buffering, sprites, overlays, and resolutions up to 1280×960 in either NTSC or PAL timings. A PWM-driven audio output channel is also included in the package. His library takes full advantage of the programmable I/O module functionality and uses the second core which is dedicated to video processing. However, with care, the second core can perform application tasks in certain circumstances. The VGA analog output signals are provided by resistor ladders, and pixel color is 8-bit R3G3B2 format. To be clear, [Miroslav] does cheat a little bit here in one regard — he overclocks the processor up to 270 MHz to meet the timing demands in some of the resolutions.

[Miroslav] has developed these tools using ARM-GCC on Windows, but he lacks the experience to make a Linux build. He welcomes help on that front from anyone familiar with Linux. And stay tuned — there may be more coming from [Miroslav] in the future. He notes that the PicoVGA library was created as part of a retro gaming computer project which is still under development. We look forward to hearing more about this when it gets released.

A couple of weeks ago we wrote about a monochrome VGA version of Pong for the Pico by [Nick Bild]. It’s exciting to see these projects which are exploring the limits of the Pico’s capabilities. Have you seen any boundary-pushing applications for the Pico? Let us know in the comments below. Thanks to [Pavel Krivanek] for sending this project to our tip line.

Continue reading “VGA Library For The Raspberry Pi Pico”

Tiny Mechanical Keyboard, Powered By Pi Pico

For some applications, smaller is better and that is precisely the thinking behind a diminutive keyboard like the PiPi Gherkin, which is designed to use the Raspberry Pi Pico as its controller. This keyboard may have only 30 keys in total, but they are full-sized for comfort and don’t let the scant layout mislead you. It has more functionality than it would seem to at first glance; the entire bottom row acts as dual function tap/hold keys, allowing the keyboard to shift layers on the fly.

This keyboard definitely has a a thoughtful layout, and we’re not just talking about the tap/shift functionality. We especially like the way the Pi Pico is tucked neatly underneath the main PCB, taking up very little room while exposing its USB connector between two standoffs for easy access without requiring an adapter, or wiring a separate plug.

If the Gherkin sounds familiar, we’ve seen it before as part of this lunchbox cyberdeck build, where the small size allowed it to take up impressively little room. The shifting might take a little getting used to, but it’s a clean design that uses full sized keys, so when it comes to small keyboards one could certainly do worse.

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”

Pi Pico Project Plays Pong Perfectly

Even as technology keeps progressing, we find ourselves coming back to the classics again and again. Pong is quite possibly the classic game, and the Raspberry Pi Pico is one of the latest microcontrollers. So [Nick Bild] combined them expertly in his Pico Pong project, which includes gesture controls and a custom VGA output.

Rolling your own VGA signal is no simple feat, and this project takes full advantage of the Pico’s features to pull it off. Display data is buffered in memory, while a Programmable I/O (PIO) program reads straight from the buffer via Direct Memory Access (DMA) and writes straight to the display. This allows for nanosecond-precision while leaving the CPU free to handle inputs and run the game. Even with the display work offloaded, the ARM processor had to be massively overclocked at 258 MHz, well over its 133 MHz specs, to make things run smoothly. And still [Nick] found himself limited to a 640×350 resolution and serendipitously-retro-accurate monochrome color scheme.

Gesture controls come from a pair of IR light beams hooked up to the GPIO. IR LEDs shine up toward reflectors, and the light bounces back down to detectors. Blocking one of the beams causes your paddle to move up or down, which looks pretty responsive in the video (embedded below).

We’ve seen [Nick] play Pong before, though at that time it was handheld and based on the venerable 6502. And just recently we wrote about the Raspberry Pi Pico powering another classic game: Snake.

Continue reading “Pi Pico Project Plays Pong Perfectly”

Play Your Favorite Nokia Game On The Raspberry Pi Pico

In many people’s memories, Snake lived and breathed on Nokia handsets from the late 90s and early 2000s. However, the game has been around for much longer than that, and will continue to live on in the future. That’s at least in part thanks to people like [Hari Wiguna] keeping it alive by implementing it on new platforms.

[Hari] set about writing Snake in MicroPython for the Raspberry Pi Pico. The hardware side of things is simple enough – five buttons hooked up to the Pico, along with an 128×64 I2C OLED screen to display the game on. On the software side of things, [Hari] pushed the boat out, deciding that his version of Snake had to have the player character slither like the real thing. This took a little effort to get right, particularly when navigating corners in different directions. However, perseverance paid off and [Hari] got the job done.

Code is on GitHub for those that want to tinker at home. It’s a tidy piece of work, though not the weirdest place we’ve seen the game appear – we’ve actually seen it run within PCB routing software before thanks to some nifty scripting. Video after the break. Continue reading “Play Your Favorite Nokia Game On The Raspberry Pi Pico”