Releases: dmcomm/dmcomm-python
Releases · dmcomm/dmcomm-python
v0.9.0
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
tonext
/store
to match Arduino (breaking change to API) - Renamed prongs
low
/high
toactive
/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
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
toOtherCommand
for easier distinguishing from DigiROMs - Removed
param
fromOtherCommand
- Copied
board_config.py
from wificom-lib v1.1.0 for easier switching between dmcomm and wificom boot.py
now reads button pin fromboard_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
becameClassicCommunicator
andColorCommunicator
-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
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
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
v0.4.0
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
andprotocol
attributes tosignal_type
- major breaking change to API (most API users will have been usingdigirom.physical
) - Moved
ic_encoding
module fromhardware
toprotocol
subpackage - Fixed iC escape sequence where
0x7D
is encoded as0x7D, 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