TSYS infrastructure Todo This documents the last few items for Charles to deliver as CIO. Charles is doing Core IT/business enablement and handling moving all the data off his laptop and into the systems. Albert will run everything day to day as COO. Patti will handle everything finance related. - [Misc](#misc) - [CIO/enterprise IT/Platform IT (due by end of day Sunday)](#cioenterprise-itplatform-it-due-by-end-of-day-sunday) - [CTO Techops (due by 05/29) (with core setup done by 04/29)](#cto-techops-due-by-0529-with-core-setup-done-by-0429) - [General utiliy / enablement](#general-utiliy--enablement) - [Technical Operations](#technical-operations) - [Documentation of existing POC](#documentation-of-existing-poc) - [ETL framework](#etl-framework) - [R\&D CTO enablement](#rd-cto-enablement) - [Mobile todos](#mobile-todos) - [Geospatial stack](#geospatial-stack) - [Grib and other weather data processing](#grib-and-other-weather-data-processing) - [Electronic Design Automation stack](#electronic-design-automation-stack) - [RF Chamber](#rf-chamber) - [Overview](#overview) - [Hardware](#hardware) - [Process](#process) - [Enclosure](#enclosure) - [to categorize](#to-categorize) - [Software](#software) - [SDR server](#sdr-server) - [EE](#ee) - [CNC/3d printing](#cnc3d-printing) - [CNC](#cnc) - [3d printer workflow/ops](#3d-printer-workflowops) - [OpenScan 3d scanner](#openscan-3d-scanner) - [Misc notes](#misc-notes) ## CIO/enterprise IT/Platform IT (due by end of day 05/11/2024) - get IOS contact and calendar sync working - Restore pfv-filesrv to service from backup - Get scansnap setup on office lab PC (scansnap s1500). - Setup cloudron backups to b2 - Migrate lists.thefnf.org from tsys-cloud-www to cloudron - Finish migrating final Wordpress instances from LAMP to unmanaged Wordpress - Fix nextcloud file lock issue - Static file hosting… mdbook/mkdocs -> cloudron surfer? also gitea actions and woodpecker CI to sync to surfer? Or if staying with markdown , GitHub pages? Also grav with git sync plugin is looking tempting. - Deploy NetBird and migrate from tailscale - Setup Internal CA (offline root CA): use XCA on an airgap workstation and XCA on CA VM with the HSM intermediate device passed through ## CTO Techops (due by 05/29) (with core setup done by 04/29) ### General utiliy / enablement - Configure discourse elasticsearch full text search - configure nextcloud elasticsearch full text search - Get woodpecker agent configured and deployed on all three docker hosts - draw.io server () for nextcloud to utilize - Grocy on home assistant - Setup dashboard container from conhost - Setup LocalAI - Setup LibreTranslate - Setup elasticsearch - Woodpecker agent on all three tsys systems (agent registers to woodpecker via web sockets) (this gets us CI/CD runners) - Dokku paas (Ubuntu server hyper v virtual machines) (will be used for tsys custom apps like hfnoc signup) (tie in via tailscale using app proxy on cloudron) - Minio configuration - Vault configuration - Docker registry: - CIO:CTOWorkStation:google earth - CIO:CTOWorkstation:flora - CIO:CTOWorkstation:gephi - CIO:CTOWorkstationSetup:metasploit and armitage (maybe other gui as well? msfgui?) - CIO:Documentation: Migrate final bits from IT wiki to TSYS handbook - CIO:Documentation: Move VsCode onboarding section to main engineering onboarding section in handbook - ) - CIO:LabSetup:scansnap (on my laptop and lab laptop) ### Documentation of existing POC - POC Hardware - Software Engineering tooling stack - Hardware Engineering tooling stack - Mechanical/Industrial design tooling stack - Software Engineering supply chain (software components) stack - Hardware Engineering supply chain (hardware/software components ) stack ### ETL framework - [https://seatunnel.apache.org](https://seatunnel.apache.org/) ### R&D CTO enablement - Create comprehensive docker container list and pull to tsys1 - sdrangel on tsys3 (hook up rf kit to usb) - resgrid [https://resgrid.com](https://resgrid.com/) (will be an end of workflow step for shipping to customer) - sqlfluff in ci/cd [https://sqlfluff.com](https://sqlfluff.com/) - Setup inventree ([https://inventree.org](https://inventree.org/)) - Deploy kicad container for ci/cd - - - - - LORA management server : chirpstack ([https://www.chirpstack.io](https://www.chirpstack.io/)) - OTA updates system (mender : ) ### Mobile todos ### Geospatial stack - - [https://openmaptiles.org](https://openmaptiles.org/) - - - - - - - - ### Grib and other weather data processing - - - - - - - ## Electronic Design Automation stack - [https://www.klayout.de](https://www.klayout.de/) - - - - - [https://open-source-silicon.dev](https://open-source-silicon.dev/) ### RF Chamber ### Overview - - - - - - - - - - ### Hardware - - #### Process ### Enclosure - - - - - - - - ### to categorize - - - - - - - - ### Software - - - - - - - #### SDR server Idea is to use the raspi4 on the lab bench, with the various SDR/pluto USB radios hung off it and stream the output to the (either/or) upstairs GPU farm or downstairs gpu/cpu server farm for processing. - - - - - - - ### EE - Setup openocd server and - Setup sigrok with logging multimeter - Setup bus pirate - Setup document camera - Setup USB microscope and - Setup jtag and and (google openocd st-link v2 ) (maybe add jtag as well) ## CNC/3d printing We have a crealty ender (something) which has laser cuter, filament extruder, cnc. We also have monoprice 3d printers. We also have an OpenScan 3d scanner. ### CNC The following are some options to drive the controller - - - Depending on maintenance , installation difficulty, features etc, may end up with multiple options. ### 3d printer workflow/ops Evaluate - - - Leaning towards MatterControl MatterControl has an issue post install, bug report at ### OpenScan 3d scanner ### Misc notes ``` For the above items that present serial port over USB, we need to setup persistent device names. Here is some text on how to do that from " Assigning Serial Ports On Linux, serial port assignments can change whenever a printer is connected or disconnected. MatterControl cannot tell which printer is connected to which serial port. You can setup a udev rule to permanently assign a unique port to your printer. Do ls /dev/tty* before and after connecting your printer to find out which port it is assigned to. Printers will show up as either /dev/ttyACM# or /dev/ttyUSB#. Use udevadm to get the serial number (UUID) of the USB device. This is a unique 20 digit hexadecimal value. $ udevadm info --attribute-walk -n /dev/ttyACM0 | grep "serial" Some printers will not report a serial number. In this case, you will have to use other attributes to identify it such as the vendor ID (idVendor) and the product ID (idProduct). Create a file /etc/udev/rules.d/97-3dprinters.rules. Here is an example with rules for two printers. SUBSYSTEM=="tty", ATTRS{serial}=="6403237383335190E0F1", GROUP="uucp", MODE="0660", SYMLINK+="tty-taz" SUBSYSTEM=="tty", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="076b", GROUP="uucp", MODE="0660", SYMLINK+="tty-kosselpro" Fill in either the serial number or vender and product IDs based on the information you obtained earlier. Make sure GROUP is set to the same group ownership as the rest of your serial ports. This is usually dialout on Debian or uucp on Arch. You can check by doing ls -l /dev/ttyACM*. Lastly, give your printer a unique name for the SYMLINK. This name must start with tty or it will not show up in the list in MatterControl. The next time you connect the printer, a symlink will automatically be created that points to the correct serial device. You can now edit the printer in MatterControl and choose the new device. " Here is an example rule from a production system at tsys: root@pfv-vmsrv-04:/etc/udev/rules.d# cat 99-usb-serial.rules # examples from # # # SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="rah-ctrl" # SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A6008isP", SYMLINK+="arduino" # SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A7004IXj", SYMLINK+="buspirate" # SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTDIF46B", SYMLINK+="ttyUSB.ARM" # Apply changes via # # udevadm control --reload-rules && sudo udevadm trigger # #################################### # USB serial for UPS #################################### # Bus 002 Device 045: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port # root@pfv-vmsrv-03:~# udevadm info --name=/dev/ttyUSB2 --attribute-walk|grep -i vendor # ATTRS{idVendor}=="067b" # ATTRS{idVendor}=="2109" # ATTRS{idVendor}=="8087" # ATTRS{idVendor}=="1d6b" # ATTRS{subsystem_vendor}=="0x1028" # ATTRS{vendor}=="0x8086" # root@pfv-vmsrv-03:/etc/snmp# udevadm info --name=/dev/ttyUSB2 --attribute-walk|grep -i serial # SUBSYSTEMS=="usb-serial" # ATTRS{product}=="USB-Serial Controller" # ATTRS{serial}=="0000:00:1d.0" # root@pfv-vmsrv-03:/etc/udev/rules.d# udevadm info -a -n /dev/ttyUSB0 | grep '{serial}' | head -n1 # ATTRS{serial}=="0000:00:1d.0" # SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", ATTRS{serial}=="0000:00:1d.0", SYMLINK+="ups4" SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", SYMLINK+="ups4" #################################### # USB serial for sifive #################################### #################################### # USB serial for parallella #################################### and would be some things to check out. ```