Tutorial 1: Monku R1 / R2 - ODROID-C1+ / C2 Retro Gaming Console Build Part 1: Hardware
-
Author: Brian A. Ree
Part 2 of this tutorial which details the software configuration can be found here.
Part 3 of this tutorial which details the software configuration can be found here.
Sections
0: Tools Needed
- A small screwdriver set that contains a few small phillips head screwdrivers.
- A soldering kit including soldering iron with fine tip, solder with flux, temperature control if possible.
- Masking tape or painter's tape.
- A clean static free work surface.
- Drill and a good selection of drill bits.
- Monitor or TV with HDMI support to test the device.
I used this soldering kit, link. It costs
around $18.99 and although on the cheap side it comes with everything you'll need for this build and the soldering iron comes with multiple tips including
a fine tip, and has a temperature control which is awesome. Now I hadn't soldered anything since high school and I was able to do this and not mess it up.
I also don't have the steadiest hands as I've probably had about 3 cups of coffee before any given moment in time. So if I can do it, you can do it.
1: Parts Needed
- ODROID-C1+ / ODROID-C2 x1: $35.00 / $46.00 link / link
- Case x1: $4.50 link
- Button Set: $7.99 link
- Breadboard Cable Set x1: $7.99 link
- 64GB Micro SD Card x2: $15.99 link
- HDMI Cable x1: $1.00 link
- Micro USB Cable x1: $1.50 link
- USB Charging Block 5V/2A x3: $11.99 link
- GameSir Wired Controller x1: $17.00 link
The total project cost as described above and not including shipping or tools you don't have is around $104. That being said.
If you exclude the custom control buttons or can buy the parts individually you can save around $16. Also you don't need two micro SD cards.
I like to have a spare in case one goes and the dual set listed above has a great price, also the card is well rated and from my personal experience I've only
had one fail unexpectedly out of 12 or so I've been using regularly during the configuration and development of the devices.
If you have an HDMI cable, a micro USB cable, and a USB charger 5V/2A then you can save even more. So while the price listed is around $104 you can probably
get it done for around $80. Not too bad once you see what these things can do.
2: Introduction and Tutorial Goals
Hello and welcome to our second ODROID device tutorial. This review will show you in detail how to build a
Monku Retro 1 (ODROID-C1+) or Monku Retro 2 (ODROID-C2) video game console from scratch. You will need some parts.
I've listed the ones I used above and placed a link next to each one. These are the actual items I've used in the
past and I find them to be reliable. SD cards do fail and sometimes you get a bad button but for the most part
I've had no problems with the parts listed.
This tutorial will cover the setup, and construction of the game console from a hardware point of view.
The hardware button provides a hard reset of the device
The software button hooks up to GPIO pins and is setup to record how long it is being held and execute a certain command for the
recorded time period. So for instance a 2 second hold is a software reboot, a 4 second hold is a software shutdown etc.
So if you do want to add custom control buttons we will cover that here in detail.
Everything from the parts, to the pins, to how to solder it all up. That being said you don't have to add this feature.
You're device will work fine without them but in the event of a crash you will have to power cycle the console by
hand and could corrupt the linux file system.
The hardware reset button makes this a little easier, but the software controll button with it's OS shutdown and restart
calls are much safer to use.
You can always go back and add them in, not a problem. We will also cover all the software setup including installing
an configuring Ubuntu, retroarch, and antimicro in part 2 and 3 of this tutorial series.
Ok let's get to it shall we!
R1 / C1+ Features:
- ODROID Goodness!
- Custom Software Control Button
- Custom Hardware Reset
- Support for Atari 2600, Atari 7800, ColecoVision, MSX-1, MSX-2, NES, GameBoy, GameBoy Color, Sega SG-1000, Sega Mark III, and Sega Master System configured and ready to go.
- Retroarch with XBM, custom scripts to monitor the software button, start retroarch, maintain antimicro.
- Configured for low memory usage and for use with included controller.
- Every ROM tested to see if it loads and properly associated with its emulator.
- Full linux desktop environment when not in game kiosk mode via antimicro.
R1 / C1+ Software Button Functions:
- 02 Second Hold: Software reset
- 04 Second Hold: Software shutdown
- 06 Second Hold: Turn off game kiosk mode.
- 08 Second Hold: Change to 1024x768x32bpp resolution and reboot.
- 10 Second Hold: Change to 720px32bpp resolution and reboot.
R2 / C2 Features:
- ODROID Goodness!
- Custom Software Control Button
- Custom Hardware Reset
- Support for Atari 2600, Atari 7800, Atari Lynx, ColecoVision, MSX-1, MSX-2, NES, GameBoy, GameBoy Color, Virtual Boy, SNES, GameBoy Advance, WonderSwan Pocket/Color, NEO GEO Pocket/Color, Sega SG-1000, Sega Mark 3, Sega Master System, Sega Genesis, Sega GameGear, NEC Turbo Graphics 16, and NEC Super Graphics emulators configured and ready to go.
- Retroarch with XBM, custom scripts to monitor the software button, start retroarch, maintain antimicro.
- Configured for low memory usage and for use with included controller.
- Full linux desktop environment gamepad control when not in game kiosk mode via antimicro.
R2 / C2 Software Button Functions:
- 02 Second Hold: Software reset
- 04 Second Hold: Software shutdown
- 06 Second Hold: Turn off game kiosk mode.
- 08 Second Hold: Set video to auto for VGA mode, possibly alter retroarch.cfg for USB audio if present.
- 10 Second Hold: Set video mode to 720p, alter retroarch.cfg for HDMI audio.
3: The Setup
First thing's first let's go over the tools and parts, lay them out, and get ready to build. We have an electronics screw driver set.
If you've built an ODROID-GO the same screw driver set should work fine here. Notice we have our device, an ODROID-C2 is depicted below, this tutorial
applies equally to the ODROID-C1+ or the ODROID-C2 version of this device. The ODROID-C1+ I use for 8Bit retro gaming the ODROID-C2 I like to use for all
8Bit and 16Bit systems plus the handhelds, it runs them wonderfully. You can probably run them on a C1+ but I like the C2 more for 16Bit games for some reason.
We have our custom control buttons, jumpers, case, and tools all ready to go.
We have our soldering iron, notice the stand and sponge for cleaning the iron and temperature control on the iron.
The temperature control is crutial I think, you can probably get away with not having one especially if you're good at soldering.
I'm not and what the temperature control lets you do is adjust things so that you are applying high heat for a small amount of time.
I've read a few tutorials and watched a few videos and from what I gather lower heat for a long time is not as good as high heat
for a very short period of time.
I do feel that it makes things cleaner, I'm not sitting there trying to hold the iron to a connector waiting for a glob of solder to finally melt.
One other thing is you really need a fine tip on the iron. Again if you have skills maybe you can get by, but I don't and a fine soldering
tip was a life saver for me.
Tip: If you don't have a fancy circuit board holding device to aid you in your soldering I have found that masking tape works really well.
Ok, ok so it will melt but it shouldn't be getting hot. I'll show you how to use the tape to secure what your soldering so you can get
a good clean solder joint.
It works just as good as the fancy circuit board holders, is super cheap, and has more flexibility. You could solder upside down hanging
from the ceiling
if you really wanted to ... and had enough tape.
The case can be a little tricky to open. It shoud require little to no effort to separate it but it takes a little trick or two
to do it that way. You could pop it open I suppose but broken fastening clips really irk me so I take the careful route.
The first thing you want to do
is unclasp the back of the case. This can be done by applying a slight pressure on the bottom of the case pushing it to the right,
while pushing the top of the case
to the left with a slight lift as shown below. Small forces here, it won't pop open but will separate.
Once the back clip is separated we can move over to the side that has two clips. Tip: The next two clips on the side are a bit tricky.
You can get the front one open by putting your
finger inside the case and applying the same small forces we used to get the back clip open. To get the last clip on that side open you'll need a
finger nail. Slide the finger nail
into the seam on the case at the back clip, the first one we separated, you can drag your finger nail around to the side that has the two clips and it
will separate the remaining clip.
It takes a little doin but don't worry take your time. You may inadvertently reconnect a clip that's ok just start over. Main thing here is to have a non-broken case
to house our beautiful console.
Now that we have the case open you can access the prize inside, a small bag of screws. Tip: If you have any left over ODROID-GO screws
they are slightly bigger than the included screws and I find that they work better over all and are less prone to stripping.
Now that the case is open we have to make a decision about the SD card door. Normally the case will have no SD card access unless
you pop out the SD card door.
So if your console is all closed up and your SD card dies you'll have to very carefully cut open the SD card door or wrestle the case open.
I like to open the SD card door for development
models so I can easily pop in and out SD cards.
To cut out the SD card door you'll need a razor or small sharp knife. There's not much too it. You'll need a few minutes, there's no super fast way to pop it out
without risking damage to the case. Scratch away at the connection point with the razor. Drag it across the points one at a time scratching and cutting into the small
connection plastic. Tip: You can place the bottom of the case standing up on its side, that way you can put a lot of downward pressure on two of the SD card door's plastic connections
without risking damage to the case. An open SD card door is depicted below on a Monku Retro 1 (ODROID-C1+).
A quick aside, below is a photo of a completed Monku Retro 1 (ODROID-C1+) with custom control buttons and jumper connections.
I like using 4 jumpers per button, I know you can get by with only two but I like having the extra connections. For this you'll need 4 female
to female jumpers, and 4 anything to male connectors. There are other combinations just make sure you lay out the jumpers and envision their use.
Make sure all the connections match up. You will have to cut off one side of the jumpers for the wires that are soldered to the buttons.
4: The Soldering
Ok so now we will be getting ready to solder the connection we need for the hardware reset, direct power toggle of the board.
Now would be a good time to get your soldering iron. Plug it in and let it get all heated up. We'll be using around 400 degrees,
if you have temperature control,
for the wires and buttons. We're going to layout the jumpers and buttons below to visualize them. I normally use jumper pins from the ODROID-GO
expansion slot but I realize not everyone has those so I used jumpers on this build you'll see once we get into it ... I used the wrong colors, oops.
Let's take the jumpers that are closer to the buttons as shown above. We then cut the connectors off the one side of them.
Now you can use a scissor or your finger nail
to remove the wire casing. Either gently roll the wire along the one scissor blade with a little pressure until there is a break in the casing.
Same strategy applies to using a finger nail. Once the casing gets a little white and shows signs of coming apart you can usually pinch and pull just
the casing off of the wire. Once that is done hold the very tip of the copper wires and rotate the cable so that they are all nicely twisted up.
Do this for the
other jump cables as well.
Make sure to check your soldering iron I accidentally started melting the plastic case on my screwdriver set once during a build.
Lay out the four wires and two buttons. Get your iron ready, clean the tip with your wet sponge and prime the iron with a little solder and flux.
I'll assume you have solder with the flux inside it from this point on. We're going to prime all the connections here before we connect them.
Solder binds almost instantly to solder when soldering, say that five times fast, so that's why we prime. I do not prime the boards though, I follow a "as little time with the iron as possible"
mantra with the board itself. Notice we're using the masking tape to secure each piece.
Hold the soldering iron underneath the wire and just dab the solder to it, the copper braid will absorb the solder
and you can spread it by moving the iron down the wire. You don't need a lot, just a little on each one. Do all four.
Now you want to prime the button contact points. Don't worry if you fill one of the hole on the contact point it won't be a problem.
Place one of the wires that we stripped and primed, keep the colors you choose consistent throughout to make things easy for you, in
the contact hole of the button. You may have to apply the iron slightly to allow the wire to pass through. Bend and secure the
wire to the side
of the button with some tape. Now solder the contact point. Do this for both connections on both buttons. Use a scissor to snip
off the excess wire.
You should have something like what's shown below.
ALERT: There is a difference between the C1+ and the C2 so you have to stop at this point and double check which board you have and
what version of that board, in the case of a C2. Below is a photo of the C1+ with power button soldered on th eboard by the "pwr" text.
The C2 board has the same marking but it may not be the actual power
button location. You can use the buttons you just made to find out which location is the power button point. Place the male jumper leads
into the holes in one of the available positions, J8 or pwr, give them a slight skew with your finger so they make contact. With the power on, but no SD card
or anything in, push the button. If the red LED goes off you've found the power button. If nothing is happening you might have a bad button try the other one
you made. If still nothing is happening you might have a bad contact try and short the two little holes at the available locations until you identify which
one controls the power.
NOTE: If you are working with an ODROID-C1+ this is the place on the board you'll be adding the jumpers for the power switch.
Make sure you have verified it bia the process outlined above to be sure, hardware revisions do happen.
The photos below show the button test in action.
Ok, deep breath now get ready we're going to solder the board. Turn your soldering iron heat up to 450 or so.
Secure the board to your work surface, make sure you have it steady such that it won't move when the soldering
iron touches it. I normally would use pins from the ODROID-GO expansion clip but not every one has one lying around
so instead of plugging jumpers into the pins we'll solder the jumper to the board and plug into the other side of them.
Strip and twist the wires like we did for the buttons. Start with the hole farther in on the board, push the wire through and
solder it on, little bit of solder, little bit of time. Repeat for the hole closer to the edge. You should have something like picture
below done at this point. For the C1+ this connection - near the corner of the board - is a bit tight, just be careful, take your time.
Congrats we're done soldering if you did it right. Let's test it. Plug in one of your working buttons.
Power up the unit, no SD card. You should be able to get the red LED to toggle just like before.
If you have a working C1+ / C2 SD card now is a good time to test and see that everything is working fine. Looking good!
If you don't have an SD card no worries we'll be at the software step soon, the only thing left on this side of things
is the case holes and mounting the buttons.
5: The Case
Now that we have our custom control buttons made and the board setup with a power button connection let's work on the case.
We need a place to mount the buttons. There are two places on the case that can easily take the buttons and not interfere with the heat sink
or any other internal components. One is on the back right, just above one of the those jumper connection points, pwr. The other is a little to the left
just past the center of the case. You can use the same positions for both the C1+ and the C2 although things are a bit tighter in the C1+.
Below are two prototype devices with the buttons mounted. The holes weren't perfectly lined up because these were experiment builds.
A small stick-it note does wonders for this part. Depending on the diameter of the buttons you can use a ruler
to position the holes on the stick it note then compare it to the actual device. For this you may want to place the device
inside the case and place the top on it but DON'T close the case. You don't want to suddenly have to stop and wrestle the case back open.
Move the note around, adjust your lines, see if you can get it in a good spot. ALERT: The heatsink will block the switch if it's not high enough
on the case, keep that in mind. ALERT: If you are working with a C1+ unit the power jumpers are right next to the button mount point make sure there
is room for them!
Ok drill time. Any old drill will do. I have a cheap $20 drill with an affordable drill bit set $10 or so.
Check the dimensions on your button they should be somewhere in the range of 0.25 inches. Make sure your target drill
bit, i.e. the large one, isn't too big. You want the holes after drilling to be just a little bit too small.
I like working my way up from the smaller bits to the larger one rather than going straight to the larger one.
I find it to be less error prone as each bit only removes a little bit of plastic. You can even walk the hole
left or right or up or down by using each new bit a little bit more to the left than normal. This is great for last minute
adjustment of the position in case you make a slight mistake.
Keep your finger on the stick-it note and out of the way of the drill. ALERT: Do not let the note slip.
Use the smallest drill bit to drill through the paper and into the plastic deep enough to only leave a slight clear mark.
Remove the stick-it note and while holding the case drill through each hole with the small bit. Work your way up from there.
Below we can see the larger holes made with successive drill bits.
At some point in this process you'll encounter a drill bit that really grabs the plastic and jerks the case.
Stop at this point. Place the case on a flat surface near the edge of your worksapce so you can access it with the drill.
Gently lay your palm flat on top of it with some downward pressure. This will keep the case safe from being twisted and snapped.
Place one jumper on pin 9, GROUND, of the 40 pin GPIO header. Place the other jumper on pin 15, GPIO #237 if you are using
an ODROID-C2.
You may have to check if the header has changed during some of the hardware revisions.
If you have an ODROID-C1+ place the jumpers on pins 15, GPIO 3, and 17, 3.3V.
Alrighty lets put it all together, DON'T close the case yet, we'll do that at the very end. In fact put a small piece of tape
on some of the clips to prevent it from accidentally clasping. Take a look at your awesome new gaming console, aint it shiny?!!
Part 2 of this tutorial which details the software configuration can be found here.
Part 3 of this tutorial which details the software configuration can be found here.