#0038: Demonstration of chess game data featured in Cowboy Bebop anime

#0038: Demonstration of chess game data featured in Cowboy Bebop anime

Preamble

I have been playing a fair bit of chess recently. I even went so far as to buy and start reading books on the subject. (gasp I know, first “buy”, then “read”. Must be one of those mundane everyday miracles I keep hearing about.) Anyway, as I did: it reminded me of a particular episode of an anime that I absolutely loved watching as a teen. Namely: Cowboy bebop.

Created by a Japanese company called Sunrise Inc. Cowboy Bebop is an anime that is generally highly regarded on the internet to this day (2023). Even though it originally aired in Japan in 1998. 25 years ago. Part of the reason for this in my opinion: is the sheer attention to detail, and artistic care of craft displayed within each episode. Something I will hopefully demonstrate here.

As a show: Cowboy Bebop has primarily an episodic structure. Where each individual episode features a self contained story with a start, middle, and end. That then contiguously fits into a larger narrative that runs across the season. With few exceptions such as the odd multi-episode narrative, or recap episode. The focus of this article is episode 14: Bohemian Rhapsody. A chess themed episode where I found the move-set for a full game of chess.

I wish to display that game here for your viewing pleasure. Please note however that I am no chess expert (as I am barely competent), so I will not comment on the game itself. I just want to feature it here because I think it’s really cool; that an anime would have such attention to detail as to feature things such as a complete game of chess. One that briefly scrolls across the screen for less than a handful of seconds no less. [See video extract below.]

Tools

Since this is not a tutorial piece I will be brief here. I just wish to outline the tools used to make the chess game demonstration GIF image and video extracts below for those interested.

  • XBoard – to play the game move-set out on, in a Linux based OS
  • Native Screenshot application of Linux Mint Cinnamon – to take screenshots of XBoard
  • GIMP – to edit images for the GIF animation
  • imagemagick – to convert a series of PNG files into a single animated GIF file
  • VLC – to play videos
  • Flowblade – to edit and export videos in MP4 format

Episode narrative background

Please note: this is primarily from memory, so I may have some of the details askew.

The cartoon villain of the week featured in this episode is a character by the name of “Chess Master Hex”. A child chess prodigy who whilst working for a large corporation as a researcher helped develop the first hyperspace gates. Gates which allowed space ships to move between planets in our solar system significantly faster and safer than previously available. They quickly became ubiquitous due to the savings on time and general logistics.

Now here’s the wrinkle: there is an unspecified fatal flaw in the gates’ system. One that never got addressed due to corporate interests burying it for the sake of profits. Hex who wanted the project paused until research into the flaw and it’s resultant fix was developed – was removed from the project for protesting it’s rushed go ahead. And then fired. (And likely made to sign a Non-Disclosure Agreement. You know how it is.) Because of this he then spun a decades long plan of vengeance on the corporation that wronged him.

Now fast forward to the present. Our cast of cowboys (space bounty hunters) are tasked with catching him. This is due to the corporation placing a large bounty on the entity that is coordinating a series of cyber-attacks against their hypergates. Cyber-attacks that involved the use of custom hardware that utilises an (until now) unknown latent vulnerability within the gates’ systems: in order to completely drain the bank accounts of any customer who uses a hyperspace gate’s pay point.

In the process of chasing up on the bounty, our cast manage to independently capture several of the low-level criminals that have been physically installing these systems into the hyperspace gates themselves. The odd thing is that all these people had nothing in common; except for the fact that they all had in their possession a digital chess piece. A King piece, that allowed the holder to play an online game of chess with a player who turned out to be Chess Master Hex himself.

The chess game

During the story a digital chess piece is scanned. It’s data is displayed on the scanner’s VDU. The contents of which are two different chess games’ moves-sets. Games played between a player named “Deep Blue” and Hex himself. The actual name “Deep Blue” is a reference to a real world notable chess super computer. That is contemporary to the anime’s time (1998). Note: I assume above that the first game was also played by Deep Blue. However, unfortunately half of the first game’s move-set (and metadata) was cut-off. So really only one and a half games’ data is revealed to us. With only the latter game’s data being revealed in it’s entirety on screen.

Now, being the curious cat that I am: I decided to actually play out the second game. The one I could see the complete move-set for. See below. The interesting thing learned here is that they are in fact real chess moves. Not just some random gobbledygook, as I feared it might be. All the moves depicted a valid game of chess, with none of the pieces making any illegal moves.

Well … There is one exception however. On White turn 18, a Rook makes an illegal move from it’s starting position of f1 to e7. (“Rfe7”.) I made the logical inference that it was merely a typo, since it was the only illegal move in the entire move-set up to this point. And since the numbers 1 and 7 typographically look alike: I substituted the legal move of “Rfe1” for it. This amended move resulted in the rest of game, including follow-up moves for that same rook piece being valid. Bravo.

One last little tidbit on this game: when it mentioned Deep Blue I was curious as to whether or not the game featured in the anime itself was famous. I.e. did they copy verbatim one of Deep blue’s games. (ctrl-c ctrl-v style.) And upon a cursory (Wikipedia) search it does not seem to be the case. I compared it to the games that made Deep Blue famous. The notable games where it had won against Russian grandmaster Garry Kasparov, and it didn’t match any of the six games that they had together in 1996, as well as the six rematch games of 1997. I compared all the games with a 1-0 result as is here. First the one’s where Kasparov wins 1-0, assuming him to be a substitute for Hex. Then I chose to include the one’s were Deep Blue wins 1-0 just for the sake completeness. To no avail.

Wikipedia summary of games between Deep Blue and Kasparov

Chess data-set compiled screenshots

Original compiled screenshot

Error corrected compiled screenshot

Screenshots of first camera shots of scanner displaying chess data

Video extract of scanner displaying chess data

Chess game demonstration

Chess game demonstration stills

Chess game demonstration animation

Radical Edward and Chess Master Hex playing chess using electronic chessboards

What’s the point of this section? I just think that this is cool is all. It illustrates the use of a holographic electronic chess board with public network access. I also love the aesthetics of retro-futuristic tech in general, as well as scrap-tech; and this touches on both. Now look at the screenshot of Edward (possibly?) holding in the ratty network plug into the electronic chessboard’s socket with her foot. It’s surprisingly relatable. (Or maybe I am just projecting.)

I initially wanted to plot the move-set for this game out as well, and do another animation for it too. Since the pieces look to be in consistent positions between shots. (Operative word: “look”.) However I found the process to be too much work for the payoff. The various dynamic camera shots of the chess boards (“boards” plural!) depicting the moves of their respective pieces quickly became disorientating.

My chronically sleep depraved brain soon threw it’s metaphysical hands up in frustrated surrender. Stuff it! The straw that broke the camel’s back as it were, is the shot (@ 00:49) of Hex placing a white queen, despite playing black! I just wasn’t willing to error correct, in addition to wrestling a coherent game out of those hectic camera shots. Still… I may comeback to it one day, if I fancy the challenge. Unlikely.

Moving on. Now look at the startup animation for Edward’s electronic chessboard. Did you notice the spelling error? Nice little bit of ‘Engurish’ there. It made me smile anyway. I mean the 90’s were a golden age for top-shelf Engurish in general. And thankfully Cowboy Bebop is no exception. Unfortunately the English dub is of such high quality that I have had no need to watch the Japanese original audio version, so I have likely missed out on some peak spoken Engurish as a consequence. What a genuine shame.

Aggregated screenshots of chess game

Video compilation of chess game

Sorry about the audio syncing issues in this vid. All settings are good, yet Flowblade (repeatedly) renders the video with de-synced audio. I am not sure why. :/ I am not going to chase it up right now because it isn’t really important. (And not worth the delay.) The visuals are what I am primarily demoing here.

Closing thoughts

The funny thing is that I don’t even really watch much anime anymore. However like I said earlier: I have had my interest sparked in playing chess as of late. I’ve been playing it at work using smartphone apps (like lichess.org or chess.com) as well as using a physical set against my work colleges. And while I was playing I was suddenly reminded of Cowboy Bebop’s chess episode. Specifically the scene with the junky scanner displaying the chess data lopsided on a monochrome green CRT monitor. And the idea suddenly occurred to me: “I wonder what that game actually looks like”. And that’s how this write-up came to be. I hope it has entertained you if nothing else.

Thank you for reading.

Acronyms used

CRT – Cathode Ray Tube
GIF – Graphics Interchange File
GIMP – GNU Image Manipulation Program
GNU – GNU’s Not Unix! (recursive acronym)
PNG – Portable Network Graphic
VDU – Visual Display Unit

Links, references, and further reading

https://en.wikipedia.org/wiki/Cowboy_Bebop
https://en.wikipedia.org/wiki/List_of_Cowboy_Bebop_episodes
https://en.wikipedia.org/wiki/Deep_Blue_(chess_computer)
https://en.wikipedia.org/wiki/Deep_Blue_versus_Garry_Kasparov
https://en.wikipedia.org/wiki/Engrish
https://en.wikipedia.org/wiki/GNU_operating_system
https://imagemagick.org/Usage/
https://www.gimp.org/
https://linuxmint.com/
https://jliljebl.github.io/flowblade/
https://www.gnu.org/software/xboard/
https://www.videolan.org/vlc/
https://www.lichess.org
https://www.chess.com
https://www.rd.com/article/what-does-gif-stand-for/

#0036: Introduction of a website changelog

#0036: Introduction of a website changelog

Preamble

I initially launched this website in 2020-02, with nothing but the default wordpress “coming soon” page to show for itself. Then after some months (2020-06) I finally managed to get round to actually publishing content onto it. And ever since then, I have been in a continual (albeit sporadic and intermittent) process of revision and iterative improvement.

So after about a year and a half of having this website online and functioning as intended: I now see the potential need for a master changelog here. A public facing log that will record all notable changes made to the website.

Utility of a public facing website changelog

Although this changelog will record all noteworthy changes made to the website as a whole. I specifically see the utility of this website changelog, with regards to noting changes made to the content of this blog’s articles themselves; rather than the website at large.

What I mean by this, is that it is more important to note post publication changes made to the content of articles. Than it is noting change in the wider website as a whole. This is because most changes made to the wider website outside of the articles hosted here will likely be concerned with aesthetics. Such as an addition/subtraction of a decorative graphic.

Simply put: they are less substantially important changes in terms of affecting the value proposition of the website itself. Although I do intend to note these types of things as well. At least for the most part. Although very minor website changes of this kind are unlikely to be noted.

That being said: I should restate the main function of this changelog. It is to note changes made to article content. This is because this blog’s articles (or blog posts) is where it’s primary (or most substantive) value is as a website. I.e. the primary reason a person may visit this site is to read the articles. This logging will allow readers to avoid confusion when/if they visit an article that they have already read, only to find that the content has to some degree changed within the interim.

My M.O. regarding editing published articles

Once an article has completed the development process and is finally published, I tend to have a habit of coming back to tweak and change things after the fact. This tends to happen some time time after the article is published when I have had sufficient time to rest and cool off on the topic. At this point I am usually more fresh minded, and hence I am more apt to find better methods to get my point across, as well as to spot any residual errors previously missed.

I am of the mind that I should also chronicle these changes as I make them. This is in order to avoid a sense of revisionist history. One caused by the absolute erasure of any mistakes such as: erroneous calculations, half-witted conclusions, or simple misinformation. I admit I am prone to getting it wrong a lot of the time. Especially when it comes to speculations made with limited observations, or ones unfortunately coloured with personal biases.

With that in mind, I should take a moment to state clearly the nature of this website in order to eliminate any misunderstandings or confusion as to the nature of this publication. As the name should suggest; this website is literally “a tinkerer’s blog”. The articles held therein are presented not as an authoritative source of information, but rather my (and only my) best understanding of any particular subject at the time. Complete with grammatical mistakes, spelling arrows, personal experience, and biases; as well as good ol’fashioned human ignorance and incompetence.

Although I (think I) do my due diligence in researching for articles; as well as re-reading my work several times over before publishing. This is in order to (give myself the opportunity to) catch any and all errors that I can. Unfortunately, often at that time: my mind can become exhausted with the subject matter, and would rather move onto to something else. Anything else! (Maybe even a refreshing punch to the testicles.) Add to that time pressures such as work and scheduled commitments. Well. They all add up; pushing me to hit the publish button perhaps earlier than I otherwise should.

Hence in an article’s final proofreading and finishing edits stage – I tend to find myself skimming sentences; or simply unconsciously mentally correcting the text grammatically and/or semantically. I.e. I knew what I meant by what I wrote, although I left the text in a state where it’s messaging is either ambiguous, nonsensical, and/or open to multiple unintended interpretations. Often I miss mistakes because of this and only really find them after I had some time to ‘cool off’ on the subject, as it were.

So that’s what normally happens with any given article. Post publish edits and refinements seem like a standard protocol for me. I even have a small to-do list regarding edits I need to make to past articles.

For example: my review of the video game “Princess Remedy: In a world of hurt”, has no critic of the game’s soundtrack. I somehow just completely forgot to mention it at all. I just blotted the concept of it out of my mind at the time of writing. So at this point: I intend to go back and insert this into it at a later date.

The thing is: I don’t like the idea of this additional content to suddenly one day appear within that article apropos of nothing, and masquerade like it has always been there from the beginning. I’ll leave that revisionist M.O. to the articles on political/activists news websites.

Hence, I need some way to communicate across to the audience that it is an add-on edit. In the past I solely used what I call an “update tag”. I’d insert a set of square brackets featuring the date before the add-on segment. Basically this: “[UPDATE: 2022-0X-XX] The music is …”. In the future I think I will use either the changelog alone to note smaller changes, and both the changelog as well as an in-article update tag for larger updates. Such as an entire additional segment to an article.

RSS

Just as an aside: if for whatever reason you want the raw undoctored initial publications. Free of my post publish meddling that is. Then please subscribe to my RSS feed. As it sends you the articles as they are published, and doesn’t update the content after that initial data transfer.

To do this, copy the below link into your RSS aggregator of choice:
https://www.tinkerersblog.net/rss

Closing thoughts

Although as stated the main reason for a changelog is for logging post publication article edits, it will also be good for keeping track of more general activity around the website. Things such as when new manual scans are added, or which pages have been recently edited. It’ll give the readership insight into where my attention regarding the website has been recently. Allowing them a sense of the frequency and general trajectory of my activities here. Which would be useful / hold value to anyone interested. (If there really is anyone interested … that is.)

I think it’ll add real utilitarian value to the website. But we’ll see exactly how much once it is actually implemented, and had some time to operate. Theoretically there is no reason as to why a website shouldn’t have a changelog. I mean it is a software product with ongoing development just like any other. However, I do wonder why so few other websites actually do have a public facing changelog.

It could be something as simple as a public changelog not truly being a necessity. Or it could be the fact that it would bring a level of perhaps unwanted transparency to their website. I mean it’s hard to simply vanish things, if you have a policy of documenting changes. I guess you could just not document the vanishing of the undesirable content, but still document the more mundane changes made. Although that does undermine the utility of the tool.

If I were pushed to give an answer: I’d say that most people just don’t want the work of it. For example: with for-profit websites tending to streamline their overheads (i.e. cut costs wherever they can), coupled with the continual communication and co-ordination between multiple levels of staff required for implementing and routinely updating a changelog: they most likely wouldn’t want to bother with one. Especially since there is little in the way of returns in terms of profit for the work necessary.

Even single owner general hobbyist websites probably wouldn’t bother with one either. As the single operator likely focuses their efforts on documenting their actual hobby activities. Rather than developing the website itself. I’d imagine that this is especially true in cases where the subject of their hobby or activity is unrelated to technology.

So unlike with this website, there’d be no on-topic value to discussing website development as a subject. Such as a website documenting: a homestead, hobby farm, painting miniatures, religious education, or bodybuilding to name a few. Basically any website where discussing the website itself is unrelated to the core subjects of the website… Website.

That’s all really. Changelog incoming. (Actually its already here, this article is a month late. :D)
Thank you for reading.

Term Glossary


RSS – Really Simple Syndication
M.O. – Modus Operandi (mode of operation)

Links, references, and further reading


https://en.wikipedia.org/wiki/Rss


https://en.wikipedia.org/wiki/Changelog

Personal Blog: Entry 2021-12-31

Personal Blog: Entry 2021-12-31

Introduction

Good grief. Its already the end of the year. The last day in fact.
Since this is the last couple of hours given to me of this year 2021, I figured that I might as well put something out. Something to inform you as to what I have been up to, and what you can expect from me in the future. Hopefully my more personal ramblings will still provide some entertainment value if nothing else. Obviously I will limit the subjects to those relevant to this website’s remit.

Time limitations and prioritisation

Ok. Where to begin. Well, it has been sometime since I last released an article. Nearly two months in fact. And what’s more, the last article I released wasn’t even all that interesting if I am honest. It just involved repairing a knife for a friend, and a rather shallow inspection of it’s mechanism.

So what have I been doing in the meantime, eh? Well it’s multifaceted. I have been doing a lot of things. Mostly working a new job and collecting money – so that I can hopefully have enough to move on to the next chapter of my life within 2022. (I will talk more about that at a later date.) Add to that all of life’s other important obligations. The kind that tire a person out. Mentally and physically.

That being said: I still made some time for tinkering with crap and writing about it. Unfortunately none of my various completed drafts have passed my personal threshold of quality *pause for laughter* in time to meet the self-imposed obligation of publishing at least one good article a month.

Projects currently worked on:

Device repairs and analysises

I have been working on several things including: a repair and device analysis article on an incandescent handheld torch, as well as a device analysis on an old nightlight and bicycle lights. Add to that an update on the tap cartridge article – where I replace the old cartridge as the temporary repair discussed in the first article has now since failed, and I don’t feel like redoing it again to buy a little more time. Within this article, I go through the process of measuring a cartridge using a caliper and noting all the most relevant dimensions for identifying and then purchasing the correct model replacement part.

Moving on, I also have some product reviews in the works; as well as various other repairs, refurbishments, and modifications. And since arguably the best times to shop for a good bargain is in November / early December: I have been purchasing a lot of tools and equipment in “spares and repairs” conditions. Ones’ whose repairs I have been / will continue to document.

I find myself now sitting on a veritable dragon’s hoard of broken electronic crap. Including everything from power-tools such as angle grinders and cordless drills, to useful devices such as uninterruptible power supplies, projectors, radios of several different stripes, as well as a sewing machine and a typewriter. All at rock bottom prices. And providing that I can repair them economically, all of these items will become a major boon once fixed: as they will assist me in future endeavours.

Theoretical subjects

Add to that the fact that I have several different drafts of a more philosophical nature or that deal with a theoretical subject in the works. Articles for example that discuss the economical aspects to repair and why it is difficult to maintain a profitable business repairing consumer electronics. As well as article that discuss subjects such as: methodical troubleshooting, true/perceived obsolescence, the nature of consumerism, and the dis/advantages of multi-tools such as smartphones.

Funny thing. Initially I started writing the more philosophical articles as a way to either whine about something that irks me, or as a way to create what I perceived as easy content. All I have to do is make a coffee and sit down and write. Right? Well no, this is because as I started writing on any subject of this nature – where ideas are explored: I become acutely aware of the gaps in my knowledge base. However often with no easy or sign-posted path to fill those gaps. Just an uneasy feeling of helplessness as one grasps at nothing in the darkness.

This is why these article are the ones least likely to get published. As I don’t want to advertise my ignorance, and doing some of these subjects justice requires writing a formal essay. With structured research and citations. And once you reach that point, it is no longer easy content now is it. Easier to just fish a used smart-dildo out of the dumpster, wash the shit off, then crack it open and throw a schematic up on here. I could probably complete that project within a single productive afternoon. And be less likely to embarrass myself in the process.

Project updates: Remote PI

I also have not forgotten the fact that I want to get back into making video games. Its just that operating as a solo developer is a heavy burden. It really is. And adding it to everything thing else that is going on – well I just haven’t had the time to put work into it as I should.

However, having said that. I am still chipping away at it. Right now I am playing around with creating pixel art. This skill will be relevant to the game. You might have spotted some of my work on this site. The Warhammer 40k Ork on the main page, or the Pokemon Magnemite on the “post index” page.

I even have heaps more that are unpublished. Including a bunch of pixel art icons and sprites that I intend to use in the role-playing tabletop game Shadowrun. I will use them to make decking (i.e. hacking) more compelling and attractive. By using the pixel art icons as visual indicators of networks, devices, as well as virtual entities such as AI sprites, ICs, and other deckers. Basically to add a visual flair to the game and give it some flavour.

So, even if I am not directly working on the game by creating assets for it. I am still developing a skillset relevant and conducive to the production of Remote PI. Its the main reason why I am creating pixel art. These other products are a side effect of that.

Software projects

I have several other software based projects that are currently ongoing, other than Remote PI. These include, creating a HTML wrapper, or converting my old Flash games so that they can be played here online. Alternatively, I may just make them downloadable. Either by bundling a portable Flash player with the .SWF files or by finding their original project files and recompiling them into an executable binary using the Adobe Air library.

I am also working on smaller HTML programs that I want to incorporate into this website itself. Such as an analogue clock widget, like the one in the Windows Vista sidebar; or a quote of the day program. Fun little things that add flavour to site like mine – albeit mostly by cluttering it up.

Closing statements

Broadly speaking, I think that I have achieve my stated goal with this first post. You now know what I have been up to this last month or so, and what I will be generally posting in the future. Although I haven’t mentioned every little thing, I think I got the big ones out of the way.

Having said that, going forward I will need to create a better daily routine for myself. One where I can have both the time and mental energy to work on these project more. As they are important to me, believe it or not.

This website enables me to look back on my work and experience it again. It enables me to put something useful and good into the world that I otherwise wouldn’t be able to. Even if I am the only one who reads this. Documenting things here is at least therapeutic. And I think that I will continue to do so.

If I did new years resolutions – which I don’t because they are for weak people, as they are usually used to give these people an excuse to procrastinate important life changes by delaying them until an arbitrary time period. At which point they half-heartedly promise themselves the opportunity to change, only to inevitably fail and resume their previous life habits. But don’t worry dear reader, there’s always next new year. Imma rite?

Anyway what was I saying before I started preaching like a clergyman? Oh yeah. New year’s rez.


Find a good daily/weekly routine that enables me to have the time (and mental energy) to work more on my projects. This includes cutting out bad time, where I am tired and instead of sleeping. I veg out in front of the computer. That’s probably one of the most cut and dry changes I can make to improve my productivity, as sleep restores brain plasticity.

Anyway. Thank you for reading, and happy new year.

#0035: repair and analysis of a talon style folding lock knife

#0035: repair and analysis of a talon style folding lock knife

Preamble

I was recently given this folding lock knife to fix for someone. The internal mechanisms of which I found mildly interesting, so I figured it would be worth the time to document it. It may also prove useful for future reference incase I come across something similar.

Initial observations

The first thing that I noticed whilst examining this unit is the unusual blade shape. This is a talon type blade. It is a single edged, crescent shaped blade that curves forwards and terminates in a single point. It’s crescent shape, coupled with the blade edge being on the inner concave curve: give it both a visual as well as function resemblance to the talons of birds of prey. The blade is designed to roughly function in the same way: to pierce and then to hook. This shape of blade can easily convert slashing motions into pierces, due to the blade tip being the leading contact point.

The blade description above may lead you to think that the pictured example knife is a deadly weapon. And that would be the case, at least if not for my second immediate observation. Which is that this knife is a mass produced (I assume) chinese special tacticool toy knife.

It is rather cheaply made, and only really aesthetically resembles the weapon that it is aping. This pictured knife is just a box cutter. That is also it’s literal function currently. Its what the knife’s owner, who is a warehouse operative uses it for. It is also the only thing that it can be used for in my opinion.

Faults

The main thing that was wrong with this unit is that it was not maintained properly. The owner did not tighten the various torx screws on this thing as they worked themselves loose. This led to various joints and mechanisms developing too much play in them. This then resulted in the blade being seated at a crooked angle. Which in turn allowed the blade tip to scratch the handle as it was retracted into it.

Additionally due to the owner’s negligence: some of the various screws that loosened over time, fell out entirely and were consequently lost. This is rather unfortunate, because these fittings consisted of a paired torx screw and socket nut; that where sized to fit flush into the recesses of the handle plates. The socket nut especially is rather annoying to replace. Requiring a specific purchase as it is rather uncommon, and wouldn’t likely be present in any of my bins of miscellaneous salvaged hardware.

The blade itself also has an issue. The main one being that it is made from a miscellaneous soft junk metal; and the second one is that it was currently dull. So it required a basic sharpening, in order to make this knife operable. At least for the relatively short time period that the blade’s soft metal can maintain a serviceable edge.

Parts list

A complete version of this locking knife consists of several discrete components:

  • 1 x camouflage painted outer metal knife handle plate (left)
  • 1 x camouflage painted outer metal knife handle plate (right)
  • 1 x black painted metal inner frame with spring compartment insert gap
  • 1 x black painted metal inner frame with blade locking wedge
  • 1 x black painted metal finger guard with box cutter point
  • 1 x grey painted talon style blade
  • 1 x metal spring
  • 1 x metal spring compartment
  • 2 x plastic washers
  • 4 x smaller black painted metal hex screw and blind nut set
  • 1 x larger black painted metal hex screw and blind nut set
  • 1 x black painted metal trouser clip
  • 3 x black painted hex screws for the trouser clip

Tools and materials

Tools:

  • Round edge metal file
  • Knife sharpener rod
  • Torx screwdrivers (T7, T9)
  • Tweezers

Materials:

  • plumber’s grease (or equivalent)

Repair

There really isn’t much to say on the repair itself, as its pretty straight forward. I disassembled then reassembled the knife; fixing everything dodgy about it as I went.

Actions:

  • Completed knife disassembly.
  • Bent the blade locking wedge on the inner frame so that it stops the blade from folding closed more reliably.
  • Greased the blade’s damaged plastic washers to help prevent future wear.
  • Bent the blade spring’s hook into a right angle in order to get a better hold on the blade.
  • Re-greased the blade spring within the spring compartment due to presence of dry grease here.
  • Re-tightened all the screws and socket nuts that keep the housing together.
  • Added a stand-in replacement for a missing screw and socket nut pair that consists of two screws and a salvaged threaded brass insert nut.
  • Added a plastic screw and nut to help hold frame. I chose plastic so that I could cut down the screw and round off the nut easily so that it doesn’t snag the user’s hand.
  • Performed a basic sharpening on the blade using a metal file, then honed the edge using a knife sharpening rod.

The actual repair itself is hardly anything to be proud of. It wasn’t a hard repair and didn’t even take long. However this knife has been saved from going into the rubbish bin, for at least another couple of months, and that should be the main take home. This thing is ready for work again; and should stay that way for quite a while.

Before and After video demo

Before

After

Recommended modifications

1) Grinding the blade edge and sharpening.

The knife blade could use a proper grinding and sharpening: if it to be used for anything more involved than opening boxes. I recommend grinding the blade down so that the angle of the blade edge slopes smoothly up to the mid-ridge. That way the blade can have more acutely angled edge.

This will consequently make the blade sharper than it currently is. A smaller angle will also remain sharper for longer whilst in use, due to the relative thinness of the new blade edge. Even as it dulls. Although the blade will also likely become more brittle and likely to snap as a consequence of the severe loss of material this newly angled edge will require.

2) Installing a blade backstop.

A blade backstop will stop the blade from over-rotating when it is extended. It will also prevent the blade from wobbling when extended by sandwiching it between the backstop and the blade locking wedge.

This knife likely already had a blade backstop of sorts, as it already has the screw holes where on could be mounted. However it was probably lost during use. As it is the blade overextends backwards when it comes in contact with any material that resists it.

3) Thread locker on the screws.

Thread locker such as “Locktite 243” when applied to screws prevents them from slowly working themselves loose during operation, due to factors such as vibration. This will extend the lifespan of this knife when applied to the screws that hold the frames together, as it will mean that they will (largely) no longer need to be checked and re-tightened at intervals.

And since we have already established that this knife’s owner is averse to maintaining his equipment: the lower the level of maintenance this knife needs, will be proportional to the extension of it’s operational lifespan. I.e. it will last as long as it lasts, if the thread locker can keep it together for longer, than it will last a little longer as a consequence.

4) Installation of additional retaining bolts.

I think that installing a few additional bolts and nuts to keep the frame together would greatly increase the overall structural strength of this folding knife. As it would share the strain of keeping the unit together amongst more points. This would allow this knife to be used in applications that require more force.

Although one has to be careful not to drill and install any bolts within the blades seating area within the knife handle housing, or within it’s pathway. Common sense right?

Post mod roles

As it is this knife tool is weak and too dull for any real work beyond cutting the tape off of cardboard boxes. however I theorise that if the above mods are made, then one would end up with a stronger, sharper, and more stable tool.

This would then allow the tool to used in a broader array of applications. For example light wood working, or bush craft applications. A talon style blade is good in both of those applications. The sharp hooked point is good for carving detail into wood. The concave blade is good for gripping and working with rounded objects like natural woods (sticks and branches). For example: for sharpening sticks, or for feathering wood to create tinder. It is also good for harvesting (in this case smaller) plants; as the concave blade helps bundle the stems together when cutting. Like a miniature sickle.

I could go on but I hope you get the point. The issue here is not with the knife’s design, it is with it’s flawed construction. If that could be remedied (or at least alleviated), then this knife could actually become a useful tool. It just requires work to get there.

Closing thoughts

Honestly, I actually rather dislike these types of low-cost low-quality mass produced items. This knife for example: it’s low-cost promotes replacement rather than repair: as it can very quickly make many repairs in it’s owner’s eye deemed as uneconomical. And that is assuming that the owner has a mend-and-make-do mentality to begin with. Most contemporary consumers do not. They have a use and replace mentality.

The main reason why a person may want to repair these things in my mind: is either philosophical (i.e. environmental conscientiousness, fiscal responsibility, anti-consumerist sentiments, etcetera); emotional sentimentality (e.g. hand-me-down from a relative); or if they are in severe financial strife and literally can’t afford to replace a £3.99 work knife.

Now look at it’s cheap build and materials. This factor exacerbates the issue above. Chiefly because it lowers the tools operational lifespan. This is the time it is in use, before it somehow breaks on it’s owner. Hence sooner putting them in a position to make the call on whether or not to either repair or replace the tool.

I do consider a knife like this to have been built with planned obsolescence in mind. Even though the term is hardly used for mechanical hand tools like knives; as it is usually reserved for electronic or computer products.

However, consider this: if the user does no maintenance on this knife. Then there are only so many operational hours that it is capable of before completely falling apart, or at the very least becoming inoperable. It’s shoddy build quality purposefully limits this simple hand tools lifespan. And when it is over, the user is expected to then purchase another one. That is a form of planned obsolescence.

I hate preaching, but please consider not buying this kind of shite. There are better alternatives available. Such as buying second hand quality tools. I always advise that people do the requisite research first. Then spend what they can afford in order to get the best value tools that they can, for their specific use case.

I said “Best value”, not most expensive. A chrome-vanadium spanner is a chrome-vanadium spanner at any price. Just because a person pays more for a brand name, doesn’t necessarily mean that their chrome-vanadium spanner is better than the off brand one.

Nowadays, it’s rather likely that they were both made in the same factory from the same material stock. An idea that would be laughable, if it wasn’t also true. Many brands on the market don’t manufacture anything. They purchase orders from the same OEMs then label the products as their own.

*proceeds to mount high horse.

If you absolutely have to purchase at the bottom of the market because you absolutely have no more money to spend. Then spend time instead. Time upgrading, fortifying, and maintaining your tool. This is so that it can last as long as you need it to. Or at the very least extend the time intervals between new purchases.

That being said, it is an unfortunate reality that most people who do mindlessly purchase bottom of the market products like this knife: are either unable; or more commonly, unwilling to invest time in their tools. They are in many cases content to use the shoddy tool in the short time until it breaks. Then purchase another bottom of the market shoddy tool to replace it with. Repeating this loop of short-sighted wasteful false-economy ad infinitum.

*proceeds to dismount high horse.

I feel that I should somewhat qualify my rather negative sentiments against these types of bottom market products. In the past I have worked within a small recycling facility, one that primarily serviced my local community on behalf of the local council, as well as the surrounding areas. (The point is that we weren’t shipping it’s garbage in.) I worked there as a materials sorter.

It gave me a certain perspective on the sheer volume of material wastage people engaged in. For a supposedly poor community, the amount of waste of useful materials was astounding. Every night I came across hundreds (not hyperbole) of very useable tools of all kinds. Everything from: screwdrivers, knives, drill bits, and spanners, to pots, pans, skillets, as well as whole bicycles some nights. All of that thrown away for recycling.

Many of these things were in decent conditions. Conditions that required either basic maintenance such as: sharpening, some hammering, replacing a handle, or realigning, or even a simple old fashioned cleaning. Gasp! Working there made me dislike a lot of these products; as when I now see them new: I think of where they’ll likely end up in less than a years time … In the fucking trash.

I just don’t like companies purposefully making tools/products that have such a short lifespan designed into them. I doubly don’t like it when these same products are purchased, used, and then wastefully discarded, by people whom I have heard a thousand times: claim poverty. But that’s another rant entirely.

Thank you for listening. It really helps.

Term glossary

OEM – Original Equipment Manufacturer

#0030: Game review: Princess Remedy In a World of Hurt

#0030: Game review: Princess Remedy In a World of Hurt

Preamble

I wanted to feature this game here as I think it is rather interesting, and I have a few comments I’d like to make about it. The game is called “Princess Remedy In a World of Hurt”. It is a bullet hell game created for the PC platform. However interestingly, it was made with the design limitations of a game targeted for the Nintendo Game Boy Color portable games console; as least it appears that way superficially. This article will feature a review and discussion of the game as well as a play-through or two to demonstrate the gameplay, visuals, sounds, and general game mechanics on offer.

Screenshots

Pixel art samples

  • Sprite size: 16×16 pixels
  • Grid cell size: 16×16 pixels
  • Grid size: 10×8 cells
  • Status bar size: 160×12 pixels

Game Review

Before I begin it is important to get a bit of context on the circumstances of this game’s creation. According to the read-me file that I found within the Steam version of this game’s directory (‘remedy.txt’): ‘Princess Remedy In a World of Hurt’ was originally created in 2014 during a livestreamed four day charity game jam by a group of four people. This initial completion constituted their version 1.0.

Although this version lacked certain additional features present in the latest 1.5 version that I have played. Features such as: gamepad support, options menu, multiple difficulties, and additional endings. The version 1.0: although undoubtedly rough – established a set scope of gameplay mechanics, narrative, and player experience; that was then subsequently refined and improved upon.

With the exception of the ‘Jealous Chest’ mechanic and extra endings: the additional refinements were mostly quality of life features, and in my opinion do not necessarily constitute raw additional game content. Like a new area, or new enemies would for example. As such the final version still feels like a game that could arguably be created within a short amount of time.

I only mention the game’s humble origins because it is apparent by the restricted scope of mechanics present, story, and short playtime: that not much in terms of resources actually went into the game’s creation. By resources I mean time taken to either plan a deeper narrative, create additional gameplay mechanics, or create more materials (i.e. media like image sprites and sound effects). Add to that the necessary programming time taken to implement and test every additional element.

Although it may come across as a criticism, I do not mean it as such. Rather it is by virtue of it’s spartan nature that I am attracted to this game to begin with. I wish to emulate it in my own way, and create a similar title as a practice game for a larger project I have in mind. Also I rather like the minimalist approach to game design presented here, a design that discards all but the essential components needed for a viable gameplay loop. As a hobbyist game designer who has discarded games mid-development due to feature creep (and the frustration that it incurs): I actually admire an approach that respects the limitations of available resources and deadlines, and operates with a more prosaic ‘get it done’ attitude as a consequence of that.

Now onto the game itself. The core gameplay experience consists of walking around and exploring a classic 2D RPG world like the one of ‘Final Fantasy I’ (FFI). Here you find people to talk to, to then enter a battle instance with. This battle instance consists of a unique bullet hell mini-game; as every NPC has their own custom setup of enemies and terrain layout to contend with. Winning these battles provides rewards that come in the form of a stat boost called ‘Hearts’. Hearts are the most important stat booster in the game. This is because in addition to marginally boosting the characters health (or hit) points, a set number of them are also needed to open the specific gates that lead to other map areas, and thus progress the game.

The game has a simple and concise gameplay loop. It may superficially look like a classic RPG title such as FFI, however all the extraneous RPG mechanics from a game like FFI are not present here. There are no items (beyond gate-keys), status effects, nor any character abilities, or levelling. There is however a basic system of stat progression that involves collecting stat tokens.

The full list of stat tokens include: the aforementioned ‘Hearts’ which marginally improve HP, ‘Power’ which increases shot damage, ‘Multi’ which increases the number of shots fired at a time, ‘Regen’ which increases the HP regeneration rate, and finally ‘Flasks’, which increases the number of uses of the special attack action during combat. In addition to Hearts, all of the other stat boosts are exclusively found in chests dotted around the various towns and caves.

The actual game world itself consists of a simple world map, which links together a series of higher fidelity maps. These higher fidelity maps primarily come in two forms: towns and caves, but also includes a few castles, a pond, and several other unique areas. The world map only contains heart-gates and key-gates. It is the higher fidelity maps that contain all other interact-able objects. These come in two formats: NPCs and chests. Each NPC only offers a quick dialogue on interaction. This dialogue either contains game hints, or instigates that specific NPC’s bullet hell mini-game. Whereas the chests contain either stat upgrades, or keys for opening shortcuts.

I should mention that the higher fidelity maps also contain a puzzle element. Some chests are set up in a way to resemble secrets from other visually similar RPG games. Specifically, in order to get to them they require the player to walk off of the displayed tile area, by passing through normally impassible terrain tiles (like walls): into the black space in and around the map that traditionally denote impassable terrain. Links to secret paths like this are marked by a slight imperfection on the terrain tile that connects to them. Thus marking it as passible terrain.

That’s it. That’s the game. Talk to people, then win the bullet hell battles they offer to get hearts; find chests, get stats, and more hearts; then open the heart-gate to get to the next area. Rinse and repeat until you get to the final boss. Where you play an extended bullet hell battle. Done.

The only real deviation from this formula that this game offers is via the ‘Jealous chest’ mechanic. Within an advanced area of the game – one that is gated by three separate heart-gates, and hidden within the town map there: exists the Jealous chest. This is a special chest that will give the player a shot power boost, but only if the player has not opened any other chests before it. Meaning that in order to acquire that shot boost, the player will have to win (nearly) every battle up to that point in the game without any of the stat boosts that the other chests offer.

This challenge adds significant difficulty to game and I personally found it rather engaging. However there is a down side to this. The problem comes in when you actually get the Jealous chest. Shortly after opening the chest and getting the extra power boost contained within, the player gets the contents of all the normal chests in previous areas, even the ones hidden by secret passageways that may otherwise be missed.

This gives the player a very sudden and dramatic power boost. Which on one hand feels great, due to the fact that up until this point the player has been surviving the battles with mere base stats. ‘Surviving’ being the operative word here for the experience. Then all of a sudden you gain all the stat boosters from three zones, giving you the power to nuke previously troublesome enemies like the Ghosts.

The problem with this sudden dramatic power gain is that it causes an inversely dramatic drop off in game difficulty. Even though technically the enemies fought in the later game after this point are stronger than the previous enemies, the same level of planning and skill required to survive up to this point and win battles is no longer necessary due to the raw power output the player now has.

This phenomenon causes the player to experience a significant spike in difficulty in the mid game levels just before acquiring the Jealous chest. Which is then not surpassed by any of the other following levels, including the final boss fight. This is due to the smaller disparity of power between the enemies and the player. In other words once you get the Jealous chest, you can essentially coast the rest of the game, even though you’ll technically be fighting stronger enemies. It will not feel like it.

Luckily the Jealous chest is an add-on mechanic, and is only really necessary if you wish to get the full 101% completion rate. If you don’t care about that, then you’ll likely experience a far more gradual and balanced difficulty curve as you progress through the game the normal way: haphazardly collecting (and missing) chests as you go.

Moving on. As for the bullet hell battles themselves, they are also very simple. They consist of manoeuvring an auto-firing character around, and occasionally using the catch-all action button to throw a flask; which functions as a grenade: doing AOE damage across a three-by-three (nine square) grid. The standard shots fire automatically from the character as is standard fare in bullet hell games.

What isn’t standard is the fact that the character can change which direction she is facing; meaning that in Princess Remedy you can fire in all four directions. This is due to this game taking place in a sandboxed square area. Unlike more traditional arcade shooter bullet-hell games, which tend to play out within either a vertical or horizontal scrolling stage. In which the player character’s firing direction is fixed to face in the direction that the stage scrolls into frame from. As that’s where the enemies are coming from. The most typical example of this, is that of a spaceship themed vertical arcade-style scroller like ‘Ikaruga’.

Ikaruga Steam trailer

The enemies in this game are rather varied. There is a mixed bag of enemies with differing movement patterns, health points, and who emit different shot types, in different numbers and frequencies from each other. There are enemies such as the Spike-ball which just moves towards the player when within it’s line-of-sight, as well as the Ghost which follows the player whilst also intermittently disappearing and shooting a terrain piercing shot toward the player. There are a handful of iterative enemies like this Ghost, i.e. harder versions of previous enemies. They utilize the behaviour patterns of the previous lower tier enemy, but then with a little extra mechanic added on.

I should also note that enemy behaviour actually changes across the difficulty levels. To me it is always a pleasant surprise when the actual enemy AI is tweaked to be more difficult on harder levels. In my experience playing video-games in general: it is far more common to see developers simply tweak stats like shot damage and hit points, then call it a day. All whilst maintaining the exact same enemy patterns of behaviour. This game probably does buff the stats of enemies in the harder modes, although I haven’t played enough to verify enough to the point that I could confidently state so here. Its not important either way. What is important is the fact that the enemy AI is tweaked and geared for the difficulty.

An example of this would be with Bat enemies. Bats are enemies that move in a random direction at a set time interval. They damage the player by colliding with it. In normal mode when a Bat dies, it simply dies. In hard mode, Bats shoot out three regular bullets in the direction of the player upon death, and in master mode the Bats move considerably faster whist also doing everything from the lower difficulties.

Moving on, now let’s discuss the more technical specifications of this title. This game was made using the Game Maker engine and targeted the PC platform. However more interestingly the game was visually designed to imitate a Game Boy Color game. It has the same resolution as GBC games (160×140 pixels), as well as similar colour pallets, and sprite types (8-bit era 16×16 pixel sprites).

It also uses a severely limited range of player inputs for interacting with the game. Although it maps multiple buttons/keys to each input type. For example the ‘action’ input is mapped to multiple keys including Enter and Spacebar. This is where my first real criticism of the game comes in. The ‘action’ key, the in-game results of pressing this key are highly contextual.

If pressed next to an NPC, it will engage them in dialogue; if pressed whilst moving, the player character will start running in the same direction; and if pressed whilst stationary and not facing an adjacent NPC, it’ll pop up the menu screen. Needless to say it has caused me to misclick a couple of times. Mostly by throwing up a menu when I intended to run. But that could just as easily be an issue with me and my keyboard. Although I found this catch-all action key to be a rather clunky method of input, it is ultimately a relatively trivial matter.

The main thing that I have encountered within this game that is actually worthy of criticism is it’s pixel scaling methods. At higher resolutions than the base times one (‘x1’) or 160×140 pixel screen size, it looks absolutely awful. The sharp clean pixels at the base size get blurry even at the times two (320×280) screen size.

Honestly, I am not sure about the technology being used here to resize the window and rescale the display assets within it. If I were to guess, I’d say that it is the functionality of one of Game Makers image manipulation libraries. Judging from what I can observe: I assume the image is actually being scaled using a form of on-the-fly interpolation. Such as linear or cubic interpolation.

Essentially algorithms (used within this application that are) designed to guess at what colour the pixels should be within the newly created empty regions, between the separated pixels of an upscaled image. Unfortunately, they do not have the context that they are dealing with a pixel art that requires clean lines, and consequently blurs edges in a bid to establish some kind of smooth colour gradient. At least that’s my guess as to what is going on here.

I think the window and asset scaling in this game was something of an after-thought honestly. Especially since the ‘options’ menu containing it was introduced to the game in it’s 1.1 patch. After the conclusion of the game jam. Meaning that the 1.0 game jam version was only made with the fixed Game Boy Color screen size in mind, and with all assets specifically scaled for it.

Only afterwards did the programmer who is maintaining the game decide to add additional resolutions. Unfortunately they did not recreate the art assets to be more scalable. For example by using large images designed for a modern full-screen display (e.g. 1920×1080) then scaling them down.

Although this has it’s own issues such as image artifacts being created by aggressively compressing image dimensions. However in my opinion, a little artifacting is considerably more palatable then the horrendous blurring incurred by the current solution of upscaling tiny images to large resolutions. This is most comically apparent when in full-screen mode. Imagine what happens when you upscale (essentially stretch) a screen with a height of 140 pixels to 1080 pixels. Needless to say it is virtually unplayable.

Now upon hearing this, you may think to yourself: why don’t they do that? I mean it won’t take long to use an image manipulation software (like GIMP) to upscale each image asset by raw pixel doubling; and without introducing blurring via interpolation techniques. Well, another reason why the current maintainer of this may not want to use upscaled images may include the related image code itself.

Considering that this game was initially made in a span of four days for a competition, then things like proper planning and future proofing of code goes out the window. It it very likely that this game has been hardcoded with strong references to the current image dimensions throughout the codebase. If so it will also explain this slapdash box-ticking approach to getting higher resolutions, as it likely avoids having to deal with the technical debt incurred by hard coding the image dimensions into the game logic in this manner.

What do I mean by this? Let me illustrate the problem here: imagine if you had a line of code that moved the Bat enemy for example. This enemy moves every other time tick in a random direction the full length of it’s size (16 pixels). Assuming that the code for this is hardcoded (i.e. code containing asset dimensions, or verbose inflexible instruction sets). Then the code for moving the Bat across the vertical axis may look something like: ‘moveBatY(){bat.posY+=16; updateSpritePos();}’.

Now, let’s say you want this game to also work at a times two scale (or at 320×280) resolution. This instruction set will have to be modified to allow the bat to move it’s full length. Which is now 32 pixels and not 16. If the code is left as is, then the Bat will no longer function as intended/expected. This is a form of technical debt, i.e. creating your codebase in way that will require reformatting/rewriting before significant additions can be made to the feature set; by in this case adding additional game resolutions. And considering the volume of image interactions going on in this game, likely having to reformat the entire codebase will not be a trivial matter. After a basic cost-benefit analysis, the programmer here probably deemed it not worth pursing at the time. Instead opting for the sub-optimal (yet viable) solution that is currently implemented.

Resolution scaling screenshots

Manually scaled examples

I’d like to leave this review on a positive note. As I was doing a final check after writing this review I found out that the main developer, namely Remar has very recently updated this game. The latest version at the time of writing is 1.6; however this version (at lest currently) is only available on Remar’s personal website. The update included a few things: most notably a dedicated run button. Which addressed some of my criticisms I had made prior. So discount those if you play version 1.6.

The real cool thing about this situation is that you have a developer here who decides to update a now 6-7 year old game; that they made available to the public for free. That’s a developer that cares about their craft, and cares about their legacy. At least I’d like to think so, I mean they sure as shit aren’t making any money off of it. And as a guy who is currently trying to port his old garbage flash games to HTML5 – love for the craft and posterity is the only real reason I can see for a person to go out of their way and tweak/improve something like this.

If you want to play ‘Princess Remedy In a World of hurt’ it is available on the Steam PC platform and also on the Developer’s personal website with no Steam DRM. Download link: ‘https://remar.se/daniel/remedy.php’. It is a free game so give it try. If you really like it you may even want to purchase it’s paid sequel: ‘Princess Remedy In a Heap of trouble’.

Video Play-throughs

  • Difficulty: NORMAL
  • Completion: 101% (jealous chest run)
  • Time: 42 minutes 5 seconds
  • Game version: 1.5 (Steam)

  • Difficulty: HARD
  • Completion: 101% (jealous chest run)
  • Time: 52 minutes 41 seconds
  • game version: 1.5 (Steam)

Game credits

Game copyright Remar Games and Ludosity 2014
Design, script, code, SFX edit: Daniel Remar
Design, graphics: Anton Nilsson
Music, SFX: Mattias Hakulinen
Final boss songs: Stefan Hurtig

Nintendo Game Boy Color reference images

Closing thoughts

This is the first actual game review that I have done on this site. I hope that it proved to be insightful and useful to you. Whether you wish to simply play the game (and you really should as its free on Steam), or whether you are simply interested in a hearing about a game’s systems and the interplay of mechanics within it. I hope that I at least entertained you if nothing else.

The main reason why I covered this particular game is because I intend to create a clone of this title. I like the very limited nature of it, and genuinely think that I could make a copy in order to sharpen my skill-set. I needed a small but genuine gaming project to try out my tools, and to practice my pixel art and music creation. So look out for that game when it is out. I’ll pop a link here for it when available.

It’s sort of funny when when certain coincidences happen, and one gets that feeling of living in a small world. The name ‘Ludosity’ came up a couple off times while I was reading up on this game. I just thought ‘huh, that rings a bell’ and moved on. Its only once the review was almost finished and I decided to actually visit the website links within the readme files, did I find out who it was. They were the people that made ‘Card City Nights’, a game that I really enjoyed years ago. I even 100% the game, blue Steam ribbon in all. I remember it was also a game of limited scope, being just a series of card battles attached to something almost akin to a visual novel, with a simple collectable card game or deck builder core. It also had a simple but very compelling gameplay loop, and lovely art…

On that final nostalgic note, I’d like to say:

Thanks for reading.

Glossary of terms

2D – 2 Dimensional
AI – Artificial Intelligence. Although in this context it doesn’t refer to real AI, but rather patterns of situational behaviour that non-player controlled entities engage in or act out.

AOE – Area of Effect.
NPC – Non Playable Character
RPG – Role Playing Game
Sprite – Simple low resolution image of an entity. E.g. NPC.

Links, references, further reading

https://store.steampowered.com/app/407900/Princess_Remedy_in_a_World_of_Hurt/
https://steamcommunity.com/sharedfiles/filedetails/?id=716757641
https://www.nintendo.co.uk/Corporate/Nintendo-History/Game-Boy-Color/Game-Boy-Color-627137.html
https://remar.se/daniel/misc/themegaupdate.txt
https://www.remar.se/daniel
https://www.ludosity.com

Game text files:

#0029: Dev-blog #001: plans and preparations (‘Remote PI’)

#0029: Dev-blog #001: plans and preparations (‘Remote PI’)

Preamble

I wanted to create something of a diary to collate my thoughts, experiences, and general progression towards completing a large multimedia project. One with a significantly wider time-scale and scope of disciplines than I am accustomed to. It will be a multi-session project that will require several months to assemble the knowledge and materials, necessary to ultimately produce a playable video game demo. The working title for this project will be “Remote PI” or “R-PI” for short. Not to be confused with “RPi” (Raspberry Pi).

This project will require creating a proof of concept video game demo as a solo developer. By ‘proof of concept’, I mean a vertical slice of gameplay that will feature all the core gameplay mechanics layered atop each other in a cogent manner to form a functional and hopefully compelling system. The demo will also require thematic art and music, as well as featuring a narrative hook designed to entice players to support the production of the full game.

Essentially I plan on documenting the creation of a playable teaser trailer here. In addition to writing about the development of the demo itself, I will also document my personal relevant skill progression. Since this project will require me to become practiced at all the disciplines that are needed, for realising an interactive multimedia product like a game; I will need to acquire passable skill in art, music, as well as brush up on my general programming fundamentals. During this process I will no doubt have to also learn a few new tools (IDEs, programming languages, etcetera); and that’s not even to mention the more mundane skill-sets like script writing, project organisation, and time management.

This series of post entries will journal my progress in this endeavour.

My current skill-set (or lack thereof)

Before we go on I think it’s best that I identify to you where I am currently with regards to my skill-set. This is in order to understand what I need to work on to realise this vision. At the time of writing this (2021), I have been a hobbyist programmer for a few years now (since 2013-14 I believe). Being a hobbyist I have pursued programming for pleasure primarily.

This however meant that I was largely unguided and unfocused with regards to what I learned and how. This resulted in the collection a more shallow and eclectic experience base, rather than a more guided and structured one (i.e. comprehensive and useful), like the kinds associated with formal education. More aptly it also dictated how long I stuck with things after the initial fun dries up and the laborious hard-work begins. But that’s a more personal failing of mine. I can’t blame the books that I bought, for me not reading them. I mean most of them had pictures and everything.

Anyway, I started with making short text adventures in an IDE called Bloodshed Dev-C++ using the C++ language. On a technical inspection: these games could be boiled down to basically a series of if/else statements, with their function calls nested within another series of if/else statements. If I got fancy, I might even throw in a switch statement here or there. The only one I remember completing and being proud of was called “A little after midnight”.

It’s most notable feature was that it had a rudimentary inventory system that simply fed into the cascade of if/else statements that constituted that game. I vaguely remember codifying the handful of items in the game as individual boolean variables. Example use-case: “if (isGotKey == true) open_door(); else locked_door_dialogue();”, or something to that effect. Like I said it was primitive.

At the time: I remember just wanting to create a game, any game, and have it work. I liked “choose your own adventure” books like “Island of the lizard king” by Ian Livingstone, and the various MSDOS text adventures that I played as a child, all who’s names unfortunately escape me right now; and simply wanted to have a go.

After wetting my feet with text adventures, I transitioned to making flash games using the ECMAscript derivative language Action Script 3. This was on the FlashDevelop IDE. In this time of approximately 3 years I only managed to complete two games. Keyword: ‘complete’. A basic 20 level platformer with godawful hit-detection called “Runaway Units”, and a single room point-and-click adventure called “Last Life: The Blue Key”. In both games I was helped by my friend Kross Drayllih who created the music to Runaway Units and did the majority of the art and all the music for Last Life. However, I did the artwork for the user interface for that game. This will be relevant when I discuss the pixel art of this demo later.

Around this time I started dabbling with modding games. I created a few JSON mods for a community driven game called Cataclysm: Dark Days Ahead. Notables include: a mod that gives early game access to mutagens via (IIRC) an XCOM-esque gene-therapy clinic building, and a more general extra buildings mod called “OA’s additional buildings”. The later of the two mods even got folded into the main game. If you ever find a sex shop, internet cafe, walled park, cruise ship, or ranger’s lookout: well, that might be my work you’re exploring. In addition to CDDA I also created a few simple ship mods for a space logistics game called Endless Space.

After this I fell out of love with making games, and moved onto playing with mini-PCs and microcontrollers. Namely, Raspberry Pis and (clone) Arduino boards. I wanted to make robots. With these I was introduced to Linux based operating systems, specifically Rasbian. Which I accessed remotely over WIFI (via secure shell protocol) using a program named Putty on my Windows 7 machine.

I remember using bash as a remotely accessible text user interface to run custom bash scripts and programs written in Python 2. These programs were for controlling the RPi’s GPIO (general purpose input output) pins. Which in turn controlled peripheral components like sensors, lights, relays, and motors. These programs were very utilitarian in nature and simple, as they were merely concerned with converting button presses into signal outputs, or interpreting signal inputs from the sensory peripherals and converting them into a textual output for the console. The RPI’s GPIO library was the one who really did the heavy lifting there. Similar story with the Arduino IDE. My instruction sets where pretty basic there too.

As you probably have put together, I am just a hobbyist programmer. I’ve read a few books, did a few online courses, and played around with a few tools; including everything from complete development environments like the Unity engine, to simple graphics libraries like SMFL, SDL, and Allegro. But never to a serious extent. I also have more general knowledge about programming. For example: programming paradigms like functional programming, versus procedural programming, versus object orientated programming. But since all of my projects have either been small enough that I didn’t really need to research proper code organisation for creating a maintainable codebase, or that the project was so large that it has been abandoned for other reasons before necessitating an ordered big-picture view approach to coding.

As I am now, I am even rusty at the basic programming level I once had. This is due to my interests moving on once again. I’m not sure when exactly it happened, but as I started working and acquiring money: my interests gradually drifted towards the hardware side. As I am now I am more versed in repairing devices like power-supplies and old games consoles, than I am programming using a graphics library like SDL2 (Simple Direct-media Layer), in order to do something simple like create a window and render an image onto it.

You might have also sussed out from it’s absence of mention in the above summary, that I am not an artist. Although I have dabbled with some watercolours during my poetry writing teenage phase. I even had a Deviant-art account (“night-eater”) that I used to host the handful of halfway decent things that I did managed to create at the time. But it didn’t stick. As for music, as I am writing this I don’t even understand basic music theory. For example what the notes mean: like A# or B flat. No idea. It’s embarrassing to write this down but it is also the truth.

And that’s my starting point here. A rusty ass second-rate programmer, who can barely art, and can’t music. Still though I think that this project is within my projected ability to complete. It’s like that chess adage: “the only way to get better, is by playing a better opponent”. The same I think it is with creating and refining a skill-set. It needs a specific objective or challenge to be measured against. Otherwise its easy to just end up drifting around aimlessly without ever feeling the need to work hard and develop the skills that have been acquired, at least not to a point where they can bare tangible fruit.

I know I said otherwise in the preamble above, however I do think that the scope of this project is actually relatively small (compared to what it could be). It’s just a short demo; and whose music and art only need to be functional, they don’t need to be masterpieces. Still, lets not risk falling for the Dunning-Kruger effect and underestimating the energy and time taken to develop the relevant skills. That’s a lesson I learned the hard way when making LL:TBK, where everything took three times as long to get done as initially predicted. All in all though, I do think this is doable for me.

Game Outline

Without any further ado lets outline the game that this demo will come from. Please note I will go into much further detail on the game’s mechanical substance during it’s dedicated article. This is just the declaration of the initial parameters that I wish to work within.

Game Specifications:

Working title: “Remote PI”
Genre (mechanics): (primary) point-and-click adventure, (secondary) hacking simulator
Additional mechanics: puzzle mini-games, rouge-like (permadeath and multi-run unlocks), survival (resource management)
Genre (narrative): detective thriller
Art style: medium-low resolution pixel art
Music: low key techno synths (i.e “electronic music”), or something closer to chip-tunes
Playtime (demo version): approximately 15-30 minutes
Playtime (full version): around 1 hour per complete run
Technology (for game): C++ and SDL2 using Code::Blocks IDE
Technology (for demo):
HTML, CSS, JS, and a simple text editor like Xed
Target platform (game): personal computer (Windows, Linux, Mac)
Target platform (demo): web browsers (specifically my website)

Synopsis:

Remote PI is a game in which you play as a private investigator working in a particularly seedy part of (an alternate history) London in 1999. It will have a gig type gameplay loop where the player is offered several cases via email. These discrete cases are then shown to contain an over arching narrative. One that escalates the stakes by tying the the jobs to a central story about national security.

Thoughts on game ideas

You may be wondering why I am just listing out my game’s premise here for something that one day I’d very much like to turn into a real commercial product and sell? Why I am revealing how this sausage is going to be made, secret family recipe in all? Well its because I don’t value ideas (and thus “idea guys”) very highly. They’re not something to be jealously guarded like a dragon on a pile of gold (at least not at this level). I mean I’d be willing to bet that you reading this could probably come up with a better idea for a video game. For example: Pacman but sexy. Boom! Million dollar idea right there. You just thought up Ms Pacman. Genius.

The idea of a detective noir, point-and-click/hacking-sim thriller that is set in late 90’s London is not unique or special. It’s just a disparate amalgamation of various things I like (and am familiar with) that I think will work well together. It’s the execution of the plan that dictates whether or not this product will be worth anyone’s time. Not the premise and promise provided by a “good idea”.

Thoughts on developer teams

You may have been wondering why I don’t team up with other people for these types of larger projects? I mean many hands make light work, after all. Well, in my opinion its more often than not the opposite case of too many chefs spoiling the broth.

This is especially true in cases such as where a group of friends decide to work together. Typically having vague workload expectations, job roles, schedules, and naturally differing creative visions for the final product. In such situations, I expect people to essentially waste their time and energy before the inevitable fruitless dissolution of the project. Also likely with some hurt feelings incurred in the process.

To give you a more personal and direct answer: I simply don’t like working with others on creative endeavours like video games. Especially in smaller more intimate teams, where each individual has significant influence when it comes to whether or not the project is ever actually completed. The idea of expending myself: pouring serious time and energy into a project, only for it to still fail to finish due to someone else, either not pulling their weight or spitefully sabotaging it for some interpersonal gripe — actually genuinely frightens me. This is because It’d leave me in a situation where I can’t get that time back, and I’d also have nothing to show for it.

In the case of shared revenue projects (i.e. a project where money only comes in after it is completed, if at all): people tend to start behaving oddly as the project progresses and the initial new project enthusiasm drops off. I find it is at this time that people begin to gripe about things like: creative control, division of labour, maintaining personal morale, as well as time keeping, and deadlines.

Oh and lets not forget people’s general trouble with listening to basic instructions and specifications. And quite frankly when I have worked with “creative types”, I find that I quickly can become frustrated with the development process, and risk factors associated with co-ordinating various people who say that they are invested in the completion of the project, but whose actions say otherwise. I find co-ordinating with these types of people to be a generally draining experience, closer to an exercise in herding cats than co-ordinating with professionals.

This feeling is exacerbated when these people then choose to organise themselves into flat leader-less structures. I believe this is due to the incorrect assumption that such a small group will not need a leader to organise and co-ordinate the membership, especially when they can all join the same chat group and co-ordinate that way. Like a group of friends might do for example. This type of headless group structure is generally bad unless everyone in the group genuinely holds themselves responsible for making their contributions on time and on par. Even with the absence of the downward pressure and authoritative structure a clear leader would offer.

For example: I have had experiences with creative partners who would only work on things as they feel like it. On one hand I understand creative desire and that sometimes it can dry up. However when working to deadlines it really can become frustrating, especially when they hold up the supply lines by making others wait on them for materials. And since no-one is currently paying them for their contributions, they don’t take their responsibility to the group seriously and prioritise it within the routine of their lives appropriately.

I once had a partner who decided to create a superfluous website and start writing a script for a sequel to the title we were working on at the time. This was at a time when the actual current title was about halfway done, and I was waiting on them for materials. That’s got on my nerves, and the worst part is that I had to find the nicest way to ask the person to go back to making what we actually need; rather than what the person felt like doing. I was also acutely aware of the real chance that my criticism my disenfranchise the person into quitting all together, if I happen to upset them. In which case that project is dead in the water. That tiptoeing around people’s feelings is honestly exhausting.

I could gas on about this, but it ultimately comes down to me not wanting to work with others for this type of thing. Things just have a habit of getting complicated when working on creative (and potentially commercial) endeavours with others. Who owns what and how much is also a headache of a conversation (argument) to have, especially when the group can end up fighting over scraps or (fantastical) projected earnings.

That’s as far my experience with shared revenue type deals go. I have looked at alternatives such as hiring artists and musicians. However I don’t really want to work with freelancers I meet online. I may for discrete commissions of work, such as for character profile pictures or wallpapers for a game. However I don’t really want to get into in more extended business relationship with freelances if I can avoid it. As I fear being nickel-and-dimed for every alteration or modification I may request.

I can’t say I’d blame them for having a mercenary attitude in this case either. They make their money during the development process, and strictly in exchange for their work. It’s not like I’d be willing to share revenue or copyrights of the finished game after-all. So the only way they make money is by charging for everything that they do; including time working on alterations.

Additionally, I am not in position in my life right now where I can invest the time necessary to source and vet good contractors; research contract and copyright law to the point of competency, as I want to legally own the commissioned work; and finally (and most importantly) cough of the dough to pay for all this. So its all academic at the end of the day.

Closing thoughts

As I write this I ask myself: What is the purpose of this blog? Given a moment to think – I believe it’s main purpose is as a public declaration of intent. (Not that there’s anyone actually reading this mind you.) I have had many similar projects in the past, one’s that I have quietly started, worked on for a couple of months, then just as quietly abandoned them. I always justified the abandonment with one reason or another. I am sure that at the time, they were good reasons and not just excuses. However I can not deny a certain emergent pattern of behaviour of mine: I have started many projects but only really have ever completed a small handful. And all the effort that went into those unfinished works is largely lost, not having paid me back any sort of tangible dividends.

The only exception is probably some skill building experience acquired whilst creating and prototyping new systems and mechanics. I have many unfinished games that have their core mechanics articulated to satisfaction but not fleshed out with actual game content materials. Like a functioning inventory system filled with placeholder articles, and having all it’s item population and depopulation event calls coming from one central controller function. So that I could test and trigger the events at will. (Needless to say: this event controller function is to be removed once the system is placed into an actual game, and has all it’s event calls tied to in-game trigger events.)

Additionally, I have created systems like dialogue trees, local saving and loading, and 2D weather effects. Experience modelling these mechanics does in my opinion carry over. Even when tools like engines and languages change, understanding the fundamental principals of how something like saving a game state to file works, and actually having an instance of implementing it, is valuable in my opinion. Although nothing beats the grim satisfaction of actually finishing a fucking project.

Anyhow, here’s to this thing. *downs an alcoholic beverage* burp… cheers.

Thanks for letting me ramble.

#0028: Game Boy Advance SP audio/power port analysis

#0028: Game Boy Advance SP audio/power port analysis

Preamble

This article consists of various labelled pinout diagrams. They specifically feature: the charge port, and accompanying plugs, of the Nintendo Game Boy Advance SP (GBA-SP) portable games console. These diagrams will also include annotations on various notable details regarding these pins and their functionality. Additionally I will also feature some of my personal commentary on the port in general.

It should be noted that the information gathered for these diagrams is collected first hand, without the use of any official reference materials. As such I can only discuss the functions of the various pins that I have personally identified and mapped out. Whether or not this port or any pins within have any additional functionality beyond this is unknown to me. Since I have only identified this port as being used for either power ingress, or audio output: I will henceforth reference it as the “audio/power port”.

GBA-SP

Note: I feature this image set in order to establish a basic reference for the GBA-SP: in the case that the reader is not familiar with this device. The GBA-SP only has two ports on it. These are the audio/power port (on the left of the images), and the COMMS (or communications) port (on the right). This article only features details on the audio/power port.

Notables:

  • The audio/power port has six pins within it. Four on the under side of the plastic support, and two above it.
  • The port also has a retaining spring that looks like a pin. This clip holds any inserted plugs in place. It is located between the two top pins, on the centre part of the plastic support, that juts out toward the inner wall of the socket.

GBA-SP charger and plug pinout

Notables:

  • There is a pinout diagram (or legend) of the charger’s plug on the charger’s plastic housing.
  • Despite the unique plug, the GBA-SP actually uses a very basic AC-DC power-supply that provides 5.2 volts DC @ 320mA.
  • 5.4 VDC is the charger’s measured open circuit output voltage. I assume it drops to ~5.2V once loaded.
  • The output power (both voltage and ampere) is within/around the USB standard. Nintendo could have arguably used a standard mini-USB port at the time (2002) to power the device instead.

GBA-SP audio cable plug pinout

Notables:

  • It is keyed for stereo sound, having two different audio channels that then share a return line.
  • The audio ground (or return, or drain) is not electrically connected to the device ground.
  • When inserted, the plug shorts the audio switch pin to ground
  • The only pin missing from the audio plug is the pin that corresponds the device’s V+ inlet pin.
  • Dedicated article: #0025: Modifying a pair of GBA-SP earphones into an aux audio dongle

GBA-SP audio/power port pinout

Notables:

  • Pin: Audio channel (right): carries the positive signal for the right channel (of stereo audio).
  • Pin: Audio channel (left): carries the positive signal for the left channel (of stereo audio).
  • Audio ground: functions as a return for both the right and left audio channels.
  • The GND pin, as well as the metal sheath of both the audio/power port and the adjacent communication port are all electrically connected.
  • The Audio switch pin has a floating voltage of 0.5 volts.
  • To activate the Audio switch: tie it to GND.
  • Pin: V+ is for the 5.2 VDC input from the charger.

Testing the audio switch on the GBA-SP

control test with an audio plug
test by manually shorting the audio pin

System freeze demonstration

While I was recording the testing of the audio/power port on the GBA-SP I came across a system freeze. Initially I placed it here because I thought it might be relevant to the audio/power port in some capacity. However after I had some time to think about what might have caused this system freeze, I have come to the conclusion that in all likelihood this freeze was caused by me putting pressure on the game cartridge as I inserted the audio plug into the console.

This likely then caused the cartridge to move slightly, but enough to break continuity between it’s pads and the console’s pins. Perhaps one or more of the GBA-SP’s pins moved onto a more insulated or corroded section of the cartridge’s pad(s). A section that is insulative enough that it either blocked or damaged the signal integrity beyond interpretation.

The main reason why I think this is the case, is because the audio/power port doesn’t deal with any data outside of audio signals. Certainly nothing that could cause a system freeze in my opinion. However what has caused multiple freezes in the past is tampering with the game cartridge while it is powered and in use.

Thoughts on Nintendo’s anti-consumer product design

In the previous GBA-SP dongle article I went on something of a rant on Nintendo’s anti-consumer design with regards to this particular product. In order to avoid rehashing those same points, I’ll keep my thoughts here concise, and offer them more as an addendum to that gassy rant.

To cut to the point. Yes I still think that the removal of the 3.5mm audio jack during the design iteration from the GBA to the GBA-SP was an anti-consumer gesture. Additionally I think this unique GBA-SP plug and socket design is woefully unnecessary; at least from a technical perspective.

As far as I can tell: Nintendo simply mashed together the functionality of the generic 3.5mm audio jack, and of the standard Mini-USB connector available at the time (~2002). They blended these two standards into their own bespoke plug and socket design. A proprietary design in which they can control the availability and price of. At least for the critical time period after the public product release, where there’d be the highest demand for accessories like this. Accessories, that they could then price gouge their customers on, with no competition (i.e. no legitimate alternatives).

The reason why I believe this to be the case, is that without the motivator of maximising profits: this design decision of creating proprietary alternative designs for already existing standard open designs makes little sense. Let us consider that if instead of this (immediate) profits driven motivator, the main motivator was to create a versatile and endearing product. One that will be usable long into the future due to the sheer availability of parts, and supporting accessories. Such as USB related componentry.

If they really wanted to make the best product they could for their customers: then I believe there is little reason not to use a Mini-USB port to power the device, and a 3.5mm audio socket for sound. This is especially evident due to the fact that the Mini-USB standard could already satisfy the GBA-SP’s power requirements of 5.2 volts at 300 milliamperes. Perhaps there were some licencing issues with regards to that idea that convinced them otherwise. It may even be the relative fragility of the Mini-USB socket that convinced them not to use it. I do believe that Nintendo’s proprietary port is more rugged than the Mini-USB port. I’ll give them that. I will also say that this is also one of the few instances where a “think of the children” argument may actually have some merit. Kids are generally destructive with toys. However I doubt that was the motivator here, at least not the main one.

Closing thoughts

I wanted to create this article initially for referential purposes, if not just for the sake of completeness. Prior to this, I wrote an article on creating a GBA-SP audio cable. This prior article featured a pinout diagram of this same port’s respective plug (audio version). However this diagram only featured labels relevant to the plug’s audio cable.

I didn’t even compare this information to their counterpart pins on the GBA-SP (or the charger’s plug). This is because I did not need to in order to achieve the stated goal of creating an audio adapter. If I did compare the pins, I would’ve found out that the lower “closed loop switch” pin (as I put it): is actually the main ground pin; and that “closing the loop” actually meant pulling the 0.5 volts from the top pin to ground. Although its essentially two different ways of saying the same thing: the latter method gives a more informed picture of what is actually going on. That is all this article is really for at the end of the day: to get a better idea of how that particular port works by using first hand experimentation and some deductive reasoning.

Anyway, I hope this article proves itself useful to you.

Thanks for reading.

Links, references, and further reading

https://www.tinkerersblog.net/0025-modifying-a-pair-of-game-boy-advance-sp-earphones-into-an-auxiliary-audio-dongle/
https://en.wikipedia.org/wiki/USB_hardware#Mini_connectors
https://en.wikipedia.org/wiki/Game_Boy_Advance_SP

#0025: Modifying a pair of Game Boy Advance SP earphones into an auxiliary audio dongle

#0025: Modifying a pair of Game Boy Advance SP earphones into an auxiliary audio dongle

Preamble

This article will consist of a basic tutorial on how to create a Nintendo Game Boy Advance SP (GBA-SP) audio dongle using a broken third party pair of GBA-SP earphones. Additionally I will also provide some related commentary (ramblings) on the similarities between Apple and Nintendo; particularly the way they design their products, and the way that their fanbases receive them. So if you have any old earphones you got as a child and broke yet kept, or maybe even recently purchased as spares and repair? Or if you are inclined to hear me bemoan tribal consumers and corporate avarice. Well here you are.

Creating an audio dongle

The actual conversion is rather simple. You just need to first cut the earphones off; then connect the wires as shown in the pinout and wiring diagram below.

Pinout

Audio jack
1: left speaker positive
2: right speaker positive
3: common ground

GBA-SP port
1: right speaker positive (red wire)
2: closed loop switch
3: (pin absent)
4: left speaker positive (blue wire)
5: common ground
6: closed loop switch

Now that we have the broad methodology of what to do to create an audio dongle, I’d like to talk about a few specifics.

Closed loop switch

In the pinout diagram I labelled pins 2 and 6 as “closed loop switch”. What I mean by this is that there is continuity between these two pins. This means that they are electrically connected to each other. I believe they are configured in this way in order to act as a switch when the plug is inserted into the device.

The electrical connection between the two pins effectively closes an open loop within the device. One that terminates with these pins’ respective sockets. This loop is probably used so that the device can know when an audio peripheral has been connected. This is so that it can act accordingly, by for example switching off it’s built in speaker.

Where to cut the donor earphones cord?

This might seem like a rather simple question at first. However in order to answer it, I needed to answer a few other questions before knowing where exactly I wanted to make the cut. The most important question that needed answering is does the pair of earphones actually work properly, or are they broken somewhere.

Assuming that they have at least one fault somewhere within them, where is the fault? If you can not easily identify it, yet the earphones are still not outputting sound. Then perhaps the fault is hidden. In this case, it will mostly likely be either at the earphones themselves due to snag damage; or if you are unfortunate, it’ll be located near the plug due to something akin to repeated flex damage. Please note that I am just speculating from my experience with repairing headphones.

Once the fault is found, then you must make a decision. Repair the fault, or cut if off (if applicable). In my case the fault was at the left earphone itself. I didn’t probe further than identifying roughly where it was, since I had no intention of repairing something that far down stream. I did however consider whether or not I wanted to retain the inline volume dial. After some consideration I decided to remove it. The reason for this is that I feared that the relatively low quality of the componentry involved; such as the potentiometer, or the PCB and it’s solder joints may actually negatively affect sound quality. So I just snipped it off. Didn’t like it much anyway. It didn’t feel nice to use.

What type of plug or socket to terminate the cord with?

This question was primarily answered by the materials I had available at the time. I did not have an appropriate female 3.5mm audio socket available. However I did have plenty of male 3.5mm jacks on hand; including ones that were corded. In the end I went with a jack that was colour matched (black) and that had the smallest profile.

This male jack enabled me to plug the GBA-SP into an auxiliary port on a sound system should I wish to do so. Additionally when coupled with a female-to-female 3.5mm audio adapter, it enabled me to use headphones or speakers with the dongle. This setup basically gave me the same functionality as having an adapter that terminated in a female 3.5mm socket, paired with a typical male-to-male auxiliary cord.

Soldering the jack

When it comes to soldering audio jacks like these: the first actual thing I did was prepare the heat-shrink tubing for it. Selecting the right sizes and cutting them to length. I prepared two pieces, which I thought was sufficient at the time; however in hindsight I should have prepared three distinct pieces. One to isolate each line.

As it is, it has one to insulate the central shaft from the surrounding ground pad, and one to act as an outer cover; protecting all three wires and acting as a general guard against flex damage for the entire cord. It’s good enough, but it would be better in my opinion if the inner two wires were separated by more than just the enamel coating of the wire strands themselves, as I have left them. A smaller gauge piece of heat-shrink tubing on the inner terminal to cover it’s solder joint would’ve been better.

As for the soldering itself: audio jack terminals like the one pictured can be rather tricky to wire up and solder properly. The reason for this is due to a range of factors. Factors such as: the general fiddliness and fragility of the enamel wires themselves. Although more-so the close proximity of the jack’s terminals to each other, coupled with the convex curve and orientation of their soldering pads, is what adds difficulty; as the awkward angles involved can diminish dexterity.

Additionally, the presence of structural plastic insulation between the terminals, meant that a lower heat and a shorter soldering dwell time was needed. This in order not to damage the jack’s plastics with radiant heat from the work area. Otherwise the plastic will melt and warp the plug’s general shape and structure. All these various factors can make it difficult to solder in a reliable and repeatable manner. However practice and work flow optimisations will mitigate these type of annoyances as one gains experience in this task.

An example in which I optimised the process: was by preparing the wires for soldering by removing their enamel insulation. This is because prior to this: during soldering, the enamel coating on the wires sometimes wouldn’t burn off within the liquid solder blob itself; especially with the necessary (relatively) low heat and short dwell time. When this happened, it resulted in the wire not forming a good electrical connection and/or not bonding physically with it’s solder pad.

I chose to prep the wires by burning off a segment of their enamel coating using a lighter. This had to be done in very quick manner in order to not oxidise the underlying copper strands too much. Burning off the insulation in this manner allows me to quickly solder the wires into place without worrying about any complications from the insulation.

After removing a segment of insulation in this manner, I chose to attach the wires in a way that limited any exposed segments of wire present outside of the solder joint. This is to limit any exposed conductors. Consequently, the solder joints were close to their respective wires’ insulated ends, and only used the exposed segments to get a good electrical connection within the solder joint itself. After-which I’d snip off any excess exposed wire that preceded the joint.

Testing the cable

The attentive readers amongst you probably have noticed that my repair notes contain several resistance tests of the various lines. Most I ran while working on the device, those are the numbers closer to the hand-drawn diagram. Some of which have been struck out. Discount those. The ones of interest are at the bottom of the notes. Those are the results from the post repair test.

The reason for the final test was because I was dubious of the quality of the cables that I was working with. As well as generally dubious of audio cables of this calibre. Specifically, cables that consist of a small collection of loose strands dipped in (I believe) enamel for insulation; then interwoven with additional plastic or nylon strands for strength. They all look and feel fragile and cheap. Having said that however, I should say that a post repair test is a good general practice. Even when confidence in the repair is high.

As you can see the left speaker line has a end-to-end resistance of 10 ohms. Five times that of the right speaker line, and ten times that of the common return (or ground) line. The right and return lines have acceptable resistances in general, and accurate relative resistances to each other. I expected the return common line to have half the resistance due to the doubling of the lines. However, what was unexpected was that the left line was clearly an outlier in line resistance. This in my opinion is due to either the low quality of the cable in general, or a hidden defect I did not find.

It’s not ideal, but upon testing with actual sound, the loss of volume on the left line speaker due to it’s higher line resistance was not noticeable at all. So I just left it be. The effort necessary to track the fault that is adding the 8 ohms to the line, is not worth the reward of having perfectly balanced lines for a GBA-SP’s audio. I used to call it laziness not ploughing down these types of rabbit holes. However as I have aged, I have come to understand the diminishing returns on investments that this type of perfectionism offers.

Completed mod demonstration

Related thoughts on Nintendo and their Game Boy Advance SP console

Now that we have created our own DIY audio dongle, let’s talk about why we needed to do this in the first place. In other words, why the Game Boy Advance SP doesn’t have a built-in 3.5mm audio port to begin with. In order to get at this answer, let’s first discuss a completely different technology company and it’s products. As to why, I’ll let you join the dots.

Many people today (2021) credit Apple as one of the most anti-consumer consumer technology companies, specifically with regards to their product design. Although there are numerous examples I could pick out, the one relevant instance here: is the removal of the generic 3.5mm audio jack from their 2016 iPhone 7 models. Anyone who pays any critical attention to this company probably came to a similar conclusion to my own. (Proceeds to pat self on back.) This naturally being that they did so in a bid to to sell first party audio peripherals at a premium. This being to their captive audience of fruity cultists. Cultists that would happily eat that up.

Why am I mentioning this in a Nintendo article? Well it’s because peoples’ memory is generally fickle and often mired with nostalgia; and the residual emotional attachments that it incurs. This leads them to holding double-standards when it comes specifically to childhood brands like Nintendo, often holding them to a lower standard of conduct than brands like Apple. These same people forget that their friend Nintendo did the same thing 13 years prior in 2003 with the incremental release of the Nintendo Game Boy Advance Special (GBA-SP) portable games console.

A games console that had no tangible advantages over it’s Game Boy Advance (GBA) predecessor other than a few quality of life (QoL) improvements. Both consoles played exactly the same games, however the SP boasted: an internal rechargeable lithium-ion battery, and an LCD backlight. For consumers tired of repeatedly buying new AA batteries for their GBA, or always awkwardly angling the unlit LCD towards a light-source whilst avoiding glare; these were improvements worth investment. Those of you who can read between the lines, might’ve guessed that this internal battery naturally required a specific Nintendo battery charger. A theme that they continued in later products such as with the Nintendo Dual Screen portable console (NDS).

However, a more apt feature of criticism in the iteration from the GBA to the GBA-SP, is the removal of the 3.5mm audio jack. Why did they do this you may ask? Well, now I could be wrong, but the cynic in me says that it was to facilitate Nintendo selling official audio peripherals at a premium, to their captive audience of pedantic neck-beards in waiting. That’s us mate.

Laughably, Nintendo’s official response against their audience’s pushback in 2003 was basically the same as Apple’s in 2016. They both said something to the tune of: that the new device simply didn’t have the space for a 3.5mm audio jack. Apple added some device waterproofing claims to this as well. But the core reason was the same: that there’s simply no space for it. Now shut up and buy our official peripherals. Peripherals that use the same port for both audio output and power delivery. So good luck using wired headphones and charging the device at the same time. Enjoy.

To cut it short. My point is that Nintendo has proven themselves to be as anti-consumer as Apple when the mood takes them. However it saddens me that their customers are prone to look at this company through rose tinted spectacles. Often even shouting down valid criticism, yet many within the community still consider themselves distinctly different from the stock of Apple enthusiasts.

That’s what happens when one thinks with their feelings. It’s tribal fanboy-ism at it’s finest. People for whatever reason forget that an individual’s relationship with a company or business like Apple or Nintendo, is strictly transactional. Nothing more. They are not your friends. A corporation does not have the capacity for camaraderie, or loyalty. Only the capacity to take advantage of such feelings in order to sell more to the same people.

Obviously, I am not talking about the entire consumer base here, just the vocal fanatics that seem to dominate public discourse. If anything a logical or reasonable person who likes the products of a particular brand to the point of becoming brand loyal; should ideally, be even more critical (than the average Joe) of their chosen company when it strays into anti-consumer practices. Due to their investment within the brand and it’s products. They likely would wish for them to stay good, more than a person who isn’t all that invested. But that’s not the world we live in. Instead the more invested a person is in a brand, it seems the more likely they are to tribally defend them regardless of circumstance. It’s sad really.

Closing thoughts

I know what you might be thinking, this article is nice and all, but it’s also almost twenty years too late. I mean in previous years getting a hold of an audio dongle for the GBA-SP might have been troublesome or expensive. Back when (the famously litigious) Nintendo were still protective of the console. However in 2021, one could easily purchase a NEW Game Boy Advance SP audio dongle from Ebay for less than a fiver. Since Nintendo doesn’t care much about protecting the rights to peripherals for a console that old (read unprofitable). Sure, the item that you buy won’t be an official Nintendo product, or even a notable third party contemporary brand peripheral, like Competition Pro. But it’ll work. Probably.

example of an unbranded Ebay adapter

To answer that question: Yes, yes you could. You could purchase an unbranded china special peripheral for your almost twenty year old console. Alternatively you could also make use of any old and/or broken first and third party peripherals that you may already have lying around, or even purchased in a mixed joblot or bundle. Essentially converting (basically) e-waste like that into a useful cable. One made to your exact use case and specification no less. Chances are your convert will also be better quality than a bought cable depending on what materials you use to make it.

Mine isn’t, I made mine from a pair of Competition Pro earphones. But still you get my point; I bet if you made yours from a pair of official Nintendo earphones (should you happen to have them), they might be better quality. As for making something for a specific use case: I totally use mine to blast Castlevania: Aria of Sorrow’s soundtrack, via my home sound system. I do it for maximum “immersion” during my midnight gaming sessions. I also want my neighbours to know that I am cool. The banging on the wall seems to indicate that they do.

Thank you for reading.

Links, references, and further reading

https://docpop.org/2016/09/apple-learn-nintendos-headphone-mistake/
https://arstechnica.com/gaming/2016/09/no-headphone-jack-nintendo-did-it-first/
https://en.wikipedia.org/wiki/IPhone_7#Headphone_plug_removal
https://en.wikipedia.org/wiki/Game_Boy_Advance_SP#Headphone_jack

#0022: Equipment recommendation list for a hobbyist repair technician

#0022: Equipment recommendation list for a hobbyist repair technician

behold mein craphouse

Preamble

This is a quick and dirty list of the equipment (tools, and consumables) I use, specifically with regards to repairing devices. Hopefully, this list proves useful to any other hobbyist repair technicians or people interested in electronics in general. The equipment list is split into three categories based on need: Necessities, Nice-to-haves, and Useless dreck. Each item has a quick summary explaining it’s use relative to it’s category. Other than the broad categories, the items are in no particular order.

Quick list

Necessities:

  • Temperature controlled soldering iron
  • Leaded solder
  • Lead-free solder
  • Tweezers
  • Bench power supply
  • A good vacuum desoldering pump
  • Desoldering braid
  • Pry tools
  • Isopropyl alcohol
  • Rosin flux
  • Multi-bit screwdriver set / screwdriver set
  • A cheap multimeter
  • PPE: safety glasses
  • PPE: gloves
  • Spares and parts
  • LCR component tester
  • Side cutter
  • Digital camera
  • Portable computer
  • Helping hands
  • Hot air SMD rework station
  • Kapton tape
  • Shrink wrap
  • Lighter
  • Pen and pad
  • Small containers
  • Work mat
  • Mobile light source
  • Cleaning supplies

Nice-to-haves:

  • Soldering iron tip tinner
  • A good wire stripper
  • Solder mask and UV curing torch
  • Oscilloscope
  • Hot glue gun
  • Soldering gun
  • PCB board holder
  • Precision screwdriver set
  • Desktop fan
  • Filter mask
  • Temperature sensor module
  • Isolation transformer

Useless dreck:

  • Cheap vacuum desoldering pump
  • Cheap wire stripper
  • Flux pens
  • Alcohol based liquid flux
  • Heated vacuum desoldering pump
  • Soldering iron sponge

Necessities

Temperature controlled soldering iron

A variable temperature setting is needed to work effectively with materials with different melting points and thermal mass conductivity.

Leaded solder

More versatile and friendly to work with than the lead-free variant due to it’s lower melting point and better flow. Necessary to perform maintenance on a soldering iron tips (tip tinning).

Lead free solder

If you have leaded solder, then lead free solder is largely redundant if all you primarily care about is solder effectiveness. Lead-free solder does however have it’s use cases. The main trade off between them is that leaded solder is more effective as a solder, however lead-free doesn’t contain lead, which is toxic. Any use case where you definitely do not want lead in the device, lead-free would be the way to go. A good example of this, is any device that comes in contact with foodstuffs such as kitchen appliances.

Tweezers

Tweezers are needed to manipulate tiny components, such as surface mounted components. They are also useful for holding materials affected by heat. Get a firm pair of metal tweezers, the cheap ones bend when you exert force on them, meaning that you lose control on the object you are gripping. It also means that you cannot grip the object tightly, otherwise the tweezer will start to bend. I recommend having multiple tweezers, an L-bend pair of tweezers for comfortably interfacing with SMD components, and a larger (stronger) pair of straight tweezers (with teeth/grips) for general use.

Bench power supply

Necessary for powering a range of devices and components under test. It needs to have variable voltage outputs and a current limiter. It also needs to be able to provide enough power for powering the devices under test.

A good vacuum desoldering pump

Although generally less effective at removing solder from a joint than a length of flux infused desoldering braid would be, it is still very useful due to it’s reusability. It helps me keep my recurring materials cost down.

Desoldering braid

This is probably the best way to actually remove solder from a solder joint. Works best when infused with additional rosin flux.

Pry tools

A small collection of pry tools will assist in opening the various plastic clips that you will encounter when opening consumer devices.

Isopropyl alcohol

An excellent cleaning agent and light solvent. Useful for effectively removing many materials, from adhesive, to rosin flux, and even good for removing water (moisture) from devices.

Rosin flux

Necessary agent for assisting solder to flow effectively. Additional flux is necessary in many cases where the flux that comes within flux core solder is insufficient, or in cases of desoldering a joint without first applying additional (flux core) solder to the joint.

Multi-bit screwdriver set / screwdriver set

A good set of screwdrivers (including security bits) is basically mandatory for a repair tech of any stripe. They facilitate the access and disassembly of devices, necessary for repair.

Cheap multimeter

A multimeter is an absolute necessity. At the most basic level, a multimeter is used to test suspect components to gage their health and functionality. They have many functions that a very useful, such as continuity, voltage, current, and resistance testing. However they also have some gimmicky functions (at lest in the cheaper models), such as NCV testing, or transistor testing (which is not very good on multimeters in general).

Generally cheaper multimeters are fine for low voltage applications, such working on battery operated consumer devices. Their core functions are accurate enough that it shouldn’t become an issue. However if you are wanting to work on higher voltage devices. Such as mains powered devices, than a more expensive notable name brand multimeter (e.g. Fluke) is necessary at that point due to it’s safety feature set.

PPE: Safety glasses

You will use some form of safety glasses sooner or later. The only question is whether it happens before or after something either sharp or hot flies straight into your eyeballs.

PPE: Gloves

Very useful for handling hot materials, and/or isolating your skin form various toxic, corrosive, or abrasive materials. This could include anything from lead metal, to battery acid, to liquid plastic. Get gloves appropriate to the materials you’ll be handling.

Spares and parts

How can you call yourself a repair tech, if you don’t have at least some spare parts or devices either laying around; or stuffed into boxes somewhere. Either bought or salvaged, it really doesn’t matter. What matters is that there are many discrete parts in devices that are virtually irreparable. Basically this includes every small component from passives, such as: resistors, diodes, and capacitors; to active componentry such as integrated circuits and transistors. They’ll all need replacing once they’ve fried.

LCR component tester

This is a good addition to a multimeter. It’s typically used to test various components’ inductance (L), capacitance (C), or resistance (R). I however predominantly use mine to gauge the health of electrolytic capacitors, by testing their equivalent series resistance. I personally bought mine when I got into recapping old monitors. However, you can also us an LCR meter to identify various unlabelled components, such as SMD (surface mounted device) capacitors, resistors, and transistors.

Side cutter

A nice little sharp side cutter is invaluable when it comes to performing various tidying up jobs around a PCB circuit. These little clippers are great for trimming the leads of through hole components, and cutting smaller gage wires that are nestled deep in a device. It also functions as a good as wire stripper, however user’s will have to carefully strip the insulation from cables.

Digital camera

I use a digital camera to document my exploration through a device. That way I have evidence of how it looked before I started messing with it’s insides. An example use case would be documenting which random coloured wires were soldered where. By the time the user finds and fixes a fault within a device, details such as the specific configuration of wires connecting to any given board may slip their mind. So it helps in such circumstance to have documented evidence.

Computer

I typically use my small old (intel atom) laptop computer. I use it to host tutorials (both video and textual), datasheets, schematics, and for use as a typewriter to jot down notes if I don’t want to use a pen and pad for whatever reason. One could also load on the thing various entertainment media for getting through long sessions of laborious work. Basically music and audio books. Additionally, I also use it to store catalogues of the photographs I take when assessing devices.

When it comes to work bench computers, I have a general preference for computers that are inexpensive and that use very little power to operate. Inexpensive, because they are likely to get damaged in one way or another. Either by off-spray, a slip with a blade, a drop, melt damage, anything really. And low power, because the computer is also most likely going to be powered on for extended periods of time, most likely just displaying documents whilst playing music in the background. Essentially, not really doing much in terms of processing computations. So an older small portable with a lower power processor is ideal for this use case.

On the other hand a desktop for example is likely unsuitable for this task, both due to it’s power consumption, and due to the desk space that it will require. Additionally, there is also the temptation with a more powerful rig, to ‘take a short break’ by playing video games, or rabbit holing youtube videos. Such distractions are painful experiences on an intel atom processor, hence its likely to keep a person on task easier.

Helping hands

Helping hands hold workpieces in place securely, enabling the user to work on them confidently. They may initially seem like a ‘nice-to-have’. However I find that for many things, such as soldering wires together, or connecting various cables to plugs; helping hands that can hold all these small fiddly components are exceptionally helpful.

Hot air SMD rework station

An SMD rework station is just a fancy name for hot air station. It has a nozzle that outputs air hot enough to melt solder. If you are working with miniscule surface mounted devices or components, then an SMD rework station is something that you really aught to have. Especially when it comes to installing or removing larger surface mounted devices such as IC (integrated circuit) chips.

Kapton tape

A great companion to a hot air station is the Kapton tape. This is a heat resistant adhesive tape. It is useful in that it allows an operator to localise any heat from the hot air station, by applying the insulative kapton tape to the surrounding componentry. Kapton tape is especially useful in preventing many tiny components from accidentally falling off a PCB when the user applies heat to a large neighbouring component. This happens a lot when dealing with any larger logic ICs, because they tend to be surrounded with many tiny surface mounted ceramic capacitors. Which are needed to provide them with apt power.

Shrink wrap

A great step up from using electrical tape to insulate connections in wires is by using shrink wrap. Shrink wrap is more water resistant and offers a more permanent and professional looking insulation to connections.

Lighter

A lighter is a great cheap alternative to a hot air station or heat gun, when you want to shrink heat shrink.

Pen and pad

Good for taking on the fly notes and sketching schematics, diagrams, or what have you. I think that nothing beats the convenience of using a pen and pad to jot down whatever pops into mind.

Small containers

A couple of small containers on the desk are an absolute must for working continuously in an organised manner. I have several knocking about; including a long metal tray for holding screws, a small pot for holding small garbage like solder from a vacuum pump or wire and tape trimmings, and a glass ashtray for holding various components. It’s good to have several little containers like this with dedicated uses.

Work mat

A good mat is necessary to protect your work table from any damage. I personally use a small cutting mat for everything, including soldering. Although a silicon heat map would be more appropriate for that, but a cutting mat has more general applications. Mats are especially useful for tables with multiple uses, such as writing or drawing. Tables that are better left unscratched and flat.

Mobile light source

Mobile light sources include devices like: torches or desk lamps. These are necessary for seeing small details, such as silkscreen on an IC chip, and especially useful for photography which often requires higher levels of light for the camera to capture details properly.

Cleaning supplies

Every repair will need a good clean at some point. This is a bit of a catch all category for the general cleaning stuff that I use. I keep a fair range of stuff close to hand. Firstly, I have a couple of dirty rags or shop towels, these are for either really dirty devices, or devices that are contaminated with something that means I’ll have to chuck the rag after use. Secondly I have some clean microfibre cloths for wiping down display screens and the like. These are for light dusting and polishing jobs essentially. Thirdly, I have a paintbrush which I use for cleaning dust out of difficult areas on devices, such as from between the fins of a heatsink or from a populated PCB board in general. Essentially for removing the bulk of dust from uneven and crowded surfaces.

I also carry cleaning solutions. In addition to the solvents like isopropyl alcohol, I also carry two spray bottles. One is filled with tap water and the other is filled with a 10:1 tap-water and washing up liquid mix. The dilute washing up liquid, I use as a catch all cleaning agent. Its good as a basic emulsifier, allowing me to remove oils from a device. It is also generally good for removing random sticky stains and substances from a device without damaging it. For example as an initial wet wipe down of a filthy monitor screen. The clean water bottle is used to aid the removal of any sticky residue that may linger after the application of the washing up solution. I keep cleaning with just water until the device chassis (or screen, or whatever) has no residue of any cleaning agent left on it.

Additionally I also use cue tips or earbuds. These are very effective at cleaning in very localised areas. I mostly couple these with some isopropyl alcohol; by soaking the earbud’s head in alcohol it can very effectively remove both caked on dry thermal paste or wet paste from CPUs without leaving any residue or contaminants.

Nice-to-haves

Soldering iron tip tinner

This is a specialised tool that just cleans soldering iron tips. It’s more convenient to use than tinning a soldering iron manually using leaded solder. But the results are basically the same.

A good wire stripper

A good wire stripper is a tool that will quickly and reliably strip insulation from wire. Its a tool of convenience, enabling a user to strip wire in a fraction of the time that it would take to do so with a side cutter or knife.

Solder mask and UV curing torch

If you work a lot with PCBs. For example repairing water damaged PCBs that have violently short-circuited to the point that they incurred burnt out sections. After scraping out all potential conductors such as the burnt out materials. A solder mask paste, is useful for sealing and insulating the damaged sections afterwards. It is what I consider a permanent and professional repair. The accompanying UV torch, assists the solder mask in drying quickly. A hacky alternative to filling blown holes in PCBs with solder mask, would be to use hot glue.

Oscilloscope

Oscilloscopes are useful if you get into analysing and repairing devices that deal with a lot of logic or sound signals. Things like computers and audio amplifiers. Where you’ll need to measure the signal outputs of various ICs in order to track down where the fault lies.

Hot glue gun

This is the hacks best friend. I use it a lot in in prototypes and as a way to make “temporary” repairs to various devices. Its great for filling in gaps in repaired plugs, and chassis, and even for setting electronics into a box.

Soldering gun

A powerful (~200 Watt) soldering gun is useful in any instance where you need a significant jump from the everyday soldering iron. It has the thermal mass and watt output to effectively solder to large heatsinks, such as a metal chassis. Soldering guns are also useful for effectively melting/welding plastics when coupled with a wide tip and low temperature setting.

PCB board holder

Useful for securing a workpiece. It is as useful as the helping hands, but more specialised due to it’s design being specialised for holding PCB boards only.

Precision screwdriver set

If you already have a screwdriver kit or the multi-bits kit you may either encounter screws that are too small for your screwdriver set, or screws that are deeply recessed into a device. The thin channel of the screws recession may be too deep and/or too thin for the larger screwdrivers.

Desktop fan

Its just a fan. It blows the fumes away from your face as you work, and helps cool workpieces down quicker. It’s nice to have when you want it, but in most cases it is unnecessary.

Filter mask

Necessary if you work with any really toxic fumes. I am not talking about rosin flux fumes when I say toxic. I’m referring to using a filter mask when melting/welding plastics.

Temperature sensor module

A largely single use tool that is good for calibrating a temperature controlled soldering iron (which has the function of temperature calibration).

Forceps

This is good for reaching deep into larger devices and clipping to and pulling specific objects around.

Isolation transformer

If you intend to work on any mains powered devices, then an isolation transformer is a must for safety concerns. Its another line in defence between you and death by electricity.

Useless dreck

Cheap vacuum desoldering pump

They don’t generally have the suction necessary to be worth using.

Cheap wire stripper

They tend to cut deeper than the insulation and cut strands within the wire. They are not better than a set of clippers or even a knife. There is no reason to use this type of wire stripper above more general tools.

Flux pens

They tend to contain diluted low quality rosin flux that lost the majority of it’s effectiveness of helping solder flow, in return for being in a true liquid form. Which allows it to wick in the pen. If you want a low quality flux in pen form. This is for you. It may useful for applications of SMD soldering. However it doesn’t make a notable difference over soldering with just flux core solder.

Alcohol based liquid flux

The flux is less effective due to being diluted in alcohol. Its effectiveness is reduced to the point that it doesn’t have a notable difference over using a flux core solder alone. The flux itself however is much easier to apply because it is a liquid. Rather than the pure rosin flux which is an amber like solid, or flux paste. This type of flux tends to be marketed as a no mess or no residue flux, that claim is true. However it is not a very effective flux.

Heated vacuum desoldering pump

The one I have, had a fragile tip that cracked due to the heat and use. It is also a thermoregulated unit; that has no way for the operator to control the actual temperature output. It outputs heat that can easily damage a work piece if held on it too long, at the same time it may not melt the solder in a timely manner. The actual vacuum pump mechanism however is serviceable.

Soldering iron sponge

I generally do not like soldering iron sponges due to the fact that they require watering first, and when you actually use it to clean solder off of the soldering iron, the cold moisture of the sponge causes a sudden thermal loss in the iron. Meaning that the user will have to wait for the iron to reheat after each cleaning. I just find that the iron wool tip cleaners are just superior as they do not require prep to clean the soldering iron, nor do they cause thermal loss in the iron, and finally they even clean the tip better than the sponge does. Tip cleaners can scrape oxidation from the iron’s tip, which the wet sponge can not.

Closing thoughts

I should mention that the categories of tools are based on my particular use cases, skill set, and preferences. Yours may and likely will vary. I have categorised the tools according to my general needs; putting the core list of tools that I use with most projects in ‘necessities’, the specialised tools that I seldom use but enjoy having in ‘nice to haves’; and finally the tools that I either did not enjoy using or had other tools (including general use tools) that did their jobs better, into the ‘useless dreck’.

Just because I categorised the various tools as such does not mean necessary that others would do the same. A lot of it is based on taste and personal priorities as well. The various rosin flux products come to mind as a good example of this. The ones in the ‘useless dreck’ categories are not without merit, it’s just that I did not care for them.

I hope this crude little list is of some value (if not then at least entertaining) to you.

Thank you for reading.

#0019: Creating custom cables for test equipment

#0019: Creating custom cables for test equipment

Preamble

I wanted to write a little on test cables in general, more specifically about the actual quality of the cables available at the lower end of the consumer market. Highlighting the prevalence of these types of cables, including the products that they tend to accompany. I also intend to instruct briefly how the end user can test these cables and how they can create their own superior home-made versions.

Low-end retail cables for test equipment

In my opinion low quality cables are especially evident in instances where the cables come bundled in with many lower-end chinese consumer test devices, as opposed to purchased separately. This is especially true in cases where the product is unbranded. Think cheap test equipment such as: £10 multimeters, or £50 bench power-supplies. For example the probe cables that come with the DT-830 multimeter.

To clarify I am not talking about genuinely dangerous or illegal (according to british safety law) cables, just low quality ones. Things such as chinese power cables that do not comply with the british safety standards – which are genuinely hazardous to the user and not fit for purpose; are outside the scope of this article. Genuinely dangerous cables like that run the risk of being confiscated at customs. I wrote an article on such a cable; it was a non-compliant BS1363. Link below. No, I am specifically talking about cables such as the ones on multimeter probes, and on bench top power-supplies. Inoffensive dreck.

article hyperlink: #0004-dangerous-non-compliant-bs1363-plug

Example of low quality cables bundled with multimeter

What factors dictate a cables quality?

Many times low quality wires will have a noticeable resistance value across them. This is often due to the cost cutting measures of the manufacturers. These include constructing items with lax specifications (quality control), or by saving on materials used. For example by minimising the number of actual strands of the copper conductors present within the cable, or by opting for a cheaper material substitute such as aluminium.

These cables being built to such a restrictive price-point: is what makes them very flimsy, basically disposable in many cases. Many of these types of cables are in my opinion, are merely designed to just tick the “comes with accessories” box in a products’ marketing materials.

This unfortunately makes the cable virtually without genuine use outside of the specific one that it was manufactured for. Often not even that use-case for long, due to their general fragility. So if you have some of these low quality cables in use. It may benefit you to replace them as soon as convenient; as they may be hampering your devices’ ability to perform.

For example, cheaper multimeters such as the previously mentioned DT-830 or the XL830L, are generally rather accurate. Often staying within a less than 2% error deviation from each other. However any variable resistances across their probes’ cables may affect their readings. They may for example: cause a notable voltage drop when in use, or affect the threshold for a continuity test.

A good example of a low quality cable would be: a power-supply cable that I got with my chinese bench-top power-supply. An unbranded QW-MS305D. By the by, it was actually the same unit that came with the non-compliant BS1363 plug. Never-the-less, the power-supply’s cable in question was used to power devices under test with DC voltages; as such they contain a male banana jack on one end and a crocodile clip on the other.

Although it is a relatively cheap power-supply, it could still reliably output it’s rated 30 volts at 5 amps. The only issue with the out-of-box setup (minus the bad plug), was that the output cable heated up and often got soft when exposed to the higher amperages that the power-supply could output. Although it took sometime for this to happen, i.e. it needed continuous output over several minutes. I still judge the cable as unsuitable for purpose. One thing I found humorous after the fact is that the online seller that I bought from had this same accessory packaged with the 10 amp version of this power-supply as well (QW-MS3010D).

Example of low quality cables that came with the power-supply

Using salvaged materials to create custom cables

As a response to the performance of the bought cable, I retired it. I removed the cable ends and attached them to a salvaged mains cable; and it has worked fine since. I really like using salvaged mains cables for these types of applications. Especially ones from UK safety certified devices; and especially ones from heating units. Such as electric room heaters, or toasters, electric grills, kettles, etcetera. Basically anything that uses electricity to generate resistive heat. This is because their cables are specced to allow large amounts of current to pass through them without heating up themselves.

For example: a typical mains oil heater, is rated for 1500 watts. This means that it’s cables need to safely pass that amount of power across them concurrently while the device is in use. When converted to volts and amperes; this means that these cables are able to handle 240 volts AC at 6.25 amps. This leaves me confident that it can safely handle the maximum 5 amps, 30 volts DC of my power-supply over long periods of time.

They do this by having very little resistance across the cable length. This is accomplished by actually putting copper in your copper cables. Although after looking at the example photos that I have, it appears that this particular cable is actually using aluminium strands as conductors.;) However the point stands; there are sufficient conductors within the cable, that the current can pass across it unhindered. I.e. The cable is of a big enough gauge, not to bottleneck the higher currents.

One thing to pay attention to when creating your own cables beyond the quality of the cable itself; is how you connect the various plugs you wish to use to it. This is because a poor connection here can impede the passage of electricity; and add resistance to the line. I suggest firm connections with as much conductive surface area touching as practical. It is also good form to do a resistance test across the entire thing once completed.

Another good source for quality salvaged cabling, is old or damaged ethernet cables. The twisted pairs within work very well in lower voltage DC applications; including carrying signal voltages (like binary data). The pair windings are configured to minimising interference for their carried digital signals after-all.

I like to use them to make home-made breadboard jumper cables. This can be done by just unwinding a length of cabling, cutting to size, then tinning the ends so that they can interface with the breadboard. Will it pretty? probably not. Will it be functional? 100%.

You could also use ethernet cables for replacing a cable between an external DC power-supply (or power-brick) and it’s paired device (e.g. Laptop). I tend to opt to wind together a pair of cables, if I wish to reliably carry current at higher DC voltages (e.g. 20VDC @ 3A for a laptop). However any higher than that and you’d be better served by using thicker gauge wires.

Home-made custom cable for power supply

Example of resistance test used to determine cable quality

Closing thoughts

That’s all really. I just wished to highlight that some low end cables are not good, and to encourage you to create your own superior cables using parts from common household devices.

Thank you for reading.