Skip to content

DSPi Console v1.1.6-beta2

Choose a tag to compare

@WeebLabs WeebLabs released this 25 Aug 07:03
· 62 commits to master since this release

This is the second beta of version 1.1.6. It adds support for the I2C character and OLED displays introduced in recent DSPi firmware, together with the front-panel editing, the level bars, the line alignment and the per-LED brightness limit that accompany them.

The beta has since been refreshed in place. It now opens its Settings upon a new Overview page that maps every GPIO the device is holding, and a conflict over a pin is now resolved where it arises rather than merely reported.

The folder layout is unchanged from version 1.1.5. The archive contains a single DSPiConsole.exe at the top level, with the application and its dependencies in an app subfolder. Extract the entire folder, preserve its structure, and run DSPiConsole.exe as before.

What's new

  • Displays: A character or OLED panel connected to a pair of I2C pins may now be configured from the Control Surfaces page. It is added in the same manner as any other control and is given a model, a pin pair and an address; only the data pin is offered, because the pin multiplexer fixes the clock as the next pin above it. What the panel shows is configured separately, as a set of dashboard pages: anything that a control may drive, a page may show, including channel groups. Each page is edited upon a single row, and the whole card applies as it is edited: the wiring - model, pins and address - no longer waits upon an Apply button, since each field is valid alone. The panel may rest upon a single page, cycle a chosen set of pages, or cycle every parameter that the device provides, and whichever it is doing, a parameter that has just changed is shown briefly before the panel returns to what it was displaying.
  • Front-panel editing: Three parameters allow a panel to be operated without a computer. Show Page moves through the configured pages, Allow Editing arms the panel for editing, and Browse/Adjust alters whatever is displayed. A single encoder and a single button therefore provide a conventional browse, arm and adjust front panel. Editing disarms itself after a configurable period, and arming is required by default, so that an inadvertent knock upon the control moves through the pages rather than altering a parameter.
  • Level bars and large values: A page may draw its value as a bar within the parameter's own range or, upon a graphic panel, in a pixel-doubled font. A bar is offered only for a parameter that possesses a range within which to plot one.
  • Line alignment: The name and the value are each placed to the left, the centre or the right of the panel.
  • A brightness limit for dimmable LEDs: A PWM LED may be assigned a ceiling expressed as a percentage of full brightness. The limit scales the whole of the LED's range rather than clipping the top of it, so that a level meter retains its full sweep. A panel of mismatched indicators may therefore be evened out, or the whole of one dimmed for a darkened room.
  • Remote keys may drive a channel group: A learned remote button may now address a group in place of a single channel, which previously required a macro to be fired upon each press.
  • New parameters: CPU Load, which may be shown upon a page or followed by an indicator, together with the three display parameters described above.
  • A hardware Overview: The Settings window now opens upon an Overview page that maps every GPIO on the header. A claimed pin is coloured by the role it serves — output, clock, input, control or utility — and beneath the map, a card per role lists each of its pins beside the feature holding it. Clicking a pin, whether upon the map or within a card, shows the page upon which it is set and rings the very picker that sets it.
  • A conflict is resolved where it arises: Enabling a feature whose stored pin is already in use now offers a choice of pin in place of a refusal. Every clashing pin is presented together — raising the I2S channel count may contest several at once — with each row naming what stands in the way, offering the pins that remain free, and carrying an eye that shows the page holding the pin. Where nothing may be offered, the refusal at least names the feature holding the pin, with the same eye beside it.

Fixes

  • A binding that the device refuses is no longer discarded: An Apply that failed re-read the device, which for a refused binding returns an empty slot; the card therefore emptied itself and removed the message explaining the refusal, which read as though adding the control had done nothing at all. The rejected draft is now retained, together with the reason for which it was refused.
  • A newly created channel group is now available immediately: A group added upon the Channel Groups page did not appear within the target pickers of the other Control pages until the Settings window had been closed and reopened. A page that was not being displayed at the time was not informed of the change, and the refresh itself examined only those controls that already referenced a group.
  • Changing a remote button's parameter no longer retains the previous one's settings: The channel, the value and the step size belonging to the parameter previously assigned were carried over, and the device rejected them where they did not apply to the parameter newly chosen.
  • Editing one dashboard page no longer redraws the others: An edit rebuilt the whole list, which showed itself as a brief flicker across every row; only the row edited is now repainted.
  • A pin held by an inactive I2S pair is now accounted for: The firmware reserves the pins of every configured I2S input pair, active or not, when an I2S pin is assigned. Such a pin was refused by the I2S page while every other page showed it free, and no page admitted to holding it. The pin pickers and the conflict messages now observe the same rule as the firmware, and each input pair names itself with its number wherever it is reported.

Known issues

  • A channel muted from the main window rather than from the matrix mixer may be written into a preset file as unmuted, until the application next re-reads the device.
  • Output channel pairs cannot yet be linked.
  • The routing preview for output channels displays only the first two routed input channels.

Requires DSPi firmware that provides I2C display support. The level bars, the line alignment and the per-LED brightness limit each require a more recent firmware still. Every feature that the installed firmware does not provide is hidden.