This is only a preview of the August 2026 issue of Practical Electronics. You can view 0 of the 80 pages in the full issue. Items relevant to "USB-C Power Monitor, part one":
Articles in this series:
Articles in this series:
Articles in this series:
Articles in this series:
Articles in this series:
Articles in this series:
|
Constructional Project
RP2350B Computer
Words & MMBasic by Geoff Graham | Design & Firmware by Peter Mather
This board is an improved version of the Pico 2 Computer
that requires almost no soldering, has more I/O pins
available, a much improved stereo audio output and a few
other nice tweaks.
› RP2350B Computer Assembled Module (SC7531, $90)
includes a fully-assembled PCB, except for the optional components
› RP2350B Computer Front & Rear Panels (SC7532, $7.50)
pre-cut panels with white silkscreen printing on a black solder mask
T
his new low-cost computer can run
BASIC programs and is excellent
for creating applications, games,
controlling external circuits and generally messing around with an easyto-use but capable computer.
It is based on the RP2350B chip,
which is similar to the RP2350A used
in the Raspberry Pi Pico 2 module.
Using this expanded version of this
chip, with extra pins, allows us to
PWM
PWM0B
Serial
COM1 RX
PWM1B
PWM2B
COM2 RX
COM1 RX
PWM10B
PWM11B
PWM8B
COM2 RX
PWM10B
I²C SCL
ANALOG PINS
28
SPI TX
I²C SCL
I²C2 SCL
COM1 RX
SPI TX
I²C SCL
I²C2 SCL
PWM9B
SPI TX
I²C SCL
I²C2 SCL
COM2 RX
SPI TX
I²C SCL
I²C2 SCL
PWM9B
SPI
I²C SCL
I²C2 SCL
PWM3B
PWM8B
I²C
SPI2 TX
provide many very useful and powerful features.
Some of the features of this design
include:
∎ A low-cost boot-to-BASIC computer with keyboard support and video
output.
∎ DVI/HDMI video output with resolutions up to 1280 × 720 pixels.
∎ An accurate internal clock that is
battery backed.
Function
I/O Pin
GND
1
2
Function
∎ Support for up to four USB devices, including keyboards, mice and
game controllers.
∎ A microSD card socket supports
cards formatted in FAT16 or FAT32
with capacities up to 32GB.
∎ A built-in full-featured BASIC
interpreter that includes its own fullscreen editor, support for programs up
to 184kiB and general purpose RAM
of 220kiB.
SPI
I²C
Serial
PWM
COM1 TX
PWM0A
GND
3.3V
3
4
3.3V
GP01
5
6
GP00
SPI RX
I²C SDA
GP03
7
8
GP02
SPI CLK
I²C2 SDA
GP05
9
10
GP04
SPI RX
I²C SDA
GP07
11
12
GP06
SPI CLK
I²C2 SDA
GP33
13
14
GP34
SPI CLK
I²C2 SDA
GP35
15
16
GP36
SPI RX
I²C SDA
GP37
17
18
GP38
SPI CLK
I²C2 SDA
GP39
19
20
GP40
SPI2 RX
I²C SDA
GP41
21
22
GP42
SPI2 CLK
I²C2 SDA
GP43
23
24
GP44
SPI2 RX
I²C SDA
GP45
25
26
GP46
SPI2 CLK
I²C2 SDA
5V
27
28
5V
GND
29
30
GND
Table 1 – GPIO Pin Capabilities
PWM1A
COM2 TX
PWM2A
PWM3A
PWM9A
COM2 TX
PWM10A
PWM11A
COM2 TX
PWM8A
COM1 TX
PWM10A
PWM9A
PWM11A
note that pin 1 is at the bottom right of the PCB
Practical Electronics | August | 2026
RP2350B Computer
∎ It uses an RP2350B processor soldered directly to the PCB with supporting components that make overclocking of the processor (to support
HDMI video) easier. That means you
don’t need to obtain and solder a Pico
2 module to the board; it’s available
fully pre-assembled and ready to use.
All you have to do is load the firmware
into it (which is easy with a computer
and a USB cable) and away you go.
∎ It includes a proper audio output
with a built-in digital-to-analog converter (DAC) to deliver high-fidelity,
noise-free stereo audio.
∎ It provides many general purpose I/O (GPIO) pins for connecting to
external circuits. This includes seven
that are analog-capable (they can measure voltages).
∎ It has support for a PSRAM chip
that can add 6MiB of additional RAM
for MMBasic.
∎ It uses a larger flash memory chip
that provides a 14MiB internal “A:”
drive.
With this self-contained, low-cost
computer, you can have fun creating
your own programs, learning or teaching programming, or simply have fun
exploring an easy-to-use computer
with a lot of potential. It also makes a
capable embedded controller.
Video output
The video output is DVI/HDMI
in six resolutions: 640 × 480, 720
× 400, 800 × 600, 848 × 480, 1280
× 720 and 1024 × 768 pixels. The
firmware generates a DVI signal,
but HDMI monitors automatically
support DVI, so this is transparent.
That means we can use an HDMI
connector for video output, which
is the standard for modern monitors. However, you cannot use other
HDMI features, such as audio, over
the HDMI cable.
Using the MODE command, you can
select a variety of colours and resolutions, with lower resolutions supporting more colours.
The built-in BASIC program editor
uses the full resolution and, by using
the TILE functionality, colours characters for you. Keywords are cyan, comments are green etc. This makes for a
colourful and intuitive program editing experience.
Four Type-A USB sockets are provided, supporting USB keyboards,
mice and game controllers. The keyboard input includes support for the
Practical Electronics | August | 2026
function keys, arrow keys, etc and can
handle wireless keyboards with a USB
dongle, so you do not need to be restricted by a cable.
A USB mouse is very useful with
the built in MMBasic program editor,
where it gives you the ability to position the insert point and copy and
paste using the mouse.
Within a BASIC program, you can
query the mouse position and the
state of the buttons and, as with the
keyboard, you can also use a wireless mouse.
One or two USB game controllers
can also be used. Within the BASIC
program, you can get the current position of the joystick and discover
what buttons are pressed. This is most
useful if you are creating games for
the computer.
Digital audio
One excellent feature of this Computer is that it has an I2S interface to
a separate DAC (digital-to-analog converter) chip for the audio output. I2S
was developed by Philips Semiconductor (now NXP Semiconductors)
as an interface for transferring digital
audio between a microcontroller and
a DAC in an appliance.
Many Pico-based computers use
a pulse-width modulation (PWM)
scheme for generating their audio
output, which requires a low-pass
filter to remove the carrier frequency.
This is a simple method for generating
the audio but, even with advanced
filter designs, some of the carrier frequency still reaches the output, and
the filter reduces the high-frequency
range of the audio signal.
In this design, the I2S signal is processed by a dedicated 32-bit audio DAC
chip. The I2S protocol transfers data
as numbers, so the audio frequency
response is perfectly flat from 20Hz
to 20kHz. Purists with good audio
systems will appreciate this feature
as MMBasic can play files in highquality stereo WAV, FLAC, MP3 or
MOD formats.
External storage is provided by a
microSD card slot, which can accept
cards up to 32GiB formatted in FAT16
or FAT32. The files created can be read/
written on personal computers running Windows, Linux or macOS. The
PicoMite firmware uses the SPI protocol to communicate with the card,
with all types (Class 4, 10, UHS-1 etc)
being supported.
Processor: Raspberry Pi
RP2350B (dual-core ARM
Cortex-M33 & dual Hazard3
RISC-V)
Clock Speed: 252-375MHz
(depending on the video resolution)
Firmware: PicoMite/MMBasic
V6.00.03 or greater
Non-volatile program memory:
184kiB
General usage RAM: 220kiB
(expandable to over 6MiB)
Internal File Storage: 14MiB
Removable file storage: microSD
Card, FAT16/FAT32, up to 32GiB
Video output: DVI via an HDMI
connector <at> 640 × 480, 720 ×
400, 800 × 600, 848 × 480,
1280 × 720 or 1024 × 768 pixels
Audio output: 5.5V peak-to-peak
(2V RMS), response flat from
20Hz to 20kHz
Audio formats supported: singlefrequency tones, stereo WAV,
FLAC, MP3 & MOD
USB ports: four Type-A for
peripherals, one Type-C for power/
console and one micro Type-B for
firmware loading
Keyboard support: standard or
wireless USB keyboard (without a
built-in mouse)
Mouse input: standard or wireless
USB mouse
Gamepads: up to two SNES
controllers with USB Type-A
connectors
Clock: battery-backed real-time
clock & calendar (typical accuracy
±3sec/month)
External console: serial over USB
<at> 115200 baud via the USB
Type-C socket
External I/O connector: 30 pins
with 22 GPIOs, including 7 with
analog input ability, plus ground,
3.3V and 5V outputs
Power supply: 5V <at> 220mA via
the rear USB Type-C socket
PCB size: 100 × 90mm
Optional case size: 130 × 100 ×
30mm
29
Constructional Project
30
Practical Electronics | August | 2026
RP2350B Computer
A battery-backed real-time clock
and calendar (RTCC) keeps track of
the correct time, which can be accessed from within a BASIC program. It is also used to stamp files
with the correct creation time. This
clock is very accurate (within a few
seconds per month), and is supported by a battery when the power is
removed, so you will rarely need to
set the time.
For controlling external devices
and circuits, 22 GPIO pins are brought
out to a 30-pin connector on the rear
panel. All of these can be set as a digital input, digital output or a mixture of
serial I/O, I2C, SPI, PWM and analog
inputs. Also provided on this connector are the ground pins, +5V and
+3.3V power supply outputs. Table 1
lists the pins on this connector and
their functions.
Circuit details
Fig.1: this is the full circuit
for the RP2350B Computer.
At the centre is the RP2350B
processor in a QFN-80
package. It has 48 general
purpose I/O (GPIO) pins, many
of which are used for internal
functions, with the rest routed
to the I/O connector on the
rear panel (CON8). Other
major components are the
four-port USB hub (IC20), the
stereo audio DAC (IC27) and
the power supplies (including
REG1 & REG34).
Practical Electronics | August | 2026
Fig.1 shows the full circuit for
the RP2350B Computer, which is
based around the RP2350B processor (IC28) in an 80-pin QFN package.
This chip has 48 GPIO pins, many
of which are used for internal functions (HDMI/DVI video, SD card interface etc). As noted above, 22 are
routed to the I/O connector (CON8)
on the rear panel.
The default clock rate for the
RP2350B processor is 150MHz, but
to generate HDMI video, we need
to overclock it up to 375MHz. To
support this, we use an integrated
crystal oscillator to generate the
base clock of 12MHz, which is multiplied in the RP2350B to give the
core CPU clock.
Using a dedicated oscillator results
in a more stable clock with much less
jitter than using a simple crystal as
used in the Raspberry Pi Pico 2 module,
which helps with overclocking.
The RP2350B has eight analog inputs
(pins 49 to 58), with seven of these
available on CON8. To support accurate analog measurements, we have
included a noise filter for the AVDD
pin on the chip. AVDD is used as the
reference for analog measurements and
this filter, along with the PCB layout
and a noise-free 3.3V supply, ensure
that accurate and noise-free analog
measurements can be made.
Flash & PSRAM memory
The PicoMite firmware, the BASIC
program and other data is held in IC6,
31
Constructional Project
The RP2350B Computer uses a small 100 × 90mm PCB with the RP2350B processor soldered directly to the board. This is
difficult to hand-solder, so we recommend either buying the board fully assembled from the Electron Publishing/Practical
Electronics shop, or having it assembled by a company with a pick & place machine.
a Winbond W25Q128JVSIQ 128Mbit
(16MiB) flash memory chip. This uses
a quad SPI interface, and is designed
to allow the RP2350B to execute its
program directly from this chip. It can
also operate with high clock speeds
on the quad SPI interface (133MHz),
which means that it can keep up when
the RP2350B is overclocked.
Even though the SPI interface transfers
data four bits at a time, and has a high
clock speed, it is still quite slow compared to the RP2350B’s on-chip memory.
To reduce this effect, the RP2350B uses a
built-in SRAM cache, and the firmware
is configured to move critical sections
of its code to the on-chip RAM for execution. As a result, there is very little
impact on the performance from using
off-chip flash memory.
On startup, the RP2350B checks if
the flash memory is present and that it
contains a valid program. If either are
not found, it will automatically enter
its firmware load mode. This involves
creating a pseudo flash memory drive
on the USB interface that looks like
a USB drive to a Windows, Linux or
macOS computer. You can use this
interface to copy new firmware to the
flash memory.
In our design, the BOOT switch is
used to pull the chip select line low on
32
the flash memory chip, which essentially disables it. When used on powerup, this causes the RP2350B to enter
its firmware loading mode.
IC33 is an optional external PSRAM
chip (APS6404L-3SQR-SN) that sits
on the same quad SPI bus as the flash
memory chip. This has a capacity of
64Mbits (8MiB) and is used to expand
the internal RAM of the RP2350B. The
PicoMite firmware will automatically
add this to the general purpose RAM
seen by the BASIC interpreter, allowing the BASIC program to define very
large arrays.
The internal RAM of the RP2350B
is more than enough for the vast majority of applications, so we have left
this footprint vacant on assembled
boards. Still, if you want to create truly
enormous arrays in MMBasic, you can
easily add the specified chip yourself.
It comes in an easy-to-solder package
and MMBasic will automatically recognise it once it is installed.
Be warned that PSRAM is a lot slower
than the internal RAM, so there will
be a performance penalty when using
the extra RAM it provides.
USB interfaces
The RP2350B processor includes a
USB interface and this, along with an
onboard USB hub, provides four USB
ports for a keyboard, mouse and gamepads. The hub function is provided
by IC20, a CH334F integrated USB
2.0 four-port hub. This chip includes
the USB 2.0 driver circuits (called the
USB PHY) that directly drive the four
USB Type-A sockets on the front panel.
The CH334F also uses an ingenious
system to drive the indicator LEDs
showing which USB ports are active.
Some CH334F chips on the market
have a fault that causes the power
protection feature of the CH334F to
interfere with its operation so, in our
design, we disable this feature. Resettable fuse PTC1 provides the necessary
protection anyway.
To load MMBasic onto IC28, you
need to disconnect the hub and directly access the USB interface on
the RP2350B. This is done with two
switches (S16), which isolate the hub,
and an additional Type-B micro-USB
connector mounted on the PCBs front
edge (CON5). This is only used to load
the MMBasic firmware; the procedure
will be described in detail later.
Because the USB interface on the
RP2350B is used for communicating
with the USB hub, it cannot be used
for a serial-over-USB console to communicate with a desktop or laptop
Practical Electronics | August | 2026
RP2350B Computer
Parts List – RP2350B Computer (also see BOM XLS file)
computer. Having the serial console is
handy for connecting to such a computer, so we use a CH340C serial-toUSB bridge chip (IC7) to provide such
a console interface.
The CH340C is in a 16-pin package
that includes the oscillator required to
maintain the accurate timing needed
for USB. It converts a TTL asynchronous serial signal from the RP2350B
to a USB 2.0 signal using the CDC
(communication device class) protocol over USB.
IC19 is a DS3231 real-time clock
& calendar (RTCC) that provides the
time and date to MMBasic. This is an
extremely accurate timekeeper with
an integrated temperature compensated oscillator (TCXO) and it will typically keep the time within a few seconds per month. This uses a 210mAh
3V lithium coin cell (CR2032) as the
backup; the DS3231 will automatically
switch to this when the 3.3V power is
removed. The current drawn from this
cell is very low, so the battery should
last for many years.
The HDMI interface is one of the
simpler parts of the circuit. The eight
signal lines from the RP2350B are directly connected via 220W resistors
to the HDMI connector (CON1), with
no other components needed. The
RP2350B produces a DVI signal, but
HDMI transparently supports DVI so
this works as the user would expect.
The SD card interface is also quite
simple, with the SD card plugged into
CON6 being directly driven by four sequential signal lines from the RP2350B
(GPIO29 to GPIO32).
The stereo audio output is generated by the firmware running on the
RP2350B as an I2S data stream, which
is fed to IC27, a Texas Instruments PCM5102APWR 16/24/32-bit audio DAC.
Three signal lines from the RP2350B
(GPIO10, GPIO11 and GPIO22) form
the I2S channel. The DAC generates
two analog audio outputs of about 2V
RMS, which are coupled to the audio
output jack, CON7.
Power supply
The input power for the board is
+5V supplied via the rear panel USB-C
socket for power and the external console (CON2). The 5V rail powers the
front-panel USB ports, but the rest of
the Computer runs from 3.3V. A simple
AMS1117-3.3 linear regulator, REG1,
produces the 3.3V rail. Using a linear
regulator avoids the electrical noise
Practical Electronics | August | 2026
1 double-sided PCB coded 07204251, 90 × 100mm
1 Multicomp MCRM2015S or Hammond RM2015S instrument case (optional) AND
1 pair of black front & rear panel PCBs (07204252-3, 124 × 27mm each) OR
4 M3-tapped Nylon spacers and M3 × 6mm panhead machine screws (for feet)
1 CR2032 3V lithium coin cell (BAT1)
2 10μH 500mA 0.32W M2012/0805 SMD inductors (L13, L14)
[Microgate MGFL2012F100MT-LF]
1 10μH 15mA 1.15W M2012/0805 SMD inductors (L29) [Sunlord SDFL2012S100KTF]
1 30V 750mA resettable polyfuse, M3216 size (PTC1) [BHFuse BSMD1206-075-30V]
1 latching right-angle PCB-mount pushbutton (S13) [XKB Connectivity XKB5858-Z-E]
1 right-angle tactile pushbutton switch, 6mm actuator (S15) [HCTL TC-6615-7.5-260G]
1 dual DIP switch (S16) [YE DSWB02LHGET]
1 momentary SMD tactile pushbutton switch (S17) [XKB Connectivity TS-1187A-B-A-B]
Connectors
1 CR2032 cell holder (BAT1) [Myoung BS-04-A1BJ005]
1 HDMI socket (CON1) [HCTL HDMI-01]
1 USB-C Socket (CON2) [Kinghelm KH-TYPE-C-16P]
2 right-angle horizontal stacked USB Type-A sockets (CON3, CON4)
[Shou Han AF SS-JB17.6]
1 USB micro Type-B socket (CON5) [Shou Han MicroXNJ]
1 microSD card socket (CON6) [Shou Han TF PUSH]
1 SMD stereo audio jack socket (CON7) [Shou Han PJ-313 5JCJ]
1 2×15-pin right-angle 2.54mm-pitch header (CON8) [HCTL PZ254-2-15-W-8.5]
1 3-pin header, 2.54mm pitch (CON9) (optional; for serial wire debugging)
1 50kW 3.8 × 3.6mm SMD trimpot (VR1) [Bourns TC33X-2-503E]
Semiconductors
1 Raspberry Pi RP2350B microcontroller, QFN-80 (IC28)
1 128Mbit QSPI flash memory, SOIC-8 (IC6) [Winbond W25Q128JVSIQ]
1 CH340C serial/USB bridge, SOIC-16 (IC7)
1 DS3231MZ real-time clock & calendar, SOIC-8 (IC19)
1 CH334F quad USB hub, QFN-24 (IC20)
1 MAX809R reset supervisor IC, SOT-23-3 (IC24)
1 PCM5102APWR stereo DAC, TSSOP-20 (IC27)
1 APS6404L-3SQR-SN 64Mbit QSPI PSRAM, SOIC-8 (IC33) (optional)
1 12MHz crystal resonator, 3.2 × 2mm SMD-4 (X1) [YXC X322512MSB4SI]
1 12MHz oscillator module, 3.2 × 2mm SMD-4 (XO4)
[TOGNJING XOS32012000LT00351005]
1 AMS1117-3.3 low-dropout 3.3V linear regulator, SOT-223-3 (REG21)
1 TPS7A7002DDAR adjustable low-dropout voltage regulator, SOIC-8 (REG34)
1 AP2317A P-channel Mosfet, SOT-23-3 (Q2)
1 red SMD LED, M2012/0805 size (LED1) [Foshan NationStar NCD0805R1]
1 red SMD LED, M1608/0603 size (LED2) [Hubei KENTO Elec KT-0603R]
5 green SMD LEDs, M1608/0603 size (LED3-LED7) [Hubei KENTO Elec KT-0603R]
2 SS14 40V 1A schottky diodes, SMA package (D1, D2)
Capacitors
3 100μF 6.3V B-case tantalum electrolytic [AVX TAJB107K006RNJ]
1 22μF 25V X7R M3216/1206 ceramic [Samsung CL31A226KAHNNNE]
7 10μF 50V X5R M3216/1206 ceramic [Samsung CL31A106KBHNNNE]
1 10μF 25V X5R M2012/0805 ceramic [Samsung CL21A106KAYNNNE]
2 2.2μF 16V M1608/0603 X5R ceramic [Samsung CL10A225KO8NNNC]
1 2.2μF 6.3V M1206/0402 X5R ceramic [Samsung CL05A225MQ5NSNC]
2 100nF 100V M2012/0805 X7R ceramic [Samsung CL21B104KCFNNNE]
2 100nF 50V M2012/0805 X7R ceramic [Yageo CC0805KRX7R9BB104]
1 100nF 50V M1206/0402 X7R ceramic [Samsung CL05B104KB54PNC]
23 100nF 16V M1206/0402 X7R ceramic [Samsung CL05B104KO5NNNC]
1 10nF 50V M2012/0805 X7R ceramic [Samsung CL21B103KBANNNC]
2 2.2nF 50V M2012/0805 NP0/C0G ceramic [Samsung CL21C222JBFNNNE]
1 1nF 50V M2012/0805 X7R ceramic [Samsung CL21B102KBCNNNC]
Resistors (all SMD 1%)
1 1MW (M1206/0402 size)
2 1kW (M1608/0603 size)
2 20kW (M1206/0402 size)
3 470W (M1608/0603 size)
2 10kW (M2012/0805 size)
2 220W (M2012/0805 size)
4 10kW (M1206/0402 size)
9 220W (M1608/0603 size)
2 5.1kW (M1206/0402 size)
2 10W (M2012/0805 size)
1 4.7kW (M2012/0805 size)
1 2.2W (M2012/0805 size)
33
Constructional Project
created by a switching regulator, which
can interfere with sensitive circuits
such as analog inputs.
A system supervisor device (IC24,
MAX809R) is used to monitor the
3.3V power rail and provide a reset
signal to the RP2350B processor, to
ensure it shuts down cleanly when
the power is removed. It drives the
reset pin of the RP2350B low immediately when the voltage falls below a
certain threshold, and will maintain it
low for a short time after it has risen
above the threshold.
In addition to the main 3.3V power
supply, the RP2350B needs a second
power supply called the Digital Core
Supply (DVDD), which powers the
CPU cores. Normally this is 1.1V, but
for the clock speeds needed to generate
HDMI video, it needs to be set higher
(typically 1.3V).
In the Raspberry Pi Pico 2 module,
this voltage is provided by a switching
regulator that is integrated in the RP2350
chip but that causes some problems, including the need for an expensive and
hard-to-source inductor. To avoid this,
we use an external linear regulator, a
TPS7A7002DDAR (REG34), which must
be correctly adjusted before power is applied to the computer. The procedure
for this is described later.
Building it
Fig.2 shows where all the parts go
on the PCB. This design makes extensive use of surface-mounting parts.
While these can all be hand-soldered,
it is not easy, and can be quite timeconsuming.
So, while it is possible to assemble
this computer by hand, we recommend either buying it assembled from
www.electronpublishing.com/product/
rp2350b-computer/ or having it assembled by a PCB fabricator.
For the latter, we recommend JLCPCB
in China. The process of ordering the
assembled boards from them is simple.
First, download three files from the
siliconchip.au/Shop/10/3259. These
are “RP2350B Computer Gerbers.zip”,
which contains the design files for the
PCB, “RP2350B Computer BOM.xlsx”,
which is the Bill of Materials (parts
list), and “RP2350B Computer CPL.
xlsx”, which contains the component
positions on the PCB.
On the JLCPCB website (https://
jlcpcb.com), click on the “Instant
Quote” button and drag the “RP2350B
Computer Gerbers.zip” file onto the
34
Fig.2: the overlay
diagram for
the RP2350B
Computer. We
recommend
having the
board preassembled due
to the QFN-80
package RP2350B
microcontroller.
Note: if you’re
not using the
Computer with
an enclosure,
make sure not to
leave it where
children have
access to it alone.
Due to the risk of
them swallowing
the cell.
blue button labelled “Add Gerber File”.
JLCPCB will then read the files, display
an image of the PCB and fill in the defaults for manufacturing options such as
thickness, colour etc. You might want
to select a different colour for the solder
mask, but you can leave these options
at the suggested defaults.
Scroll to the bottom of the page and
select “PCB Assembly”. This will display more options, which you can also
leave at their defaults – other than selecting how many boards you want
them to assemble (their minimum is
two). Then click on the “Next” buttons until you reach the page requesting the BOM and CPL files. Add these
files, then click on the “Process BOM
and CPL” button.
The website will display a list of the
parts, the quantity and their prices. All
the components should be in stock but,
if not, you can search for a substitute
or even omit it and source it separately (which implies that you will solder
it yourself). Clicking “NEXT” again
will take you to the final quote detailing the total price and by clicking on
“SAVE TO CART”, you are done. You
then need to go through the usual payment process.
need is four rubber feet stuck to the
bottom of the PCB to avoid scratching
your desk (or tapped spacers in the
corners, for the same reason). However, the PCB is designed to fit in a
Multicomp MCRM2015S enclosure
available from element14/Farnell.
The same enclosure is also available as the Hammond RM2015S from
Mouser, DigiKey etc.
For the front and rear panels, we have
designed black PCBs with the lettering
in white text. These can be ordered from
the Electron Publishing shop or from
a PCB fabricator (for this, download
the Gerber files from siliconchip.au/
Shop/10/3259). One nice thing about
these panels is they have all the required holes, round or rectangular,
neatly cut out for you!
If you are ordering the panels from
JLCPCB, you should tick the option
“Order Number (Specify Position)”,
as that instructs JLCPCB to place their
tracking number on the rear of the
panel. In the “PC Remark” section, you
should add a note informing them that
this design does not have any tracks
and will be used as a front or rear panel
on a box. Otherwise, they may reject
the design as being incomplete.
Boxing it up
Setting it up
The RP2350B Computer’s PCB is
quite small, so you do not really
need to mount it in a case. All you
When you receive the assembled
boards, there are three steps that you
need to take:
Practical Electronics | August | 2026
RP2350B Computer
On the rear panel
(from left to right) are
the 30-pin external
I/O connector with
22 GPIOs, the HDMI
video connector, the
power switch, a USB
Type-C connector
for power and the
external console, a
reset button, and the
stereo jack for the
audio output.
1. Adjust potentiometer VR1 to set
the DVDD voltage. It is important that
this is done before power is applied.
Leaving the potentiometer in some
random position could destroy the
RP2350B processor.
2. Load the PicoMite firmware.
3. Configure the firmware.
By increasing the Digital Core Supply
(DVDD) above the nominal 1.1V, we
can overclock the RP2350B to reach the
clock speeds (up to 375MHz) required
to generate HDMI video. It is important
that this is set before applying power
to the board, as too high a voltage will
certainly damage the RP2350B.
Set your multimeter to its resistance
mode and, with the board unpowered,
place the probes across the test points
marked DVDD and TP1. Adjust potentiometer VR1 to give a reading of 18kW.
This will set the DVDD voltage to 1.3V
when the board is powered, and that
should allow the RP2350B to correctly boot and generate a clear and stable
DVI/HDMI video signal.
To load the firmware, start with no
power applied and flip both switches
on the PCB marked USB HUB to the
DISABLE position. Then place the
RP2350B into bootloading mode by
holding the BOOT button down while
plugging a USB cable from the front
micro-USB socket into your desktop
or laptop computer.
This will power up the Computer,
Practical Electronics | August | 2026
causing the RP2350B to act like a USB
memory stick and create a “disk drive”
on your computer via the USB cable.
The RP2350B Computer requires
MMBasic version 6.00.03 or later, as
this has support for I2S audio. You
can download this from siliconchip.
au/Shop/6/833 or the author’s website at https://geoffg.net/picomitevga.
html (scroll to the bottom of the
page). Extract the file PicoMiteHDMI
USBV6.00.03.uf2 (or a later version)
from the ZIP.
You can then copy this file to the
“disk drive” created by the RP2350B,
and it will write the contents of the file
to the flash memory chip. When it finishes, unplug the USB cable from the
front USB socket and flip both switches
on the PCB marked USB HUB to the
ENABLE position. This will enable
the USB hub and the front panel USB
sockets.
While the virtual drive created by
the RP2350B looks like a USB memory
stick, it is not; the firmware file will
vanish once copied, and if you try
copying any other type of file, it will
be ignored. If you later upgrade the
firmware, note that loading the PicoMite firmware may erase all the flash
memory, including the current BASIC
program, any files in drive A: and all
saved variables. So make sure that you
backup this data first.
For the final configuration step, you
need a desktop or laptop computer
(or another USB serial console capable device) and use that to connect to
the external console on the RP2350B
Computer. This process is described
in the panel overleaf. At the command
prompt on the external console, enter
the following command:
OPTION RESET HDMIUSBI2S
This will set up the firmware for
your hardware configuration, including enabling the DVI/HDMI video
output, and will save you from having
to enter multiple OPTION commands
for each hardware feature. After that,
you can connect an HDMI monitor
and keyboard/mouse, press the reset
button and you should see the MMBasic
startup banner on the monitor, as shown
in Screen 1.
This is also a good time to set the
date and time for the real-time clock.
The command to do this is:
RTC SETTIME year, month,
day, hour, minute, second
Here, “year” is two or four digits,
and “hour” is in 24 hour notation.
Don’t forget to insert a CR2032 cell
in the holder so the time will be remembered. As a final test, use the
command:
OPTION RESOLUTION 1024
This will set the HDMI output to
35
Constructional Project
Screen 1: when you have loaded the PicoMite firmware, configured it and
rebooted the computer, this is the startup screen that you should see. At this
stage, you are ready to start running programs or creating your own.
its maximum resolution of 1024 ×
768 pixels, and set the CPU clock
speed to its maximum of 375MHz.
The result should be a stable image
on your monitor.
Adjusting DVDD
As described earlier, we need to
increase the DVDD voltage, which
powers the CPU cores, to facilitate
overclocking. This is done by adjusting the onboard potentiometer as per
Table 2.
By default, the RP2350B requires a
DVDD of 1.1V, which is generally good
for clock frequencies of up to about
220MHz. However, the firmware with
HDMI capability will automatically
set the clock frequency in the range of
252MHz to 375MHz, depending on the
selected video resolution, so a higher
voltage is needed.
We have tested many prototypes and
found that a DVDD of 1.3V generally
works well, which is why we recommend setting this voltage when configuring the board. However, if your Computer will not boot or shows strange
behaviour, you can try DVDD voltages
of 1.35V or 1.4V to see if that corrects
the problem.
The absolute maximum that you
should select is 1.45V. If your Computer still does not work, it is likely
that overclocking is not the cause of
Resistance (TP1-DVDD)
DVDD
6.0kΩ
1.10V
9.0kΩ
1.15V
12.0kΩ
1.20V
15.0kΩ
1.25V
18.0kΩ
1.30V
21.0kΩ
1.35V
24.0kΩ
1.40V
27.0kΩ
1.45V
30.0kΩ
1.50V *
33.0kΩ
1.55V *
36.0kΩ
1.60V *
* not recommended due to instability
36
your problem. Instead, you probably
have some other fault on the board,
which you should find and fix, rather
than pushing the DVDD voltage even
higher.
You can set DVDD to voltages even
higher than 1.4V if you wish to run the
risk of damaging the RP2350B – but
all processors should work correctly
with 1.3V or 1.35V. You can also try
DVDD voltages lower than 1.3V, and
the RP2350B will run slightly cooler.
However, this benefit will be limited,
as raising the DVDD voltage and overclocking the processor only causes its
temperature to increase by a few degrees Celsius.
Fault finding
While testing the settings for the
DVDD voltage, it is possible to get
the RP2350B and the firmware into a
state where MMBasic will not boot or
display a stable image on the monitor. If that happens, adjust the DVDD
potentiometer to 6kW (giving a DVDD
of 1.1V) and load the firmware file at:
https://geoffg.net/Downloads/picomite/
Clear_Flash_RP2350.uf2
This will reset the RP2350B to its
factory state, allowing you to retry the
setup procedure from the start.
A good test of a correctly functioning
RP2350B is to load the stock PicoMite firmware without USB and HDMI
support. This will run the RP2350B
at its default frequency of 150MHz,
and does not require any support circuitry except the 3.3V power and a
DVDD of 1.1V.
To run this test, remove the power,
then adjust the DVDD potentiometer to
6kW and set the onboard DIP switches to DISABLE. Then plug your desktop or laptop computer into the front
panel USB socket while holding down
the BOOT button on the PCB. You
can then load the firmware file Pico
MiteV6.00.03.uf2 (or later) from the
firmware download ZIP file.
When this has completed, the firmware will create a serial-over-USB connection with your computer using the
USB cable plugged into the front panel
(leave the DIP switches in the DISABLE
position). The PicoMite firmware user
manual goes into detail on how to use
this console connection, but with this
you can load programs and test the
processor as much as you like.
If this simple test does not work,
check the main power to the RP2350B
(3.3V) and the DVDD voltage (1.1V). If
these are correct, that leaves a faulty
RP2350B chip or its soldering as the
main suspects.
Using MMBasic
The BASIC interpreter in the Pico
Mite firmware is called MMBasic. It
is a modern implementation of the
BASIC language that can handle large
and complex programs. MMBasic
includes features like long variable names, 64-bit integers, double-
precision floating-point numbers and
string variables. It does not need line
numbers, and includes modern features such as subroutines/functions,
CASE and multiline IF-THEN-ELSE
statements.
On startup, MMBasic will display
the command prompt (the greater-than
symbol, “>”) and wait for a command
to be entered. It will also return to the
command prompt if your program
ends or generated an error message.
When the command prompt is displayed, you can run a wide range of
commands. For example, you can list
the program held in memory (LIST)
or run it (RUN).
Almost any command can be entered at the command prompt, and
this can be used to test a command to
see how it works. A simple example is
the PRINT command, which you can
test by entering PRINT “Hello World”
at the command prompt.
To enter a program, you can use the
EDIT command, which starts the integrated full-screen editor. This is described in detail in the PicoMite User
Manual. However, if you want to give
it a test, all you need to know is that
anything that you type will be inserted at the cursor, the arrow keys will
move the cursor and backspace will
delete the character before the cursor.
Finally, the F1 key will save the program and exit.
The firmware will automatically
create a pseudo 14MiB ‘disk drive’ in
the flash memory. This is called drive
“A:”, and can be used to store programs, images, music, configuration
Practical Electronics | August | 2026
RP2350B Computer
data, log files and much more. In addition, SD cards formatted as FAT16
or FAT32 up to 32GiB can be used for
removable storage, and are referred to
within MMBasic as drive “B:”.
Files created in this file system
can be read on Windows, Linux and
macOS computers. Both file systems
support long filenames, subdirectories, long file paths, random access
and more.
The PicoMite User Manual is an
invaluable resource that contains a
detailed description of the capabilities of the firmware and the MMBasic
interpreter.
One inclusion that is particularly
useful is a tutorial on programming
in BASIC at the rear of the manual. It
is written in an easy-to-read format,
with plenty of examples, and is recommended for anyone who is new to
programming in BASIC.
This manual is included in the
firmware download from the Silicon
Chip website or the author’s website at
https://geoffg.net/picomite.html (scroll
to the bottom of the page).
MMBasic graphics features
MMBasic has an extensive range of
features that complement this computer’s colourful, high-resolution
video. Most are associated with the
type of graphics that you would need
for games, but they are also useful for
business graphics and general programs. These commands and functions are described in detail in the
PicoMite User manual, and in a tutorial that is included with the firmware distribution files.
Each DVI/HDMI resolution is selected with the OPTION RESOLUTION
command and, for each resolution,
there are a number of colour modes
that can be selected with the MODE
command. These modes will increase
the visual size of each graphic pixel
and use the memory saved to support
more colours.
For example, with the resolution
set to 640 × 480 pixels, you can select
MODE 1 which will result in a monochrome 640 × 480 pixel display, or
MODE 4, which will quadruple the
size of each graphic pixel and provide more colours so that the user
will see an image of 320 × 240 pixels
in 32,768 colours. In both modes, the
physical monitor will continue to see
a video signal with a resolution of 640
× 480 pixels.
Practical Electronics | August | 2026
Connecting to the External Console
You communicate with MMBasic via the console, which is where you
see the command prompt and type in your commands. In the RP2350B
Computer, the main console is the keyboard and HDMI monitor, but you can
also open an external console on your desktop or laptop computer.
This is provided via the rear-panel USB connector, which is normally
used to power the computer. However, it can also provide a serial-over-USB
interface for the external console.
This function is provided by the CH340C USB/serial bridge. This chip
(and the similar CH341) is used in many Arduino Nano clones, and the
driver for it is included by default in Windows 10/11 and Linux. Many macOS
builds also include the driver. This means that you can simply plug your
RP2350B Computer into your desktop computer and a connection will be
automatically made.
However, if you do need a driver, help is available at https://sparks.gogo.
co.nz/ch340.html
When you connect the RP2350B Computer, it will create a virtual serial
port on your computer; you need to determine the number of this port.
In Windows, this can be found in Control Panel → Device Manager →
Ports (COM & LPT). The PicoMite User Manual included in the firmware
download goes into more detail.
On your desktop computer, you then need to run a terminal emulator.
For Windows, we recommend Tera Term, which can be downloaded from
http://tera-term.en.lo4d.com. Within the terminal emulator, you need to
set the serial port number discovered above and set the baud rate to 115,200
baud (the default speed used by the RP2350B Computer).
You should then be able to hit the Enter key in the terminal emulator
and see the MMBasic command prompt (“>”). When you are connected
to the remote console, you can treat it the same as a keyboard/monitor
combination directly connected to the RP2350B Computer. You can issue
commands, edit programs and run them. You can also use the XModem
protocol to transfer files to and from both computers.
The PCB is designed to fit in a Multicomp MCRM2015S or Hammond RM2015S
enclosure. At lower left are the four USB Type-A ports that can accept USB
keyboards, mice and game controllers. To the right of those is a micro Type-B
USB connector for loading the firmware, and finally, a microSD Card connector
that will accept cards formatted in FAT16 or FAT32 with capacities up to 32GiB.
37
Constructional Project
Screens 2 & 3: the software package for the RP2350B Computer includes clones of two classic games, Tetris and Pacman.
They are provided so that when you get your computer running, you can immediately start having fun!
Colour is specified as a true colour
24 bit number, like on a PC. The top
eight bits represent the intensity of
the red colour, the middle eight bits
the green intensity, and the bottom
eight bits the blue. You also have
at your disposal functions that give
you shortcuts for selecting commonly used colours and defaults, such as
the RGB() function.
There are ten basic drawing commands that you can use within MMBasic programs to draw graphics. These
include drawing lines, boxes, circles
and even complex polygons. The
TEXT command is one of these, and
is particularly powerful, allowing
text to be positioned anywhere on
the screen in a variety of fonts and
orientations.
The RP2350B Computer includes
eight built-in fonts. These range from
tiny to large and most cover the full
ASCII range, with some including extended graphics characters. You can
also define your own fonts using the
DEFINEFONT command; additional
fonts are included in the PicoMite firmware download. These fonts cover a
wide range of character sets, including
a symbol font (Dingbats) that is handy
for creating on-screen icons etc.
Framebuffers, layers & sprites
To create moving graphics like those
used for games, MMBasic includes
support for framebuffers and layers.
These are areas of memory with the
same width and height as the DVI/
HDMI image, and the same colour
depth.
Framebuffers can be used to construct an image that can then be rapidly copied to the physical display.
Layer buffers are slightly different, and
are used to create partial images that
can sit on top of a background image,
which can be moved over the static
background.
Sprites are very useful as they allow
the programmer to display elements
over a background and then move
them over the background without
corrupting the background image. In
addition, the programmer can use the
sprite functions to detect collisions
between sprites and between a sprite
and the edges of the display.
The LOAD IMAGE and LOAD JPG
commands can be used to load an
image from a file and display it on
the HDMI monitor. These can be used
to draw a logo or add an ornate background to the graphics drawn on the
screen.
The 3D Engine provided by MM-
Basic includes ten commands for
manipulating 3D images, including
setting the camera, creating, hiding,
rotating etc. These are documented
in a separate manual in the PicoMite
firmware download, which provides
a description of the 3D Engine and
how to use it.
Also included in the firmware
download are clones of two classic games: Tetris and Pacman (see
the screenshots). So, when you get
your RP2350B Computer running,
you can immediately start wasting
PE
time. Have fun!
Most of the complexity is in the software loaded into the Raspberry Pi RP2350B
processor. This has the same features as the RP2350A version used in the
Raspberry Pi Pico 2, but comes in a larger package with more (48) I/O pins. The
Raspberry Pi foundation has recently made this chip available for individual
sale, so now we can use it in our own designs.
We have designed black front & rear panel boards with the lettering in white.
These can be ordered from our PCB service or a PCB fabricator.
38
Practical Electronics | August | 2026
|