Soarer's Keyboard Controller firmware

User avatar
alh84001
v.001

29 Sep 2017, 07:57

Does soarer's controller/converter support locking keys in any way? I tried mapping a locking caps lock key on my board to 'LOCKING_CAPS_LOCK' but then the key is simply not functioning. Setting it to 'CAPS_LOCK' works, but I then need to release the lock key and press it again to exit CAPS LOCK mode (releases don't do anything, only presses toggle the state, as is expected).

orihalcon

04 Oct 2017, 07:10

I have been interested in this too. There is a command that is mentioned only once in his documentation called "onbreak" that would in theory work for this. The idea behind onbreak I think was to have an action taken when the key is released.

Macro would go something like:

macroblock
macro CAPS_LOCK
Press CAPS_LOCK
onbreak
Press CAPS_LOCK
endmacro
endblock

My understanding is that pressing your locking caps lock the one time gives you one emulated caps lock press (which is "latched" down so it doesn't release on its own), then when you do un latch it, that counts as the break/"onbreak" of the physical caps lock key and the macro presses caps lock again which disables the caps lock state.

Pretty sure I tried this exact combination and it didn't work though.

Problem may be that a macro may not be able to allow other keypresses to occur while a macro is running, which would kind of defeat the purpose as using caps lock without later pressing other keys is pretty useless.

Easy fix if you don't care about the caps lock LED is just to map caps lock to shift, so it's more like a shift lock at that point, but you'll still get capital letters when that's latched down. Would love to have a real working solution for this though.

Anyone else have any ideas on how to write a macro for locking caps lock?

User avatar
alh84001
v.001

04 Oct 2017, 13:48

Thanks on the info. The board itself doesn't have LEDs, so that's not an issue, and I just might do what you proposed. In the meantime I actually mapped caps lock key to Ctrl and disabled the latching mechanism. Still, it would be helpful if this could be achieved.

orihalcon

04 Oct 2017, 15:08

Ok, I figured out what the issue was with the above posted macro. It works on Windows, but not on Mac. I think the Mac has a built in accidental caps lock keypress avoidance for caps lock, so the switch has to be down more than just momentarily to for the OS to recognize it. Figured this out by rapidly tapping the caps lock key on a Macbook Air and that didn't activate caps lock even though I'm sure it was pressed hard enough to actuate the switch.

Universal Locking Caps Lock for Windows and Mac works with the following Macro:

Code: Select all

macroblock
macro CAPS_LOCK
     MAKE CAPS_LOCK
     DELAY 200
     BREAK CAPS_LOCK
onbreak
     MAKE CAPS_LOCK
     DELAY 200
     BREAK CAPS_LOCK
endmacro
endblock 
I have a future project that this is definitely going to come in handy for :)

Hopefully that helps someone else!

Strg-F17

29 Oct 2017, 16:13

I am trying to use a Teensy++ 2.0 with Soarer's Controller as a replacement controller for a G80-1502 PCB. After some experiments with a Teensy clone, that did not work properly, I went for a genuine Teensy and now everything works... except for the lock LEDs. Switching them on and off works fine, but they are only glowing very weakly. I am using those standard 5mm green LEDs with 150 Ω resistors and have connected them to pins PB0, PB1 and PB2 of the Teensy (I also tried PB4-PB6). I've measured 4.72 volts between PB0-2 and GND. I would be very thankful if anyone has an idea what I am doing wrong.

User avatar
vinnycordeiro

29 Oct 2017, 16:23

Try lowering the resistors' values, 100 Ω should be fine.

Strg-F17

29 Oct 2017, 16:38

Thanks, vinnycordeiro. Unfortunately that doesn't help. I even tried it without any resistor (and with other LEDs), but everything I get is this weak glowing.

listofoptions

30 Apr 2018, 17:07

Soarer wrote: Here is my Controller firmware for AVR microcontrollers with hardware USB, e.g. Teensy 2.0, Teensy++ 2.0.

The main difference between this and other controller firmwares is that all configuration is performed using a config file, rather than modifying the C source code. A few example matrix configs are included, covering some very different keyboards.

Retrete was the initial guinea pig with his vintage Kevex terminal - the discussion there serves as an example walk-though of how to apply this firmware to a keyboard. Two videos as well!

The best way to approach making the matrix config is to first set it up with all keys set to 'UNASSIGNED', then to use hid_listen to see which matrix code fires for each key and debug any wiring problems. That way you don't get unintended keystrokes sent to your OS, which could be painful!

All of the features of my Converter (NKRO, remapping, layer, macro, etc) are supported (except, of course, 'ifset').

Matrix scans can include 'classic' matrix (direct connections to rows and columns), multiplexed (strobes are driven through a decoder), and unstrobed (where individual keys are connected to pins). Various polarity and mode settings are available to cover many requirements. There's also options for scan rate, debouncing time and mode, including turbo mode which adds no delay, and a blocking flag to enable de-ghosting.

Currently at beta stage, with only bugfixes and minor changes expected before the first proper release. There is a single .html page included in the zip describing the Controller specific configuration - you'll also need the docs from my Converter (available on DT and GH).

Required hardware is an AVR microcontroller with more than 16KB RAM, and hardware USB with a decent amount of buffer memory. This includes the ATmega32U4 and better, but does NOT include the ATmega32U2.

sorry to res a very old thread, but would it be possible to get the source for this controller? I'de love to see it updated,
and I've been working on getting a bluetooth bigfoot (bluefoot?, blue-bigfoot?, big-blue-foot?) up and running (using parts of this tutorial:
https://learn.adafruit.com/convert-your ... d/overview
so having an easily scriptable controller like this one is a serious boon!

User avatar
vinnycordeiro

30 Apr 2018, 18:18

listofoptions wrote: sorry to res a very old thread, but would it be possible to get the source for this controller? I'de love to see it updated,
Soarer never made the source available AFAIK. There were a discussion some time ago about reverse engineering the program, but I don't know the current state of this affair.

consideringquiet

30 Jan 2019, 01:15

So I've been trying to use soarers firmware on the NCR 4950, however whenever I use HID listen the board is listing itself as PC/XT, despite the fact the keyboard is supposed to be AT. Also, the HID listen is kicking out error code wEE and remainder fffc. Does anyone know what that could mean?

Lbibass

30 Jan 2019, 02:26

It is possible that you may need to switch the jumpers on the inside.

consideringquiet

30 Jan 2019, 02:32

Lbibass wrote:
30 Jan 2019, 02:26
It is possible that you may need to switch the jumpers on the inside.
I tried every combination that was possible outside of vcc and sgn grnd, nada :(

ZyBeR

23 Aug 2020, 10:09

Is there anyway of controlling Num Lock and Scroll Lock leds, for example as layer indicators?

holysoles

19 Sep 2020, 06:21

ZyBeR wrote:
23 Aug 2020, 10:09
Is there anyway of controlling Num Lock and Scroll Lock leds, for example as layer indicators?
Did you figure anything out in regards to this? I would find this useful for what I'm trying to do as well

ZyBeR

19 Sep 2020, 16:52

No I'm afraid I didn't, would be really cool though.

Post Reply

Return to “Workshop”