forked from sanworks/Bpod_Gen2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRelease Notes.txt
137 lines (126 loc) · 12.1 KB
/
Release Notes.txt
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
---v1.70---
-Added support for state machine firmware v23 on all versions of the state machine hardware (note: v22 is still supported)
-Added support for state machine 2+ and the new Flex I/O channel type
-Added support for USB serial port auto-discovery on Windows 11 and fixed auto-discovery on Linux
-Added firmware and hardware version information for FSM and all modules to default data structure
-Added support for circuit board revision number readout with FSM firmware v23. On revisions after 7/1/2022, an array of grounded pins indicates rev#.
-Added support for minor firmware version. This will be incremented with all pushes on develop and reset to 0 with major version releases
-Added support for direct connection of an external app to the state machine via a second USB serial port (FSM 2 or newer, requires Firmware v23)
-Added a new sync channel scheme with FW v23: a 10Hz square wave runs for the duration of the trial, with logic flips on trial start/end.
-Added assertModule() method of BpodSystem. Throws an error if the named module is not connected. An optional flag will also error if not USB paired.
-Added AddFlexIOAnalogData(), an optional function run after the session to combine the Flex I/O analog data file with the main behavior data structure.
-Added an error on startup if duplicate versions of Bpod_Gen2 exist in the MATLAB path
-Fixed issue where multiple copies of UI windows could be launched
-Fixed issue where UI windows could be left open on closing the console
-Fixed issue where final status of previous session would continue to display in Bpod console on starting a new session
-Updated BpodErrorSound to avoid use of AudioRead
-Updated firmware binaries
-Updated example protocols to use latest syntax
-Improved error messages for AddState() and Bpod()
-Limited console GUI refreshes when USB data is backlogged in buffer. Improves handling of high frequency events.
-Updated EndBpod to automatically close any Bpod GUI windows
-LoadBpodFirmware: Added pre-configuration to replace UpdateBpodFirmware for routine updates.
-LoadBpodFirmware: Added support for multiple firmware versions for each device (e.g. to roll back a firmware update)
-LoadBpodFirmware: Added support Teensy RawHID devices (i.e. on first load)
-Audio: Added GenerateSineChord, a convenience function for making audio chords for use with HiFi module and PsychToolboxAudio class
-Audio: Added GenerateSineSweep, a convenience function for making pure tone sweeps for use with HiFi module + PsychToolboxAudio
-Audio: Added SoundCalibration_Manual(), a function to generate audio calibration curves manually using a hand-held dB meter
-Video: Added PsychToolboxVideoPlayer, a new class to play video on a secondary display. Depricated PsychToolboxVideoServer.
-Python integration: Added TCPCom.py, a Python class for Python applications to exchange bytes with Bpod's TCPCom class
-Python integration: Added FindAnaconda(), a convenience function to discover the path to the user's default anaconda installation (Windows PC only)
-Python integration: Added LaunchAnacondaApp(), a function to launch an Anaconda environment and run a .py file from the MATLAB command line
-Examples: Added SyncTTL, example code for Teensy 3.2 + Bpod Teensy Shield to record and timestamp TTL signals from multiple sources incl. state machine
-Examples: Added FlexIOAnalogLight2AFC protocol, a light-guided 2AFC task with concurrent analog acquisition from FSM 2+ Flex I/O channels
-Examples: /Protocols/Wheel/ now contains an auditory Poisson click 2AFC task using HiFi module for clicks and the rotary encoder for choice responses
-TrialManager: Fixed unhandled error if using FSM firmware v22 and a state machine description with implicit serial messages on trial 1
-TrialManager: Now supports implicit multi-byte serial messages, e.g. {'MyModule', ['P' 2 3]} instead of LoadSerialMessages (req. firmware v23)
-TrialManager: Fixed dead-time warning bug (previously the warning was delayed until the end of the trial)
-ArCOM: Added support for MATLAB's new serialport() class (r2019b and newer). This is now used by default when available.
-ArCOM: Added function to flush input buffer
-ArCOM: Added double sided buffer to process incoming data. Uses 2x memory but is much more efficient if events are high frequency
-HiFi Module: Fixed bug where amplitude of synthesized sounds at amp = 1 was actually 1/2 full scale (requires latest firmware)
-HiFi Module: Fixed bug where after a power cycle, sounds could be played after loading but before push(). This would play whatever was on the SD card.
-HiFi Module: Added function to disable UART serial port scanning during USB data transfer
-Rotary Encoder Module: Added support for hardware v2
-Rotary Encoder Module: Added option to readUSBStream() to specify an event code marking the end of the data read on this call.
-Rotary Encoder Module: Added an optional MATLAB user callback function to run each time new USB position data is discovered (at 100Hz max)
-Analog Input Module: Updated BpodAnalogIn() class to use ArCOMObject_Bpod. The _Ain version of ArCOM is now depricated.
-Bpod Emulator: Fixed bug in global timer trigger and cancel. Previously timers above 2 were not triggered and canceled correctly.
-Bpod Emulator: Fixed bug that caused the hardware info GUI to crash on launch.
---v1.64---
-Initial release of HiFi Module: MATLAB class, Python class, BControl patch, firmware binaries and example protocols
-Added LoadBpodFirmware.m, a new "superuser" firmware loading tool. UpdateBpodFirmware should be used for routine updates.
-Analog Output: Added setFixedOutput to WavePlayer module, to set a fixed voltage on any channel(s).
-Analog Output: Updated WavePlayer firmware to support setFixedOutput, and to remove dependencies
-Analog Output: With firmware update, setupSD is no longer necessary before first use
-Analog Input: Added a datalogging feature to the analog input UI, and an example protocol using it.
-Analog Input: Added serial op to sync the state machine with the AIM's USB stream via sync bytes (see new example protocol)
-Updated firmware uploader to support Teensy 4.0 + 4.1 boards (HiFi module, State Machine r2+)
-Fixed GenerateSineWave accessory function to remove extra sample
---v1.63---
-Fixed bug introduced in v1.62 - Previously, when the user navigated to a folder of protocols, the protocol path did not correctly update if the first protocol in the new folder was selected. This would result in data being saved into the folder for the previous protocol selected, with an the previously selected protocol in the file name.
---v1.62---
-Fixed crash issue with small (128-1024 sample) acquisition sessions in Analog Input firmware (requires firmware update)
-Fixed issue with loop mode in WavePlayer firmware (requires firmware update)
-Fixed rendering issues with TrialManager and Bpod Console on newer verisons of MATLAB
-Fixed issue with default manual override panel's serial terminal handling of byte 255 (Contributed by Florian Rau in Poulet Lab @ MDC Berlin)
-Added StateTiming plot (Contributed by Florian Rau in Poulet Lab @ MDC Berlin)
-Fixed issue in Bpod Emulator handling of global counters
-Fixed issue in Bpod Emulator handling of conditions
-Fixed issue with Rotary Encoder class - a confirmation byte is received on setting current position
-Added Farenheit readout to ambient module read function
-Added support for HiFi Module (beta) with example protocols
-Added PCLink example code for Teensy Shield (this is one way for the state machine to relay bytes to a separate PC)
---v1.61---
-Added warning (to command window) when TrialManager detects inter-trial intervals longer than 200 microseconds (e.g. if inter-trial code took longer than 1 trial duration to complete)
-Fixed bug where LoadSerialMessages() did not accept third argument for message index
-Updated comments in example protocols, and to include usage of NewStateMachine() instead of deprecated NewStateMatrix()
-Set default precision of timestamps returned by TrialManager to 0.1ms
-Added example Python code for Bpod Raspberry Pi Shim. The example runs an 'echo module' as per example Arduino and Teensy firmware. Comments in the example file are important for setup.
-Added compatability fixes to TeensySoundServer plugin. Please note that TeensySoundServer is deprecated, and new projects should use TeensyAudioPlayer instead (see /Modules/ folder).
---v1.60---
-Optimized TrialManagerObject handling of rapid event streams
-Updated support for CCU's HARP sound card
-Added class for showing single frames on a second monitor using PsychToolbox (interfaced with the state machine using soft codes)
---v1.59---
-Added UI fixes for MATLAB r2018b and Ubuntu 18
-Added new PsychToolboxAudio plugin, to improve on PsychToolboxSoundServer with an improved interface. PsychToolboxSoundServer is still supported.
-Updated PsychToolboxAudio and PsychToolboxSoundServer plugins to support HTOmega FENIX and ASUS Xonar AE sound cards
-Updated PsychToolboxAudio and PsychToolboxSoundServer plugins to support WASAPI interface (ASIO is used by default if it is detected)
-Added implicit programming of serial messages, e.g. in OutputActions, {'MyModule', ['P' 4 2]} is now valid (though not if used with TrialManager)
-Changed saving option from -v6 to standard (this is actually faster in MATLAB r2018+ and similar in r2013-2018)
-Added notification and instructions if user has Xonar DX or DSX on Windows without ASIO
-Added echo module example firmware for Adafruit Metro M4 (for use with Bpod Arduino Shield)
-Updated GUI font to courier, removed font installation requirement
-Added preliminary interface to Champalimaud Hardware Platform's HARP sound card (note: this is an alpha release and has known issues)
-Changed timing precision of rotary encoder module (REM) from ms to us (requires REM firmware update to v5)
-Added plugin to interface with Pololu Maestro servo controller (can be used to trigger servo motors with soft codes)
-Added class for Ethernet module to act as a TCP server and relay incoming bytes from clients to state machine (requires Ethernet module firmware swap)
-Added support for sound calibration with NI USB-6211 and Bruel&Kjaer Nexus Condition amp + microphone (requires Data Acqusition Toolbox)
---v1.58---
-Added software to keep MATLAB software current: UpdateBpodSoftware(). Currently requires Win7 or Win10 with MATLAB r2014b+
-Added firmware update app to keep Bpod firmware current: UpdateBpodFirmware(). Currently requires Win7 or Win10.
-Fixed axes display in TrialTypeOutcomePlot plugin
-Minor optimization to AddState() function (now uses prepared vectors instead of ones() and zeros() to populate defaults)
-Removed drawnow() from update method of BpodParameterGUI to reduce inter-trial dead-time on MATLAB versions newer than r2014b
-Fixed a bug in TrialManager() that would cause crashes when state names varied between trials
-Disabled PhoneHome transmissions on boot and protocol-start (to resume once Sanworks has a 100% reliable web host)
---v1.57---
-Fixes to analog input module class (+matching fixes to its firmware repository), fix streaming to scope UI at sampling rates >1kHz
---v1.56---
-Updated current state machine firmware to v21 (optimizations for state machine r2)
-Added support for Bpod port array module
-Updated rotary encoder class with several bug-fixes, support for 8 thresholds and support for capturing + timestamping state machine byte codes
-Updated BControl patch to improve handling of laggy USB serial buffers on some systems
---v1.55---
-Fixed SSL handshake bug in PhoneHome program (CRITICAL)
-Enabled rotary encoder module to log and timestamp bytes from state machine
-Added 'unipolar' mode to rotary encoder module, for treadmill assays
-Restored display of automatically changing parameters in BpodParameterGUI
-Updated serial interface syntax used to relay Bonsai soft codes
-Updated BControl patch to handle pausing and sound server reset following a MATLAB force-quit
---v1.54---
-Added Ethernet Module support with PsychToolbox (previously req. Instrument Ctrl Tlbx)
-Added in-trial pause support to BControl patch
-In BControl patch, added ability to list channels in any order in settings_custom.conf
-In BControl patch, added ability to loop sounds on sound server (vs. looping sched. wave)