 we're just trying to stream to four different platforms just because we can try to see what the stream quality is like, so we're just trying to twitch at 30 fps, seem to be working okay and also doing LinkedIn, same 30 fps, we're now doing Facebook as well, I don't know if it's working or not, but we will just trying it out, so that seemed to work as well, so yeah the usual spiel, if you haven't tried buychaos.com yet please go check out the site, don't forget to provide your feedback, keep it short and sweet, and today's Sunday, so just doing random stuff, normally we do what's it waveform feature extraction detection, so we'll be adding this next on this side, it will be called the cardio quest bot because it's essentially the same tool as we really have published, but this one will be you a human playing against the robot, so it will be fun, it's currently looks like, yeah looks like that, so we covered this in the last couple of streams, some stage we'll go back to doing EEG, there we are, if you did check the site there, now it's a good time to share your comments, anything you like, dislike about it, so I can improve it, probably won't be doing development on this today, we'll just publish it, the generally works okay, we're still testing, yeah so you have an option to add noise, they might actually reduce the level of noise to make it by like 10 folds or so, so it's not too large, because the robot is already stuffing the decision making up, it's not making a correct decision even if the noise level is minimal, so that's indicating correctly abnormal, and this should be a normal wave, and yeah that's is correct, so that will be a correct rejection, yeah that's abnormal, it's missing a bit, so yeah with no noise the current setup is not doing any mistakes whatsoever, yeah again a normal gets an abnormality score close to 0, 0.1 in this case, so that's good, another normal, so if I don't click on it I'll get the 10 points, now my score will go to 0, because I wasn't paying attention before, so my score went negative, normally in the streams actually go over of what's on the side, yeah so you already have the dcg game that you can play, but it doesn't have the robot playing against you, we have five things that we will have looking at the short description of it, we might need more work on this, but this is essentially, oh by the way yeah an add for one of those health headbands, it's not sponsored by them, this tool is actually showing you image compression, it can be used for any image, of course in this case it's showcasing medical data, can use different, it's a wavelet transform, so you can use different wavelets, decide how many beats you have in the image, the level of compression, so essentially the higher the compression the more levels the more compressed it will be, and the PSNR meant to the peak signal to noise ratio meant to essentially tell you how easily it will be able to reconstruct the compressed image back to the original one, yes we can increase the number of levels and increase the number of beats, yes we can play around with that, what else we got, the feature extraction, yeah so it's using the detection type, you have three types of amount, the fast, iris, sheet, tomasi, there's a description of each one at the bottom and you can see how well it's working, so in this case the fast algorithm is finding too many points, the iris is kind of okay, if that's what you're looking for probably be aiming at the brain but then you need to define your region of interest to be the brain for example, this algorithm is not doing that, you can just see the difference it makes on different images, so this is an example of a ischemic stroke, so again the fast, still processing is probably doing too many data points, it's not actually producing anything at all, the iris found all these beats there, some over here, I don't know why, yeah the sheet tomasi indicating more points, so yeah so you have to obviously tune these things up to the data set that you have, there's a bunch of blocks as well, you have some silly images being generated by a dali 3, some of them are not too bad, some pretty horrendous, surprising you get some relevant ads, I don't know about that, it's not sponsored by it, just Google ads, I think I covered this one before, we have a standard, not standard, this is from an implant EEG 16 channels, you can scroll through the data and see what the frequency spectrum looks like and we have a similar tool that actually converts the EEG into music, so I don't know if it sounds like music to you, right this one, give me an ad to learn how to play piano in only 21 days, again not sponsored by that company, whatever it is, school, music school, anyway those need some more development, but essentially the auto volume will make the volume very quiet when there is no seizure, I cut the end of this data sample and we know there is a seizure in the middle so it will become louder, the auto duration will adjust itself to the window size, by the way we need to record the instruction video of how I'm using this tool and pop it on the website at the bottom, so yeah because no one reads text, well at least I don't, I assume others don't read anything as well, so it will be good to have a video showing how to use it, but we might be doing more work on it so it will change anyhow, yeah we'll keep it short today considering it's Sunday, if anyone wants to join live we can actually do that, yeah there's a description of what the project is all about by GPT-4 Barnageos is actually a term used for a specific project related to biomedical data, it's not a general biomedical engineering concept, but rather the name of an open project that focuses on democratizing biomedical data processing, the term reflects the often chaotic nature of combining biology and electronics, which is a common challenge in the field of biomedical engineering, the Bione chaos project provides various tools and dashboards for processing and reviewing biomedical data, it goes a range of topics in signal processing such as statistics, fuzzy logic, neural networks, spectrograms, image classification, and graphic processing, the aim is to help users better understand and predict events and irregularities within biomedical data, it's important to note that this project and its tools are experimental and not certified for clinical or commercial use, the data used in the Bione chaos project is de-identified and available in the public domain and all the tools and information posted on the Bione chaos site are released under a creative commons attribution license, allowing for a wide range of uses including commercial, however it's currently not possible to upload personal data to the site, any available public data sets can be used, this project is a good example of how biomedical data can be made more accessible and understandable, which is crucial in the field of biomedical engineering and data science, yeah the board must have found the about section on the site and it does mention that there is no currently an option to upload data, if you do want me to look at any data or for any of your data to be featured on the site, please go upload it onto github or any other public repository, we're also looking at the another thing we were thinking adding a couple of a couple of extra topics to the mix, so currently we're doing the the bot that plays the cardio game, we also have we're also generally looking at we'll be trying to open review of a public biomedical data set, like currently this data on the page is actually using data from ieg.org, I think anyone can after a simple registration can go and get this data, so as I said we'll be looking at the different biomedical data sets, like the ieg but the ones as well, we're also doing eye tracking, I don't remember how that went, probably not great considering it's not yet available on the site, it's also going to be a flask application, ah sorry so it's it is a flask application but it's primarily relying on this javascript to know why most of the stuff is commented out but to run it we actually run a flask app, all right this one is running on a different port, let's see if we can load another camera with it, no it doesn't seem to work, I need to sort out my cameras, I have two connected but they have the same name, so these pages is struggling to actually load the correct camera, it just won't work, strike it on another browser, yeah the problem I'm having is that the two cameras have exactly the same name so that doesn't help, does it? yeah one of them got stuck, anyway today I was really trying to test the streaming on Facebook, that seemed to work, okay I'll be also editing some of the old videos, all the live streams trying to make shorter more cohesive videos out of them and the other thing is if anyone is interested, we also found this bunch of speed files so they're essentially coming from a Garmin, I don't know what's a Garmin Edge, a device must be a very, no I didn't expect that, how does that record the fitness activity considering it's just being placed on the bike, it's just accelerometers and stuff, yeah some sort of older device out of stock, yeah it's actually good, I checked what kind of device it is, I'm considering it's not wearable, I mean it's wearable but it's worn by the bicycle seems to be, the other device, we also have one of those the older Empaticas, so the E4, not the new generation, interesting how they the main change, well it looks quite different statically but the main change seemed to be a screen, must be a touch screen on the device which makes it more similar to other consumer-grade devices like Garmin and the like, the original one, the one I have access to does not have a screen and interestingly enough there's a bunch of Python libraries that we might be able to use, University of Nebraska Medical Center, yeah Pi Empatica, when was it released, must have been, must be ages ago, doesn't have any dates, yeah Python 3.6, okay it must be, now it was 3.11, must be a while back, but I wonder if it still works or not, so I wonder I also have it connected via a USB, so I wonder if I can just access it that way, obviously not ideal because it's wearable, it's normally streaming data to your phone, like Android phone is fine, which is good, but then I was not able for some reason to actually get it to work with my phone, it requires like an account, you know why, you know why it just doesn't work out of the box, this is an interesting, okay so it's only compatible with Windows and you need an Empatica streaming server, okay so this might not work, it's just shit, so we are live streaming, you're co-hosting, so quick, quick responses will be great, do you know anything about the Empatica E4 watch, it's wearable recording, blood pressure, PPG, so blood oxygenation and the like, we have it currently connected via USB to our Linux Ubuntu machine, anyway we can communicate, talk, do it using Python or JavaScript, I eventually would like to make a flash application that will allow connecting one of those Empatica watches and streaming data from it, quick responses will be great, yep. To connect and communicate with the Empatica E4 wristband using Python or JavaScript for your flash application, here's what I found, Python integration, there are Python scripts available for processing data collected via the Empatica E4 wristband, for example the GitHub repository Empatica underscore E4 underscore wristband underscore analysis provides Python scripts that can organize multiple participant files collected via the Empatica E4 wristband, these scripts help in monitoring physiological signals in real time including blood volume pulse, BVP, heart rate, motion activity, electro-dermal activity, EDA, and peripheral skin temperature, JavaScript integration, the GitHub repository Empatica E4 client includes a node, JS module that can communicate with the Empatica BLE server to fetch sensor stream data from the Empatica E4 device, this can be particularly useful if you're considering a JavaScript based approach, Empatica E4 streaming server for Windows, Empatica provides a streaming server for Windows, which can connect to multiple E4 devices using Bluetooth Lure and forward their data streams to clients connected over TCP, this server is essential for real-time data streaming from E4 devices to your application, Python library, Pympatica, the Python library, Pympatica, available on PYPI can be used to connect and stream data from the E4, before running the script, ensure the Empatica streaming server is running, this library seems to be primarily compatible with Windows due to the streaming server dependency, given that you're using a Linux Ubuntu machine, you'll have to consider the compatibility of these tools with your system, especially since the Empatica streaming server is tailored for Windows, for real-time data streaming and processing in your Flask application, these resources should provide a good starting point, remember to check the licensing and usage terms for each of these tools to ensure compliance with your project's requirements, Okay, now a quick response, so we haven't connected to our Ubuntu system, can we find a driver for it, for Ubuntu and talk to the device directly using Python without any libraries? Yep, as of the latest information available, Empatica doesn't provide a native Ubuntu driver or direct Python library for communicating with the E4 wristband without using their provided SDKs or streaming server, the E4 wristband is designed to work with Android and iOS platforms using their respective SDKs and with Windows using the E4 streaming server, unfortunately, there's no mention of direct support for Ubuntu or a method to communicate with the device directly using Python without these libraries, this means you might face compatibility issues trying to interface the E4 with an Ubuntu system without using their specified platforms or tools. For more details, you can check Empatica's developer resources, the E4 link is the new name of the Emberlink library and E4 streaming server is the new name of the Windows BLE server, Emberlink and BLE server products will be discontinued in the next months, the E4 streaming server is a Windows application that can connect to multiple Empatica E4 devices using Bluetooth flow and forward their data streams to clients connected over TCP, E4 link is the new name for the library which you can develop your custom application on Android. Read how to develop your Android application using the E4 link SDK for Android tutorial and connect to your E4 wristbands from your Android phone. A sample Android studio project has provided the demonstrate half scan continuously for E4 wristband devices and connect to one at a time in stream values E4 link SDK sample for Android. First of all, you need to make sure your phone runs at least Android 4.4 KitKat, API level 19. Android 6.0 or newer is recommended. This version is tested also on latest Android 9 and 10. Note, Android 4.3 doesn't offer a stable enough connection, while previous versions don't support Bluetooth 4.0, BLE, but all, and, therefore, are not compatible with the Empatica API. E4 link 1.0.0 release is meant to be used with Android Studio 3.5 or later. Once equipped with a supported phone, you need to navigate Empatica Connect developer area and request to become a developer. You will find your API key and all the download links there. Dependencies. E4 link has the following dependency. OK HTTP client, version 2.7.5. Installation instructions. Download the SDK from Empatica Connect developer area. Open your project in Android Studio. Open your main build. Gradle, project route, and chains are trailing lines too. The Empatica E4 Android SDK tutorial provides comprehensive instructions for developers to build Android applications that can communicate with the Empatica E4 device. Key points include ensuring compatibility with Android 4.4 KitKat or newer, using Android Studio 3.5 or later, and obtaining an API key from the Empatica Connect developer area. The SDK installation involves adding dependencies and configuration in Android Studio. Usage includes initializing a number device manager, registering the API key, and implementing embedded data delegate and embossed data delegate for device connection and data streaming. For detailed steps and methods, you can refer to the Empatica E4 Android SDK. OK, essentially without using any library with basic Python functions or serial libraries, we are happy to just give it a go. Communicating with the Empatica E4 device via USB using basic Python functions or serial libraries is not straightforward. The E4 wristband primarily communicates through Bluetooth, and the standard method to access its data involves using specific SDKs provided for Android, iOS, or Windows. These SDKs handle the complex protocols involved in data streaming from the device. If you're looking to experiment with direct USB communication, you could explore Python serial communication libraries like PySereal. However, there's no official documentation or support from Empatica for this approach, and the success of such an attempt is uncertain. You'd be venturing into uncharted territory, potentially requiring reverse engineering of the device's communication protocol. Keep in mind that this might violate the device's terms of use and could also risk damaging the device avoiding authority. Well, right now that should be fine because we can't communicate that stopped working with my Android. So I can't talk to the device via the official app. I still would like to use it. So yes, I would like to go with the PySereal, try talking to it, talking to it directly. Can you provide some code sample that will do it? And also check the USB connections on my machine to determine which device is the Empatica watch. To communicate with the Empatica E4 via USB using Python in a serial library like PySereal, you'll first need to identify the USB connection of the device on your machine. Here's a basic outline of how you can do this. Install PySereal. If you don't have PySereal installed, you can install it using PIP, Python copycoder, but install PySereal. To communicate with the Empatica E4 device via USB using Python and Serial Communication, you can use the PySereal library. However, keep in mind that this approach is experimental, and I cannot guarantee it will work with the E4, as it's not a supported method by Empatica. List available ports, you can use PySereal to list available serial ports. This helps identify which one is your Empatica E4. Basic Serial Communication. Once you've identified the correct USB port, you can attempt to establish a basic serial communication. Connect to the device. Once you identify the correct port, you can attempt to open a serial connection. The board rate and other parameters would be guesses, unless you have the specific communication protocols from Empatica. Data Communication. Attempt to read or write data. This is speculative without specific protocol details. Remember, this method is highly experimental. The Empatica E4 uses specific communication protocols that may not be compatible with standard serial communication. Additionally, you should verify the correct board rate and other serial settings for the E4, as the above example uses default values. Proceed with caution and at your own risk. This is a trial and error process. It's crucial to note that this method is highly experimental and not supported by Empatica. There's no guarantee of success, and it may not comply with the device's terms of service. Additionally, without the proper communication protocol, it's challenging to interpret any data you might receive. Proceed with caution and at your own risk. Okay, a couple of things. Don't worry about any risk. If we break the device, that's okay. Now, how do we find which port the E4 is connected to? And also, can you generate the whole script? I understand this prototype. I understand the risk. Don't worry about it. We just need the code that we'll try and talk to the device. But first, via the Ubuntu terminal, can we list all the USB devices? So we try and figure out which serial code we need to talk to the E4. Yep. To identify which USB port the Empatica E4 is connected to on your Ubuntu machine, you can use the terminal command LSUSB. This command lists all USB devices currently connected to your system. Here's how to use it. Open your terminal. Type LSUSB in press enter. Look through the output for a device that could be the Empatica E4. The output will not explicitly name the E4, so you may need to identify it by process of elimination or by looking for a familiar vendor, product ID. Now, for the Python script to attempt communication with the E4. Replace, dev, ttyusb0feet with the port that you identify as the E4. This script attempts to open a serial connection to that port and read any data that the device sends. The board rate and timeout are set to default values and may need to be adjusted. This script is basic and may not successfully communicate with the E4 due to the device's specific communication protocols. However, it's a starting point for your experimentation. Proceed with understanding that this is an untested and unsupported method. Eat the device. Okay, maybe I need to press something. There's only one button on this thing. It's flashing different colors depending on how long you press on it. I can track connecting to it via Bluetooth and pretend Ubuntu is an Android device. Is that an option? Pretending that Ubuntu is an Android device to connect to the Empatica E4 via Bluetooth is not a straightforward task. Android and Ubuntu have different underlying architectures and Bluetooth stacks. While it's theoretically possible to emulate some aspects of Android on Ubuntu, this usually involves running an Android emulator, which doesn't typically include Bluetooth hardware access. A more feasible approach might be to explore Bluetooth programming on Ubuntu directly, using libraries like BlueZ, the official Linux Bluetooth protocol stack. However, this still requires a good understanding of the Empatica E4's Bluetooth communication protocols, which are not publicly documented and might be challenging to reverse engineer. For direct interaction with the device's hardware and software, it's generally recommended to stick to supported platforms and methods provided by the manufacturer. Attempting to communicate with the device in an unsupported way, like treating Ubuntu as Android, is likely to be complex and potentially unsuccessful. How to list all serial ports currently available using the terminal? To list the available serial ports on your Ubuntu system using the terminal, you can use the following command. This command will display a list of all TTY devices that your system recognizes. Look through the output for devices that could be your Empatica E4. The device might not be listed as DEV, TTYUSB0, it could be under a different TTY name depending on how it's recognized by your system. Remember, if the device is connected via Bluetooth, it might not show up as a traditional USB or TTY device. Based on your terminal output, it looks like your Ubuntu system is recognizing a USB ACM device as TTYACM0. This could potentially be the Empatica E4 device. To try communicating with it using Python and PySereal, you should use DEV, TTYACM0 as the port in your script. Here's an adjusted version of the previous Python script using this port. Replace the port with DEV, TTYACM0 and run the script to see if it can establish communication with the device. Keep in mind that this is still an experimental approach. The area you're encountering, permission denied, DEV, TTYACM0, indicates that your Python script doesn't have the necessary permission to open the serial port. This is a common issue on Linux systems. To resolve this, you need to grant your user account permission to access the serial port. One way to do this is by adding your user to the dial-out group, which typically has the required permissions. Here's how you can do it. Open your terminal. Run the command sudo usermod a.g. dial-out-dollar-user. Log out and log back in, or reboot your computer for the changes to take effect. After doing this, try running your Python script again. This should resolve the permission issue, allowing the script to access DEV, TTYACM0. Remember, this is still an experimental method and may or may not successfully communicate with the Empatica E4 device. Don't worry about the warnings about it not being successful, that's fine, that's okay. I don't think that's the ID for the device, because when I unplug it, that ACM0, TTYACM0, is still shown by the grep TTY command. The device is connected, the USB has four pins, so you should be able to communicate with it. It's not just for charging. What are the different ways of seeing how it comes up when connected to the Ubuntu system? If TTYACM0 remains listed even after you unplug the device, it's not the Empatica E4. Here are some alternative methods to identify the correct device. Monitor DMESG logs, run backquote DMES, run DMESGW in the terminal, plug in and unplug the device, look for changes in the output. The new entries should give clues about the device's identifier. Use LS, DEV before and after connecting. Run LS, DEV greater than before.txt before connecting the device. Connect the device, then run LS, DEV greater than after.txt. Compare the two files with DIFF before.txt, after.txt. Use BTCONNECT device number 43. Okay, we have a MAC address and stuff. Based on your latest DMESG output, it looks like the device connected to your system is identified as low-energy dongle by BlueGiga, not the Empatica E4. This dongle is likely used for Bluetooth communication and is recognized as TTYACM0. The Empatica E4 might not show up as a standard USB serial device, especially if it's primarily designed to communicate via Bluetooth. If it's not registering as a USB device for data transfer, you might not be able to communicate with it via USB serial communication as you would with other devices. Since the device isn't being recognized as you expected, you might need to explore other methods to communicate with it, possibly reverting back to Bluetooth communication or seeking support from Empatica for further guidance. Yeah, we're getting a MAC address from it. It looks like the device you're connecting and disconnecting is consistently identified as a low-energy dongle by BlueGiga, which is shown as TTYACM0. The repeated connection and disconnection of this device suggest it's the same device each time. If you're getting a MAC address from the Empatica E4 and it's meant to communicate over Bluetooth, the best approach might be to explore Bluetooth communication on Ubuntu. Since the device is designed for Bluetooth and the USB connection seems to be identified as a dongle rather than the E4 itself, Bluetooth communication might be the more viable option. For Bluetooth communication on Ubuntu, you could use the BlueZ stack, which is the official Bluetooth protocol stack for Linux. You can use it to pair and communicate with the E4, provided you have the right tools and knowledge about the E4's Bluetooth communication protocols. This method would involve using Bluetooth-specific commands and libraries, rather than trying to communicate over USB. Okay, can you help us doing this? Don't worry about the warnings. We are happy to break this device if necessary. It's not working with my phone anyway. Python code will be great. And we're currently using Bluetooth. Hey, can we have... Not sure if I can have more than one device connected. I have my headphones connected at the moment. To attempt Bluetooth communication with the Empatica E4 using Python on Ubuntu, you can use the PyBlues library. This library allows for Bluetooth communication in Python. You can indeed have more than one Bluetooth device connected to your system, like your headphones and the Empatica E4. Here's a basic outline for a Python script to scan for Bluetooth devices and attempt communication. First, install PyBlues. Then, you can use the following script to discover Bluetooth devices. This script will list all Bluetooth devices in range. Once you have the MAC address of your E4, you can attempt to create a socket connection to it. Keep in mind that successful communication with the E4 will depend on the device's specific Bluetooth protocols and services, which may not be publicly documented. This script tries to connect to the E4 using a Bluetooth socket. Adjust the MAC address and port number as needed. As with USB communication, this approach is experimental and might require adjustments based on the E4's specific requirements. The information you provided from the DMESG output does not include a MAC address for the Empatica E4 device. The MAC address is necessary for Bluetooth communication, and it typically looks like a series of six groups of two hexadecimal digits separated by colons, e.g. XX, XX, XX, XX, XX, XX, XX. In your output, the device repeatedly showing up is low-energy dongle, by BlueGiga, identified as TTYACM0, which is likely a Bluetooth dongle and not the Empatica E4 itself. To find the E4's MAC address, you might need to use a different approach, such as scanning for Bluetooth devices with your system's Bluetooth manager or using the command line. Once you have the E4's MAC address, you can use the previously provided Python script for Bluetooth communication. Remember, the key to establishing a Bluetooth connection is having the correct MAC address of the device you want to communicate with. If the E4 is not currently working with your phone and you're unable to find its MAC address, it may be challenging to establish a connection via Bluetooth using Python.