Final Definitions

DMX

DMX, or Digital Multiplex, is a standard protocol widely used in the entertainment industry to control lighting and effects. Originally designed to replace analog systems, DMX sends digital signals to devices like stage lights, fog machines, and LED displays. DMX is a universal communication protocol for stage equipment, allowing operators to send instructions over a single cable to multiple daisy-chained devices.

The protocol operates at the physical layer using RS-485, a type of wired serial communication. This means it’s highly reliable for transmitting data over long distances without interference. However, because DMX is not Ethernet-compatible by default, converting DMX signals to work with modern network systems often requires additional protocols like sACN (Streaming Architecture for Control Networks). sACN allows DMX data to travel over Ethernet, integrating it into broader, IP-based network environments.

Lighting Hardware that uses DMX include ETC Connect EOS, MA Lighting GrandMA3. Additionally computer software that can be integrated with DMX include Chamsys Magic Q, QLC+. TouchDesigner, and Unreal Engine.

References:

  • Huntington, John. Introduction to Show Networking

UTF

UTF, or Unicode Transformation Format, is a family of character encodings designed to represent text from virtually any language. The most popular variant, UTF-8, ensures that computers, websites, and devices can display characters like emojis, Arabic script, or Chinese ideograms alongside English letters. UTF is one of the officially defined encoding schemes in the Unicode Standard.

Prior to Unicode and UTF, systems like ASCII could only handle 128 basic characters, limiting the ability to write in non-Latin alphabets. UTF-8 solves this by encoding each character in 1 to 4 bytes, making it compact and compatible with older systems while supporting millions of characters.

In UTF-8 characters are encoded in Bytes (e.g., 0x41 for "A") Mojibake (文字化け), which means "character corruption" in Japanese, can occur if text is saved using one character encoding (e.g., UTF-8), but it is decoded with a different encoding (e.g., ISO-8859-1 or Windows-1252).

A UTF-8 encoded "你好" (0xE4 0xBD 0xA0 0xE5 0xA5 0xBD) might be interpreted in ISO-8859-1 as "你好".

References:

  • https://www.unicode.org/faq/utf_bom.html

  • https://www.globalizationpartners.com/2021/06/03/mojibake-question-marks-strange-characters-and-other-issues/

ASI

The Actuator-Sensor Interface (ASI) is a networking protocol used to connect sensors and actuators in factory automation systems. It operates at the physical and data link layers, connecting devices like light barriers, conveyor motors, and robotic arms. ASI is designed to be used with Programmable Logic Controllers.

ASI is popular in industrial environments because of its cost-effectiveness and ease of installation. Unlike Ethernet, ASI uses a two-wire cable to carry both data and power, reducing complexity. ASI doesn’t directly interface with the internet, but ASI Networks are often integrated into larger systems that do, connecting between physical machinery and networks.

ASI supports up to 31 devices per network, with each device transmitting data in small packets (e.g., 4 input bits and 4 output bits per device). For larger systems, ASI networks can be expanded with repeaters or gateways. The ASI cable delivers up to 8A at 30V, sufficient to power most sensors and smaller actuators directly.

References:

ASI Industrial application example

Week 12: Definitions (draft)

DMX

DMX, or Digital Multiplex, is a standard protocol widely used in the entertainment industry to control lighting and effects. Originally designed to replace analog systems, DMX sends digital signals to devices like stage lights, fog machines, and LED displays. DMX is a universal communication protocol for stage equipment, allowing operators to send instructions over a single cable to multiple daisy-chained devices.

The protocol operates at the physical layer using RS-485, a type of wired serial communication. This means it’s highly reliable for transmitting data over long distances without interference. However, because DMX is not Ethernet-compatible by default, converting DMX signals to work with modern network systems often requires additional protocols like sACN (Streaming Architecture for Control Networks). sACN allows DMX data to travel over Ethernet, integrating it into broader, IP-based network environments.

To control the stage lights in the media commons you use this protocal

References:

  • Huntington, John. Introduction to Show Networking

UTF

UTF, or Unicode Transformation Format, is a family of character encodings designed to represent text from virtually any language. The most popular variant, UTF-8, ensures that computers, websites, and devices can display characters like emojis, Arabic script, or Chinese ideograms alongside English letters. (not a global standard)

Prior to Unicode and UTF, systems like ASCII could only handle 128 basic characters, limiting the ability to write in non-Latin alphabets. UTF-8 solves this by encoding each character in 1 to 4 bytes, making it compact and compatible with older systems while supporting millions of characters.

UTF code and example. Its useful to avoid character mismatches and character errors https://en.wikipedia.org/wiki/Mojibake#:~:text=Mojibake%20(Japanese%3A%20%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%3B,from%20a%20different%20writing%20system.

References:

  • https://www.unicode.org/faq/utf_bom.html

ASI

The Actuator-Sensor Interface (ASI) is a networking protocol used to connect sensors and actuators in factory automation systems. It operates at the physical and data link layers, connecting devices like light barriers, conveyor motors, and robotic arms.

ASI is popular in industrial environments because of its cost-effectiveness and ease of installation. Unlike Ethernet, ASI uses a two-wire cable to carry both data and power, reducing complexity. ASI doesn’t directly interface with the internet, but ASI Networks are often integrated into larger systems that do, connecting between physical machinery and networks.

why is it used instead of ethernet. What is the datatype that it transmits. Visual example

how much data/power can it handle?

References:

Week 13: Revisiting the semester

As you already know, I haven’t been having a very good semester. A rollercoaster of events and emotional struggle.

The most meaningful project for me this semester related to our class is that early on in the semester I did my own wireshark digging into my new Eufy smart lock. After moving into my new apartment I got fedup with carrying physical keys around that I found hard to keep track of, as well as having roommates who often lose their keys and get locked out.

I didn’t initially do enough research on the lock i got, but I wanted a combination lock that had a flat keypad. I ordered a Eufy T8500. I quickly realized after it arrived that I wanted to be able to control it with my phone so i wouldn’t have to tediously type the door code to get in. The Eufy app let me control the lock setting of the door but opening the app became tedious so I wanted to make a IPhone shortcut that would let me control it from my home screen. I realized Eufy doesn’t have shortcut integration for IPhone so I looked if they had any api’s online so I could trigger the unlock with an api key. Somehow Eufy doesn’t have a public api either so I read about what else i could do.

I found wireshark and attempted to capture the network traffic being sent from Eufy when the door was unlocked. I found what I thought to be exact message being sent to unlock the door. I wanted to capture and repeat this message on demand through my shortcut. But I found that the TLS protocal on the message would prevent me from reading the API call. I then found out about Burp Suite to decrypt the HTTPS traffic but I did not continue at this time.

This experiment made me realize how difficult it is to use smart devices without open APIs.

Later on I found out about another method of unlocking through shortcuts where you can connect your google assistant app to Eufy to trigger a unlocking message. But in shortcuts you can automate this message being sent by a push a button. So after implementing this on my phone I can unlock my door from my lock screen. With some delay because of the automated script but still functioning.

Week 11: Coveryourtracks

Blocking tracking ads and blocking invisible trackers refuse to load because I have the privacy badger and ublock origin chrome extension enabled

17.5 bits of data seems like a lot of personal information to track who I am

Out of the identifing information, these seems to be the most identifiying pieces. I think it’s odd the user agent and platform seem to believe I am on an Intel mac, but that could possibly be because I transferred my chrome installation from a previous Intel CPU mac. Knowing I have an M3 macbook in EST time zone and I am a preferred American-English speaker is identifying information but not very personal to be able to track exactly who I am. I think this data could be used to attempt to find me by ruling out those who are in EST who don’t have an M3 macbook but it is still very sparse information

User Agent

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36

Time Zone

America/New_York

WebGL Vendor & Renderer

Google Inc. (Apple)~ANGLE (Apple, ANGLE Metal Renderer: Apple M3 Pro, Unspecified Version)

Language

en-US

Platform

MacIntel

Week 4: Nginx Server

nginx server ip: http://143.198.171.217/

10/02/2024 —— no access logs yet.

WEEK 3: Ball Drop Game Controller

For my BallDropGame controller i really wanted to try machine vision as a method of input. I knew this was possible in Processing so I took the BallDropClient and added the OpenCV library.

At first I was thinking of using hand gestures as a form of control:

finger gun left = a | finger gun right = d

point up = w | point down = s

but after thinking of the input speed and fluidity of this control method, I decided against it.

I then decided that using my head would be a more fluid input method. I attempted to track to the movement of my head and mapped it to “wasd”. I used a default OpenCV model called OpenCV.CASCADE_FRONTALFACE. The movement was janky and very fast and I couldn’t control the sensitivity very well, I had to move my head quite a large amount around the screen to get the paddle to move significantly.

I thought this input method was unreliable so I wanted to try something else. I had an idea that maybe using the rotation of my face would be a more fun and fluid way to control the game. I used distance detection of my facial features to calculate yaw, pitch and roll of my face. For some reason the Yaw reading was extremely unreliable, barely changing. I also had a lot of difficulty figuring out a good mapping for the controls with only pitch and roll and the movement was more janky than before with the paddle being unable to stop moving in a single direction.

I then went back to my face detection idea but used a different calculation, using coordinates of the center of the square surrounding my face to get an accurate positioning so I could move my paddle in a fluid way that was more one to one with my face movement. I had to make some adjustments to the sensitivity because it was a bit too erratic, its not perfect but its somewhat controllable now.

https://github.com/Ray2/RayBallDrop

Capture and analyze traffic on your network host while it’s being accessed by your MQTT client or web clients. Present your results in summary form, using graphical analysis where appropriate. How much of the traffic to your host is HTTP? How much is MQTT? How much is from remote hosts attempting to access ports or services you don’t have open?  How many other unique clients have tried to contact you? What are their relative levels of activities?

Write a summary of your work and findings on your blog. We’ll compare notes in class.

Assignment 2: Traceroute Analysis

I think the map is vaguely accurate based the city locations found from ipinfo. The route should be accurate but its hard to be more specific than the city location of the address.

Here is the link to my traceroute data and ipinfo location table

Assignment 1:

How many different attempts were there to connect to your server?

  • - 678 IP Addresses

  • How different IP addresses attempted to connect to your server?

  • - 335 Unique IP Addresses

  • How many times did each IP address attempt to connect?

  • - 81 times - SRC=79.110.62.81

  • - 5 times - SRC=115.231.78.10

  • - 6 times - SRC=185.242.226.28

  • Where are they located? You can look them up on ipinfo.io and other geoIP services.

  • - Included in my table

  • What organizations are they associated with, at all (whois and nslookup can help determine this)?

  • - Included in my table

  • What service providers are providing their IP addresses?

  • - Included in my table

  • Are there specific times of day that are most common for activity?

  • - sporadic

  • Are there IP addresses which return at regular times?

  • - no

Firewall Setup

Check syslog: If you still can't find the ufw.log, it’s possible that logging information is being written to the system log files instead. Check syslog for any firewall-related entries:

sudo cat /var/log/syslog | grep UFW