Coin-Sized RA4M1-Zero Board Features 32-Bit RA4M1 MCU
https://fed.brid.gy/r/https://linuxgizmos.com/coin-sized-ra4m1-zero-board-features-32-bit-ra4m1-mcu/
Coin-Sized RA4M1-Zero Board Features 32-Bit RA4M1 MCU
https://fed.brid.gy/r/https://linuxgizmos.com/coin-sized-ra4m1-zero-board-features-32-bit-ra4m1-mcu/
Ví en el canal de YouTube de volosprojects este proyecto (reloj analógico a digital) que acabo de emular… yo a mayores le he creado una pieza en 3d que me sirve de sujeción de la placa #waveshare 1.46 Touch LCD y de cierre del reloj lo que le da solvencia y me gusta el acabado!! #3dprinting
Saw this project on #Instructables from #Moononournation https://www.instructables.com/IoT-Emoji-Sign-V2/
It's a fun project, but I was more interested in the 8x8 #Neopixel #Matrix
So I bought a couple of the #Waveshare #ESP32S3 8x8 boards, and printed out a couple of cases.
The boards work really well - I had an idea in mind when I ordered them, but now I forgot what I wanted to do with them.... I guess I'll make an #emjoi #display after all..... LOL
When a #PCB board designer, manufacturer and seller offers a #3D file of a board and all its measurements are off grid from the real one... 🙄
I'm looking at #Waveshare!
What do you think how I should design a fitting case for it? Tons of test prints and wasted filament? Damn... 😤
Something a bit different - a #Raspberry Pi #CM4 with a CM4-NANO-B carrier board by #Waveshare.
Customer accidentally put this assembly on a metal surface and it did got shorted.
DA9090 PMIC was dead and had been replaced, but it took me quite while to figure out how to make it work again - see the thing is that when you flick the switch on a baseboard CM4 won't turn on. You have to power the whole thing down, flick the switch to ON then then power it 🤦🏻♂️.
Revisiting my Duppa LED Rings this time using Waveshare Zero format devices to support USB MIDI CC controllers.
https://diyelectromusic.com/2025/04/06/duppa-i2c-midi-controller-part-4/
Luckfox Nova Features Cortex-A35 and Onboard Audio Peripherals
ESP32-P4-Module-DEV-KIT Introduces Wi-Fi 6, Dual-Core RISC-V, and Ethernet
Forbidden Planet “Krell” Display PCB Build Guide
Here are the build notes for my Forbidden Planet “Krell” Display PCB. This post just looks at building the PCB for standalone use.
Further posts will explore other uses for this PCB:
Warning! I strongly recommend using old or second hand equipment for your experiments. I am not responsible for any damage to expensive instruments!
If you are new to microcontrollers and electronics, see the Getting Started pages.
Bill of Materials
For the MIDI circuit:
For potentiometer circuit:
For the CV input:
Build Steps
This posts describes a standalone module with two potentiometer controls and a MIDI circuit. For a EuroRack-style module with CV inputs refer to: Forbidden Planet “Krell” Display EuroRack Module.
Taking a typical “low to high” soldering approach, this is the suggested order of assembly:
Here are some build photos.
When it comes to adding the LEDs it is critical to get them in the correct pin order. These boards are designed for LEDs with two long and two shorter legs, with the pins in the order:
The pins need to be slightly bent to fit in the staggered footprint which means it isn’t possible to push the LEDs flush with the PCB. It is worth taking a little care to get them all to approximately the same height and vertically aligned.
Hopefully it goes without saying to be careful of rubbing the hot soldering iron tip on any of the existing plastic components.
As the footprint for the Waveshare Zero is 2.54mm too wide, it is advantageous to use a Waveshare Zero format board to help angle-in the pin headers prior to soldering.
If using full height headers there will probably be enough flex to do this afterwards. If using low-profile headers then it will be necessary to get the angle correct prior to soldering.
In the following note how the large capacitor has been bent over to lie flat.
Also, I didn’t have a 500uF or higher, so used a 470uF in a 10mm diameter package.
Testing
I recommend performing the general tests described here: PCBs.
Here is some test CircuitPython code that will check the functionality of the board with a Waveshare Zero type device. This was used with a Pimoroni Tiny2040 (which has two less pins to the Waveshare Zero devices).
Analog Input
This tests the potentiometers:
import time
import board
from analogio import AnalogIn
analog_in1 = AnalogIn(board.A2)
analog_in2 = AnalogIn(board.A3)
while True:
print(analog_in1.value,"\t",analog_in2.value)
time.sleep(0.1)
On turning each of the potentiometers a value between 0 and 65536 should be printed to the serial console. Note: Mine never seems to get below 256…
LEDs
This can be used to test the LEDs. Requires the following libraries from the Adafruit Circuitpython Library Bundle:
import time
import board
import neopixel
pixel_pin1 = board.GP2
pixel_pin2 = board.GP3
num_pixels = 5
pixels1 = neopixel.NeoPixel(pixel_pin1, num_pixels, brightness=0.3, auto_write=False, pixel_order=neopixel.RGB)
pixels2 = neopixel.NeoPixel(pixel_pin2, num_pixels, brightness=0.3, auto_write=False, pixel_order=neopixel.RGB)
while True:
for col in [(255,0,0),(0,255,0),(0,0,255),(0,0,0)]:
for pix in range(5):
pixels1[pix] = col
pixels1.show()
time.sleep(0.5)
pixels2[pix] = col
pixels2.show()
time.sleep(0.5)
time.sleep(3)
This will light each LED in turn alternating between the upper and lower sets of LEDs and then leave them off for three seconds.
MIDI IN and OUT
This requires the Adafruit MIDI library, which requires the following directory from the Adafruit Circuitpython Library Bundle:
import board
import digitalio
import busio
import adafruit_midi
from adafruit_midi.note_off import NoteOff
from adafruit_midi.note_on import NoteOn
uart = busio.UART(tx=board.GP0, rx=board.GP1, baudrate=31250, timeout=0.001)
midi = adafruit_midi.MIDI(midi_in=uart, midi_out=uart)
while True:
msg = midi.receive()
if (msg is not None):
if (isinstance(msg, NoteOn)):
print (msg)
print ("Note On: \t",msg.note,"\t",msg.velocity)
midi.send(msg)
if (isinstance(msg, NoteOff)):
print ("Note Off:\t",msg.note,"\t",msg.velocity)
midi.send(msg)
This will print out any received NoteOn and NoteOff messages (and only those) on the MIDI IN port and send them back out over the MIDI OUT port.
PCB Errata
There are the following issues with this PCB:
Enhancements:
Closing Thoughts
That is the basics of the board covered. Next will be a discussion of the alternative EuroRack supporting configuration and the physical builds for both versions.
Kevin
The pi I was using recognises an #i2c display from #waveshare but the i2c from the #ups hat E #upshat_e is not seen.
The design and build notes are up for this regardless.
I've uploaded a fixed version of the gerber files, but actually these slightly wonky ones will be fine for most of my own messing about.
https://diyelectromusic.com/2025/03/14/waveshare-zero-midi-proto-pcb-design/
Waveshare Zero MIDI Proto PCB Design
In the spirit of several of the other microconroller prototyping MIDI boards I’ve already made, this is one for Waveshare Zero format boards.
Warning! I strongly recommend using old or second hand equipment for your experiments. I am not responsible for any damage to expensive instruments!
If you are new to microcontrollers, see the Getting Started pages.
The Circuit
This is essentially a 3V3 MIDI IN/OUT circuit, a 7805 based power supply and headers for the prototyping area and the Waveshare Zero format board itself. I’ve included a solder jumper to allow the bypassing of the regulator if a 5V barrel supply is used instead (this can only be used if no regulator is fitted however).
The Waveshare Zero boards can be powered via 5V directly into the 5V pin.
The only pins on the Waveshare that are connected are the power, GND and RX/TX, as these tend to all be in the same place on these boards (more here: Waveshare Zero, Pimoroni Tiny, and Neopixels). All other pins find their way to headers.
PCB Design
This follows the format of my Nano MIDI Proto PCB Design and my XIAO MIDI Proto PCB.
There are a number of additional breakout header sections for the Waveshare Zero IO pins, plus 5V, 3V3, and GND.
All the power related circuitry is together near the top of the board. It includes a 5V header and an option for direct 5V via the barrel jack, if the regulator is left out. It also includes a 3-pin 2.54mm pitch header which can be used for a power switch for the barrel jack connection.
There are overlapping footprints for MIDI DIN and TRS, so either can be populated.
Closing Thoughts
Annoyingly there were two mistakes in the first version of this PCB:
Both of these could be worked around (mostly), but these issues were fixed in the above versions of the board.
Kevin
Has anyone managed to make the #waveshare #ups #hat E work on a #raspberrypi4 ? I have no #i2c data from it at all. Pins look connected. Pi has power over the pins. But no i2c.
https://www.waveshare.com/wiki/UPS_HAT_(E)
Soldered pins also do not work. i2c does not work for protected and unprotected batteries.
#i2c #pogopins connection of #waveshare #ups E (https://www.waveshare.com/wiki/UPS_HAT_(E)) #hat to #raspberrypi4 #gpio appears not to be detected. Anyone have similar problems with #pogopins or are they 99% reliable normally? Thanks
Linux Micro Development Board Now Features 8GB eMMC and PoE Support
#WaveShare appears to be down
#RaspberryPi
https://www.isitdownrightnow.com/waveshare.com.html
Waveshare RP2040 Matrix MIDI Monitor
Following on from my ESP32C3 OLED Mini MIDI Montor and Waveshare Zero, Pimoroni Tiny, and Neopixels this project uses a Waveshare RP2040 mini Matrix display. This is largely the same pinout as the other Waveshare boards, but includes a 5×5 programmable LED (i.e. neopixel-like) matrix.
https://makertube.net/w/cdxAJJvsqsPKrzVg6xWodD
Warning! I strongly recommend using old or second hand equipment for your experiments. I am not responsible for any damage to expensive instruments!
If you are new to microconrtollers, see the Getting Started pages.
Parts list
The Circuit
If used with USB MIDI, then all that is required is to plug the RP2040 Matrix into a computer and it will be able to come up as a USB MIDI device called “CircuitPython Audio”.
If serial MIDI is required, then a Ready-Made MIDI Module supporting 3V3 operation is needed and can be connected to TX/RX on GPIO 0 and GPIO 1 as well as 3V3 and GND.
The Code
I’m using Circuitpython for this one. It uses the same version of Circuitpython as the Waveshare RP2040 Zero – details here. It requires the following libraries to be installed:
The string of Neopixels is hooked up to GPIO16, so can be initialised as follows:
pixel_pin = board.GP16
num_pixels = 25
pixels = neopixel.NeoPixel(pixel_pin, num_pixels, brightness=0.1, auto_write=False, pixel_order=neopixel.RGB)
I’m using the Adafruit MIDI library to pull out NoteOn and NoteOff events and using those to set certain LEDs.
The code can run off USB MIDI or serial MIDI:
# Serial MIDI
uart = busio.UART(tx=board.TX, rx=board.RX, baudrate=31250, timeout=0.001)
midi = adafruit_midi.MIDI(midi_in=uart)
--------
# USB MIDI
midi = adafruit_midi.MIDI(midi_in=usb_midi.ports[0])
As there are only 25 LEDs I set a range of MIDI notes to respond to at the start.
MIN_NOTE=48 # MIDI Note C3
MAX_NOTE=(48+25-1) # MIDI Note C#5
The main loop just cycles around checking for MIDI events and updating the LEDs.
while True:
msg = midi.receive()
if (msg is not None):
if (isinstance(msg, NoteOn)):
if (msg.note >= MIN_NOTE and msg.note <= MAX_NOTE):
pixels[midi2pix(msg.note)] = GREEN;
if (isinstance(msg, NoteOff)):
if (msg.note >= MIN_NOTE and msg.note <= MAX_NOTE):
pixels[midi2pix(msg.note)] = OFF;
pixels.show()
The Neopixel strip is scanned and MIDI is checked every time through the loop, but the display only changes if a NoteOn or NoteOff is received.
In terms of mapping notes to the LEDs, I’m keeping it simple and just using the LEDS in the string order they are already arranged.
This does however mean one compromise – I either go top-left to bottom-right; or bottom-right to top-left. That is because of the ordering of the matrix. There is more here: https://thepihut.com/blogs/raspberry-pi-tutorials/coding-the-waveshare-rp2040-matrix
Ideally, I’d go bottom-left to top-right, but that would mean some fancier mapping of position to note that I’m not bothered about doing at this stage.
Closing Thoughts
At some point I’ll be able to resist a neat, small display, but today is not that day. And it is doubly hard when it is a small LED matrix.
This is a fun little board and I’m chewing over a few other ideas now I’ve got the basics out of the way.
Kevin