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.
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”→
The board goes heavy on the hardware, equipping the RP2040 with plenty of tools useful for machine learning tasks. There’s a QVGA camera on board, as well as a tiny 0.96″ TFT display. The camera feed can even be streamed live to the screen if so desired. There’s also a microphone to capture audio and an IMU, already baked into the board. This puts object, speech, and gesture recognition well within the purview of the Pico4ML.
Running ML models on a board like the Pico4ML isn’t about robust high performance situations. Instead, it’s intended for applications where low power and portability are key. If you’ve got some ideas on what the Pico4ML could do and do well, sound off in the comments. We’d probably hook it up to a network so we could have it automatically place an order when we yell out for pizza. We’ve covered machine learning on microcontrollers before, too – with a great Remoticon talk on how to get started!
While other smaller RP2040 boards are reaching the marketplace, they all cost a lot more than the $4 of the Pico. Thus, [That Dragon Guy] got creative. Having realised that the bottom section of the board was only full of passive traces and pads, he simply hacked it off with a scroll saw and sander. This gives a 30% reduction in footprint, at the cost of some mounting holes, GPIO pins and the debug interface.
[Markomo] didn’t find much useful information about the Raspberry Pi PIco’s analog to digital converter, so he decided to do some tests to characterize it. Lucky for us, he documented the findings and shared them. The results are in a series of blog posts that cover power supply noise, input-referred noise, signal to noise ratio, and distortions.
There are some surprising results. For example, the Pico’s low noise regulator mode appears to produce more noise than having it set for normal operation. There also appears to be a large spike in nonlinearity around certain measurements.
MIDI has been a great tool for musicians and artists since its invention in the 1980s. It allows a standard way to interface musical instruments to computers for easy recording, editing, and production of music. It does have a few weaknesses though, namely that without some specialized equipment the latency of the signals through the various connected devices can easily get too high to be useful in live performances. It’s not an impossible problem to surmount with the right equipment, as illustrated by [Philip Karlsson Gisslow].
The low-latency MIDI interface that he created is built around a Raspberry Pi Pico. It runs a custom library created by [Philip] called MiGiC which specifically built as a MIDI to Guitar interface. The entire setup consists of a preamp to boost the guitar’s signal up to 3.3V where it is then fed to the Pi. This is where the MIDI sampling is done. From there it sends the information to a PC which is able to play the sound back quickly with no noticeable delay.
[Philip] also had to do a lot of extra work to port the software to the Pi which lacks a lot of the features of its original intended hardware on a Mac or Windows machine, and the results are impressive, especially at the end of the video where he uses the interface to play a drum machine via his guitar. And, while MIDI is certainly a powerful application for a guitarist, we have also seen the Pi put to other uses in this musical realm as well.
[Dave Akerman]’s ongoing high altitude balloon (HAB) work is outstanding, and we’re all enriched by the fact that he documents his work like he does. Recently, [Dave] wrote about his balloon tracker based on the Raspberry Pi Pico, whose capabilities brought a couple interesting features to the table.
In a way, HAB trackers have a fairly simple job: read sensors such as GPS and constantly relay that data to someone on the ground so that the balloon’s location can be tracked, and the hardware recovered when it ultimately returns to Earth. There are a lot of different ways to do this tracking, and one thing [Dave] enjoys is getting his hands on a new board and making a HAB tracker out of it. That’s exactly what he has done with the Raspberry Pi Pico.
Nothing builds familiarity like actually using a part, and the Pico had some useful things to contribute to a HAB tracker application. For one thing, the Pico has an onboard buck-boost converter that allows it to be powered from a relatively wide voltage range (~1.8 V to 5.5 V), so running it directly from batteries is both possible and desirable from a tracker perspective. But a really useful feature was possible thanks to the large amount of memory on the Pico: dynamic landing prediction.
[Dave] does landing prediction prior to launch based on environmental conditions, but it’s always better if the HAB tracker can also calculate its own prediction based on actual observed events and conditions. A typical microcontroller board like an Arduino doesn’t have enough memory to store the required data upon which to do such calculations, but the Pico does so easily. [Dave]’s new board transmits an updated landing site prediction along with all the rest of the telemetry, making the retrieval process much more reliable.
Reddit user [duzitbetter] showed off their design for a 3D-printed programmable macro keyboard that offers a different take on what can be thought of as a sort of 3D-printed PCB. The design is called the Bloko 9 and uses the Raspberry Pi PICO and some Cherry MX-style switches, which are popular in DIY keyboards.
The enclosure and keycaps are all 3D printed, and what’s interesting is the way that the enclosure both holds the components in place as well as providing a kind of wire guide for all the electrical connections. The result is such that bare copper wire can be routed and soldered between leads in a layout that closely resembles the way a PCB would be routed. The pictures say it all, so take a look.