Skip to content

Releases: dmcomm/dmcomm-python

v0.9.0

08 May 02:35

Choose a tag to compare

0.9.0 - 2025-05-07

Added

  • Magical Witches support ("MW"), with ^^ for XOR byte checksum
  • Experimental Xros Loader support ("!XL")

Changed

  • Renamed DigiROM send/receive to next/store to match Arduino (breaking change to API)
  • Renamed prongs low/high to active/idle to match Arduino (generally internal)
  • Reorganized communicators (breaking change to API if you were using those directly)
  • Controller only keeps one communicator existing at a time
  • Communicators delete params when disabled

Fixed

  • Adjusted Xros Mini timing

Tested with

  • CircuitPython 9.2.7

v0.8.0

30 Jan 00:26

Choose a tag to compare

Added

  • High-level DigiROM API for DMOG
  • Version info with "i" following the pattern decided in other DMComm variants
  • Pause command with "P"

Changed

  • Results of parse_command:
    • "?" changed to "I"
    • new "P" for "pause"
    • removed "D"
    • turn now considered to exist if the first text segment ends with a digit
    • Added signal_type = None to OtherCommand for easier distinguishing from DigiROMs
    • Removed param from OtherCommand
  • Copied board_config.py from wificom-lib v1.1.0 for easier switching between dmcomm and wificom
  • boot.py now reads button pin from board_config.py
  • Rewrote DL/FL/LT receiving to count pulse+gap duration, rather than pulses and gaps separately - improves the situation for non-Vishay TSOP4838
  • Rewrote example for high-level DigiROM API
  • Deinit weak pull when prongs are disabled (caused issues combined with past "disable after every transmission" behaviour, but OK now)
  • Separated DMC logic - ProngCommunicator became ClassicCommunicator and ColorCommunicator - ClassicCommunicator follows program flow from before DMC was added
  • IR barcodes changed from 100% duty cycle to 15/16 so that IrDA modules will allow them

Removed

  • Data serial option
  • Workaround for PIO bug in CircuitPython 8.0.0 alpha versions

Tested with

  • CircuitPython 8.2.2

v0.7.0

06 May 21:25

Choose a tag to compare

Added

  • Calculation features in sequence DigiROMs:
    • Normal checksum using "++", or "++++" for DMC
    • Normal mirroring using "__", or "____" for DMC
    • Data Link ID shift using ">>"
    • Data Link checksum calculation using "+?"

Changed

  • Major reorganization of DigiROM API (but parse_command API is unchanged)
  • Files have moved around so recommend deleting old lib/dmcomm folder before upgrading
  • Finalized Data Link - removed "!" - bytes are reversed from "!" version, utils/byte_reverse.py can fix existing Data Link byte sequences in text files
  • Finalized Fusion Loader - removed "!!" with no changes

Tested with

  • CircuitPython 8.0.5

v0.6.0

17 Apr 02:45

Choose a tag to compare

Added

  • Basic support for Digimon Color

Changed

  • Changed ending of serial output lines from "\n" to "\r\n" to match Arduino
  • Fixed serial UnicodeError
  • boot.py changes:
    • added Pico W button support
    • disabled status bar
    • made CIRCUITPY drive read-only by default instead of disabling
    • more informative messages (visible in boot_out.txt)
  • Relaxed timings for Data Link and English DMOG

v0.5.0

19 Feb 16:28

Choose a tag to compare

Added

  • Default Pi Pico W pins in board_config (same as Pico except LED)
  • Configurable led_pin in board_config

v0.4.0

17 Feb 22:40

Choose a tag to compare

Added

  • Version check over serial
  • More informative messages about iC decoding errors

Changed

  • Changed recommended prong_in on Pi Pico from GP26 to GP22
  • Renamed physical and protocol attributes to signal_type - major breaking change to API (most API users will have been using digirom.physical)
  • Moved ic_encoding module from hardware to protocol subpackage
  • Fixed iC escape sequence where 0x7D is encoded as 0x7D, 0x5D
  • Ensured prong weak pull and input logic level are updated when changing prong type
  • Implemented prong invert_bit_read to give correct results for Xros Mini
  • Relaxed "V" bit timing to account for D3USv1
  • Relaxed Talis start bit timing to see if this works around the reliability issue

Removed

  • realtime module and example - moved to WiFiCom and has since been updated

Tested with

  • CircuitPython 8.0.2

v0.3.0

12 Feb 23:01

Choose a tag to compare

First release.