/ examples / floppy_simpletest.py
floppy_simpletest.py
 1  # SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
 2  # SPDX-FileCopyrightText: Copyright (c) 2022 Jeff Epler for Adafruit Industries
 3  #
 4  # SPDX-License-Identifier: Unlicense
 5  
 6  # On an Adafruit Feather M4 or Adafruit Feather RP2040 with Floppy Featherwing,
 7  # do some track-to-track seeking and flux reading.
 8  
 9  import board
10  import adafruit_floppy
11  
12  D24 = getattr(board, "D24") or getattr(board, "A4")
13  D25 = getattr(board, "D25") or getattr(board, "A5")
14  
15  floppy = adafruit_floppy.MFMFloppy(
16      densitypin=board.A0,
17      indexpin=board.A1,
18      selectpin=board.A2,
19      motorpin=board.A3,
20      directionpin=D24,
21      steppin=D25,
22      track0pin=board.D11,
23      protectpin=board.D10,
24      rddatapin=board.D9,
25      sidepin=board.D6,
26      readypin=board.D5,
27  )
28  
29  floppy.selected = True
30  floppy.spin = True
31  print("Seek track 8")
32  floppy.track = 8
33  print("Seek track 0")
34  floppy.track = 0
35  print("Read partial track raw flux data")
36  buf = bytearray(30000)
37  n_read = floppy.flux_readinto(buf)
38  print("read", n_read)
39  buckets = [0] * 256
40  for b in buf:
41      buckets[b] += 1
42  oi = -1
43  for i, bi in enumerate(buckets):
44      if bi > 0:
45          if i != oi + 1:
46              print("---")
47          oi = i
48          print(f"{i:3} {bi:5}")