forked from keirf/greaseweazle-firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
/
RELEASE_NOTES
283 lines (244 loc) · 12.2 KB
/
RELEASE_NOTES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
************************************
** Greaseweazle Firmware Release Notes
** Keir Fraser <[email protected]>
************************************
** v1.4 - 22 July 2023
- New board type: V4.1 (AT32F4xx, USB-C)
** v1.3 - 18 February 2023
- AT32F403A: Run this MCU at 216MHz in main firmware
- USB: Implement GET_STATUS(DEVICE) as required by USB spec
- This fixes repeated USB resets on some Linux hosts
- Blinky test: Fix serial baud rate (115200)
** v1.2 - 18 July 2022
- Support AT32F403A MCU on F1 and V4 boards
- Send MCU info to host (reported in 'gw info')
** v1.1 - 27 February 2022
- V4: External Activity LED can be connected to pin TXO
- TXO-RXI jumper still forces update mode
- TXO still used for serial logging in debug firmware builds
- GetPin: Report on all pins also supported by SetPin
- ReadFlux: Don't report missing index if read is not index-terminated
- GetInfo: New sub-pages CurrentDrive and Drive_n
- Report motor, cylinder#, and flippy drive status
** v1.0 - 26 December 2021
- Firmware is now released separately from the host tools
- No firmware changes since v0.31 (apart from the version bump)
-------------------------------------------------------------------------
All versions below include firmware and host tools in a combined release.
** v0.33 - 14 December 2021
- Support high-density Amiga images (1760kB ADF)
- IPF: Automatic write verification
- New format specifiers for Acorn DFS and ADFS
- New image handlers for Acorn: ADS, ADM, ADL, SSD, DSD
** v0.32 - 14 December 2021
- New format specifiers for IBM, Atari ST and Commodore 1581
- New image handlers for *.ST and *.D81
** v0.31 - 8 October 2021
- F1: Support Low-Density STM32F103C6 chips, 32k Flash, 10k SRAM
- V4: Increase USB buffer size from 16kB to 64kB
** v0.30 - 12 August 2021
- New board type: V4 Slim (AT32F403 MCU, laptop drive interface)
- F7 Slim: Support Disk Change Detect (used by WinUAE floppy bridge)
** v0.29 - 29 July 2021
- gw read/write: Fix memory leak, reducing memory usage by approx 10x
- gw bandwidth: Test USB connection integrity
- New board type: F1 Plus (Unbuffered)
** v0.28 - 22 June 2021
- V4: Improve USB bandwidth and double MCU clock speed to 144MHz
- Fixes "gw bandwidth" warnings
- Firmware: New command CMD_NOCLICK_STEP.
- Used by Rob Smith's WinUAE bridge to implement noclick
- "gw pin": Split into "gw pin set" and "gw pin get"
** v0.27 - 12 May 2021
- EDSK: Support writing KBI-19 protection tracks
- EDSK: Support next IDAM in preceding sector's GAP
- gw seek: New option --motor-on to enable drive motor while seeking
- New firmware command: CMD_GET_PIN to interrogate input floppy pins
- New board type: V4 (using AT32F4xx MCUs)
- New board type: F1 Plus (enhanced BP adapter board by Monideth Pen)
** v0.26 - 26 March 2021
- Support new Greaseweazle model: F7 v3 "Thunderbolt"
- EDSK: Support for writing many protected EDSK files
- Windows 7: Disable jumperless firmware update as it hangs.
- Default head-step delay is doubled to 10ms.
** v0.25 - 27 February 2021
- EDSK: Support for writing unprotected EDSK files
- SCP: Allow disktype header byte to be specified (eg "a.scp::disktype=amiga")
- SCP: Fix import of non-index-cued SCP imnage files
- AmigaDOS: Mark bad sectors with explicit pattern "-=[BAD SECTOR]=-"
- read/write: Add a --retries parameter used if analyse/verify stage fails
- clean: New command to clean a drive using a cleaning disk
- gw: New global option --time to print elapsed time taken by an operation
- gw: Improve reliability of USB connection reset when starting an operation
- flippy: Improve reliability for Panasonic modded drives (find true trk0)
- Linux/Mac: setup.sh better error reporting when run from wrong folder
** v0.24 - 14 January 2021
- Index-cue generated Kryoflux and SCP image files
- Most external tools and emulators fail with non-cued streams
- gw write: New precomp command-line option (see the wiki)
- gw: Backward compatibility with older firmware (only back to v0.23)
- Safer bootloader update (CRC check before erasing existing bootloader)
** v0.23 - 13 January 2021
- Support new Greaseweazle model: F7 Slim
- Read/write/verify 1.44M IMG image files
- Read/write Kryoflux stream files
- Optimisations:
- Rewrite read/verify conversion routines in C
- Fast Amiga track reads (now read an Amiga disk in approx 45 seconds)
- Shrink the Windows distribution zip file
- GW: New track-selection syntax ("--track="). See the wiki.
** v0.22 - 27 November 2020
- Support read and write of Amiga ADF image files
- Increase /STEP pulse width to 15us (fix 5.25" drive seek for Arno Olaf)
- Flippy drives: support 'gw seek' down to track -8
- Revised USB protocol
** v0.21 - 10 September 2020
- Support new Greaseweazle model: F7 Lightning Plus
- Fixes for older drives
- 50us index mask, avoid double triggering on the index signal
- Increase default head-step delay to 5ms
- Windows: Install the CAPS/SPS IPF library automatically
- New command 'gw seek' to seek to specified drive cylinder
- New syntax for specifying Greaseweazle device name on command line
- eg 'gw read --device COM3 a.scp'
** v0.20 - 1 July 2020
- gw write: New options --erase-empty and --double-step
- gw update: Fix COM redetect on Windows running Bitdefender
- Support version 2 of Ant Goffart's F7 Plus
- SCP: support legacy single-sided SCP images
- Automatic import; Export via ::legacy_ss suffix
- eg. gw read --single-sided my.scp::legacy_ss
- SCP: support SCP image files generated by FluxEngine
** v0.19 - 8 June 2020
- F7 v2: Support for the new board design
- gw update: Signature and CRC validation checks
- gw read: Fix end-track field in single-sided SCP images
** v0.18 - 28 May 2020
- gw read: New parameters --rate and --rpm
- rate: Bitcell data rate in kbit/s (eg 250=DD 500=HD)
- Used only for HFE images right now, where default is DD (250)
- rpm: Normalise track timings to the given RPM value
- This occurs before any other conversion or analysis
- gw info: New command to display information about the Greaseweazle setup
- gw bandwidth: Improved stats output
- SCP: Fix single-sided image handling according to latest SCP spec.
- Operates correctly with latest beta version of HxC software
- F7: Support new board designs
- AmberTronic F7 Plus: Kryoflux form factor, output buffers, 12v supply
- F7 Lightning: High Speed USB, output buffers
** v0.17 - 19 May 2020
- Windows: New self-contained executable distribution
- No need to install Python, or module dependencies
- Mac, Linux: Main script is directly executable
- No need to manually invoke the Python interpreter
- GW host tool: Help-text description for each available action
** v0.16 - 15 May 2020
- F7 Firmware: Enable over-drive voltage mode
- Required for reliable 216MHz operation (see datasheet)
- Bootloader update:
- 'gw.py update --bootloader' updates the bootloader
- Not normally required
- Failure may brick the Weazle and require full reflash: Take care!
- Update build system to work with Windows MinGW environment
** v0.15 - 5 May 2020
- Host tool improvements:
- IPF: More robust conversion to raw flux for writeout
- HFE: Fix crash when writing out HFE from third party tools
- F7 Firmware improvements:
- Preparation for High Speed USB (future board using 730Z8 MCU)
- Enable Instruction and Data caches (10x execution speedup)
- Various improvements to bandwidth as reported by 'gw.py bandwidth'
** v0.14 - 29 April 2020
- IPF: Full write support (weak data, index misalignment)
- New GW commands: bandwidth, erase
- bandwidth: Measure USB read/write bandwidth
- erase: Erase a disk
- F7 USB: Improved bandwidth when writing to disk
- Much less likely to see FluxUnderflow failures
- update: Fix a bug which could fail to reopen the GW device for update
- update: Automatically find the update file if filename not specified
- Control script: Tidier notification of errors (no scary backtrace)
** v0.13 - 25 April 2020
- HFE: Read & write support
- IPF: Preliminary write support
- Requires SPS/CAPS support library. See the wiki.
- Weak data not yet supported (RNC "Protect Process" protection, & others)
- Write splice is always rotated to the index (affects Speedlock & others)
- Also TODO: Verified writes
- USB: Use the VID:PID pair assigned to Greaseweazle (1209:4d69)
- New prerequisite: 'bitarray' module. See the wiki.
** v0.12 - 10 March 2020
- GW Autodetect: General improvements, and now works on Windows 7
- New read parameter --double-step to double-step drive heads
- Useful for reading a 40-cylinder disk in an 80-cylinder drive
- New 'pin' command allows a floppy pin to be set to specified level
- Currently supported only for pin 2 (DENSEL)
- New 'reset' command resets the Greaseweazle to power-on settings
- Motors off, drives deselected, power-on pin levels and delay values
** v0.11 - 21 January 2020
- GW.py: Auto-detect the COM/serial port device name
- The device argument is now optional!
- USB: Provide a serial-id string to the host
- Identifier is unique to each Greaseweazle device
- Allows disambiguation between multiple Greaseweazle devices
- Recommended: Full flash from HEX file (embeds serial in bootloader)
- Ubuntu: Udev script now creates a /dev/greaseweazle symlink
** v0.10 - 17 January 2020
- STM32F7xx: Multi-drive support via drive-select config option
- Up to three Shugart drives or two IBM/PC drives
- gw.py read|write --drive {a,b,0,1,2}
- See the "Drive Select" wiki page
** v0.9 - 7 January 2020
- Activity LED
- Lights while a USB-issued command is in progress
- Flashes when enumerated but idle in the firmware-update bootloader
** v0.8 - 6 January 2020
- STM32F73xx: Various Fixes and Improvements
- Allow Firmware Update mode to be forced via strapping Serial RX/TX
- Fix bogus sample values at start of read flux values
- Fix some time constants to be in units of the sample clock
- USB: Advertise USB 2.0 device descriptor
** v0.7 - 6 December 2019
- USB: Fix end-of-stream detection on track writes
- Writes of empty/unformatted tracks sometimes hung forever
- No Flux Area: Firmware automatically masters long NFAs during track writes
- Generating no flux transitions does not read back as a NFA
- STM32F73xx: Initial support for new STM32 MCU
- Two HEX files are included: Use Greaseweazle-F1-* for existing boards!
- Single unified UPD file containing both firmware images
** v0.6 - 15 November 2019
- gw.py: Big overhaul of underlying Python package
- Action (read, write, update) must come first on the command line
- eg. "python3 gw.py read --ecyl=39 foo.scp COM3"
- gw.py: New action "delays" to print/set delay parameters
- eg. "python3 gw.py delays --step=10000" to increase step time to 10ms
** v0.5 - 11 November 2019
- USB: Overhaul the protocol and allow writes to be terminated at index
- Terminate-at-index is always used by current Python control script
- Terminate-at-index prevents an over-long write from overwriting itself
- Fix interruption of track writes (eg. KeyboardInterrupt)
- gw.py: New option --adjust-speed to normalise flux times for target drive
- Measures RPM of the target drive and calculates an adjustment factor
** v0.4 - 5 November 2019
- Blinky: Diagnostic test firmware to detect fake STM32 chips
- https://github.com/keirf/greaseweazle/wiki/STM32-Fakes
- Floppy Write: Fix for very short flux timings
- Floppy Read: Fix for very long flux timings
- USB: Small improvement to double-buffer logic
** v0.3 - 30 October 2019
- Bootloader: Fix Programming-Jumper detection
- Read Track: Various minor fixes
- SCP: Fix the SCP file headers generated by "gw.py read"
** IMPORTANT USER INSTRUCTIONS **:
- Users must serial-update using the v0.3 HEX file
- DO NOT update from v0.2 using the UPD file
- May need to install the crcmod package: eg "pip3 install crcmod"
** v0.2 - 29 October 2019
- USB: Fix hangs during "gw.py read"
- Thanks to Charlie Smurthwaite for telling me how to fix this!
- USB: Improved bandwidth (double-buffered IN/OUT endpoints)
- Reduces risk of buffer underflow/overflow during disk operations
- Firmware Update: Requires a jumper across A14 (aka DCL) and GND
- eg. "python gw.py update Greaseweazle-v0.2.upd COM3"
** v0.1 - 17 October 2019
- First release