This is only a preview of the March 2025 issue of Practical Electronics. You can view 0 of the 80 pages in the full issue. Articles in this series:
Articles in this series:
Articles in this series:
Articles in this series:
Articles in this series:
Articles in this series:
Articles in this series:
Articles in this series:
Items relevant to "Mains Power-Up Sequencer, part two":
|
Constructional Project
Project by Geoff Graham
The Pico Gamer
The Pico Gamer is a PicoMite powered ‘retro’ game console packed with nine games
including three inspired by Pac-Man, Space Invaders and Tetris. With its inbuilt
rechargeable battery and colour 3.2-inch (81mm) diagonal LCD screen, it will keep you
entertained for many hours.
T
he Pico Gamer was inspired by the
Game Boy series from Nintendo,
introduced in 1989. They were
small handheld battery-powered devices, initially with tiny monochrome
screens and an eight-bit CPU. Over
time, more feature-rich versions were
introduced, and the series became a
massive success, with over 100 million sold across all variants.
The Pico Gamer is a marked upgrade
on the original Game Boy, with a colour
LCD screen, a dual-core 252MHz 32-bit
processor, 2.5MB of internal game storage and a USB interface. It is easy to
build, using just a handful of components, and fits nicely into a custom
3D-printed case.
We based our design on the layout of
the Game Boy Advance, with the control buttons on either side of the screen
in a horizontal layout. Such a design
is a natural fit for a handheld game
console and has since been adopted
by many other consoles.
There are eight buttons on the console: four direction buttons (up, down,
left & right) on the left, two control but-
8
tons (start and select) under the screen
and two auxiliary buttons (A and B)
on the right.
An important feature is the builtin rechargeable lithium-ion battery;
the original Game Boy used four AA
cells. The Pico Gamer’s battery can last
over eight hours, which is plenty for
a long road trip, and can be recharged
in under four hours using the built-in
USB connector. It could even be recharged from a portable USB power
pack in a pinch.
The 3.2-inch LCD screen has a
66×50mm active area containing
320×240 pixels. It can display over
65,000 colours, which most games
use to good effect. The screen is also
touch-sensitive, although currently, no
games use that feature. New games can
be programmed in BASIC, so perhaps
one of our readers will come up with
one that does!
The Pico Gamer has a mono audio
amplifier and speaker for sound effects. Most games use them to create
various beeps, squeaks and explosions.
However, it is good enough to repro-
duce more complex sound effects and
music, and some games do both. To
see a gameplay video, visit:
https://pemag.au/Videos/PicoGamer
The processor
The Pico Gamer is powered by the
Waveshare RP2040-Plus. This is a pinfor-pin compatible clone of the Raspberry Pi Pico, with a few important
upgrades.
Firstly, it includes a lithium-ion
battery charger, so that’s one less feature that needs to be designed into
the circuit. It also uses a high-speed
flash memory chip, so the RP2040
processor can be reliably overclocked
to 252MHz, which is required for the
more processor-intensive games.
Finally, the RP2040-Plus has a 4MB
flash memory chip rather than the 2MB
of the standard Pico. This is important
because we store the games in this flash
memory, and the standard Pico has
space for a limited number of games.
However, the RP2040-Plus with 4MB
can fit dozens of games, and you will
be unlikely ever to fill that up.
Practical Electronics | March | 2025
The Pico Gamer
Features & Specifications
Games included in the Pico Gamer firmware
» Dimensions: 198 × 90 × 22mm
» Weight: 300g
» Battery: internal 1100mAh LiPo
battery
» Runtime: approximately eight hours
» External power/charging: 5V via
USB at 260mA
» Display: 66 × 50mm LCD, 320 ×
240 pixels, 65,535 colours
» Audio: 340mW from a 28mm
diameter speaker
» Internal storage: 14.5MB★
(sufficient for hundreds of games)
» External storage: SD card up to
32GB, formatted as FAT16 or
FAT32
» Sound test and demonstration
» Button test
» File Browser
» A selection of pre-installed games
(see the panel opposite)
★ or 2.5MB if 4MB RP2040-Plus is used,
sufficient for 30+ games
Using a standard Raspberry Pi Pico
in the Pico Gamer would be possible.
While it would work, you would have
to keep it tethered via a USB cable for
power. Also, you will need to install
a custom version of the software because the software we supply is optimised for the 4MB (or 16MB) of flash
on the Waveshare module.
PETSCII Robots
Lazer Cycle
3D Maze
Pico Blocks
Kingdom
Snake
Pico Man
Pico Vaders
Circle One
In this complex strategy
and exploration game,
your goal is to enter the
settlement and destroy
the robots. The trick is
finding the right tools and
learning how to use them.
Similar to the ever-popular
Tetris game, your job is
to rotate and position
colourful blocks falling
from the sky into a neat
carpet, where they will
vanish. If your pile gets too
high, you will lose.
You are on a fast Lazer
Cycle, and so is your
opponent. They will try to
make you crash into a wall
or track, and you try to do
the same to them. It is a
race to the death.
You are the ruler of the
Yellow River kingdom and
must allocate resources
between feeding the
hungry people & defending
against thieves. Don’t get
it wrong, because the
people might revolt.
You are stuck in a 3D
maze; your job is to
explore and find a way out.
You can call up a map to
help, but it is not as easy
as it looks.
Guide your snake around
the board, eating the good
food and avoiding the bad.
As you eat, your snake
will get longer. You will
need all your skills to avoid
crashing into a wall!
PicoMite software
The software loaded onto the
RP2040-Plus includes the PicoMite firmware we introduced in July
2022 (Make it with Micromite). This
is a powerful BASIC (MMBasic) interpreter for the Raspberry Pi Pico,
with support for peripherals such as
an LCD screen, SD card, sound etc.
Because the BASIC language is built
into the PicoMite, all games are written in BASIC.
The latest versions of the PicoMite
firmware provide an A: drive, which
acts like an SD card that cannot be removed. This allows us to store programs, music files, images etc internally, without the need for external
storage like an SD card.
If you wish, you can plug an SD
card (or microSD card in an SD card
adaptor) into the socket on the LCD
screen, and it will be available as
“drive B:”. The menu system will
Practical Electronics | March | 2025
Inspired by the addictive
Pac-Man game, you race
around a maze, eating
little dots while being
chased by four ghosts.
Eating a Power Ball gives
you special powers, so you
can pursue the ghosts
instead!
Based on the classic
Space Invaders from the
1980s, you are faced with
hordes of invaders who
drop a steady stream of
bombs while you dodge
back and forth with your
cannon, trying to shoot
them down.
allow you to switch to this drive and
run games from it. However, this is
not a requirement, and usually, the
internal file system (drive A:) is sufficient to store all the games.
The PicoMite also implements flash
slots as alternative storage places for
programs. There are three of them,
and when a program is run from one
of these, it does not need to be loaded
This game’s objective is to
eat the apples and grow
while your opposition (the
computer) will try to do
the same. The one who
grows to the maximum
size wins. It is a simple but
entertaining game that is
perfect for young children.
into the main program memory, so it
executes quickly. The Pico Gamer’s
menu program is stored in the first
flash slot, so it is always ready to run.
Acknowledgments
The Pico Gamer is based on the
work of many people from around
the world. The concept of a Game Boy
lookalike using the Raspberry Pi Pico
9
Constructional Project
Fig.1: the Pico Gamer has three main components:
the RP2040-Plus microcontroller module, 3.2-inch
touchscreen and audio amplifier/speaker. The RP2040Plus module incorporates a battery charger, so we can
just connect the LiPo battery directly to it.
was pioneered by Tom Williams in the
UK, and he designed the Game*Mite
with some help from Australian Mick
Gulovsen.
He published his design on The
Back Shed Forum (https://pemag.au/
link/absd) and it has been quite successful, with several hardware clones
and many extra games added to its
repertoire.
The games themselves came from
authors including Martin Herhaus
(Germany), Harm (Netherlands), Tom
Williams (UK) and Geoff Graham (Australia). Tom Williams also wrote most
of the utility programs. You can contact these authors on The Back Shed
Forum with suggestions and bug reports if you need to.
We have kept the hardware features
of the Pico Gamer compatible with the
Game*Mite, so games and programs
written for one will run on the other. If
you wish, you can even load Tom’s full
firmware package for his Game*Mite
onto the Pico Gamer, and it will run
equally well.
Circuit details
As you would expect, the circuit
(Fig.1) is dominated by the RP204010
Plus module. The eight game buttons
connect directly to the processor, pulling the associated input pin low when
pressed. Programs running on the Pico
Gamer configure these pins as inputs
with internal pullup resistors, so external resistors are not required.
The power switch in the off position
disconnects the battery and disables the
power supply in the RP2040-Plus. The
latter is done so that the Pico Gamer
will shut down even if it is connected
to a USB power supply.
The battery charger in the RP2040Plus will terminate at 4.2V, the correct voltage for standard LiPo batteries, so it will not overcharge them.
When the Pico Gamer runs on battery
power, the protection circuit within
the battery will automatically disconnect the load so you cannot damage
the battery by accidentally leaving
the console on.
The LCD screen is connected to
the processor via an SPI bus, which
drives the display, touch controller
and SD card socket. The LCD and the
audio amplifier are both powered by
the RP2040-Plus via its 3.3V output.
This is used because the Pico’s onboard DC-to-DC converter ensures a
constant output voltage regardless of
the battery voltage, which can vary
from 4.2V to about 2V.
The sound output is generated as
stereo pulse width modulated (PWM)
signals from digital output pins GP20
and GP21. These signals are filtered
and summed by the two 330W resistors and the 100nF capacitor. The
resultant mono audio is fed to an
SSM2211SZ audio amplifier, which
drives the speaker in a bridged configuration.
With a 3.3V power supply, the SSM2211SZ does not generate much power,
but the volume is ample for a handheld device.
Sourcing the parts
Silicon Chip is offering kits that include all parts except the battery (which
can’t be sent by airmail). There is the
option of no case (if you want to print
your own), a basic case that you can
paint any colour and a more expensive
black case that shouldn’t need to be
painted. So that’s one way to get the
parts to build the Pico Gamer.
You can get a suitable 1100mAh
3.7V LiPo battery from a local seller
on eBay.
Practical Electronics | March | 2025
The Pico Gamer
The front of the PCB has the 3.2-inch LCD screen, buttons, switches, audio amp
IC & passive components. The rear of the PCB holds the RP2040-Plus, battery,
volume potentiometer & speaker. It is necessary to solder the RP2040-Plus flush
with the PCB so that the USB connector aligns with the cutout in the case.
If you want to gather the rest of
the parts yourself, here are some
suggestions:
The core of the Pico Gamer is the
Waveshare RP2040-Plus, available
from Waveshare (www.waveshare.
com) and Amazon. You only need the
4MB version; make sure you purchase
it without header pins, as it must be
soldered flush with the PCB.
The battery charger socket on the
RP2040-Plus is a two-pin Molex PicoBlade with a 1.25mm pitch. The
matching plug with attached wires
is commonly used in drones and can
be purchased from drone suppliers.
Note that many battery connectors on
offer are JST-style connectors, such
as JST-SH or JST-XH, which are incompatible.
Another way to get a matching connector is to buy a battery on eBay that
comes fitted with a PicoBlade connector. You can then cut this off and
use it as the charging cable, while
the now unterminated battery leads
can be soldered directly to the PCB.
The LCD is a 3.2-inch panel with
a 320×240 pixel resolution using the
ILI9341 controller. There are many
on offer on eBay and AliExpress, but
Practical Electronics | March | 2025
make sure the vendor’s photo matches
Fig.4 (shown at the end of the article), as there are some incompatible
designs that will not physically fit.
You can purchase the display without the touch interface, which would
work fine as no games currently use
that feature. However, you will only
save about a dollar, so you might as
well get it regardless.
The large, coloured tactile switches have 8mm diameter buttons and
can be purchased from various international suppliers. We found one
version from an Australian supplier
that had a better ‘clicky’ feel, so that
is what we have included in the Silicon C hip kits, but your preference
might differ.
The tactile switches for the start
and select functions need a relatively long shaft of around 9mm, with a
total height of 13mm (including the
button base). These can be found on
eBay and AliExpress.
The volume potentiometer is a
standard 16mm logarithmic type and
is available on eBay and AliExpress.
The value is not critical; it can be in
the range of 10kW to 50kW, but its
depth must be less than 10mm to fit
in the case, and it should have an
8mm-long knurled shaft as it is used
without a knob in this design.
The loudspeaker used in this design
is the DB Unlimited SW2804081 (Mouser Cat 497-SW280408-1,
DigiKey Cat 2104-SW280408-1-ND).
This was chosen as it’s small but has
decent sound quality and is easy to
mount using four small screws.
Even if you don’t have a 3D printer,
getting custom-designed 3D-printed
case pieces is relatively easy. The two
STL files defining the top and bottom
halves of the case can be downloaded as part of this month’s package on
the Electron Publishing website and
sent off for fabrication.
There are numerous online 3D
printing services but we recommend
JLCPCB. You only need to upload
the files to their website and select
their SLA process using LEDO 6060
resin (https://jlc3dp.com/3d-printingquote). They will then make and ship
the case to you within a few days.
The 6060 resin is strong, with no
warping, and the surface is smooth
in a slightly translucent off-white
colour. However, note that this material can yellow slightly with age,
so you might want to spray paint
it. The 6060 resin readily accepts
paint. An ideal paint for this purpose is Rust-Oleum Satin 2X Ultra
Cover, available from large hardware
stores in many colours.
Alternatively, you could use one of
JLCPCB’s more expensive materials
that are dyed or otherwise immune to
yellowing, for example, “Black Resin”
or “Imagine Black”. We offer one of
those options in our kits for those who
don’t want to mess around with paint
and like the ‘stealthy’ appearance.
Construction
Only a few components are involved in the Pico Gamer, so construction can be completed in an
hour or two. Four components (the
RP2040-Plus, battery, volume potentiometer and speaker) mount on
the rear of the PCB, with the rest on
the front side. The PCB is marked
FRONT and BACK to help with the
orientation.
The Pico Gamer PCB is coded
08104241 and measures 188 × 80mm.
During construction, refer to the overlay diagrams, Figs.2 & 3, to see which
parts go where. You can also check
the photos.
11
Constructional Project
Parts List – Pico Gamer
1 double-sided PCB coded 08104241, 188 × 80mm
1 custom 3D-printed case in two pieces (upper and lower), 199×90×26mm
(see text)
1 Waveshare RP2040-Plus module with 4MB or 16MB flash memory, without
header pins [Waveshare SKU 20290 (4MB) or 23503 (16MB)]
1 3.2in LCD touchscreen, 320×240 pixels, with ILI9341 controller and SD
card socket
1 900-1100mAh 3.7V LiPo cell
1 SSM2211SZ 1.5W amplifier, SOIC-8 (IC1) [DigiKey, Mouser, RS, Farnell]
6 SPST momentary tactile switches with 8mm diameter buttons, 5×5mm
pitch, in various colours (S1-S4, S7, S8) [eg, C&K D6 series <at> Farnell]
2 SPST momentary tactile switches, 4×6mm pitch, 13mm height (S5, S6)
1 PCB-mount miniature DPDT slide switch (S9)
1 DB Unlimited SW280408-1 8W loudspeaker
[Mouser 497-SW280408-1, DigiKey 2104-SW280408-1-ND]
1 10kW logarithmic potentiometer with 8mm spline shaft
5 100nF 50V X7R multi-layer (‘monolithic’) ceramic capacitors, 5mm pitch
1 4-pin header, 2.54mm pitch
1 2-pin Molex PicoBlade plug, 1.25mm pitch, with attached leads
4 M3 × 16mm panhead machine screws
4 M2 × 6mm panhead machine screws
1 can of spray paint (optional; see text for recommendations)
1 double-sided foam adhesive tape strip or pad
Resistors (all 1/4W 1% or 5% axial)
1 27kW
1 18kW
2 330W
The PCB fits
neatly into the
3D-printed
case. When
the two halves
of the case
are screwed
together, it has
the optimal
dimensions
for a handheld
game console
with a smoothly
rounded shape
that fits well in
the hands.
Start with the SSM2211SZ audio amplifier chip, which is in a small 8-pin
surface mount package that is much
easier to fit when no other components are in the way. This mounts on
the front side of the PCB and should
be soldered using the standard technique for SMD ICs.
Apply a little flux paste to the PCB
pads and place a small amount of
solder on a corner pad. Position and
hold down the IC, observing the dot
marking pin 1, and tack solder one of
the pins using the solder on the pad.
Check and correct the IC’s alignment,
then tack solder the pin in the opposite corner.
With the IC secured, apply more flux
paste and, with the bare minimum of
solder on your iron, place its tip on
the end of each pin, letting the solder
flow around the pin and the solder
pad. Finally, inspect your work with
a strong magnifier (×10 or ×20) and
correct any problems with more flux
paste and solder-wicking braid.
Next, you should install the RP2040Plus on the rear side of the PCB. This
sits flush on the PCB, making it a
surface-mounted component. Ensure
that it is aligned centrally on the solder
pads and that the USB socket is at
the top, protruding over the edge of
the PCB.
The battery charger plug and cable
can be soldered now. Note that the
colour of the wires (red/black) crimped
to the connector might not match the
polarity marked on the RP2040-Plus.
Check this, and make sure that the
lead from the + side of the connector
goes to the pad marked + on the PCB
regardless of the wire’s colour.
Next, fit the resistors and capacitors.
There are nine in total, and none are
polarised, so installation should be
easy. The parts list includes resistor
colour codes, but you can also use a
DMM set to measure ohms to verify
their values.
Installing the LCD screen
With its custom 3D-printed case, the Pico
Gamer is a professional-looking game console. It comes
with nine games, including some inspired by Pac-Man, Space Invaders and
Tetris, that work well with its colourful 3.2-inch LCD screen. The inbuilt
rechargeable battery lets you play for up to eight hours at a time.
12
The next component to install
should be the LCD panel. For height
reasons, it is not socketed; instead,
the pin headers go through the holes
in the PCB and are soldered on the
other side. These displays are notoriously sensitive to static discharge,
so make sure that you ground yourself before unwrapping it and avoid
handling it too much, especially its
connecting pins.
Practical Electronics | March | 2025
The Pico Gamer
Most LCD panels are supplied with
the main connector header pins installed, but you will need to add a
four-pin header for the SD card interface in the locations marked SD-CS
etc. Then insert the LCD panel into
position on the front side of the PCB
and push it down until it is flush
with the PCB.
Turn the PCB over and temporarily
place it in the top section of the 3Dprinted case, ensuring it sits correctly on the four mounting pillars. Next,
push down on the LCD screen’s header
pins until the LCD glass is flush with
the case’s front bezel. You can then
solder and trim the pins.
The reason for this operation is
to ensure that the LCD’s glass will
sit flush with the front bezel while
compensating for minor variations
in the 3D printing of the case. Don’t
force the LCD hard against the case,
as that could interfere with the touch
function; a flush contact is all that is
required.
Next, fit the volume potentiometer by inserting it through the back of
the board, with its locating pin in the
hole provided, then tighten the supplied nut over the washer to hold it in
place. After that, bend the solder tabs
towards the PCB and directly solder
them to the pads provided.
Now attach the speaker to the rear
of the PCB, with the front of the speaker cone facing through the hole. The
speaker is held in place by four M2 machine screws inserted from the front
side of the PCB which self-tap into the
speaker’s mounting holes; nuts and
washers are not required. Once it is
securely in place, solder its two wires
to the nearby terminals.
After that, mount the coloured button
switches, the long shaft tactile switches
and the power switch, all on the front
of the PCB. You can use whatever coloured buttons you want; our kits will
come with the same set shown in the
photo below. If you order the kit with
Figs.2 & 3: there are components mounted on both sides of the board. As there are not too many, it shouldn’t take long to
assemble. They are all pretty easy; IC1 is surface mounting, but its pins are wide enough to be soldered individually.
Practical Electronics | March | 2025
13
Constructional Project
the dark grey/black case, the black
button will be white instead for better
contrast.
The battery is soldered last. Secure
it in its marked position on the rear of
the PCB using double-sided adhesive
foam tape. Kits will include a rectangular pad that might need to be cut
down if it’s too large.
The battery (cell) will typically
come with a connector that needs
to be cut off and the leads directly
soldered to the PCB. Remember that
the battery will be supplied partially charged, so do not accidentally
short its leads when trimming them
(cut them separately) and ensure that
the power switch is in its off position before soldering the battery to
the PCB.
Also ensure that one lead doesn’t
accidentally come in contact with
the opposite lead or pad while you
are soldering.
Before installing the PCB in the case,
if you have the off-white (6060 resin)
case, both halves can be spray-painted
in your choice of colour. This allows
you to customise the case and protects
the plastic from the environment so it
won’t go yellow over time.
The two halves of the case are held
together by four 16mm-long M3 machine screws inserted in the bottom
half of the case that self-tap into the
plastic of the top case. This works well,
On the rear of the Pico Gamer is the
USB Type-C connector for charging or
connecting to a desktop computer for
firmware updates and writing games.
There is also a full-size SD card slot
for extra game storage (microSD cards
can be used with commonly available
adaptors).
but it is not strong enough to survive
repeated disassembly, so make sure
that you test the completed PCB before
you screw the case together.
Loading the firmware
Installing the firmware on the Pico
Gamer is easy. All you need to do is
press the left-hand button (marked
Boot) on the RP2040-Plus and plug
the USB interface into your desktop or
laptop computer while holding down
that button.
The RP2040-Plus will connect to
your computer and imitate a USB
flash memory drive. Most computers will then open a file management
window showing the contents of this
drive (which you can ignore).
The Pico Gamer firmware file can
be downloaded from https://pemag.
au/Shop/6/370 or https://geoffg.net/
picogamer.html
It will have a filename similar to
“PicoGamerV1-2.uf2”. There will be
two versions, one for 4MB modules
and one for 16MB, so select the appropriate one for your build. Drag and
drop that file into the imitation USB
drive created by the RP2040-Plus.
When the copy has finished, your
Pico Gamer will reboot and display
the main menu.
The firmware file you uploaded contains everything needed, including the
BASIC interpreter with all the necessary options set, the menu program
stored in flash slot 1 and the internal
file system with all the games and their
supporting files (images and music).
There is nothing extra that you need to
install or configure. Just start playing.
In the future, you can update the
firmware without opening the case by
connecting the USB socket to a desktop or laptop computer and, using a
terminal emulator, interrupt the running program by pressing CTRL-C, then
enter the following command:
UPDATE FIRMWARE
Running this command will have
the same effect as disassembling the
case and holding the Boot button on
the RP2040-Plus.
The original colour of the case is white as shown in this photo. The case in the lead photo was spray painted in the “Satin
Claret Wine” colour. For the buttons, you can choose whatever colours take your fancy. This main menu is displayed
immediately after powering on the Pico Gamer. The up/down buttons allow you to select a game and pressing SELECT will
run it. If you choose a directory, the contents of that will be displayed instead. When an SD card is inserted, you will have
the option of playing games from it too.
14
Practical Electronics | March | 2025
The Pico Gamer
Using the Pico Gamer
The first thing that you need to do
is charge the battery. To do this, connect the USB socket on the rear of
the console to a charger via a USB-C
cable and switch the Pico Gamer on.
The charging time from completely
flat is about four hours.
When the Pico Gamer is running on
battery and the menu is displayed, an
estimate of the battery’s charge (high,
medium or low) will be displayed on
the bottom line of the main menu.
When you turn the Pico Gamer off,
the battery is completely disconnected so that it will keep its charge for
a long time if it is not used (a year
or two). Because the battery is disconnected when the device is off, it
will only charge when the device is
switched on and plugged into power.
Also on the rear of the case is the
slot for a full-size SD card. Cards
up to 32GB formatted in FAT16 or
FAT32 can be used, and when a card
is inserted, the main menu will show
an option for selecting it (button B).
When the SD card is selected, the
menu system will show the directories and executable files on it in
the same format as the internal file
system. The A button allows you to
swap back to the internal file system
if needed.
Whenever the Pico Gamer is powered up, it will run the menu program
(in flash slot 1) and display the main
menu. Using the menu is intuitive
– you use the up/down buttons to
select a game or program and press
select (SEL) to run it. Subdirectories
are also shown in the menu list, and
if you choose one of them, it will
show the contents of that directory.
In most games and within the menu,
the select (SEL) button on the front
(under the LCD screen) is used to
select an option or exit the current
mode. The START button is generally used to start a game running or
pause it if running, although that can
differ between games.
The functions of the other buttons
are defined by the game. Typically,
the four navigation buttons (on the
left) are used to move in various directions, while the A and B buttons
(on the right) fire guns, drop bombs
or perform other similar functions.
The easiest way to permanently
install a new game is to copy it to
an SD card and insert the card into
the Pico Gamer. Then plug the USB
Practical Electronics | March | 2025
The 3D-printed case
While a few of our projects have used a custom 3D-printed
case before, this is the largest and most complicated one so far. The good news is that, besides
being able to get the case in kits,
companies also exist
that can do the printing
for you. And because
they use large industrial
machines and a wide
range of materials, they
can do a great job.
In the past, we would
make our own PCBs at
home, including the cutting, etching and drilling.
This case
Few people would do that
was made by
these days because commercial
JLCPCB using
companies do such a good job fabriStereolithography
cating PCBs at a very competitive price.
(SLA) and the LEDO
3D printing is starting to go the same way.
6060 resin.
A custom case has many advantages over
buying a standard ABS plastic box. For a start, it has the optimal dimensions
for the design, and it can have a smoothly rounded, ergonomic shape.
It can also have the correct holes and cutouts precisely positioned, and
they will be perfectly formed – not the jagged mess that can happen when
they are cut by hand.
Another benefit is the thin and professional bezel around the LCD panel.
That has long bedevilled designs incorporating an LCD panel – achieving the
perfect thin rectangular bezel by hand is tough. However, it can be done easily with a 3D-printed case.
A typical medium-sized 3D-printed case will cost $20-50 to make, which is
good value given that you get precisely what you want with all the holes and
various features properly made for you.
Design software
If you wish to design your own case, you first need to decide on the 3D modelling software you will use. There are quite a few free packages to choose
from. However, many are not quite as intuitive and accomplished as modern
PCB design packages.
Suitable packages range from Tinkercad, which runs in a browser and is
aimed at beginner and educational users, through to more heavy-duty offerings such as Blender. Blender is free and open source; it is very capable and
can do almost anything. It also has a very steep learning curve with many
‘gotchas’ and non-intuitive operations that can trip you up.
We settled on Blender because we needed to create a very smooth bevel on
the corners of the case, and we wanted to position features with a precision
of a fraction of a millimetre. However, the steep learning curve caused us to
pull out a lot of our hair in the process.
If you plan to use Blender to design an instrument case, we recommend
this tutorial video as it covers most of what you need to know: https://youtu.
be/rN-HMVTB7nk
Fabricating the case
When you have finished the design, you can export it as an STL file and send it
to your fabricator of choice. There are many, both within Australia and overseas.
We used JLCPCB in China, who are better known for producing PCBs but
now they are moving into 3D printing. They offer quite a few technologies and
materials, including 3D printing in metal.
We chose their stereolithography (SLA) technology for the prototype, using
the LEDO 6060 resin. This is one of the more cost-effective processes, and
it produced a perfect result with all the special features positioned with pinpoint accuracy.
15
Constructional Project
into a desktop or laptop and, using
a terminal emulator, interrupt the
running program on the Pico Gamer
with CTRL-C (full instructions are in
the PicoMite User Manual).
This will return you to the command prompt, where you can copy
the game to the Pico Gamer’s internal file system with the command:
COPY “B:filename” TO “A:”
To return to the menu, enter:
FLASH RUN 1
You will see your new game included in the menu.
Writing games
One of the best features of the Pico
Gamer is that you can write your own
games for it. It is not hard to do and
can be a great learning experience.
Programs are written in the BASIC
language, which is easy to learn by
design. The version of BASIC running
on the Pico Gamer (MMBasic) has
many features for displaying graphics and text, playing various sounds
(including music) etc. To learn about
this, download the PicoMite User
Manual from the bottom of https://
geoffg.net/picomite.html
There is an active community on
The Back Shed Forum for people who
are writing games for the Game*Mite
and the Pico Gamer and posting them
on the forum (www.thebackshed.
com/forum/Microcontrollers). If you
write a game, you should join the
forum and post your efforts there for
others to enjoy.
The best way to write your games
is to plug the Pico Gamer’s USB port
into your desktop or laptop computer.
You can then use a terminal emulator program such as Tera Term to gain
access to the PicoMite’s console and
use the editor built into MMBasic to
enter the program.
The PicoMite User Manual goes into
more detail on how to use the editor;
it is a very efficient process with the
ability to quickly jump between running the program and editing it.
Another method is to use MMEdit,
a program that runs on your PC and
allows you to edit the program on
the PC, then transfer it over USB
to the Pico Gamer and run it with a
single keypress. MMEdit is written
by Jim Hiley in Tasmania and you
can download it from www.c-com.
com.au/MMedit.htm
Detecting button presses
When you write a game for the Pico
Gamer, you need to keep a couple of
things in mind. The first is how to
detect a button press.
The eight buttons on the Pico
Gamer are connected to I/O pins
GP8 to GP15 (physical pins 11 to
20) and will pull the pin low (ie,
logic zero) when pressed. The first
thing that your program needs to
do is configure these pins as digital inputs with internal pullup resistors. For example:
For i = 11 To 20
On Error Skip
SetPin i, Din, PullUp
Next i
The “On Error Skip” command is
necessary because some pin numbers
in the range are ground pins, and
MMBasic will throw an error when
we try to configure them (or you could
change the code to avoid the SetPin
command for i=13 and i=18).
To detect which button has been
pressed, you can define a series of
constants representing the pin numbers like this:
Const bDOWN = 11
Const bLEFT = 12
Const bUP = 14
Const bRIGHT = 15
Const bSELECT = 16
Const bSTART = 17
Const bB = 19
Const bA = 20
Then, in your program, it is easy
to determine if a button is pressed
(pulled to a low level). For example:
If Pin(bDOWN) = 0 Then
‘down button pressed
If Pin(bLEFT) = 0 Then
‘left button pressed
Exiting to the main menu
The second feature that all programs
must implement is to return control
to the main menu when the user has
finished playing and wants to exit.
To do this, you need to insert the following command in your program:
Flash Run 1
Fig.4: this is the LCD you should purchase for the Pico Gamer. They are
available on eBay and AliExpress, but check that the vendor’s photo matches
this image, as some incompatible designs on offer will not physically fit. The
front of our display reads “HR4 8637S G6/2” along the touchscreen.
16
MMBasic will immediately transfer control back to the menu program
in slot 1 when this command is encountered.
The final step is to install your program on the Pico Gamer. To do this,
you simply copy it as a file to the directory called /GameMite in drive A:,
ie, the internal file. You can use the
XModem command or copy the file
to an SD card and use that to transfer
the file to the Pico Gamer. When the
main menu program runs, it will scan
drive A:, discover the new program
and include it in the menu.
So there you go, a modern handheld
game console that encourages you to
write your own games. For software
updates, keep an eye on: http://geoffg.
net/picogamer.html
PE
Practical Electronics | March | 2025
|