Thursday, December 24, 2020

Shack PC Upgrade

    So I rebuilt my main desktop PC. I have installed an All In One (AIO) Liquid cooling system to help keep it cool this summer. 

    I also purchased a new modular power supply, the old one was 1500 Watts but did not have a power rating score and was really large, I replaced it with a 750W Gold 80+ one from gigabyte that is fully modular.

    I spent a good couple of hours working on it and started by stripping out the parts and only leaving the optical drive installed. I took it outside and cleaned it with a rag and the air compressor to get all of the dust out of it.

    The first thing I did before installing anything was to cable manage the front panel wires for USB and LED's that sort of thing.

    Next, I installed the back IO shield as I got my ROG motherboard second hand and it did not come with the shield, I had purchased a new one a couple of months ago but was waiting until I also had a new power supply and assorted cables.

    So after starting with the shield I could now install the motherboard, followed by the power supply. I connected the modular cables that I needed for my system and got them in place and cable managed and cable tied in place.

    The 2.5" SSD and my 3.5" HDD went in next and I connected them using some black braided SATA cables that I had purchased for the build.  The graphics card soon followed and was installed.

    The AIO was installed last so the hoses would not hinder my access and I made sure that the hoses on the radiator are at the bottom so air rises to the top of the radiator and the pump doesn't run dry and die an early death. I also used 10% silver heatsink grease/compound. 

    There is a Victorian seller on eBay that sells syringes with just enough paste in them to do one PC heat sink for about $1.20 to $2.00 with postage included depending on the amount you buy, get one tube it is $2.00 buy ten tubes at once and get them cheaper. It is not Artic Silver but it seems to do the job.

    Finally, I just spent time working on cable management, it was a bit tricky as it is not a high-end case with a power supply "basement" and other covers to hide messy cables so I had to rely on patience and cable ties to make the system look as neat as I could, this also improves airflow so it is less likely to overheat.

    For the airflow pattern, I have a front fan sucking in air, a top fan also sucking in the air then on the back there is a push/pull fan combo on the radiator for the AIO that is blowing air out of the case and through the radiator. 

    The wind force GPU also has three fans ., I have thought of adding some more fans, I can put one more in the front of the case and 2 more on the side panel but at this stage, I may just wait and see how the PC actually goes in hot weather as the fans I have maybe enough.

    The system idles at 34c-38c and under 100% CPU LOAD for 4 1/2 hours It sat in the mid 80c range, it was throttling a bit to stabilize at about 85c but this is normal and I was still seeing over 90 frequency clock so it was not throttling to badly.

    So the side panels went back on I connected all the required cables and it is all backup and running. I Have attached the photos of the inside of the case and the back panel as well.

    Angus Gave me a hand with the build so thanks for that and Brodie also mounted the power supply for me while I was running cables.

    Would I like a modern mid-range - high-end case with all the bells and whistles like cable covers and basement covers? Yeah, it makes it easy to "hide your sins" but in a case like this, it is never going to look as good unless you de pin your cables and make them exactly the right length that you need or get custom cables made. So for using off the shelf cables I am happy with the outcome.




I had also upgraded my desktop a month or so ago with some stuff I had purchased from a mate and online so I went from an Intel I5 to A Ryzen 1800 series CPU based system, here are my current specs as of December 2020.

Motherboard:
                 ASUSTeK CROSSHAIR VI HERO Rev 1

CPU:
                AMD Ryzen 7 1800X Eight-Core Processor
                Corsair Hydro Series H80i v2 Extreme Performance
                120mm Liquid CPU AIO with 2 SP fans in push/pull

RAM:
                2 x 8GB DDR4 Crucial Technology (Dual Channel)
                2 x 8GB DDR4 G Skill (Dual Channel)
                Total 32GB DDR4 2400 MHz

GPU:
                Gigabyte Windforce Nvidia GTX 980 4GB RAM
                2 x 24” Displays & 2 x 22” Displays

Storage:
                Samsung 860 EVO 500GB M.2 SATA EXT4 (Linux System & Home)
                                - 500GB “/” EXT4
                Samsung PM81 128GB 2.5” SSD SATA NTFS (Windows System)
                                - 128GB “C:/” NTFS
                Western Digital Green 2TB HDD SATA FAT32 (Linux/Windows Share)

                                -1920GB “Storage” FAT32
                                - 128GB “Linux Swap” SWAP

                DVD Optical Drive Dual-layer
OS:
                Master-  Linux Mint 20 (Codename Ulyana) 64 Bit
                Secondary- Windows 10 64 Bit

Keyboard:
                Razer BlackWidow Elite Mechanical Keyboard (Green Switches)

Mouse:
                Razer Atheris 2.4 GHz & BT Mobile Wireless Mouse

Audio System:
                Behringer 8 strip Mixing Desk with USB
                Behringer Ultracurve DEQ 2496 Digital Processor
                2 Channel Power Amplifier
                Akai 2 Driver Speakers (Tweeters/Midrange)

Thursday, May 7, 2020

DC Control Panel

My Latest project is a DC control panel for my radio shack, it has 300W solar panel and 40A MPPT controller. It also has PC control via serial to an Arduino with a relay board, the control software is written in python.






Master DC Control Panel


WS2812B 24 LED RGB Ring apx 8cm for status signal 
Software running on desktop and android



The python code

  1. #!/usr/bin/python3
  2. #
  3. # Python Ver 3
  4. # Linux Systems
  5. # Author Mark 'POCKETS' Clohesy
  6. #
  7. ################################################################################################################
  8. #
  9. # This is a linux CLI program sends serial commands to the an arduino that switches a
  10. # radio shack control panel via a relay control board.
  11. #
  12. # It uses the letters A-F. Uppercase turns the relay on while lowercase turns it off the panel
  13. # has 6 swirches and relays hence A-F. A CLI program was choosen over a GUI as the code can be modified
  14. # with pygame to have a GUI or broken down in  to small parts and modules that would allow control with
  15. # things like cron or ifttt makers channel in the future.
  16. #
  17. # These are the devices that are being controlled
  18. #
  19. # A- Radio 1 FT8900
  20. # B- Radio 2 IC2200
  21. # C- Radio 3 FT 991
  22. # D- Diesel Heater
  23. # E- Accessories
  24. # F- Not Used (Spare)
  25. #
  26. ################################################################################################################
  27. #
  28. # Import Modules
  29. import curses
  30. from os import system, name
  31. import serial
  32. import time
  33. import sys
  34. #
  35. #Setup Serial Port
  36. serA = sys.argv[1]
  37. ser = serial.Serial(
  38.     port=('/dev/ttyUSB'+serA),
  39.     baudrate = 9600,
  40.     stopbits=1,
  41.     bytesize=8,
  42.     timeout=1
  43. )
  44. #
  45. #Start Main Code
  46. def main(win):
  47.     win.nodelay(True)
  48.     key=""
  49.     win.clear()
  50. #
  51. # Display Main Screen showing options for the contorl panel
  52.     win.addstr("\n")
  53.     win.addstr("Twistedshack DC Control\n")
  54.     win.addstr("Menu Choices\n")
  55.     win.addstr("This program sends serial commands to the radio shack control panel\n")
  56.     win.addstr("It uses Letters A to F : Uppercase will turn the Device on and lowercase will turn it off\n")
  57.     win.addstr("There is no need to press enter after a keypress it is automatic \n")
  58.     win.addstr("A- Radio 1 FT8900\n")
  59.     win.addstr("B- Radio 2 IC2200\n")
  60.     win.addstr("C- Radio 3 FT 991\n")
  61.     win.addstr("D- Diesel Heater Warning: Make Sure it has completed the shutdwdown procedure\n")
  62.     win.addstr("E- Accessories\n")
  63.     win.addstr("F- Not Used (Spare)\n")
  64.     win.addstr("\n")
  65.     win.addstr("Key Selected:")
  66. #Loop waiting for keypress and if valid sending it to the serial port
  67.     while 1:
  68.         try:
  69.            key = win.getkey()
  70.            win.clear()
  71.            win.addstr("\n")
  72.            win.addstr("Twistedshack DC Control\n")
  73.            win.addstr("Menu Choices\n")
  74.            win.addstr("This program sends serial commands to the radio shack control panel\n")
  75.            win.addstr("It uses Letters A to E : Uppercase will turn the Device on and lowercase will turn it off\n")
  76.            win.addstr("There is no need to press enter after a keypress it is automatic \n")
  77.            win.addstr("A- Radio 1 FT8900\n")
  78.            win.addstr("B- Radio 2 IC2200\n")
  79.            win.addstr("C- Radio 3 FT 991\n")
  80.            win.addstr("D- Diesel Heater Warning: Make Sure it has completed the shutdwdown procedure\n")
  81.            win.addstr("E- Accessories\n")
  82.            win.addstr("F- Not Used (Spare)\n")
  83.            win.addstr("\n")
  84.            win.addstr("Key Selected:")
  85.            win.addstr(str(key))
  86.            if key == "A":
  87.              ser.write(("A").encode('ascii'))
  88.            if key == "a":
  89.              ser.write(("a").encode('ascii'))
  90.            if key == "B":
  91.              ser.write(("B").encode('ascii'))
  92.            if key == "b":
  93.              ser.write(("b").encode('ascii'))
  94.            if key == "C":
  95.              ser.write(("C").encode('ascii'))
  96.            if key == "c":
  97.              ser.write(("c").encode('ascii'))
  98.            if key == "D":
  99.              ser.write(("D").encode('ascii'))
  100.            if key == "d":
  101.              ser.write(("d").encode('ascii'))
  102.            if key == "E":
  103.              ser.write(("E").encode('ascii'))
  104.            if key == "e":
  105.              ser.write(("e").encode('ascii'))
  106.            if key == "F":
  107.              ser.write(("F").encode('ascii'))
  108.            if key == "f":
  109.              ser.write(("f").encode('ascii'))
  110.            if key == os.linesep:
  111.               break
  112.         except Exception as e:
  113.            # No input
  114.            pass
  115. curses.wrapper(main)
  116. #EOF