This is only a preview of the November 2025 issue of Silicon Chip. You can view 37 of the 104 pages in the full issue, including the advertisments. For full access, purchase the issue for $10.00 or subscribe for access to the latest issues. Items relevant to "RP2350B Computer":
Items relevant to "Power Rail Probe":
Items relevant to "Modules: Large OLED Panels":
Items relevant to "Digital Preamp & Crossover, Pt2":
Purchase a printed copy of this issue for $14.00. |
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
W
e introduced the Pico/2/Computer,
in the April 2025 issue, a lowcost computer that can run
BASIC and is excellent for creating
programs, games, controlling external circuits and generally messing
around with an easy-to-use but capable computer.
It was based on the Raspberry Pi
Pico 2 module, which was one of the
few components you had to solder to
PWM
PWM0B
Serial
COM1 RX
PWM1B
PWM2B
COM2 RX
PWM9B
PWM10B
PWM11B
PWM8B
PWM9B
PWM10B
I²C SCL
ANALOG PINS
28
Silicon Chip
SPI TX
I²C SCL
I²C2 SCL
COM1 RX
SPI TX
I²C SCL
I²C2 SCL
COM2 RX
SPI TX
I²C SCL
I²C2 SCL
COM2 RX
SPI TX
I²C SCL
I²C2 SCL
COM1 RX
SPI
I²C SCL
I²C2 SCL
PWM3B
PWM8B
I²C
SPI2 TX
the mostly preassembled circuit board.
Since then, the RP2350 processor chip,
which is at the core of the Pico 2 module, has become available for individual purchase. Using an expanded
version of this chip has allowed us to
update the design with more features.
The new features of this design are:
∎ It uses an RP2350B processor
soldered directly to the PCB with
supporting components that make
Function
I/O Pin
Function
GND
1
2
GND
3.3V
3
4
3.3V
overclocking of the processor (to support HDMI video) easier. That also
means you no longer need to obtain
and solder a Pico 2 module to the
board; it’s now fully pre-assembled.
∎ 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 more general purpose I/O (GPIO) pins for connecting to
SPI
I²C
Serial
PWM
COM1 TX
PWM0A
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
PWM3A
GP33
13
14
GP34
SPI CLK
I²C2 SDA
PWM9A
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
Australia's electronics magazine
PWM1A
COM2 TX
COM2 TX
PWM2A
PWM10A
PWM11A
COM2 TX
PWM8A
PWM9A
COM1 TX
PWM10A
PWM11A
note that pin 1 is at the bottom right of the PCB
siliconchip.com.au
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.
This version does not make the original design obsolete; rather, it adds
some polish and a few bonus features
to the original design. For readers
who missed the original Pico/2/Computer article, the basic features of both
designs are:
∎ A low-cost boot-to-BASIC computer with keyboard support and
video output.
∎ DVI/HDMI video output with resolutions up to 1280 × 720 pixels.
∎ 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.
∎ An accurate internal clock that is
battery backed.
∎ 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.
Both versions are self-contained,
low-cost computers that can be programmed in BASIC. 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. They also
make capable embedded controllers.
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. It means we can use an
HDMI connector, 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
siliconchip.com.au
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
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
A new feature in this Computer is
the I2S interface to a DAC (digital-toanalog converter) 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.
The Pico/2/Computer used a pulsewidth modulation (PWM) scheme for
generating its audio output, which
required a low-pass filter to remove
the carrier frequency. This is a simple
method for generating the audio but,
despite an advanced filter design, some
of the carrier frequency was still in the
output, and the filter reduced 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
high-quality 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
Australia's electronics magazine
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
November 2025 29
30
Silicon Chip
Australia's electronics magazine
siliconchip.com.au
protocol to communicate with the
card, with all types (Class 4, 10, UHS-1
etc) being supported.
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).
siliconchip.com.au
Australia's electronics magazine
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,
November 2025 31
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 Silicon Chip 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
32
Silicon Chip
used to pull the chip select line low on
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
Australia's electronics magazine
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
siliconchip.com.au
communicate with a desktop or laptop
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
siliconchip.com.au
Parts List – RP2350B Computer (also see BOM XLS file)
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)
a linear regulator avoids the electrical
noise 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. Like the Pico/2/Computer,
this design makes extensive use of surface-mounting parts. While these can
all be hand-soldered, it is not easy, and
can be quite time-consuming. So, while
it is possible to assemble this computer
by hand, we recommend either buying
it assembled from siliconchip.com.au/
Shop/20/7531 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
34
Silicon Chip
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.
Computer Gerbers.zip” file onto the
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.
to mount it in a case. All you 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 Silicon Chip shop
or from a PCB fabricator (for this,
download the Gerber files from the
Silicon Chip website). 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
When you receive the assembled
boards, there are three steps that you
need to take:
The RP2350B Computer’s PCB is
quite small, so you do not really need
Australia's electronics magazine
Setting it up
siliconchip.com.au
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.
siliconchip.com.au
This will power up the Computer,
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.
Australia's electronics magazine
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
November 2025 35
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.
This will set the HDMI output to
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
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
Silicon Chip
that overclocking is not the cause of
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
PicoMiteV6.00.03.uf2 (or later) from
the firmware download ZIP file.
When this has completed, the firmware will create a serial-over-USB
Australia's electronics magazine
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
siliconchip.com.au
drive “A:”, and can be used to store
programs, images, music, configuration 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. Particularly useful is a tutorial
on programming in BASIC at the rear
of the manual. It is written in an easyto-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.
siliconchip.com.au
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.
Australia's electronics magazine
November 2025 37
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 time.
SC
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 the Silicon Chip Shop or a PCB fabricator.
38
Silicon Chip
Australia's electronics magazine
siliconchip.com.au
|