#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

#0027: Dominions 4: Thrones of Ascension map creation guide

#0027: Dominions 4: Thrones of Ascension map creation guide

Preamble

This is a quick bullet point style guide to how I create maps for IllWinter’s game: “Dominions 4: Thrones of Ascension”. Note: I will henceforth refer to the Dominions 4 game binary as “dom4”.

Map creation steps

Step 1: acquire or create a base image to use as the map.

I created an image using the GIMP image editor, and saved the multilayer project file (.xcf).

Step 2: use an image editor program to alter/create an image to conform to a standard that the dom4 executable can recognise.

Image specifics:

  • image must be in the Truevision TGA (.tga) or Silicon Graphics Image (.rgb) image format
  • minimum image size: 256×256 pixels
  • recommended image size: 1600×1200 pixels
  • image must be in 24 bit or 32 bit colour depth
  • image must be either uncompressed or using run-length encoded (RLE) compression
  • image must use a white single pixel as a province marker
  • white = HEX:#ffffff, RGB:(255,255,255)

Step 3: using the image editor, export a correctly formatted image.

I exported a TGA image file to specification, with a size of 256×256.

Example image file name: “tutorial_map_256x256.tga”.

Step 4: copy that image file to the dom4 working directory.

Working folder directory:

  • Linux: ~/.dominions4/
  • Mac: ~/.dominions4/
  • Windows: %APPDATA%\dominions4\

Step 5: boot up the dom4 game, and navigate to the game’s internal map editor.

Menu navigation: Game Tools > Map Editor > New map > (enter image file name)

This will automatically create a map. By populating it with provinces (one at each white pixel), then guess at the links between the different provinces.

Step 6: use the in game map editor to edit the map data.

This includes: mapping links between provinces, formatting link types (mountain, river, ground); terrain types (forest, farm, sea); throne sites, special sites, and so fourth. Its important at this stage to generate random names for each province, this is in order to populate within the .map file relevant code for the province names.

Example: #landname 1 “Deepmount”

Step 7: save the map. This will generate a .map file in your dom4 working folder.

Step 8: using a text editor: edit the .map file data such as the in-game map name, map description, and province names.

Step 9: test play the map, and troubleshoot errors.

If the dom4 program crashes as soon as you load up the map. Then it is indicative of a hard fault. For example, the tutorial map here crashes if you try to add more than 4 nations to it. Other crashes like this can be caused by the dom4 binary being unable to find a resource. E.g. the user renamed/edited resource files, then tried to load into a game that uses them.

Step 10: backup and archive your map

Example archive contents:

  • GIMP project file (.xcf)
  • original image file (.png)
  • processed image file (.tga)
  • map source code (.map)

Map files

Closing thoughts

This method is probably the simplest way to actually create decent playable maps. By using the built in map creator tool, a user can bypass a lot of the tedium involved in coding. Such as learning the meanings of various symbols used for variables and game function, or learning the specific syntax used to generate a viable .map file. This is because the in-game visual editor automatically populates the .map file with viable code. All the user has to do is use the visual editor to assign all the functionality that they require for each province by checking menu boxes. Save the map. Then circle back to the .map file to fill in a couple of titles (in game text fields) after that.

Ultimately, I think that this quick guide provides a good framework. One that an aspirant map creator can build on further by reading IllWinter’s map making manual. Which in turn will allow them to gain further insight into the mechanics of map making; including the ability for more advanced functionality. In the mean time, just these simple steps will enable users to create perfectly playable maps. Ones that should satisfy most.

Thank you for reading.

Links, references, further reading

http://www.illwinter.com/dom4/manual_mapedit.pdf <<< MAP MANUAL
http://www.illwinter.com/dom4/index.html
https://github.com/Narroe/Dominions_4_custom_maps
https://en.wikipedia.org/wiki/Truevision_TGA
https://en.wikipedia.org/wiki/Silicon_Graphics_Image
https://en.wikipedia.org/wiki/Run-length_encoding

#0026: Preventative maintenance for laptop computers

#0026: Preventative maintenance for laptop computers

Preamble

This will be a brief guide to maintaining the hardware of a laptop computer. This is with the intent to prevent the breakdowns and computational performance loss, that is resultant of extended user negligence. It is pretty much a cleaning guide, including: necessary tools, materials, tests, parts descriptions, general methodology, and background information. This is provided with the aim to bring unmaintained units into a workable state. Although I specify this guide for laptops, most of the techniques discussed can apply to any computer. This includes: desktop PCs, game consoles, or servers. The core ideas discussed here have more-or-less universal application.

What causes negligence related breakdowns?

The short answer is that this type of breakdown, is caused by the overheating and eventual burnout of computer components. This overheating is due to the diminishing effectiveness of the machine’s cooling system over time. Although a laptop’s cooling system consists of several contiguous parts, there are only three main parts that require any degree of special attention. These are: the heatsink fins, the fan, and the thermal transfer material (thermal pads/paste).

Where is heat created within a computer?

Although technically most semiconductors can create heat when operating, there are only a few components that create enough heat to warrant the use of a cooling apparatus. These include: the CPU (Central Processing Unit), the GPU (Graphics Processing Unit), and in high power systems, this even includes the voltage regulator modules that supply these processing units.

It should be noted that any given laptop’s cooling system is already configured to attach to all the components that actually need cooling. It was configured to do so at the designed stage of product manufacture. So there is no sense in worrying about the heat output of any components that aren’t covered by the default cooling system that the laptop already has.

Laptop cooling system explained

Cooling plate: This is the initial heatsink that conducts heat out from the chips and into the heat pipes.

Heat pipes: Heat pipes are good at transferring heat from one end of the pipe to the other quickly. They do this by being filled with a liquid that evaporates and condenses readily within the pipe’s sealed system. The general idea here is that the liquid evaporates into gas on the hot side, causing it to quickly travel to the cooler side where it condenses back into liquid as it loses it’s energy to the surrounding material.

Heatsink: Heatsinks have fins that are designed to have as much surface area as possible between metal and air. This is to facilitate the convection of heat out of the cooling system and into the environment.

Blower fan: The blower fan is exactly that. It blows the hot air that the heatsink fins have warmed up, out and away from the computer. This is to maintain a constant temperature gradient, that facilitates heat energy moving out of the heatsink fins.

Why is maintaining a cooling system especially important in laptops?

The main reason why maintaining the cooling system is especially important within laptop computers over for example desktop computers, is that often the cooling system on a laptop is barely adequate for it’s computer’s needs as it is; bran new. As such, any additional degeneration in cooler system efficiency may quickly effect performance. The reason why many cooling systems can barely dissipate the heat produced by their onboard CPU and GPU is two fold.

One, laptops have a significant size limitation that desktop computers do not have. Every component that would go into a typical desktop computer, has to fit into the significantly smaller profile of a laptop. This unfortunately includes the cooling system, whose effectiveness directly correlates with size. Bigger heatsinks, sink more heat; more heat pipes, can move more heat concurrently; and bigger fans move more air. It is as simple as that. Additionally, the current market trend of making laptops thinner and lighter is exacerbating this issue.

Two, the role of the modern laptop is different than what it once was. Modern laptops have higher power requirements than ever before. This is due to them housing more powerful CPUs then ever before. CPUs which generate more heat than ever before, heat which needs to be dissipated.

Modern laptop computers have moved beyond the realm of earlier notebooks; i.e. machines designed for web browsing and clerical work. With the introduction of gaming laptops and desktop replacements, we now high performance machines; genuine portable alternatives to full desktop computers. Many of which housing CPUs comparable with their desktop counterparts. The only unfortunate part is that they don’t have the same level of cooling available. Therefore maintaining the efficacy of the cooling system that is does have is that much more important because of that.

Example of a laptop with an underdeveloped cooling system

I have in my possession a Toshiba Satellite P850 that I purchased new around 2012. This particular machine came with a socketed CPU (i.e. replaceable), and at the time of purchase I recall having to specify whether I wanted an Intel i3, i5, or i7 CPU installed. Three very different CPUs in terms of computational ability and heat output. Yet the rest of the computer was of the same design, including the built-in cooling system. I purchased the most powerful i7 package option, and consequently have always had heat related issues with the machine; having to even augment the built in cooling system with an external “laptop cooler pad” to avoid overheating when under extended loads (e.g. playing video games).

post maintenance temperature statistics for Toshiba Satellite P850 laptop (note: bottom two temps are irrelevant as they are HDDs)

Symptoms and explanations of laptops with poor cooling

Symptom list:

  • The machine is generally dirty.
  • Heatsink fins blocked up with dust, grease, food, or grime.
  • Loud fan: fan operating constantly on full throttle.
  • Fan notably vibrating or making clicking noises.
  • Fan not spinning freely (i.e. noticeably struggling to spin).
  • No fan noise at all.
  • High localised radiant heat.
  • Drop in CPU performance when under load.
  • Diagnostic software reading high operating temperatures at idle state.
  • No thermal paste present between the cooling plate and CPU.
  • Dry or hard thermal paste present between the cooling plate and CPU.

Explanations:

  • The machine is generally dirty.

If on a basic visual inspection the machine is externally dirty, it is likely to be in a similar state internally. Since dirt and dust are generally good thermal insulators, they’ll assist the machine in retaining unwanted heat energy. Additionally, general cleanliness is also a good indicator as to the level of maintenance the computer has been subjected to.

  • Heatsink fins blocked up with dust, grease, food, or grime.

Heatsinks require large surface areas, in order to transfer heat energy effectively from themselves and into the immediate local environment. In this case: air. This is done via a process called thermal convection. Heatsinks achieve their large surface area (relative to mass) by employing heat-fins. Row upon row, of often wafer thin plates that maximise the heatsink’s contact with the air around it.

In order for the heat exchange process to operate effectively: air must be allowed to move freely between the heatsink’s fins and contact it’s surfaces without obstruction. Additionally, the constant movement and renewal of the air through the heat fins maintains a thermal gradient that keeps heat energy moving out of the heatsink and into the local air. If airflow is blocked for whatever reason. Then sooner or later, the heatsink will reach a level of thermal equilibrium with the local pocket of air around it, at which point no more heat transfer will occur.

  • Loud fan: fan operating constantly on full throttle.

During normal operation, a computer will modulate the revolutions of it’s cooling fan(s) in order to maintain a stable system temperature. This modulation includes: raising the fan rev speed to decrease temperatures when necessary, and lowering fan rev speed to reduce fan noise once safe temperatures have been achieved. If the computer fan is spinning loudly at full rev continuously, it is indicative of the system sensing the presence of a consistently high temperature.

  • Fan notably vibrating or making clicking noises.

Fans vibrating or making clicking noises is a possible indicator of an issue with the fan bearings. Such as misaligned or dry bearings. This generally makes the fan spin slower than intended, or suddenly stop for a period of time, before resuming spinning as before.

This issue is twofold. One, that fan will not be able to adjust it’s rev speed to match the system’s needs in time. This is due to the unaccounted for resistance to rotation that it will encounter in it’s current state. Two, when it does spin, it risks getting stuck perhaps permanently. When electric motors like the one in these types of fans get stuck, they take more and more electric current. If it doesn’t start spinning soon, it risks overheating the motor coils and burning itself out.

A clicking fan needs to be removed, disassembled, then inspected. If it’s bearings are merely dry, then they can be re-lubricated. The fan may work fine after this. If however the bearings are damaged, then either they’ll have to replaced; or alternatively: you may have better luck simply replacing the whole fan assembly. Additionally, a strictly vibrating fan will also have to be disassembled and inspected. In this case: look for anything that may make it spin off kilter, such as a bent or misaligned central shaft or blade hub.

  • Fan not spinning freely (i.e. noticeably struggling to spin).

A sticky motor struggling to spin could be caused by anything; from hair or dust wrapped around or caked onto the central shaft of the electric motor, to the fan bearings drying out. Since a stuck motor pulls more current than a spinning motor, it also generates more heat. This heat will eventually destroy the motor. Clean the fan thoroughly and test it. If it still struggles to spin. Then disassemble it for inspection.

  • No fan noise at all.

If you have no fan noise what so ever, then chances are that the fan isn’t spinning at all. Check that it isn’t stuck, or burnt out. It should be noted that: a laptop’s cooling system needs an active air current running through it to remove the residual heat. The passive cooling components alone are often not sufficient to dissipate the heat, at least without having something to actually expel that heat from the system. With that in mind, replace or repair the fan as soon as possible.

  • High localised radiant heat.

High localised radiant heat near the source indicates that the heat isn’t being dissipated from the source quick enough. I.e. there is likely a break somewhere within the cooling system that prevents the heat energy from travelling away from the source.

  • Drop in CPU performance when under load.

Many CPUs or systems, have a thermal throttling feature where they actively limit the processing capabilities of the CPU. This is in order to limit it’s resultant heat output. Usually machines don’t limit their CPU performances in this way, unless the cooling system is proven inadequate. In order for a CPU to start thermal throttling, it needs to reach a threshold temperature that is considered potentially dangerous to the CPU itself.

  • Diagnostic software reading high operating temperatures at idle state.

Diagnostic software like Speccy and Psensor can be used to display information from the built-in system temperature sensors. Assuming an ambient temperature of approximately 20 degrees celsius: CPU temperature readings above 60-70 degrees celsius on an idle system is indicative of a poor cooling system. Additionally when the system is actually under load (i.e. doing work), these temperatures can spike to 80-90 degrees. Reaching the thermal throttling thresholds.

  • No thermal paste present between the cooling plate and CPU.

Thermal paste is a heat conductive layer between the CPU and the cooling plate (or heat sink). It is necessary to enable the most efficient conductive transfer of heat possible out of the CPU and into the cooling system. Although technically, computers can operate without thermal paste. It is not recommended, especially in higher wattage systems with more powerful CPUs. CPUs which can reach very high temperatures very quickly.

You could probably get away with not using any thermal paste on a really low power system. For example with my 2009 HP Mini 110 laptop, which has an intel atom processor inside it. Since that CPU can’t really generate enough heat to be concern. Still I wouldn’t recommend it. Now that I think about it: the only real time I ever came across a machine without any thermal paste applied, was when I purchased a “seller refurbished” unit. I.e. basically due to human error.

  • Dry or hard thermal paste present between the cooling plate and CPU.

As thermal paste ages it many become: hard, dry, and brittle where it was once a pliable soft paste. This new state means that it can no longer do it’s role of filling in the miniscule gaps between the cooling plate (heatsink) and the CPU. It also diminishes it’s effectiveness at conducting heat, due to the air gaps it likely to develop as it dries out.

Tooling

This is a small list of tools and optional alternatives to the one listed above it.

Tools:

  • clean cloth
  • bristly brush (nylon paintbrush)
  • (optional) vacuum cleaner
  • (optional) compressed air

Materials:

  • cotton earbuds
  • (optional) tissue paper
  • isopropyl alcohol
  • (optional) alcohol wipes
  • (optional) rubbing alcohol
  • thermal pads

Maintenance

Summary:

  • replace thermal paste if it is dry or contaminated with anything (e.g. dirt)
  • replace (or clean) any thermal pads that my be contaminated
  • clean out the heatsink fins with a brush
  • clean out the fan with a brush
  • make sure the fan spins freely

Specifics:

Cleaning off thermal paste

Thermal past is easy enough to remove. All you need is a tissue or an earbud dipped in isopropyl alcohol. Just carefully wipe all the residue off. Then give a final pass to make sure you remove any errant cotton/tissue fibres.

Cleaning thermal pads

Sometimes you may come across thermal pads on certain secondary chipsets around the cooling plate. These pads may be of various thickness to cover the variable gaps between the chips’ height and the cooler plate above it. Because of this it may be somewhat difficult to find appropriate replacement thermal pads.

In this case cleaning and reusing the stock thermal pads is a decent alternative. A good wiping down with an alcohol soaked tissue to remove any dust and foreign debris on the stock pads is sufficient to reuse it. Since traditionally thermal pads (especially the thicker pads) are used for chips that although produce heat, they don’t produce enough to warrant special attention. As such getting a fresh replacement for each chip is not critical.

Cleaning out heatsink fins

Using a stiff paintbrush, wipe out all the dust and debris by following the lines of the fins. With heat-fin tunnels, if they are short: stab the bristles of the paintbrush into it at both openings. Otherwise you may require air to clean long tunnels properly. Either use compressed air or a vacuum cleaner to blow or suck the dust out respectively.

If however the heatsink fin tunnels are blocked up with something sticky, like grease or dried residue from a sugary drink. Then actually immersing the entire heatsink in warm soapy water and washing it will be necessary. Just make sure it is absolutely dry before putting it back into the machine.

Applying new thermal paste

Generally I find that users need less thermal paste than what they may initially think. All you need for thermal paste is to have enough to sandwich between the cooling plate and the CPU die. All thermal paste does is smooth out the imperfections within the cooler plate surface, and fill in the small gaps between the plate/heatsink and the CPU. It does so to maximise thermal conduction by reducing the effect of the barriers between the materials. That’s all.

I find that about a pea sized amount for an average sized CPU is good enough. I also like to use a spreader to make sure that all the corners of the CPU die are adequately covered, before I mount the heatsink on. Although putting on too much paste (within reason) doesn’t really affect performance or anything. It just squeezes out from between the cooler plate and CPU, as it is tightened on.

Closing thoughts

I am genuinely surprised that I managed to write so much for what could adequately be summed up with two sentences: “Clean the damn thing! It’ll live longer.” However I think that an actual breakdown and identification of the types of faults that a laptop could develop if left uncared for, and why preventative maintenance for laptop computers is especially important: is what really gives this article some value. I hope it makes average users, regardless of skill level understand the importance of preventative maintenance and recognise some of the symptoms of when it is time to open up their computer and give it a good clean and freshening up.

Probably the biggest hurdle I think the average user would have is applying new thermal paste to a CPU. If you are in anyway daunted by the process, just keep these points in mind. One, CPUs are not made of glass (or are they?), they aren’t that fragile. Just be careful, move mindfully, and you likely won’t damage it. Also it’s good protocol to ground your hands before handling sensitive electronics. Something as simple as touching a metal chassis of a plugged in appliance would do it. This is to help prevent any electro-static discharge.

Two. Thermal paste is not expensive, don’t be afraid to “waste” some practising applying it elsewhere. Also thermal pastes are all pretty much the same stuff. Don’t worry about brand differences. Chances are you are not overclocking, so you don’t need to worry about the specialist materials like liquid metal, or the performance differences between various expensive named brand pastes. Just buy whatever you can get in your budget, and use that. It’ll do the job.

Ultimately, there really is no excuse for not cleaning your machines. Remember: take care of your tools, and they’ll be around to take care of you.

Thank you for reading.

Links, references, and further reading.

https://en.wikipedia.org/wiki/Fin_(extended_surface)
https://en.wikipedia.org/wiki/Heat_sink
https://en.wikipedia.org/wiki/Convection
https://en.wikipedia.org/wiki/Convection_(heat_transfer)
https://en.wikipedia.org/wiki/Thermal_conduction
https://en.wikipedia.org/wiki/Semiconductor
https://www.pcgamer.com/this-detailed-breakdown-of-a-high-end-motherboard-is-pretty-awesome/
https://www.tomshardware.com/reviews/vrm-voltage-regulator-module-definition,5771.html
https://www.maketecheasier.com/what-is-vapor-chamber-cooling/
http://www.nuclear-power.net/wp-content/uploads/2017/11/Convection-Convective-Heat-Transfer-comparison-min.png

#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

#0024: Preparing a Helping Hands tool for effective use

#0024: Preparing a Helping Hands tool for effective use

Preamble

This article covers the modifications necessary to get a box fresh Helping Hands tool ready for service. The specific version of this tool being the pictured unit. A version that consists of a small horizontal metal bar that is mounted onto a weighted base. The bar then has three adjustable arms attached to it. Two terminating in metal crocodile clips, and the third in a magnifying glass. This unit although useful and good quality for it’s price, it is also cheaply made, and mass produced. As such it requires some preparations before it can be used to good effect.

What is a Helping Hands tool

At its core a Helping Hands is a tool that consists of an adjustable jig with arms that terminate in spring loaded grabber clips. These clips are designed to hold materials and workpieces in place. This is in order to assist the user when working on them; for example: holding wires in place for tinning, or in preparation for a soldered connection.

Helping Hands are also known as “Third hands” or “X-tra Hands” depending on marketing. Although there are likely to be variants in design due to marketing, the basic tool is the same. It consists of some form of adjustable jig, with two or more grabber clips attached to it. Many variants also have adjustable arms that terminate with either a magnifying glass, or a light source of some description. They may also come with things that are specialised for a specific task: such as a soldering iron holder, or a mini microscope mount. However these are outside of the scope of this article. We will only be discussing the rather cheap and generic example unit that is pictured.

Modifications

Mod #1: Padding the crocodile clips’ jaws

The first necessary modification is rather obvious when you have a new unit in your hands. The actual clips that hold the various workpieces and materials: are crocodile clips. Crocodile clips complete with serrated teeth and a fairly powerful spring ready to push those teeth into anything that comes between it’s jaws. These needless to say leave noticeable teeth marks on anything softer than the clips’ steel when in use.

I recommend using several layers of heat shrink tubing to pad the teeth. This is because heat shrink tubing is generally tough enough to make it resistant to being pierced by the teeth’s serrations. Apply a layer of heat shrink to each jaw in turn. Then heat it so that the heat shrink, shrinks into a fitted profile on the teeth. Keep adding and heating layers in this manner until you are satisfied that the serrations of the teeth are sufficiently padded and will no longer damage anything that the clip holds. At this point, you may wish to trim off any excess tubing with a side cutter.

In my opinion heat shrink tubing is a good candidate for this application due to the fact that it does hug the profile of the teeth so well, while still padding the biting edge off of the metal. This clinging to the peaks and troughs the teeth is important because it allows the clip to still have an effective mechanical grip on the workpiece.

Additionally the rubber material that heat shrink is made from also assists in effectively gripping the held object using friction. This is useful when it comes to holding metal objects, especially cylindrical ones like telescopic radio antennae. A mechanical grip alone is likely to slip, coupled with the springs: I can see the jaws throwing out objects. A friction grip is necessary to hold low friction hard-surfaces such as metals.

Other reasons why heat shrink tubing is well suited to this particular application, consist of: firstly, the rubber material it is made of is relatively heat resistant (i.e. it takes continuous high temperatures, or a direct flame to effectively melt it). This means that the user can use solder irons and hot air around it without worrying about having to either clean or refit their Helping Hands tool. As would be the case if they used electrical tape for example.

Secondly, it is also a mild insulator of heat, this prevents heat from easily conducting into the metal clip and into the larger frame of the tool. Why is this important? It means that the user can use a soldering iron with a lower thermal mass effectively. Whereas without insulating off the greater frame of the Helping Hand tool, it will conduct away the thermal energies from the point of application. e.g. whilst soldering a joint on a metal object such as an antenna terminal.

This will require either a higher temperature setting (as a bid to compensate for the leeched energies), and deal with the associated risks and drawbacks; or having to simply use another soldering iron with a higher thermal mass. Alternatively it should be said that, insulating the metal clips in this manner really might not even have a significant effect on for example soldering performance, it largely depends on use case specifics. If you are for example using a 10 Watt USB soldering iron, well then you’ll need all the help that you can get; including this. Whereas for a more average setup, you may not be noticeably affected either way.

Mod #2: Hot glue in the clips connecting arm joints

This is an often overlooked modification that you can make to effectively extend the working life of the product. It simply involves getting a hot glue gun and pumping hot glue into the connecting joint that attaches the crocodile clips to the main jig. This is needed because the out-of-the-box setup only has those joints held in place using a friction fit between the metals of the clip and the jig arm. Unfortunately as you use the tool and rotate the clips, it will loosen the metal’s spring pressure that holds it in place until the clips just slide off. Repeatedly.

Additionally, re-tightening the friction fit using a pair of pliers will not keep the clip in place for long, just delay it falling out for a little while. Unfortunately in my case the entire clip arm kept falling out and no amount of tightening made the clip arm stay in it’s cradle, as effectively as the initial friction fit did. Hot gluing them in place however fully prevents the clip arm from sliding out of it’s cradle. It really made a very strong bond. One that is better than the original friction fit. The only trade off is that the crocodile clip can no longer rotate at the wrist joint where the friction fit connection was. Instead all rotational adjustments need to be made at the arm’s elbow joint from now on.

You might’ve wondered as to how exactly does this laughably simple modification actually extend the working life of the tool. Well, I will endeavour to answer this question with another question (or more). Have you ever had a tool that kept falling apart on you when you needed it to just work? Falling apart in moments where you might already be somewhat stressed trying to fix something broken? Maybe even whilst on a time limit? In that moment, have you ever grabbed the offending tool cursed it out, then promptly threw it into the trash? That’s how pumping those annoying joints with hot glue will extend this tools working lifespan. It’ll help this tool effectively keep it’s head down and just do it’s job.

Closing thoughts

These are simple enough modifications and are rather ubiquitous with regards to this particular tool. Even the image of the ‘dabbing’ Helper hands on the Wikipedia page for this tool, has the same teeth mod. Although they used electrical tape. Which in my opinion is an inferior material to use. Firstly its a less permanent solution due to the material’s general strength, meaning that sooner or later the teeth are going to poke through it. Additionally, it is also more susceptible to heat; meaning that if the user solders a wire for example too close to the clip they run the risk of melting the electrical tape.

That being said, small mods like these are most definitely better than nothing, and worth mentioning in order to help people not overlook them due their rather trivial nature. This is because little mods like this are easy to implement and can help the user make the most of their cheaper tools in general. Even if you are half-arsing it by using electrical tape, says the out-of-touch heat shrink tubing elite.

Thanks for reading.

Dabbing Helping Hands image from Wikipedia.org

Reference, links, and further reading

https://en.wikipedia.org/wiki/Helping_hand_(tool)

#0023: Repairing short circuit damage within a ribbon cable

#0023: Repairing short circuit damage within a ribbon cable

Preamble

Sometimes you might come across damage within a ribbon cable similar to the example. The minor burn damage on the example featured was done by a liquid causing a short circuit between two exposed copper pads. As it burned, it created a break between an exposed pad, and it’s respective trace. Cutting the circuit in the process. The short also caused some of the other pads to oxidise, and some minor burning of the ribbon cable’s plastics. This will be a quick tutorial on repairing such a fault.

Please note: I have no images before the initial cleaning and prepping stage. This is because I was halfway through this repair, when I decided that it may be good to document it.

Tools and materials:

  • scalpel
  • tweezers
  • isopropyl alcohol
  • cotton earbuds
  • soldering iron
  • lead solder
  • copper strand from a wire
  • side cutters
  • multimeter

Step 1: Identifying and logging the damages

This should always be a first step before attempting a repair. The reason for this is that the initial pre-work cleaning, is likely to clean away a lot of contextual clues about the location and severity of all the damages. A good visual inspection and initial assessment can save time later on, due to not having to track down any circuit damage that got masked or hidden by cleaning.

Step 2: Cleaning the local area

First thing I did after identifying the location of any potential damage I wanted to repair, was to clean it. In this case I needed to first scrape off the more obvious patches of oxidation and burnt/melted materials using a scalpel. Then thoroughly clean off the pads of the ribbon cable using isopropyl alcohol and a cotton earbud. I paid special attention to the tiny burn hole next to the most damaged pad, making sure to remove any conductive materials from it by scraping it out thoroughly.

Step 3: Test to confirm faults

Using a multimeter in continuity mode, I tested for continuity between the pads surrounding the burnt spot. Perhaps it still contained conductors (such as pieces of the broken pad) that may cause a future short. After being satisfied that it did not; I focused on the particular pad that sustained the most damage, and tested for continuity across this pad and it’s respective trace to see if it was still connected. It was not. All other pads had continuity with their respective traces.

Step 4: Fixing confirmed faults

After identifying only a single fault; this being a break between a pad and it’s trace. I moved to repair it. Firstly I endeavoured to bridge the gap by just tinning across it from the pad to it’s trace. The thought process was that that the mere mass of the solder itself would be enough to bridge the tiny gap. It did not. After that initial failure, I decided that I required a bridging medium; something for the solder to adhere to. In this case I decided to use a single copper strand from a wire.

Using a scalpel, I removed some insulation from the ribbon cable trace above the broken pad. This was in order to have something on that side to comfortably solder the copper strand to. After which, I soldered the wire whilst using a pair of tweezers to hold the tiny copper strand down in place.

Step 5: Cleaning up after a repair

The next step involves cleaning up any messes I might’ve caused during the repair. In this case, whilst trying to initially tin the broken pad, I also tinned the neighbouring pads accidentally. In trying to remove the bulk of the solder, I caused further damage by starting to burn the plastic that the pads are set into. In the end I decided to just leave it be. The repair needed to be functional, not aesthetically pleasing. I did consider using a desoldering braid to remove all the solder, however I was very likely to cause more damage trying, so I opted to just leave it be.

In the end the after-fix clean consisted of just clipping off the excess wire with a side cutter and cleaning off any flux residue with an isopropyl dipped cotton earbud.

Please note: There is no electrical connection between adjacent pads. The burnt plastic between the pads just looks like solder. I told ya it was ugly.

Step 6: Testing the repair

Next. I performed a quick continuity test on the repair with a multimeter; both testing for continuity across the pad to it’s trace; and testing for a lack of continuity across neighbouring pads. These tests take basically no time to do and can set my mind at ease. I do these types of tests even when a visual inspection indicates that it’s not necessary.

The real test is putting the device back into service and seeing if it functions as expected. In this case the ribbon cable that I repaired was from a laptop’s integrated keyboard. Although the ribbon cable fitted more snugly into it’s receptacle or socket than I wanted. It still fitted and functioned properly. The keyboard was fully functional after this repair. Huzzah!

Closing thoughts

I apologise if this article came off as a little patronising; especially given the quality of the example repair, the missing “before” picture, and the fact that it contains mistakes front and centre. Generally, I find step-by-step guides like this one difficult to write, without sounding either needlessly pedantic or excessively didactic. Anyway, even if the exact specifics are not useful to you, I hope the general steps would be. Identify. Clean. Test. Fix. Clean. Test. Then Profit. That is if it works, if not: then go back to testing for faults.

Thank you for reading.

#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.

#0021: Repairing an LCD with missing segments

#0021: Repairing an LCD with missing segments

Preamble

This is a quick guide to repairing a specific fault found on undamaged low information monochrome numerical LCDs. Such the ones present within calculators. As such it will not go into detail about the functioning of LCDs in general, types of LCDs available, or any other information outside of the scope of simply repairing the missing displayed segments fault.

What is an LCD?

An LCD or Liquid Crystal Display, is a type of flat panel display. At its most basic an LCD operates by using the properties of liquid crystals coupled with polarisers. Polarisers are a type of optical filter that only allow light waves to funnel through them in a particular orientation. In other words, they remove light scatter; only allowing it through in a uniform manner. This, coupled with the liquid crystals’ property of altering their physical orientation when in the presence of an electric current; means that the narrow beams of light that make it into the crystal solution can either be allowed to pass through, or blocked, depending on the orientation of the crystals within the solution.

The specific type of LCDs we are dealing with are low information monochrome single line seven-segment displays. These types of simple LCDs are typically used in devices that predominantly output numbers. But may also display static symbols, such as the “E” in calculators for numbers that are too large to display without index notations. These types of LCDs are most commonly associated with pocket calculators. However they have been used with such devices as: alarm clocks, multimeters, solar charge controllers, battery monitors, household mains electricity meters; and I have even seen them used as a display on an electronic keypad lock.

I think this type of LCDs popularity is mostly due to it’s relative simplicity and low operating costs. It follows the KISS design philosophy. Keep It Simple Stupid. If a device would not notably benefit from a more complicated display, if all that it displays are simple numbers and basic symbols; then there is little reason to incur the (production and operating) costs of increasing design sophistication beyond this type of display.

As for the mechanics of how liquid crystals work, I like to (keyword) imagine a matrix of magnetic rods. At rest, the viewer can only see them from the top, and considering their microscopic size, this renders them essentially invisible. Whereas when a current is passed through them, the entire matrix of rod shaped crystals reorientate themselves to reveal the entire length of each of the rods. This greater surface area against the polarised light from the viewing angle, makes them appear opaque. There’s more to it than that, but that’s the general mental model I use to conceptualise the process. Although strictly speaking it isn’t accurate.

So how does a basic monochrome seven-segment LCD actually display information?

An LCD of this type is mapped with discrete segments. These primarily consist of seven dashes arranged in a number ‘8’ pattern. These are the core seven segments that are used to display numbers. Additionally LCDs have segments in the shape of static symbols; such as a period on calculator, or a colon on an digital clock.

Every discrete segment is given a set of electric probes. These probes are designed to allow a current to pass across the segment’s liquid crystals. This is how the liquid crystals within each individual segments are switched on and off. It operates in an analogous way to seven-segment LED displays. I.e. they both require an a electric current to be passed across each individual segment in order to activate it. Additionally, this electric current is controlled by a display controller IC (Integrated Circuit). Which translates any numerical values into display data (active segment and inactive segment map) that it uses to power it’s display accordingly.

example of an LED display
LCD segment map
segment circuit animation

Missing segments fault (on undamaged LCDs)

First of all, I specify that the LCD is undamaged because if the LCD you are attempting to repair is damaged, (e.g. has a crack across it); then chances are this fault is not the major contributor to your LCD’s malfunctions. That being said, missing segments on undamaged LCDs are likely caused by a break in the particular missing segment’s individual electric circuit supplying it.

Earlier I likened LCD seven-segment displays to their LED counterparts. This is because both require an individual IC controlled circuit that connects with each discrete display segment. Its just that with LEDs, its a lot easier for people to understand what is happening, when some of a displayed number’s LED segments fail to turn on. The failure to activate can be intuited due to a break in it’s branch of the circuit.

In this case the break in the segment’s circuit is usually caused between the LCD module and the underlying PCB; which hosts all device circuitry, including the display controller. This break usually occurs within or around the bridging material between the LCD and PCB. Namely the elastomeric connector (trade name: “Zebra strip”). This black and pink rubber like material is a soft electric conductive material that conducts electric signals across the naked pads of the PCB to the LCD and vice versa. It does this by having many tiny channels (or layers) of conductors and insulators, that alternate across it’s black strip. This black strip is then sandwiched with a pink insulator that runs the length of the outer sides of the elastomeric strip. This configuration allows the elastomeric strip to act like a large assortment of miniscule wires that electrically connect together whatever pads or traces that they touch at either of their ends.

The circuit break in this missing segments fault could be caused by two main things. Firstly, it could be due to an electric insulator getting in between the elastomeric strip and the exposed pads of the LCD and PCB. This could come in the form of a build up dust or grim, or even oxidation of the exposed PCB pads. To repair this, just clean all the pads and the elastomeric strip itself. I recommend using isopropyl alcohol and a cotton ear bud or cue tip. Just saturate the bud with the alcohol and scrub until it’s clean. Then reassemble the device and test.

Alternatively, this fault could also be caused by a separation between the elastomeric connector and it’s adjoining contacts. I.e. it has lifted off or away from the pads that is it supposed to be pressed against. This is usually caused by vibration. Typically, there will be a method of mechanically tightening or pressing the elastomeric connector against it’s pads. Such as a screw or adhesive, which with time and vibration (and maybe a little heat) can become undone enough that it allows the connector enough space to move away from it’s pads. To repair this, just re-tighten the screw or re-secure the elastomeric connector with tape if needs be.

The fault in the case with the example unit; I believe was caused by both a build up of dust between the contacts and the elastomeric connector, and also the connector physically separating from the LCD. The separation was caused by a loosening of the self tapping screws which held in place a bracing bar. This bracing bar applied pressure to the assembly consisting of the PCB, strip, and LCD, which sandwiched them together and kept them in place. That got loose, the strip moved slightly, and then dust got into the gaps that it created. After a good cleaning and tightening, it now works flawlessly.

Closing thoughts

When it comes right down to it, this is as simple as a repair really gets. No replacement of parts; just a basic disassembly and cleaning. It is essentially maintenance.

In my opinion, this type of repair is especially good for an aspiring repair tech with no confidence. The tools needed are basic, there are no additional parts (i.e. expenses) required, and the device being worked on it likely inexpensive; so there should be little in the way of consequences of failure. Such as fear of damaging a device, which may put people off from just ‘aving a go. Essentially the repair has little in the way of friction that may prevent a person from trying. It a good confidence builder.

Lastly, I just wanted to raise awareness encase you ever come across this type of fault in the future. It is easily repairable; and hopefully you’d be more inclined to at least give it a go, rather than discard the unit and purchase a new one as is usually the case for these types of cheaper mass market products.

Th-th-th-th-that’s all folks!
Thanks for reading.

#0020: Plastic welding techniques

#0020: Plastic welding techniques

Preamble

This is an introductory tutorial on welding plastics. The goal of this tutorial is to be a rather brief yet sufficient guide, that will allow the reader to be able to weld shut cracks and holes in plastic containers to the point of being water tight. It will cover welding technique, tooling, plastic types, PPE, and best practices. Everything an aspirant will need to effectively weld plastic containers.

Tools and materials

Tooling:

  • temperature controlled soldering iron or gun
  • (optional) fan

Materials:

  • appropriate donor plastic strips
  • (optional) duct tape or electrical tape

Personal Protective Equipment:

  • safety glasses
  • filter mask
  • thin rubber gloves

Core tool summary

As you can see the core tools and materials list is tiny. All you really need is a hot piece of metal to melt the plastic; and donor plastic material to flow into the various cracks and holes. This material is to reinforce and buttress the affected areas against any structural stress. That’s it.

Temperature controlled soldering iron

I specify a temperature controlled soldering iron (or gun) because you actually need relatively low temperatures to weld plastic; just enough to melt it, but not enough to burn the material. Most thermoregulated soldering irons would be too hot, because they are specced for melting solder. A material that generally has a higher melting point than many plastics. If the your iron is glowing red (even a little bit), then it’s probably a couple of hundred degrees (celsius) too hot.

Additionally, it would be beneficial if the soldering iron had a large thermal mass to enable it to maintain a stable temperature whilst it is in active use. I.e. actively transferring heat into the workpiece. A bit with a large surface area will also be useful, this is to effectively melt a good area of material at a time. Working with smaller bits makes the job more tedious. A smaller bit also concentrates the heat across a smaller surface area, which could cause heat spikes in the workpiece and consequently burn the local plastic. For the reasons above are why I chose to use a soldering gun with it’s widest tip rather than my usual general purpose soldering iron.

Plastic donor material

There’s not actually much to say about this. I like to make sure that the donor plastic is the same type of plastic as the item under repair is made of. This is to assist them in chemically bonding together more effectively. If you don’t want to purchase plastic donor strips like I have; you can alternatively just cut up similar items (i.e. items made from the same material) and use that. I have also seen many people use zip-ties as a donor plastic due to their convenient strip shape.

When selecting a donor plastic, look for a recycling symbol on the donor item (e.g. water bottle). Here it should have a few letters under it. These indicate what type of plastic the item is made from. Another thing to keep in mind when selecting a donor plastic is the food grade safety factor. To know whether or not a container is food safe, look for the knife and fork symbol. Specifically, when repairing a food grade container: do not assume that just because the donor plastic is the same type, as the food grade plastic container; that the donor is also food grade. Even if it initially is, the repair itself my change the chemical structure of the plastic to the point that it will now leech into any food (or drink) stored in it.

A good example is the container I repaired for this article. It was initially a food safe box, but now after the repair, even though it is now watertight again and I repaired it with the same type of plastic (PP); I would not use it for food, for fear of it leeching toxins into my foodstuffs.

common plastic types:

  • PET (Polyethylene Terephthalate) typically used in water bottles
  • PP (Polypropylene) general use plastic for containers
  • HDPE (High-density Polyethylene) typically used in milk bottles

Additional tools

Apart from the essentials, a fan will also help; both to blow any toxic plastic fumes away from you and to help cool the piece quickly as you work on it. Sometimes I find that as I work, an entire section of the container can suddenly soften to the point of almost liquefying, meaning that I will have to wait until it reconstitutes somewhat before work can continue. This however is an excellent state for moulding the pliable material to seal any cracks. Other than that, some duct tape may be useful to make the repair look more presentable and to give it a little more structural strength after a complete repair. Tape can also be used to hold the piece in place, as you weld the cracks.

Recommended PPE

As for PPE: I highly recommend wearing safety glasses and a filter mask. You really don’t want to risk globs of hot plastic flicking into your eyes accidentality. Especially since, if you are anything like me: chances are that your face is very close to the workpiece, in order to see every little detail. You also probably don’t want to suck up all those toxic fumes from any burning plastic either, so a cheap filter mask will help avoid that.

I would also recommend wearing a pair of thin rubber gloves. Although the plastic shouldn’t reach any serious temperatures before melting, a pair of gloves helps you comfortably shape any jellied plastic by hand; should you wish to do so.

Plastic welding techniques

I usually start by placing any loose container segments back into the gaps and holes that they broke out from. In a similar manner to welding metals, I then tack the loose segment into place. This is done by melting small spots across the circumferences of the segments; i.e. melting little bridges across the cracks. Do enough to keep each break out piece in place, or to stabilise a crack (in the case where there aren’t any breakout pieces, just cracks). For any holes where the original broken out piece has gone missing, you’ll have to use the sections of donor material to fill them in. I recommend melting the complete area into jelly, and shaping the mixed plastic mass into form. This is in order to properly blend the plastics into a watertight seal.

As an alternative to tack welds, some sticky tape can be used to hold a breakout piece in place while you weld. But this can get messy when you introduce heat near that tape. Depending on the type of tape you used, just some residual heat can cause the tape’s adhesive to turn into a sticky treacle that cakes the work area. The heat resistant kapton tape may be useful here, but it seems like a waste of resources using it for this application.

The general technique I employ in the actual repair, is by melting the donor strip onto the crack of the container. Then with the broadest side of the soldering gun’s tip, I scrap the extra material into the container’s crevasses. Like a plasterer covering a brick wall; pushing the plastic deep into it’s valleys. Then once one side is completed (exterior, interior), do the same for the other side of the fissure. That’s the short of it.

One thing to note however, this type of repair is not pretty. Although it can be very effective structurally. This is due to the repair involving melting and blending away the cracks. Then adding material to help remove any residual weak points. Weak points which tend to linger after a repair that doesn’t use any donor plastic.

The main reason for using donor plastic is because (in my opinion) plastic shrinks in the presence of heat. In other words, as you repair it with your soldering iron, the repaired plastic is actually smaller than what it was prior. This means that the repaired crack areas are actually thinner than they were originally. So consequently bolstering it with donor material is often necessary. Although admittedly it does make it look awful.

Demonstration of initial fix and seal

Closing thoughts

In summary plastic objects can be repaired should you wish to do so. It’ll require a soldering iron set to a low temperature and some donor plastic of the same type. Take care not to burn the plastic, and for goodness sake don’t breath the fumes in. Also remember that ideally any repaired food safe containers, should no longer be considered food safe. (However that could just be my general paranoia speaking.)

That’s all folks. Best of luck with your plastic welding adventures.

Thanks for reading.