This is an old revision of the document!
Table of Contents
PortingNetMD
This section covers the porting of the NetMD Python code to C and integrating it into qhimdtransfer.
Background and motivation
Python NetMD
- command line interface only
- requires Python (version dependency)
- requires some basic knowledge on setting up Python
- not intuitively usable
- code is in some parts highly experimental
Current status
The current Python NetMD implementation allows both downloads (all NetMD models) as well digital uploads (MZ-RH1/MZ-RH200 models only) as well as titling, listing and editing of tracks as well as remote controlling NetMD units. Analog capture for upload is supported for models other than MZ-RH1/MZ-RH200. Download code contains a valid but unencumbered root key to allow necessary encryption during transfers. The download code itself is highly experimental, however.
Porting of the Python code to C was already started. The resulting tarball can be downloaded here: libnetmd.
Overview Python NetMD
The current NetMD implementation in Python is divided into several scripts
Utilities:
- lsmd.py - list the contents of any NetMD
- upload.py - transfer tracks from NetMD to the computer (works with MZ-RH1 Walkman only)
- downloadhack.py - allows transfer of tracks from the computer to NetMD (using unencumbered keys)
- dump_md.py - allows analogue transfers of tracks from NetMD to the computer (any NetMD Walkman)
- lsusb.py - sample implementation of lsusb command using usb1.py
- mdctl.py - pdb-based command line to test libnetmd.py methods
Libraries:
- libnetmd.py - implementation of a NetMD library in Python (core module)
- libusb1.py - Ctypes-based python wrapper around libusb1
- usb1.py - object definitions for libusb1.py functions
Steps todo
- Finish already provided libnetmd
- Extend QHiMDTransfer to interface the new libnetmd
- Rename QHiMDTransfer to SyncMD (maybe)
Resources
- netmdlinux - local Wiki page with many links for further reading regarding NetMD (includes specifications and patents)