Skip to main content

API for the delimux device

Project description

README

PyPI

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

delimux-1.0.1.tar.gz (978.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

delimux-1.0.1-py3-none-any.whl (3.8 kB view details)

Uploaded Python 3

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

Hashes for delimux-1.0.1.tar.gz
Algorithm Hash digest
SHA256 777cf4252e3f5039758dabd5d034fe96e476c3274a0d197f4e07f7ca16c5e70a
MD5 8bf1b6002fa4d005e8cf7ff85f2b30f8
BLAKE2b-256 47492b4e4a880575942f8f8b779869bda2e00e3b30ec57757d6ab4f55bd12673

See more details on using hashes here.

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

Hashes for delimux-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6b2b84be12c97360e76e6eb2a6c406e2b447900da33642248f3598548dfb7e9f
MD5 eec87755c32ad7bfdf3f0db9386e0ef5
BLAKE2b-256 ce573fa66927b8391ffd8d8281c589d08fe9d158c96ecd73c4e8dc516d472ea9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page