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.0.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.0-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file delimux-1.0.0.tar.gz.

File metadata

  • Download URL: delimux-1.0.0.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.0.tar.gz
Algorithm Hash digest
SHA256 3ca227afff649a69fb7edcf06773d76ce40f5e0527a249acaf84388d929986bf
MD5 a7917066d0adc5fe91cecf36fe5a003e
BLAKE2b-256 ec54c0c839bde0d11f50fcf1c7f224893b90f1ff27066e05a2d41578853a22b9

See more details on using hashes here.

File details

Details for the file delimux-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: delimux-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 3.7 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d7c685049ff7f7c3e01e669b1e8bb20ed2973e533b42cf746118b5b627bc4f0c
MD5 e360e2e94d664c14f01cf6c9ab940462
BLAKE2b-256 2ba0b635f686781a050c93572c7ecc0f56e9d117a969ef5bf1211c22fd0ef1a1

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