Skip to main content

Controller for Decent Espresso DE1

Project description

Description

A fully functional, API-first implementation of core software for control and use of the Decent Espresso DE1.

It provides core components, which can be run as an unattended service that automatically starts at boot, to supply stable, versioned APIs to provide all primary functions of use of a DE1 and data collection around it.

A web app has been able to demonstrate sufficiency of the APIs and functionality for the majority of day-to-day operations, including real-time graphing and history display. A running example is available, linked from DecentForum.com. It uses the supplied, stand-alone “replay” application to play back a shot in real time. This tool is also useful for development of companion applications.

Profiles and real-time data are captured into a SQLite3 database that allows multiple, concurrent access.

A stand-alone program is provided that can automatically upload “shots” to Visualizer as soon as they complete. It can also notify consumers of the URL returned.

An example program is provided that generates legacy-style, “shot files” that are compatible with Visualizer and John Weiss’ shot-plotting programs.

The APIs are under semantic versioning. The REST-like, HTTP-transport versions can be retrieved from version at the document root, and also include the Python and package versions installed. Each of the JSON-formatted, MQTT packets contains a version key:value for that payload.

Consumers of these APIs should only need to understand high-level actions, such as “Here is a profile blob, please load it.” The operations and choice of connectivity to the devices is “hidden” behind the APIs.

Documentation and Source

Documentation is available at https://pyde1.readthedocs.io/en/latest/

Source code is available at https://github.com/jeffsf/pyDE1.git

Requirements

Python 3.8 or later.

Current plans are to continue to support two versions prior to the latest Python version. PEP 664 shows a schedule of October, 2022 for Python 3.11.0 release. Users should plan on moving to at least Python 3.9 prior to that release. Python 3.9 is “standard” with the Debian Bullseye distro, as well as the current, Raspberry Pi OS release.

Available through pip and installed as dependencies:

  • aiosqlite

  • bleak

  • paho-mqtt

  • PyYAML

  • requests

An MQTT broker compatible with MQTT 5 clients, such as mosquitto 2.0

A production-quality web server, such as nginx is highly recommended operating as a reverse proxy, rather than directly exposing the Python web server.

Status — Release

This code is used on a daily basis for operation of the author’s DE1.

License

Copyright © 2021, 2022 Jeff Kletsky. All Rights Reserved.

License for this software, part of the pyDE1 package, is granted under

GNU General Public License v3.0 only

SPDX-License-Identifier: GPL-3.0-only

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

pyDE1-1.2.0a20220202.tar.gz (164.5 kB view details)

Uploaded Source

Built Distribution

pyDE1-1.2.0a20220202-py3-none-any.whl (202.1 kB view details)

Uploaded Python 3

File details

Details for the file pyDE1-1.2.0a20220202.tar.gz.

File metadata

  • Download URL: pyDE1-1.2.0a20220202.tar.gz
  • Upload date:
  • Size: 164.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10

File hashes

Hashes for pyDE1-1.2.0a20220202.tar.gz
Algorithm Hash digest
SHA256 ef65c22e5e4dea09e3cf685482f70f5a338f0c86589cd939e71fd1083d12fa76
MD5 de25fdbb9e676f1ae320fa1477749fe7
BLAKE2b-256 9924bf2613e052f537f91baf4b14b4bb8a3268b88c03f83f69c43b903cf9520f

See more details on using hashes here.

File details

Details for the file pyDE1-1.2.0a20220202-py3-none-any.whl.

File metadata

  • Download URL: pyDE1-1.2.0a20220202-py3-none-any.whl
  • Upload date:
  • Size: 202.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10

File hashes

Hashes for pyDE1-1.2.0a20220202-py3-none-any.whl
Algorithm Hash digest
SHA256 9fc73a516f006aa5e2f521396268f729a62057f66197e241a43a732fed829534
MD5 d53f865f941e86bdb35da19f87fb2116
BLAKE2b-256 31ce9eaedf1e9852b2eb9db72c60e29f68afe741f458c545e54920c02fef30be

See more details on using hashes here.

Supported by

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