Arducam Now Working With The RPi Pico

The Raspberry Pi Pico came out of absolutely nowhere, and has taken the maker world by storm. At the low, low cost of $4, packing some seriously grunty original silicon, and even available free on the cover of magazines, it’s already got a legion of fans. As with any new popular platform, there’s a scramble to get everything under the sun running on the hardware. Already, ArduCAM is up and running on the Raspberry Pi Pico!

Based on the OV2640 image sensor, the ArduCAM is useful for microcontroller applications thanks to its onboard JPEG encoder. This limits the amount of RAM needed onboard the microcontroller to deal with the images fed from the camera. With the Pico now on the market, the team behind ArduCAM set about writing a library to get everything playing nicely with the SPI camera. It’s available on Github, complete with an example program so you can check everything is functional right out of the box. The easiest way to get up and running is from a Raspberry Pi environment, but the Pico acts as a USB Mass Storage device so can be programmed from virtually anywhere.

We’ll likely see the whole cavalcade of microcontroller bits and pieces ported to the Pico in the coming months, along with plenty of interesting uses of the special IO features. Video after the break.

Continue reading “Arducam Now Working With The RPi Pico”

Dazzling Desktop Dodecahedron

Much like us, [AGBarber] digs all the infinity polyhedra already out there, but laments the fact that almost all of them are too large to be used as desktop distractions conversation pieces. That’s probably because it’s a lot easier to build ’em big, but that didn’t stop [AGBarber] from trying, succeeding spectacularly, and paving the way for anyone who wants to take on the challenge of building a dazzling desk toy of their own.

We all know that all those little strips of LEDs have to be chained together somehow. Wires would work fine in a larger version, but at roughly softball size, they become a tedious and fiddly nightmare. So what did [AGBarber] do instead? That’s right, they designed two different types of custom corner PCBs. The 3D printed brackets that hold the LEDs and the panels together are no cakewalk, either — [AGBarber] recommends using a resin printer if you have access to one, though it isn’t strictly required.

Everything about this project is open source, including a bonus printable jig for gluing the brackets together at just the right angles. All the steps are well-documented, from applying the mirror film to programming the Wemos D1 mini that controls the lights [AGBarber] programmed in a ton of animations, too, which you can watch after the break.

Want to build a small infinity thingy that isn’t quite so difficult? Crack open a cold one and check out these cool coasters.

Continue reading “Dazzling Desktop Dodecahedron”

Before Google, There Was The Reference Librarian

I know it is a common stereotype for an old guy to complain about how good the kids have it today. I, however, will take a little different approach: We have it so much better today when it comes to access to information than we did even a few decades ago. Imagine if I asked you the following questions:

  • Where can you have a custom Peltier device built?
  • What is the safest chemical to use when etching glass?
  • What does an LM1812 IC do?
  • Who sells AWG 12 wire with Teflon insulation?

You could probably answer all of these trivially with a quick query on your favorite search engine. But it hasn’t always been that way. In the old days, we had to make friends with three key people: the reference librarian, the vendor representative, and the old guy who seemed to know everything. In roughly that order. Continue reading “Before Google, There Was The Reference Librarian”

New Parts, New Hacks

The biggest news this week is that Raspberry Pi is no longer synonymous with single-board Linux computers: they’re dipping their toes into the microcontroller business with their first chip: the RP2040, and the supporting breakout board, the Pico. It’s an affordable, capable microcontroller being made by a firm that’s never made microcontrollers before, so that’s newsy.

The Hackaday comments lit on fire about this chip, with some fraction of the commenters lamenting the lack of wireless radios onboard. It’s a glass-half-full thing, I guess, but the RP2040 isn’t an ESP32, folks. It’s something else. And it’s got a hardware trick up its sleeve that really tickles my fancy — the programmable input/output (PIO) units.

The other half of the commenters were, like me, salivating about getting to try out some of the new features. The PIO, of course, was high on that list, but this chip also caters to folks who are doing high-speed DSP, with fast multiplication routines burnt into ROM and a nice accumulator. (You know you’re a microcontroller nerd when you’re reading through a 663-page datasheet and thinking about all the funny ways you can use and/or abuse the hardware peripherals.)

All chip designs are compromises. Nothing can do everything. The new peripherals, novel combinations of old elements, and just pleasant design decisions, open up new opportunities if you’re willing to seek them out. When the ESP32 was new, I was looking at their oddball parallel-I2S hardware and thinking what kind of crazy hacks that would enable, and clever hackers have proven me right. I’d put my money on the PIO being similar.

New chips open up new possibilities for hacks. What are you going to do with them?

Blue Pill Vs Black Pill: Transitioning From STM32F103 To STM32F411

For many years now, the so-called ‘Blue Pill’ STM32 MCU development board has been a staple in the hobbyist community. Finding its origins as an apparent Maple Mini clone, the diminutive board is easily to use in breadboard projects thanks to its dual rows of 0.1″ pin sockets. Best of all, it only costs a few bucks, even if you can only really buy it via sellers on AliExpress and EBay.

Starting last year, boards with a black soldermask and an STM32F4 Access (entry-level) series MCUs including the F401 and F411 began to appear. These boards with the nickname ‘Black Pill’ or ‘Black Pill 2’. F103 boards also existed with black soldermask for a while, so it’s confusing. The F4xx Black Pills are available via the same sources as the F103-based Blue Pill ones, for a similar price, but feature an MCU that’s considerably newer and more powerful. This raises the question of whether it makes sense at this point to switch to these new boards.

Our answer is yes, but it’s not entirely clearcut. The newer hardware is better for most purposes, really lacking only the F103’s dual ADCs. But hardware isn’t the only consideration; depending on one’s preferred framework, support may be lacking or incomplete. So let’s take a look at what it takes to switch. Continue reading “Blue Pill Vs Black Pill: Transitioning From STM32F103 To STM32F411”

The (Probably) Most Thoroughly Commented Linker Script For The SAM D21 MCU

Linker scripts are one of those things which nobody who does software development really wants to deal with, but like many things in life sometimes they are inevitable to make things work. Although one could keep pretending linker scripts do not exist and let IDEs handle such pesky details, some of us suffer from this unfortunate condition called ‘curiosity’ and just have to know. People like [Thea].

Recently, [Thea] wrote a blog post on exactly what the linker script generated by the Microchip IDE for a Cortex-M-based SAM D21 project does. The result is a nicely annotated overview of the file’s contents, accompanied by links to the Arm and GCC documentation as well as other references where appropriate. The entire linker script (.ld file) can be viewed on GitHub. With the SAM D21 being a popular choice for Arduino and Arduino-compatible board, this article is a good starting point to understanding what a linker script does and how it affects one’s project.

For other (Cortex-M) MCUs this linker script is also useful as a starting point. Especially knowing which sections are required and what changing them affects in the final (ELF) binary and the firmware that is ultimately written to the MCU. We recently covered linker scripts for Cortex-M as well, along with the concept of memory-mapped I/O.