API for the delimux device
Project description
README
The delimux module provides a streamlined communication with a socket server running on the delimux Raspberry Pi. On the delimux Raspberry Pi, a MUX36S08 analog multiplexer is connected via a custom designed hat. It allows the user to route an incoming electrical signal in the range between 0V and 40V onto one of seven lines in a patch cable. The raw communication protocol is shown below. The delimux module wraps this into a set of convenience functions and in particular allows the user to select the channel by patch cable number or by mux channel.
Installation
pip install delimux
How to use
The usage should be self-explanatory:
import delimux
mx=delimux.DeliMUX()
help(mx)
class DeliMUX(builtins.object)
| DeliMUX(host='delimux-cmtqo', port=60606, verbose=False)
|
| Client for controlling a MUX36S08 device via socket protocol.
|
| Server is expected to run on delimux-cmtqo:60606
| and respond to newline-terminated commands like SET, GET, ENABLE, etc.
|
| Methods defined here:
|
| __init__(self, host='delimux-cmtqo', port=60606, verbose=False)
| Initialize self. See help(type(self)) for accurate signature.
|
| disable(self)
|
| enable(self)
|
| getChannel(self) -> int
|
| getLine(self) -> int
|
| getState(self) -> list
|
| setChannel(self, n: int)
| Sets the channel
|
| Channel refers to the channel of the MUX36S08
|
| setLine(self, n: int)
| Sets the line
|
| Line refers to the patch-cable line, line 8 is GND
|
Raw protocol
Via a direct socket connection the full protocol can be exploited:
Commands are terminated with \r\n or \n.
| Command | Description | Response Format |
|---|---|---|
SET <n> |
Sets the MUX channel to n (0–7) and enables it |
OK or ERROR <message> |
GET |
Returns full state as 3 address bits + enable bit | STATE <A2> <A1> <A0> <EN> |
CHANNEL |
Returns the currently selected channel number | CHANNEL <n> |
ENABLE |
Enables the MUX | OK |
DISABLE |
Disables the MUX | OK |
| (unknown) | Any invalid or unsupported command | ERROR Unknown command |
Hardware
Signal quality
The device was tested with a Picoscope 4824A. The input signal was generated with the AWG generating a square wave. The distortion of the input signal is due to the output limitations of the picoscope.
Characteristic response at 1 kHz:
The inset shows the rise time of the MUX.
At 200 kHz we get the following plot:
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file delimux-1.0.1.tar.gz.
File metadata
- Download URL: delimux-1.0.1.tar.gz
- Upload date:
- Size: 978.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
777cf4252e3f5039758dabd5d034fe96e476c3274a0d197f4e07f7ca16c5e70a
|
|
| MD5 |
8bf1b6002fa4d005e8cf7ff85f2b30f8
|
|
| BLAKE2b-256 |
47492b4e4a880575942f8f8b779869bda2e00e3b30ec57757d6ab4f55bd12673
|
File details
Details for the file delimux-1.0.1-py3-none-any.whl.
File metadata
- Download URL: delimux-1.0.1-py3-none-any.whl
- Upload date:
- Size: 3.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b2b84be12c97360e76e6eb2a6c406e2b447900da33642248f3598548dfb7e9f
|
|
| MD5 |
eec87755c32ad7bfdf3f0db9386e0ef5
|
|
| BLAKE2b-256 |
ce573fa66927b8391ffd8d8281c589d08fe9d158c96ecd73c4e8dc516d472ea9
|