HDMI Monitor Problem & Fix

The recent warm weather had made using my 3 monitor configuration a little uncomfortable. To make things a little more bearable I decided to turn off two of the monitors to reduce the amount of heat output into the room. I disabled the monitors using the display settings in Gnome 3.28. All was working well.

Today I attempted to re-enable the screens and here a problem arose. Whilst my DVI connected monitor powered up correctly and could be managed in display settings, the HDMI connected monitor could not. The HDMI cable was exchanged and the monitor confirmed to be working by connecting to a laptop. I had begun to suspect a faulty HDMI port on the graphics card. No amount of powering down and rebooting would solve the issue. However the monitor would display the BIOS screens and boot process up to and including the login manager. The only point at which it would fail to display anything was upon logging into Gnome.

Some research pointed to a monitors.xml file. This can be found in the users home directory ~/.config/monitors.xml. Opening this in a text editor and reviewing the contents showed that it had become corrupted. It showed monitors connected multiple times to different inputs. In the past some of this information would have been correct, but as my monitor connections have changed the file had not been kept up to date.

I removed the file, since it gets automatically regenerated, then logged out of my session. On logging back in my HDMI monitor became enabled again and working alongside the others. I was then able to tweak the display settings to have them all back to my desired configuration.

Fixing the Printer

I finally reached the point where I needed to fix my Laser Printer. My Kyocera FS-1030DN has been serving me well for years and whilst the print quality is as good as they day I bought it I have had a problem with the page alignment. I have been loosing the top and bottom of pages which has been irritating.

I found a Techspot forum post detailing a solution.

Adrian123
Just fixed mine tonight with the help of Google Translate and a german printer forum...

The cause is small piece of foam rubber tape on the registration clutch solenoid, which gets slightly sticky with age and affects the timing of the paper mechanism.

If you're reasonably comfortable dismantling stuff (and reassembling successfully!) it's not hard to fix. It helps to get the service manual, which has nice diagrams of how the parts can be removed - Google "fs-1020d service manual".

Here goes:
Lift out the "process unit" (toner and drum).
Remove the top cover - 2 screws.
Remove the thumbscrews from the rear to get at the option slots.
Remove the right side cover - about 6 or 8 plastic clips (service manual shows where).
Disconnect the 12 cables from the engine board (the one with 12 cables 😉
Remove the engine board - 3 screws.
Unclip a few wires and remove the light-grey plastic cover (1 screw).
You'll now see 3 solenoids (coils with metal levers attached; mine had the coils wrapped in blue tape). Top right one is likely the main culprit, but probably worth looking at all of them. Take the solenoids off one at a time - 1 screw each.

There's a small piece of 0.5mm foam tape that's supposed to stop the solenoid from clicking too loudly when the magnet pulls the lever in, and it's probably very gooey. I scraped off the goo and replaced it with some foam tape I cut down thin with a razor blade. You could probably just omit it altogether or cover the goo with some adhesive tape.

Reverse to reassemble - good luck!

Well I tried out the method described and it worked a treat. I did indeed have sticky residue on the solenoids which I cleaned off. I reassembled the unit and ran a few print tests.The following pictures show the results, before print on the left, after print on the right.

Print Alignment 1
Print Alignment 1
Print Alignment 2
Print Alignment 2

Stable System?

I think I can finally say I have a stable system once again. After the RMA replacement of my Ryzen CPU to fix the “Performance Marginality Problem” I noticed that I was still getting some regular system lockups/freezes when it was left idle.

How long this secondary issue has been present I am unsure. Over the summer I had been using the machine but turning it off after use as it was keeping the room a little too warm. I probably didn’t notice the idle issue as I wasn’t leaving it idle. Any occasional occurrences of problems I attributed to the old CPU.

The current workaround has been to disable the C-States in the BIOS. It appears when the system is idle it is going into a low power mode but for some reason this isn’t happening correctly. At this time I’m unsure if this is related to the BIOS itself or Fedora 26 running a 4.13 kernel.

I have upgraded both BIOS (AGESA 1.0.0.6b) and kernel over the past few months so I will have to test again when one of them changes. Next week Fedora 27 is released, it will likely ship with a 4.13 kernel but 4.14 should follow shortly after. A BIOS with AGESA 1.0.0.7 might arrive before the end of the year.

For the time being I will settle for a little additional power usage and no crashing.

Ryzen RMA

This week I finally decided to send away my Ryzen 1800X CPU for a warranty replacement. I had a CPU made early in the production cycle (2017 Week 12) and it was affected by the “Performance Marginality Problem”. Once it became apparent that it wasn’t going to be fixed by a bios microcode update a warranty replacement was always going to be an option.

Sending away the processor was going to be a hassle as the machine would be offline for the duration. The awkward first step was removing the heat sink to read the serial number and production date from the top of the processor. With this step done and the heat sink remounted I was able to continue using the machine until I was ready to send it away.

The steps for the RMA were straight forward. Fill in a form on the website with my contact details and the serial number of the processor. Within 24 hours I had a response, quicker than I had expected. Due to the weekend I could only arrange to post off the processor on Monday morning (Following the packaging information instructions supplied). Being in the UK my processor was sent to the Netherlands, DHL shipping and handling paid for by AMD.

Two days later I was emailed to say my processor had been received and checked. The RMA was approved. It took another day to receive a notification that a replacement was on its way and I received it a day later. In all it took about a week, the replacement I received is from 2017 Week 37. It appears the problem is solved. I am impressed with how smoothly the whole RMA process worked.

ARM Update

Over a year ago I wrote up some notes on setting up an ARM development environment. Since then a change has occurred. Low Level libraries have been made available for the STM32F103. These should fit between the HAL library and the code I was writing. How well the Low Level libraries work is currently an unknown. I haven’t found the time to investigate. The tool chain should largely be the same. A few additional includes may be required to add the Low Level libraries. I hope before too long to try them out to see how they compare to my current method.

A New Computer

This month I gave up on waiting and ordered the remaining parts for a new PC. The build process was as easy as expected. Having learnt my lesson of having to maintain a system over many years; I took my time when routing the cables around the case. The result is one of the tidiest case layouts I’ve ever put together. Less obstacles means cleaner airflow inside the case and less noise.

PWM fans are a must have item. This new pc has 9 fans in total all connected up. It is quieter than my old system with 5 fans. The difference is having fan headers on the motherboard to support additional fans with a PWM signal to control the fan speed. Slower fans means less noise. When they spin up under load I can hear them more but at idle I hardly know the system is on.

Now the negative. Why must everything be covered in LED’s? My motherboard can put on a light show in all the colours of the rainbow, why? I intend to be looking at the screen not inside the case. I’ve not colour matched my components, I chose the best specifications instead. The obsession people now have with the look of their pc internals is staggering. Manufacturers are now adding features just to make them look better. I don’t need my RAM slots to be illuminated. How much additional cost is this adding to my motherboard? LED’s don’t cost a lot but the time and effort that must go into routing the traces around the PCB won’t be insignificant. Luckily I can turn the main lighting off in the BIOS. I just have to contend with the remaining illuminated buttons and status indicators scattered about the board. I wish it had a stealth mode with them all off until it actually had the need to display an error message.

There still needs to be some tweaking done to the system to get it settled in but it’s an upgrade that should last me 5+ years all being well.

The Wait

The problem with buying technology is that there is always something better on the horizon. I am about to build a new PC. I have been about to build it for over a year. I have been buying some parts that will stand the test of time case, fans, optical drive etc. Some of these parts are 12 months old, some 6, some a matter of weeks. But I need to get the important bits, the CPU, the Motherboard and the RAM.

In the past I simply look around picked compatible parts and built a system. The technological standards evolved slowly and many parts could be reused as I upgraded. Today everything is changing and quickly. I had delayed the build to be able to future proof the system by having newer ports, slots and sockets on the motherboard. But prices were too high and new competing products were announced that were coming down the pipeline. So I waited.

Having waiting for new parts to be release I first find that they are in short supply. So I wait. Then more parts are in short supply. Another wait. Just at the point of being able to get parts questions are raised about firmware and compatibility. More waiting. Then more low-level tuning is in the pipeline, just another 2-3 weeks. I’m being patient.

I’m waiting, patiently. I want to buy the right bits for my needs. I’m mostly decided on what I want. I just need that last little bit of information to allow me to choose the final parts. So what happens, more news. New product announcement in 30 days, release expected in a few months. Do I wait again? Do I buy now and regret not waiting? Do I build cheap and upgrade sooner?

A new system will be faster. But it could be even faster if I wait for it. How long do I wait?

Planning Ahead

I probably look at the front page of this site more than most. I am starting to wonder if it needs a good refresh. Earlier in the year I began writing up some notes on my experiments with ARM development. During this process I ran into a few formatting issues that I worked around. It is still my plan to write up some more of my notes in the future but rather than fight against the current system I might try something new. The next version of WordPress is due out in December, this is probably the best place to start from. Years ago I used a heavily customised site but as WordPress moved on I began to rely more on the templates generated by others. They are good building blocks as they handle the responsive design aspects. I think some more customisation from me might on the cards this time.

ARM Research

ARM Logo

This month I have been spending some time putting together a simple development set-up for 32bit ARM devices. Whilst not yet fully complete I am making steady progress and have begun to document the process. This is easier said than done. I set out to do the simple task of making an LED blink to test my set-up. There is a lot more to learn than what I had originally expected. The 8bit Atmega 328P was simple by comparison.

What I have discovered is a lack of resources based around my set-up & understanding. Hence why I feel the need to document it where I can. My documentation is taking shape HERE. It is likely to evolve over time but it is better to make it available as I write it in the hope it proves useful to others.

New Projects

This month I have started a couple of new projects. It began as one but soon split. The primary project was to make use of a 128x64 I2C OLED display. It has been sitting on the side for a few months after an impulse purchase. It soon became apparent that I needed a way to generate static images for the screen. Although there were programs out there that would convert a bitmap image into the hex code I needed, many were for Windows. So I decided to have a go at converting it myself.

So new to my GitHub repo are:
DN2015-001 – An interface for the SSD1306 OLED Display Driver
DN2015-002 – A bitmap to hex converter for use wwith DN2015-001

Both projects are under development at the moment. How much they develop will depend on how my experimentation with the OLED display goes.