Hello everyone, this is Rico!
With Ellipse acknowledgment please let me share the current status and future work of the Leyden Jar controller here.
First I'd like to apologize for my lack of presence in this forum; internet is a time killer and I try as much as possible to optimize my free time with my family and hobbies (like working on the Leyden Jar).
With no hard commitments I'll try to have a bigger presence on this forum in the future.
As you may know, future Ellipse's F122, B122 and B104 keyboards will use the Leyden Jar controller in place of our good old XWhatsIt controller.
I am thrilled to see my little project to be used in a large scale project like this (and a bit intimidated) and hope that you, the future users of those keyboards, will be happy of the result.
Most of my time is now focused of ironing out a few things here and there in the firmware code side, once this task will be done I may be able to work on new features (discussed below).
I'd like to mention user idollar that has been the third person after Ellipse and me to manufacture and use the Leyden Jar controller for it's own projects.
This means a lot to me as it shows that the project is mature and easy enough for other people to use.
He was also able to make the Leyden Jar Diagnostic Tool work on Linux with a bit of dirty hacking in the build scripts. This demonstrated that the tool code is cross-platform as I hope it would be, and that the only thing missing is to work on the build scripts to have a clean Linux support (more on that below).
Work done
Github projects architecture
The Leyden Jar project is distributed into three different Github repositories:
- The Leyden Jar controller here.
- The Leyden Jar Diagnostic Tool here.
- My fork and dedicated branch of Vial QMK here.
I recently reworked the Leyden Jar controller Github repository so that it is now the central hub to all other Github repositories used in the project.
That means you now have to only know the link to the
Leyden Jar controller and have access to all other related projects and links from it's readme.
I also added a Ko-Fi button, in case you want to fund past and future developments of this project.
Keyboard firmwares
Currently supported boards are:
- F122 (tested by Ellipse)
- B122 (tested by Ellipse)
- B104 (tested by Ellipse)
- F104 (tested by Ellipse)
- F77 (tested by me on my own board).
The Leyden Jar controller Github project no longer contain the firmware source code, everything is now available in the dedicated branch of my Vial QMK Fork.
My Vial QMK fork also contains releases of firmwares binaries for supported keyboards.
The future
We will about to end this year 2024 so this is a list of what is planned for year 2025.
Port other keyboards to be used by the Leyden Jar controller
The Leyden Jar controller share the exact same principles as the XWhatsIt controller. Sure it is an improvement on several points but nothing that a keyboard user should notice by typing.
I am very often calling the Leyden Jar
'an XWhatsIt on steroids'
The XWhatsIt controller has been in use for more than 10 years now, it has proven to be very reliable and many people have a board with this controller and experience no issues at all.
With the fantastic work that NathanA did to use Vial it is now also very user friendly.
But at some more or less distant future there will be no way to produce XWhatsIt controllers because the ATMEGA controllers will be unavailable.
This is a long term project and there is no big urgency.
Split keyboard management
The connector used for driving the solenoid could also be used to implement the UART serial protocol commonly used on QMK for split keyboards.
There is a plan to validate the approach using some of my Leyden Jar controllers and by designing a PCB testing jig.
The goal of the testing jig would be:
- Mimick key presses that the controller would recognize.
- Have the controller slotted in it and not soldered.
- Not having to desolder my F77 again, the ribbon cable has seen enough abuse from having to change two different revisions of the Leyden Jar controller already.
Maybe in the future design a new controller resivion that would allow both UART and solenoid to be used at the same time?
PS2 protocol management
This one will be tough and I do not know if it will work in the end.
People requested this for quite a long time, be able to use Model F or beamspring boards with an old computer that only has legacy PS2 connectivity.
A daugherboard PCB has been designed and even manufactured by me but still not tested yet.
The testing jig described before will also come handy for this project.
The holy grail goals of this feature:
- PS2 connectivity while keeping QMK as core firmware.
- When connected with USB the keyboard works just like any VIA/Vial keyboard and you would be able to tweak your layers/macros/keys.
- When connected with PS2 the keyboard uses all VIA/Vial configuration (layers/macros/keys) but sends PS2 compatible key data.
This will request some deep dive in QMK source code to see if it can be done, and some subtle hacks if proven to be possible.
Leyden Jar Diagnostic tool documentation
The first time I provided the tool to Ellipse I did an experiment: I gave him no guidance on how to use it and asked if things were not clear to him.
He has been able to use the tool without the need of documentation and without asking me questions so it's use looks to be trivial enough.
Anyway I still think that some explanation should be nice, at least in the readme of the Github repository.
Leyden Jar Diagnostic tool Linux build
For the moment builds of this tool are for Windows systems only but idollar showed that having the application on Linux was possible.
This is where I need help as I am a Windows only developper.
That would be great if some of you that have knowledge of CMake build scripts (or are willing to learn) and is a Linux user could do some clean work on the CMake file for everyone to easily use the tool on Linux platform.
It may not be possible to provide one day binaries for Linux (it is such a fragmented platform with all it's distributions), but having an easy way to call CMake then build and having the tool binary would already be great.
If someone is interested to tackle this task please tell me, either here or DM me !
And why not also MAC if someone wants to address this?
That's all guys!
It was a loooooong post, sorry about that.