techhub.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A hub primarily for passionate technologists, but everyone is welcome

Administered by:

Server stats:

4.6K
active users

#RaspberryPiPico

6 posts6 participants0 posts today
The Last Psion | Alex<p>New <a href="https://oldbytes.space/tags/RP2350" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RP2350</span></a> stepping has been released, fixing the issue that prevented pads from going into high impedance. Plus, a new <a href="https://oldbytes.space/tags/RP2354" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RP2354</span></a> with 2MB flash.</p><p><strong>EDIT:</strong> Also, officially 5V tolerant!</p><p><a href="https://www.raspberrypi.com/news/rp2350-a4-rp2354-and-a-new-hacking-challenge/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">raspberrypi.com/news/rp2350-a4</span><span class="invisible">-rp2354-and-a-new-hacking-challenge/</span></a></p><p><a href="https://oldbytes.space/tags/RaspberryPiPico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RaspberryPiPico</span></a></p>
:rss: Qiita - 人気の記事<p>速習PicoRuby#0 - 機材購入【2025年7月版】<br><a href="https://qiita.com/uproad3/items/70b0888faf46b042a2cf?utm_campaign=popular_items&amp;utm_medium=feed&amp;utm_source=popular_items" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">qiita.com/uproad3/items/70b088</span><span class="invisible">8faf46b042a2cf?utm_campaign=popular_items&amp;utm_medium=feed&amp;utm_source=popular_items</span></a></p><p><a href="https://rss-mstdn.studiofreesia.com/tags/qiita" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>qiita</span></a> <a href="https://rss-mstdn.studiofreesia.com/tags/Ruby" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Ruby</span></a> <a href="https://rss-mstdn.studiofreesia.com/tags/RaspberryPiPico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RaspberryPiPico</span></a> <a href="https://rss-mstdn.studiofreesia.com/tags/picoruby" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>picoruby</span></a></p>
Pyrzout :vm:<p>2025 One Hertz Challenge: Drop the Beat (But Only at 60 BPM) <a href="https://hackaday.com/2025/07/28/2025-one-hertz-challenge-drop-the-beat-but-only-at-60-bpm/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">hackaday.com/2025/07/28/2025-o</span><span class="invisible">ne-hertz-challenge-drop-the-beat-but-only-at-60-bpm/</span></a> <a href="https://social.skynetcloud.site/tags/RaspberryPiPico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RaspberryPiPico</span></a> <a href="https://social.skynetcloud.site/tags/clockhacks" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>clockhacks</span></a> <a href="https://social.skynetcloud.site/tags/contests" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>contests</span></a> <a href="https://social.skynetcloud.site/tags/rp2040" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>rp2040</span></a> <a href="https://social.skynetcloud.site/tags/water" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>water</span></a> <a href="https://social.skynetcloud.site/tags/drip" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>drip</span></a></p>
IT News<p>2025 One Hertz Challenge: Drop the Beat (But Only at 60 BPM) - Mankind has been using water to mark the passage of time for thousands of years. F... - <a href="https://hackaday.com/2025/07/28/2025-one-hertz-challenge-drop-the-beat-but-only-at-60-bpm/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">hackaday.com/2025/07/28/2025-o</span><span class="invisible">ne-hertz-challenge-drop-the-beat-but-only-at-60-bpm/</span></a> <a href="https://schleuss.online/tags/raspberrypipico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>raspberrypipico</span></a> <a href="https://schleuss.online/tags/clockhacks" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>clockhacks</span></a> <a href="https://schleuss.online/tags/contests" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>contests</span></a> <a href="https://schleuss.online/tags/rp2040" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>rp2040</span></a> <a href="https://schleuss.online/tags/water" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>water</span></a> <a href="https://schleuss.online/tags/drip" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>drip</span></a></p>
diyelectromusic<p><strong>Pico Touch Board Audio</strong></p> <p><a href="https://makertube.net/w/tADSyrPrUdR1mx7yKRXZTC" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">makertube.net/w/tADSyrPrUdR1mx</span><span class="invisible">7yKRXZTC</span></a></p>
Simple DIY Electronic Music Projects<p><strong>Pico Touch Board&nbsp;Audio</strong></p><p>I wanted to go back to my <a href="https://diyelectromusic.com/2025/03/02/pico-touch-board-pcb-design/" rel="nofollow noopener" target="_blank">Pico Touch Board PCB&nbsp;Design</a> and see if there was a way to make it more stand-alone. The original design was to make it a MIDI controller, but that isn’t the only option.</p><p><a href="https://makertube.net/w/tADSyrPrUdR1mx7yKRXZTC" rel="nofollow noopener" target="_blank">https://makertube.net/w/tADSyrPrUdR1mx7yKRXZTC</a></p><p><em><strong>Warning!</strong> I strongly recommend using old or second hand equipment for your experiments.&nbsp; I am not responsible for any damage to expensive instruments!</em></p><p>These are the key Arduino tutorials for the main concepts used in this project:</p><ul><li><a href="https://diyelectromusic.com/2025/03/02/pico-touch-board-pcb-design/" rel="nofollow noopener" target="_blank">Pico Touch Board PCB&nbsp;Design</a></li><li><a href="https://diyelectromusic.com/2021/07/11/arduino-pwm-output-filter-circuit/" rel="nofollow noopener" target="_blank">Arduino PWM Output Filter&nbsp;Circuit</a></li></ul><p>If you are new to microcontrollers, see the&nbsp;<a href="https://diyelectromusic.wordpress.com/getting-started/" rel="nofollow noopener" target="_blank">Getting Started</a> pages.</p><p><strong>Parts list</strong></p><ul><li><a href="https://diyelectromusic.com/2025/03/02/pico-touch-board-pcb-build-guide/" rel="nofollow noopener" target="_blank">Pico Touch Board PCB</a> – built</li><li>Resistors: 1x 220Ω, 1x 1K</li><li>Capacitor: 1x 100nF ceramic, 1x 22uF electrolytic</li><li>Breadboard and jumper wires</li></ul><p><strong>The Circuit</strong></p><p>Most of the GPIO are linked out to the touch pads, but the three analog inputs are still available. They are added on to the header on the right hand side of the board at the top, so we can use one of these as an audio output.</p><p>Initially, I thought of connecting it to an 8Ω speaker. If I was using an Arduino then I’d use a 220Ω resistor in series to limit the current to less than 20mA. But as I’m using a Pico, the maximum current has to be a lot less. I seem to recall it is a little complicated, and there are some options, but I have a figure of around 4mA that I tend to work to. It is also running at 3.3V, which means that it would need an in series resistor of 3.3 / 0.004 = 825Ω. This would work, but the speaker will be really quiet!</p><p>So I ditched that idea (there is a software reason too, but I’ll talk about that in a moment) and went straight to a PWM output with a low-pass filter to try to give me some vaguely useful as a line-out signal.</p><p>I’ve not done the calculations, but instead went a bit “hand-wavy”, combing a 1K and 220Ω resistor to drop the voltage, along with a 100nF capacitor. I’ve also added a 22uF capacitor to remove the DC bias.</p><p>That seems to give me something useful, but as you can see from the trace below of a square wave PWM output, there is a lot of room for improvement!</p><p>Update</p><p>Ok, so going back and doing this semi-properly as per my notes from <a href="https://diyelectromusic.com/2021/07/11/arduino-pwm-output-filter-circuit/" rel="nofollow noopener" target="_blank">Arduino PWM Output Filter&nbsp;Circuit</a>, I can see that the 1K and 220Ω resistors can be treated as a 180Ω equivalent (take them as two in parallel) for the filter circuit, which means a cut-off of around 8kHz which ought to be pretty good….</p><p>But reducing a 3V3 signal to around 20% leaves for quite a low level of audio – around 660mV peak to peak. It would probably be better to aim for a reduction of around a half.</p><p>Using a 1K and 500Ω resistor would be an equivalent resistance of 333Ω, so putting that into a low pass filter calculator gives a cut-off frequency of around 5kHz for a 100nF capacitor.</p><p>Weirdly the only thing that really seems to improve things is to raise that capacitor value to 1uF. My calculation would suggest a cut-off frequency of around 480Hz which is pretty small for an audio signal. But it seems to work.</p><p>The PWM frequency I was seeing was coming in at around 120kHz so should be plenty high enough to get filtered out. In the Circuitpython code, it is apparently chosen to support the number of bits required at the base clock frequency whilst being inaudible. For the RP2040 running at 125MHz, and with the chosen 10 bit resolution (<a href="https://github.com/adafruit/circuitpython/blob/main/ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c" rel="nofollow noopener" target="_blank">more here</a>) this is:</p><ul><li>125,000,000 / 1024 = 122,070 Hz</li></ul><p>A 5kHz (or even 8kHz) cut-off I thought ought to be fine, but Davide Bucci on Mastodon explained for me:</p><p>“120kHz is 25 times 4.7kHz, that is about 1.4 decades and with a first-order filter you have a tad less than 30dB of attenuation, that is not a lot. A signal at 3.3V peak to peak at 120kHz becomes about 100 mV on the output after the filter.”</p><p>So switching to 1uF, as Davide explains: “if you put 1µF, you are indeed filtering a decade lower, therefore you gain 20dB in the attenuation and the 100mV become 10mV, much less noticeable.”</p><p>The alternative is to repeat the 1K+100nF stage and add a second order filter which also seems to work pretty well.</p><p>The final circuit that works fine for me at present, will be on of the following.</p><p>The first is less components but assumes that the frequencies won’t go much about ~1KHz or so. That is ok for my current setup but would limit the audio range a fair bit.</p><p>This is the output of the two-stage filter. It is so much better!</p><p><strong>The Code</strong></p><p>I wanted to stick with Circuitpython, so my initial thought was to use simpleio.tone() to generate a tone based on a frequency from an IO pin. However, this has the problem that the code is blocking whilst the tone is playing which isn’t very useful.</p><p>Instead I went straight to synthio. It turns out that using synthio was actually a lot easier than the “simple” simpleio…</p><p>Here is the basic code to generate an ASR-shaped square wave on a PWM audio output on GPIO 28 based on the touch pads as input.</p><pre>import board<br>import touchio<br>import synthio<br>import audiopwmio<br>from adafruit_debouncer import Debouncer, Button<br><br>audio = audiopwmio.PWMAudioOut(board.GP28)<br>synth = synthio.Synthesizer(sample_rate=22050)<br>audio.play(synth)<br>synth.envelope = synthio.Envelope(attack_time=0.1, release_time=0.6, sustain_level=1.0)<br><br>touchpins = [<br> board.GP2, board.GP3, board.GP4, board.GP5,<br> board.GP6, board.GP7, board.GP8, board.GP9,<br> board.GP10, board.GP11, board.GP12, board.GP13,<br> board.GP14, board.GP15, board.GP16, board.GP17,<br> board.GP18, board.GP19, board.GP20, board.GP21, board.GP22<br>]<br><br>THRESHOLD = 1000<br>touchpads = []<br>for pin in touchpins:<br> t = touchio.TouchIn(pin)<br> t.threshold = t.raw_value + THRESHOLD<br> touchpads.append(Button(t, value_when_pressed=True))<br><br>while True:<br> for i in range (len(touchpads)):<br> t = touchpads[i]<br> t.update()<br> <br> if t.rose:<br> synth.press(60+i)<br><br> if t.fell:<br> synth.release(60+i)</pre><p><strong>Battery Power</strong></p><p>One last thing I wanted to explore was if it was possible to power the touchboard with batteries. I left in a number of power options, so for this one I’m using the 5V/GND pin header. I’ve included a couple of capacitors for smoothing, and need to add the 1N5817 diode as shown below.</p><p>This requires the following additional components:</p><ul><li>1x 1N5817 Schottky diode.</li><li>1x 100nF ceramic capacitor.</li><li>1x 47uF electrolytic capacitor.</li><li>Jumper wires.</li><li>3 or 4 battery box.</li></ul><p>The 5V/GND header pins connect to the Raspberry Pi Pico’s VSYS pin via the Schottky diode. The 1N5817 has a typical voltage drop of 0.45V, so combined with the Raspberry Pi’s accepted input voltage of 1.8V to 5.5V this means that ideally two or three AA batteries (at 1.5V each) would work. Four 1.2V rechargeables might be an option too.</p><p>It might be possible to get away with four 1.5V AAs, but that would give an input voltage of just over 5.5V, so I think that is probably pushing things too far. It might be a good use for some spent AAs though that are no longer reading a full 1.5V…</p><p>One of the downsides of battery power is that the touch works best when your fingers are at the same GND potential as the board. It works best if the GND pin of the (unpopulated) barrel jack is touched when using the board.</p><p><strong>Closing Thoughts</strong></p><p>With hindsight it would have been useful to have included a simple PWM output stage on the original board, but it is relatively straight forward to add one.</p><p>It might even be worth me making an add-on board that will connect to the header pins of the power and analog pins containing the simple passive filter components.</p><p>What is pretty impressive though, is how easy it is to use synthio with Circuitpython.</p><p>Kevin</p><p><a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://diyelectromusic.com/tag/circuitpython/" target="_blank">#circuitpython</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://diyelectromusic.com/tag/pwm/" target="_blank">#pwm</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://diyelectromusic.com/tag/raspberry-pi-pico/" target="_blank">#raspberryPiPico</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://diyelectromusic.com/tag/synthio/" target="_blank">#synthio</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://diyelectromusic.com/tag/touch/" target="_blank">#touch</a></p>
Facelesstech<p>Layied out a PCB from scratch today using Kicad 9, really like the improvement. Kinda good to get back into it. It's just a phototype of a pico pad, looks like a really nice platform with loads of support <a href="https://mastodon.social/tags/pico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>pico</span></a> <a href="https://mastodon.social/tags/piPico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>piPico</span></a> <a href="https://mastodon.social/tags/picoPad" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>picoPad</span></a> <a href="https://mastodon.social/tags/RaspberryPiPico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RaspberryPiPico</span></a></p>
Allanon 🇮🇹 :amiga:<p><a href="https://mastodon.uno/tags/picomite" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>picomite</span></a> is pretty powerful, fast, easy and FUN! </p><p><a href="https://mastodon.uno/tags/raspberry" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>raspberry</span></a> <a href="https://mastodon.uno/tags/raspberrypipico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>raspberrypipico</span></a> <a href="https://mastodon.uno/tags/mmbasic" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>mmbasic</span></a></p>
Emory Dunn :tiny_cart:<p>Ok… so just hear me out: what if instead of making progress on this project I instead did a side project where I designed my own RP2040 breakout? I'm really good at copying and pasting my RP2040 component schematic at this point<br> <a href="https://mastodon.tinycart.club/tags/RaspberryPiPico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RaspberryPiPico</span></a></p>
Emory Dunn :tiny_cart:<p>For testing I can probably get by with a shift register for the data, but it's not ideal as I can't build everything on the breadboard as intended on the PCB. </p><p>Or, does anyone know of a breadboard-friendly RP2040 board that breaks out all the GPIO?</p><p><a href="https://mastodon.tinycart.club/tags/RaspberryPiPico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RaspberryPiPico</span></a></p>
FozzTexx<p>Got <a href="https://mastodon.fozztexx.com/tags/FujiNet" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FujiNet</span></a> talking to a <a href="https://mastodon.fozztexx.com/tags/RasberryPi" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RasberryPi</span></a> <a href="https://mastodon.fozztexx.com/tags/Pico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Pico</span></a> via USB! The Pico is acting as a simple RS232 adapter (board borrowed from my Smith-Corona typewriter teletype project). The FujiNet uses the Pico for serial communications instead of GPIO. Why? Because this lays the groundwork for interfacing to other systems, such as Atari 2600, MSX, <a href="https://mastodon.fozztexx.com/tags/A2Pico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>A2Pico</span></a>, or direct bus access plus ROM emulation via <a href="https://mastodon.fozztexx.com/tags/RaspberryPiPico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RaspberryPiPico</span></a>.</p><p><a href="https://mastodon.fozztexx.com/tags/RetroComputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RetroComputing</span></a> <a href="https://mastodon.fozztexx.com/tags/VintageComputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>VintageComputing</span></a></p>
mirobo Technology<p>It&#39;s teacher Tuesday!!</p><p>If you&#39;re teaching with or learning Raspberry Pi Pico programming using <a href="https://techhub.social/tags/MicroPython" class="mention hashtag" rel="tag">#<span>MicroPython</span></a> I&#39;ve just shared five introductory programming activities for BEAPER Pico that you can easily adapt to other circuits!</p><p>Check them out: <a href="https://github.com/mirobotech/BEAPER-Pico" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="ellipsis">github.com/mirobotech/BEAPER-P</span><span class="invisible">ico</span></a></p><p><a href="https://techhub.social/tags/STEM" class="mention hashtag" rel="tag">#<span>STEM</span></a> <a href="https://techhub.social/tags/programming" class="mention hashtag" rel="tag">#<span>programming</span></a> <a href="https://techhub.social/tags/RaspberryPiPico" class="mention hashtag" rel="tag">#<span>RaspberryPiPico</span></a></p>
Stefan Wolfrum :verified:<p>Frisch gebloggt: Den <a href="https://bonn.social/tags/PicoCalc" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PicoCalc</span></a> seriell steuern <a href="https://bonn.social/tags/ClockworkPi" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ClockworkPi</span></a> <a href="https://bonn.social/tags/RaspberryPi" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RaspberryPi</span></a> <a href="https://bonn.social/tags/MMBasic" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>MMBasic</span></a> <a href="https://bonn.social/tags/PicoMite" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PicoMite</span></a> <a href="https://bonn.social/tags/WebMite" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebMite</span></a> <a href="https://bonn.social/tags/RaspberryPiPico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RaspberryPiPico</span></a> <a href="https://blog.metawops.de/gadgets/PicoCalc-seriell-steuern/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">blog.metawops.de/gadgets/PicoC</span><span class="invisible">alc-seriell-steuern/</span></a></p>
Stefan Wolfrum :mastodon:<p>Frisch gebloggt: Den <a href="https://mastodon.social/tags/PicoCalc" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PicoCalc</span></a> seriell steuern <a href="https://mastodon.social/tags/ClockworkPi" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ClockworkPi</span></a> <a href="https://mastodon.social/tags/RaspberryPi" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RaspberryPi</span></a> <a href="https://mastodon.social/tags/MMBasic" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>MMBasic</span></a> <a href="https://mastodon.social/tags/PicoMite" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PicoMite</span></a> <a href="https://mastodon.social/tags/WebMite" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebMite</span></a> <a href="https://mastodon.social/tags/RaspberryPiPico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RaspberryPiPico</span></a> <a href="https://blog.metawops.de/gadgets/PicoCalc-seriell-steuern/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">blog.metawops.de/gadgets/PicoC</span><span class="invisible">alc-seriell-steuern/</span></a></p>
Hacker News<p>Interactive pinout for the Raspberry Pi Pico 2</p><p><a href="https://pico2.pinout.xyz" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">pico2.pinout.xyz</span><span class="invisible"></span></a></p><p><a href="https://mastodon.social/tags/HackerNews" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HackerNews</span></a> <a href="https://mastodon.social/tags/InteractivePinout" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>InteractivePinout</span></a> <a href="https://mastodon.social/tags/RaspberryPiPico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RaspberryPiPico</span></a> <a href="https://mastodon.social/tags/TechInnovation" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TechInnovation</span></a> <a href="https://mastodon.social/tags/MakerCommunity" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>MakerCommunity</span></a> <a href="https://mastodon.social/tags/DIYElectronics" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DIYElectronics</span></a></p>
Pyrzout :vm:<p>Sand Drawing Table Inspired By Sisyphus <a href="https://hackaday.com/2025/06/30/sand-drawing-table-inspired-by-sisyphus/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">hackaday.com/2025/06/30/sand-d</span><span class="invisible">rawing-table-inspired-by-sisyphus/</span></a> <a href="https://social.skynetcloud.site/tags/RaspberryPiPico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RaspberryPiPico</span></a> <a href="https://social.skynetcloud.site/tags/RaspberryPi" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RaspberryPi</span></a> <a href="https://social.skynetcloud.site/tags/MiscHacks" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>MiscHacks</span></a> <a href="https://social.skynetcloud.site/tags/sandtable" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>sandtable</span></a> <a href="https://social.skynetcloud.site/tags/ece4760" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ece4760</span></a> <a href="https://social.skynetcloud.site/tags/sand" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>sand</span></a> <a href="https://social.skynetcloud.site/tags/Art" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Art</span></a></p>
IT News<p>Sand Drawing Table Inspired By Sisyphus - In Greek mythology, Sisyphus was a figure who was doomed to roll a boulder for ete... - <a href="https://hackaday.com/2025/06/30/sand-drawing-table-inspired-by-sisyphus/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">hackaday.com/2025/06/30/sand-d</span><span class="invisible">rawing-table-inspired-by-sisyphus/</span></a> <a href="https://schleuss.online/tags/raspberrypipico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>raspberrypipico</span></a> <a href="https://schleuss.online/tags/raspberrypi" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>raspberrypi</span></a> <a href="https://schleuss.online/tags/mischacks" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>mischacks</span></a> <a href="https://schleuss.online/tags/sandtable" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>sandtable</span></a> <a href="https://schleuss.online/tags/ece4760" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ece4760</span></a> <a href="https://schleuss.online/tags/sand" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>sand</span></a> <a href="https://schleuss.online/tags/art" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>art</span></a></p>
Pyrzout :vm:<p>Meet Cucumber, The Robot Dog <a href="https://hackaday.com/2025/06/27/meet-cucumber-the-robot-dog/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">hackaday.com/2025/06/27/meet-c</span><span class="invisible">ucumber-the-robot-dog/</span></a> <a href="https://social.skynetcloud.site/tags/RaspberryPiPico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RaspberryPiPico</span></a> <a href="https://social.skynetcloud.site/tags/RobotsHacks" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RobotsHacks</span></a> <a href="https://social.skynetcloud.site/tags/robotdog" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>robotdog</span></a></p>
IT News<p>Meet Cucumber, The Robot Dog - Robots can look like all sorts of things, but they’re often more fun if you make t... - <a href="https://hackaday.com/2025/06/27/meet-cucumber-the-robot-dog/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">hackaday.com/2025/06/27/meet-c</span><span class="invisible">ucumber-the-robot-dog/</span></a> <a href="https://schleuss.online/tags/raspberrypipico" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>raspberrypipico</span></a> <a href="https://schleuss.online/tags/robotshacks" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>robotshacks</span></a> <a href="https://schleuss.online/tags/robotdog" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>robotdog</span></a></p>
Simple DIY Electronic Music Projects<p><strong>CircuitPython USB to Serial MIDI&nbsp;Router</strong></p><p>I’ve indirectly used USB and Serial MIDI with CircuitPython a few times now, but haven’t explicitly shown how to use it as a simple USB (device) to serial MIDI converter.&nbsp; This project shows how to do that.&nbsp; Any CircuitPython device should be usable like this, but I’ve used this as an excuse to do something with the Seeedstudio Seeeduino XIAO board.</p><p><em><strong>Warning!</strong> I strongly recommend using old or second hand equipment for your experiments.&nbsp; I am not responsible for any damage to expensive instruments!</em></p><p>These are the key tutorials for the main concepts used in this project:</p><ul><li><a href="https://wiki.seeedstudio.com/Seeeduino-XIAO-CircuitPython/" rel="nofollow noopener" target="_blank">Seeeduino XIAO CircuitPython</a></li><li><a href="https://learn.adafruit.com/cpx-midi-controller" rel="nofollow noopener" target="_blank">Circuit Playground Express USB MIDI Controller and Synthesizer</a></li></ul><p>If you are new to microcontrollers, see the <a href="https://diyelectromusic.wordpress.com/getting-started/" rel="nofollow noopener" target="_blank">Getting Started</a> pages.</p><p><strong>Parts list</strong></p><ul><li>CircuitPython device (e.g. <a href="https://www.raspberrypi.com/products/raspberry-pi-pico/" rel="nofollow noopener" target="_blank">Raspberry Pi Pico</a>, <a href="https://www.adafruit.com/product/3500" rel="nofollow noopener" target="_blank">Adafruit Trinket M0</a>, <a href="https://www.seeedstudio.com/Seeeduino-XIAO-Arduino-Microcontroller-SAMD21-Cortex-M0+-p-4426.html" rel="nofollow noopener" target="_blank">Seeeduino XIAO</a>, etc)</li><li>A 3.3V compatible MIDI module (e.g. one of the&nbsp;<a href="https://diyelectromusic.wordpress.com/2021/03/16/diy-midi-interfaces/" rel="nofollow noopener" target="_blank">DIY MIDI Interfaces</a> or a 3.3V&nbsp;<a href="https://diyelectromusic.wordpress.com/2020/11/30/ready-made-midi-modules/" rel="nofollow noopener" target="_blank">Ready-Made MIDI Module</a>)</li><li>Breadboard and jumper wires</li></ul><p><strong>The Circuit</strong></p><p>If you are using a Raspberry Pi then the circuit is one I’ve used <a href="https://diyelectromusic.wordpress.com/2021/02/15/midi-in-for-3-3v-microcontrollers/" rel="nofollow noopener" target="_blank">several times</a> already.&nbsp; Connect up your 3V3 compatible MIDI module to GND, 3V3, RX and TX.</p><p>If you are using a Trinket M0 then there is a <a href="https://learn.adafruit.com/adafruit-trinket-m0-circuitpython-arduino/pinouts" rel="nofollow noopener" target="_blank">really good learning guide on the Adafruit site</a> that will get you going – again you’ll need the same GND, 3V3, RX and TX pins.</p><p>In my case, I wanted an excuse to do something with a <a href="https://www.seeedstudio.com/Seeeduino-XIAO-Arduino-Microcontroller-SAMD21-Cortex-M0+-p-4426.html" rel="nofollow noopener" target="_blank">Seeedstudio Seeeduino XIAO module</a>.&nbsp; This is a SAMD21G based module with a USB-C connector, and would need to be connected up as follows.</p><p>The general idea is that the CircuitPython device will connect to a PC (or other USB host) as a USB MIDI device and forward any MIDI traffic between the USB MIDI link and a connected serial MIDI module.</p><p><strong>The Code</strong></p><p>The basic idea is relatively straightforward once your device is <a href="https://diyelectromusic.wordpress.com/2021/01/26/midi-circuitpython-cpx-and-pi-pico/" rel="nofollow noopener" target="_blank">up and running with Circuitpython</a> itself (see the Adafruit guides for help to get this far!):</p><pre>Set up the USB MIDI deviceSet up the serial MIDI devicewhile: IF there is a USB MIDI IN message THEN Send it out on the serial MIDI OUT port IF there is a serial MIDI IN message THEN Send it out on the USB MIDI OUT port</pre><p>The only slight quirk is that I try to filter out unrecognised MIDI messages to limit the forwarded traffic, but if you haven’t imported the adafruit_midi representation of a MIDI message, then the code will not recognise it!&nbsp; So I need to pull in the various MIDI message representations at the start of the file.</p><p>Not being a python person myself really, I may well be missing something and there might be a more elegant way to do this, but I have to say I’m not really a fan of how MIDI is implemented in CircuitPython as it feels too hidden away behind “clever layers” for my liking.&nbsp; But having said that, there really is no easier way (at present) for making a USB MIDI device than CircuitPython.</p><p>The code also supports flashing an LED on reception of a MIDI event.&nbsp; For the XIAO this looks like the following:</p><pre>led = digitalio.DigitalInOut(board.D13)led.direction = digitalio.Direction.OUTPUTled.value = Truedef ledOn(): led.value = Falsedef ledOff(): led.value = True</pre><p>With the XIAO the LED is on when led.value = False.&nbsp; For the Raspberry Pi Pico, it would be different again, something like the following (untested, but pasted in from my other code):</p><pre>led = digitalio.DigitalInOut(board.GP25)led.direction = digitalio.Direction.OUTPUTdef ledOn(): led.value = Truedef ledOff(): led.value = False</pre><p>Some boards support the Python/CircuitPython “built in LED” identifier – you might be able to get away with using board.LED above, but the True/False logic still needs setting up correctly for your board.&nbsp; Some boards are now using board.LED_INVERTED too, so just see what works.</p><p>One way to see what is supported is to do the following in the REPL shell when connected to the board:</p><pre>&gt;&gt;&gt; import board<br>&gt;&gt;&gt; dir (board)</pre><p>Also, whilst the XIAO and other boards have board.TX and board.RX defined for the default serial port, the Raspberry Pi Pico does not, so the code to initialise the serial MIDI will also have to be changed to look more like the following for the Pico (this is to use UART 0 on GP0 and GP1).</p><pre>uart = busio.UART(tx=board.GP0, rx=board.GP1, baudrate=31250, timeout=0.001)</pre><p>The original was:</p><pre>uart = busio.UART(tx=board.TX, rx=board.RX, baudrate=31250, timeout=0.001)</pre><p><a href="https://github.com/diyelectromusic/sdemp/blob/master/src/SDEMP/CircuitPython/USBUARTMidiRouter.py" rel="nofollow noopener" target="_blank">Find the XIAO version on GitHub here</a>.</p><p><strong>Closing Thoughts</strong></p><p>As always, I continue my love/hate relationship with CircuitPython (and Python more generally), but I can’t deny, this is still probably the easiest way to get a USB MIDI device to serial MIDI converter up and running!</p><p>Now USB MIDI Host… well that is another story…</p><p>Kevin</p><p><a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://diyelectromusic.com/tag/circuitpython/" target="_blank">#circuitpython</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://diyelectromusic.com/tag/midi/" target="_blank">#midi</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://diyelectromusic.com/tag/raspberry-pi-pico/" target="_blank">#raspberryPiPico</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://diyelectromusic.com/tag/trinket/" target="_blank">#trinket</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://diyelectromusic.com/tag/usb-midi/" target="_blank">#usbMidi</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://diyelectromusic.com/tag/xiao/" target="_blank">#xiao</a></p>