Silicon ChipRP2350B Computer - November 2025 SILICON CHIP
  1. Outer Front Cover
  2. Contents
  3. Publisher's Letter: IPv6 is growing in popularity
  4. Feature: Humanoid Robots, Part 1 by Dr David Maddison, VK3DSM
  5. Project: RP2350B Computer by Geoff Graham & Peter Mather
  6. Project: Power Rail Probe by Andrew Levido
  7. Feature: Power Electronics, Part 1 by Andrew Levido
  8. Feature: Modules: Large OLED Panels by Tim Blythman
  9. Project: Digital Preamp & Crossover, Pt2 by Phil Prosser
  10. Project: Over Current Protector by Julian Edgar
  11. Serviceman's Log: Remotely Interesting by Dave Thompson
  12. PartShop
  13. Vintage Radio: Telequipment D52 Oscilloscope by Dr Hugo Holden
  14. Subscriptions
  15. Market Centre
  16. Advertising Index
  17. Notes & Errata: High power H-bridge uses discrete Mosfets, November 2017
  18. Outer Back Cover

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":
  • APS6404L-3SQR-SN 8MiB PSRAM chip (SOIC-8) (Component, AUD $5.00)
  • RP2350B Computer preassembled board (Component, AUD $90.00)
  • RP2350B Computer front & rear panels (Component, AUD $7.50)
  • RP2350B Computer PCB assembly files (PCB Pattern, Free)
Items relevant to "Power Rail Probe":
  • Power Rail Probe PCB [P9058-1-C] (AUD $5.00)
  • Power Rail Probe PCB pattern (PDF download) [P9058-1-C] (Free)
  • Power Rail Probe panel artwork and drilling (Free)
Items relevant to "Modules: Large OLED Panels":
  • Demo files for SSD1309-based OLED modules (Software, Free)
Items relevant to "Digital Preamp & Crossover, Pt2":
  • Digital Preamplifier main PCB [01107251] (AUD $30.00)
  • Digital Preamplifier front panel control PCB [01107252] (AUD $2.50)
  • Digital Preamplifier power supply PCB [01107253] (AUD $7.50)
  • PIC32MX270F256D-50I/PT‎ programmed for the Digital Preamplifier/Crossover [0110725A.HEX] (Programmed Microcontroller, AUD $20.00)
  • Firmware for the Digital Preamplifier/Crossover (Software, Free)
  • Digital Preamplifier/Crossover PCB patterns (PDF download) [01107251-3] (Free)
  • 3D printing files for the Digital Preamplifier/Crossover (Panel Artwork, Free)
  • Digital Preamplifier/Crossover case drilling diagrams (Panel Artwork, Free)
Articles in this series:
  • Digital Preamp & Crossover (October 2025)
  • Digital Preamp & Crossover, Pt2 (November 2025)

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 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 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 Pico­Mite 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