Skip to content

Releases: wntrblm/Castor_and_Pollux

March 9th, 2021

09 Mar 19:16
Compare
Choose a tag to compare

This is a bugfix & maintenance release for Castor & Pollux's firmware, Gemini ♊️.

👉 Most users should download gemini-firmware-2021.03.9-release.uf2 👈

Please follow the firmware upgrade instructions in the user's guide to upgrade your device's firmware.

About the files

  • The uf2 files can be installed using the firmware upgrade instructions in the user's guide.
  • The elf files and are for testing & debugging and can be programmed using an appropriate debug probe.
  • The release builds are built without debugging information.
  • The debug builds are built with debugging information.

Build identifier

Each release of the firmware has a unique build ID. This ID can be seen when using the online settings editor and allows finding the exact firmware version on your device. The build IDs for this version are:

Changes from 2021.03.1

Firmware:

  • Update default value for pollux_follower_threshold from 56 to 100 to accommodate some values seen during setup of the initial factory run

Docs:

  • Update the settings editor page and remove the warning about it not yet being available
  • Fix bug in settings editor where it wouldn't save the pollux_follower_threshold field

Factory:

  • Restore commented out firmware check in monitor.py

Hardware:

  • Increase the programming board's outline thickness to push the copper fills back from the board edge

March 1st, 2021

01 Mar 19:08
Compare
Choose a tag to compare

This is a bugfix & maintenance release for Castor & Pollux's firmware, Gemini ♊️.

👉 Most users should download gemini-firmware-2021.03.1-release.uf2 👈

Please follow the firmware upgrade instructions in the user's guide to upgrade your device's firmware.

About the files

  • The uf2 files can be installed using the firmware upgrade instructions in the user's guide.
  • The elf files and are for testing & debugging and can be programmed using an appropriate debug probe.
  • The release builds are built without debugging information.
  • The debug builds are built with debugging information.

Build identifier

Each release of the firmware has a unique build ID. This ID can be seen when using the online settings editor and allows finding the exact firmware version on your device. The build IDs for this version are:

Changes from 2021.02.25

Factory:

  • Add firmware version check to monitor and ability to update the firmware
  • Check firmware version when running monitor

Firmware:

  • Add sysex command to reset into the bootloader
  • Add wntr_bootloader to allow resetting into the bootloader
  • Fix reference to non-existent file in scripts/samd21g18a.ld
  • Update libwinter

Hardware/progboard:

  • Add dedicated jack for interfacing with knob inputs

February 25th, 2021

25 Feb 17:18
Compare
Choose a tag to compare

This is a bugfix & maintenance release for Castor & Pollux's firmware, Gemini ♊️.

👉 Most users should download gemini-firmware-2021.02.25-release.uf2 👈

Please follow the firmware upgrade instructions in the user's guide to upgrade your device's firmware.

About the files

  • The uf2 files can be installed using the firmware upgrade instructions in the user's guide.
  • The elf files and are for testing & debugging and can be programmed using an appropriate debug probe.
  • The release builds are built without debugging information.
  • The debug builds are built with debugging information.

Build identifier

Each release of the firmware has a unique build ID. This ID can be seen when using the online settings editor and allows finding the exact firmware version on your device. The build IDs for this version are:

  • Release: 2021.02.25 (release) on 02/25/2021 17:17 UTC with gcc 10.2.1 by [email protected]
  • Debug: 2021.02.25 (debug) on 02/25/2021 17:17 UTC with gcc 10.2.1 by [email protected]

Changes from 2021.02.21

Firmware:

  • Remove unused look-up table support in wntr_bezier
  • Regenerate gem_lookup_tables.c
  • Replace test.mk with a wintertools.buildgen script
  • Fixup tests to point to wntr_error_correction
  • Move gem_error_correction to libwinter/wntr_error_correction
  • Move gem_adc_helpers to libwinter/wntr_uint12
  • Track idle cycles instead of adc milliseconds, since the adc samples faster than 1ms
  • Split the "hello" sysex command into one to get the build id and one to enter calibration mode
  • Skip look-up table for knob bezier calculation.
  • Add requirements.txt and install it during the github actions run
  • Remove unused third_party/ninja
  • Move a lot of the build generation logic over to wintertools
  • Fix bug where non-linear tuning knob response wasn't actually being applied.
  • Add soft reset sysex command

Meta:

  • Fix release script
  • Run firmware tests on github actions (#10)
  • Don't run format when building on github actions
  • Use the right ninja command in gh-actions
  • Add configuration for wintertools.release

Factory:

  • Fixup monitor script
  • Re-write monitor script to make it easier to test modules
  • Don't wait for key input to continue after firmware flashing
  • Remove unused import; add friendly finished message
  • Fix invalid call to get_firmware_version
  • Use new sysex command for calibration mode.
  • Soft-reset after setup is complete

February 21st, 2021

21 Feb 07:21
Compare
Choose a tag to compare

This is a bugfix & maintenance release for Castor & Pollux's firmware, Gemini ♊️.

👉 Most users should download gemini-firmware-2021.02.21-release.uf2 👈

Please follow the firmware upgrade instructions in the user's guide to upgrade your device's firmware.

About the files

  • The uf2 files can be installed using the firmware upgrade instructions in the user's guide.
  • The elf files and are for testing & debugging and can be programmed using an appropriate debug probe.
  • The release builds are built without debugging information.
  • The debug builds are built with debugging information.

Build identifier

Each release of the firmware has a unique build ID. This ID can be seen when using the online settings editor and allows finding the exact firmware version on your device. The build IDs for this version are:

  • Release: 2021.02.21 (release) on 02/21/2021 07:19 UTC with gcc 10.2.1 by [email protected]
  • Debug: 2021.02.21 (debug) on 02/21/2021 07:19 UTC with gcc 10.2.1 by [email protected]

Changes from 2021.2.19

Docs:

  • Update links to the github repository to use the main branch instead of master. Closes #9

Factory:

  • Add script to reset knob range settings
  • Don't wait for the scope to measure the frequency
  • Lower the number of measurement points for the ADC calibration

February 19th, 2021

19 Feb 06:01
Compare
Choose a tag to compare

This is a bugfix & maintenance release for Castor & Pollux's firmware, Gemini ♊️.

👉 Most users should download gemini-firmware-2021.2.19-release.uf2 👈

Please follow the firmware upgrade instructions in the user's guide to upgrade your device's firmware.

About the files

  • The uf2 files can be installed using the firmware upgrade instructions in the user's guide.
  • The elf files and are for testing & debugging and can be programmed using an appropriate debug probe.
  • The release builds are built without debugging information.
  • The debug builds are built with debugging information.

Build identifier

Each release of the firmware has a unique build ID. This ID can be seen when using the online settings editor and allows finding the exact firmware version on your device. The build IDs for this version are:

Changes from 2021.2.9

Features:

  • Added the ability to restore ADC calibration from factory backup in the settings editor.
  • Modified the way pitch knob non-linearity is applied- it now creates a virtual notch/detent at 0.0 (true tune) regardless of the range of the pitch knob. Previously the virtual notch/detent would be in the center of the range, which could be different from 0.0.

Bugfixes:

  • Made the settings editor work with the firmware's updated settings chunking protocol.
  • Fixed the control type for the knob non-linearity in the settings editor.

Documentation:

  • Increased overall contrast
  • Explicitly marked external links with an icon

Internal changes:

  • firmware: change the default range for knobs (again)
  • firmware: add basic tests for gem_oscillator
  • firmware: refactor code in gem_adc out into gem_error_correction and gem_adc_helpers
  • firmware: update gem_oscillator to use new bezier function
  • firmware: expand wntr_bezier to accept all four points for a quadratic curve. Add tests
  • firmware: only apply ramfunc annotation when compiling for ARM
  • firmware: move some functions into RAM
  • firmware: add basic hardfault handler
  • firmware: move samd21 gpio implementation into libwinter
  • firmware: move serial number into libwinter
  • factory: Add setup step to erase NVM
  • factory: regenerate gem_settings.py
  • firmware: remove the CV knob range multiplier and just use a higher default value for the knob range setting
  • factory: fix Sol channels for ADC/AFE calibration
  • Initialize Gemini before oscilloscope in ramp calibration

February 9th, 2021

10 Feb 05:26
Compare
Choose a tag to compare

This is a bugfix & maintenance release for Castor & Pollux's firmware, Gemini ♊️.

👉 Most users should download gemini-firmware-2021.2.9-release.uf2 👈

Please follow the firmware upgrade instructions in the user's guide to upgrade your device's firmware.

About the files

  • The uf2 files can be installed using the firmware upgrade instructions in the user's guide.
  • The elf files and are for testing & debugging and can be programmed using an appropriate debug probe.
  • The release builds are built without debugging information.
  • The debug builds are built with debugging information.

Build identifier

Each release of the firmware has a unique build ID. This ID can be seen when using the online settings editor and allows finding the exact firmware version on your device. The build IDs for this version are:

Changes from 2021.1.26

Bugfixes:

  • The firmware now nudges the range of the pitch knobs to compensation for the SAM D21's behavior near the lower end of its range.
  • The firmware now does a separate error correction pass on the pitch CV input which increases pitch accuracy.
  • The factory setup scripts now properly apply error correction when re-measuring ADC results.

Documentation:

  • Added new pitch CV calibration fields to the settings editor.
  • Added explanation about tuning the oscillators using non-linear pitch knobs.
  • Added OSHW certification info.
  • Added CONTRIBUTING.md.

Internal changes:

  • Removed unused gem_config.c
  • Quieted the build rule that runs clang-format.
  • Changed the channel used to calibrate the ADC.
  • Generated a new reference & fallback ramp amplitude calibration.
  • Renamed the not-so-clear "voice params" & associated tables to more clear "oscillator outputs", "pitch table", and "ramp table".
  • Refactored look-up table routines.
  • Refactored all of the oscillator update logic into gem_oscillator.c.
  • Moved a significant amount of non-Gemini-specific code from the factory setup scripts over to https://github.com/theacodes/wintertools.
  • Moved a significant amount of non-Gemini-specific code from the firmware into firmware/third_party/libwinter.
  • Changed the ADC/AFE calibration strategy. The ADC gain and offset error is now measured by setting voltages to an ADC channel that has a direct connection. The scripts then separately measure the gain and offset error for the pitch CV inputs through their analog front ends.
  • Changed the ramp amplitude calibration strategy to use a smaller number of calibration points.
  • Changed the ramp calibration table format.
  • Optimized look-up table linear interpolation to use integer division directly instead of relying on fix16's routines.
  • Updated SysTick/wntr_ticks to use the standard SystemCoreClock variable instead of a custom F_CPU define.
  • Switched the factory shell.py to an ipython-based shell.
  • Created factory/libgemini/oscillators.py with several helpers for calibrating and controlling the oscillators.
  • Moved all generated code sources into firmware/src/generated.
  • Switched the build system from GNU Make to Ninja - builds are significantly faster.
  • Added configuration for GitHub actions.
  • Renamed static symbols from _{name} to {name}_.
  • Fixed the JLink flashing script to properly reset the device.

Hardware design changes:

  • Updated the sheet symbols in the schematic to show the direction for inputs/outputs.
  • Updated the board outline to satisfy manufacturing constraints.
  • Updated component part numbers to accommodate supply chain issues.
  • Created mainboard revision 3 which fixes a bug where we used the wrong transistor in the ramp core.
  • Created a new programming board which adds significantly more test points.

January 26th, 2021

26 Jan 18:33
Compare
Choose a tag to compare

This is a bugfix release for Castor & Pollux's firmware, Gemini ♊️.

👉 Most users should download gemini-firmware-2021.1.26-release.uf2 👈

Please follow the firmware upgrade instructions in the user's guide to upgrade your device's firmware.

About the files

  • The uf2 files can be installed using the firmware upgrade instructions in the user's guide.
  • The elf files and are for testing & debugging and can be programmed using an appropriate debug probe.
  • The release builds are built without debugging information.
  • The debug builds are built with debugging information.

Build identifier

Each release of the firmware has a unique build ID. This ID can be seen when using the online settings editor and allows finding the exact firmware version on your device. The build IDs for this version are:

  • 2021.1.26 (Release) on 01/26/2021 18:31 UTC with arm-none-eabi-gcc 10.2.1 [email protected]
  • 2021.1.26 (Debug) on 01/26/2021 18:31 UTC with arm-none-eabi-gcc 10.2.1 [email protected]

Changes from 2021.1.23

Bugfixes:

  • Fixed a bug where turning the pitch knobs all the way clockwise would cause the pitch to jump around.

Documentation:

  • Added a section in the user guide on tuning the oscillators & how the pitch knobs are non-linear.

Other changes:

  • The maximum LFO frequency was lowered to 5 Hz

Internal changes:

  • Added Micro Trace Buffer
  • Added SysEx monitoring functionality
  • Calibration mode now has a distinct blue and pink LED pattern
  • JLinkCommander now properly exits with a failure if programming fails
  • Factory setup script now logs to a file

January 23rd, 2021

24 Jan 02:08
Compare
Choose a tag to compare

This is the initial release of Castor & Pollux's firmware, Gemini ♊️.

👉 Most users should download gemini-firmware-2021.1.23-release.uf2 👈

Please follow the firmware upgrade instructions in the user's guide to upgrade your device's firmware.

About the files

  • The uf2 files can be installed using the firmware upgrade instructions in the user's guide.
  • The elf files and are for testing & debugging and can be programmed using an appropriate debug probe.
  • The release builds are built without debugging information.
  • The debug builds are built with debugging information.

Build identifier

Each release of the firmware has a unique build ID. This ID can be seen when using the online settings editor and allows finding the exact firmware version on your device. The build IDs for this version are:

  • 2021.1.23 (Release) on 01/24/2021 01:43 UTC with arm-none-eabi-gcc 10.2.1 [email protected]
  • 2021.1.23 (Debug) on 01/24/2021 01:43 UTC with arm-none-eabi-gcc 10.2.1 [email protected]

Changes from the beta firmware

  • The pitch knobs are now non-linear. The middle of the range is spread out over more area which makes the oscillators easier to tune - think of it kind of like a bell curve.
  • Fixes a bug where the error correction for the knobs was applied incorrectly.
  • Each firmware version now bears a Build ID.
  • SysEx message formats were completely changed; the online settings editor no longer works with the beta version.
  • The device's serial number is available over SysEx.