Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Future Plans? #1

Open
AnthonyDiGirolamo opened this issue Jan 22, 2016 · 9 comments
Open

Future Plans? #1

AnthonyDiGirolamo opened this issue Jan 22, 2016 · 9 comments

Comments

@AnthonyDiGirolamo
Copy link

Hello!
First, thank you for your efforts getting TMK on the infinity ergodox, and for TMK! I use it on another board and am really missing it on the infinity ergodox.

I just compiled/flashed it without any issues and the left hand side works well! The right got the same flashed bin file and is outputting the left's keys for now. Both function fine as independent keyboards.

Do you have any plans to enable the chaining functionality, LED control, or LCD screen and color control?
Thanks very much!

@tmk
Copy link
Owner

tmk commented Jan 22, 2016

I have a plan to add UART chaining when I have time but I'll never do for LED and LCD things. I'm hoping someone can add these features.

@AnthonyDiGirolamo
Copy link
Author

Sounds good! I'll look into it. Might be able to get this library running on it to drive the LCD https://github.com/olikraus/u8glib I'm hoping to add a wpm and keypress odometer. Or more practical would be the debug messages displaying on there.

@fredizzimo
Copy link

I didn't see this until now, but I have also started to look into getting LCD support. So far I haven't done much though, I have added a submodule for http://www.ugfx.org/, and modified the makefiles and some settings to make it compile.

It shouldn't be too hard to get the rest working, but It's a little bit slow for me with all the learning I have to do about micro-controller programming at the same time. I also haven't received my kit yet, as it's currently it's held at customs. But I guess I will receive it in the beginning of the week so I can start testing, after I get it all fully integrated of course.

My current progress is in my fork of the repository in the lcd branch, here https://github.com/fredizzimo/infinity_ergodox/tree/lcd.

@fredizzimo
Copy link

The LCD is working now. But I haven't made it react to keyboard layer changes for example yet. I don't think that will take long, so I will probably have a pull request ready tomorrow. Before that I will make another branch with a much cleaner history.

After that I will start with the UART stuff, it will need to interact with the LCD code anyway. It doesn't seem to be hard to do using the chibios serial support. I only have one ergodox, so there will only be support for a normal left and right hand setup. It wouldn't be too hard to add more chaining, but without being able to test it, I don't want to write the code.

@tenderlove
Copy link

@fredizzimo wow! I can't wait! I'll have 2 Infinity ErgoDox soon, so I can test with chaining and add support (following your examples of course).

@tmk
Copy link
Owner

tmk commented Feb 1, 2016

@fredizzimo Great job! And UART chaining support would be greatly appreciated.

@fredizzimo
Copy link

I didn't have as much time as I thought, and I did some more LCD stuff, like an easy to use animation system, and a user file that is easy to modify without understanding all the details.

But that said I have now added the first pull request tmk/tmk_core#2, just for the core library. The rest will follow, when that is merged, but you can take a sneak peak by looking at this https://github.com/fredizzimo/infinity_ergodox/tree/lcd, more specifically the https://github.com/fredizzimo/infinity_ergodox/blob/lcd/visualizer_user.c file. In the future I'm planning to add support for displaying the whole keyboard layout (probably defined as a utf8 html file, it should be possible by the 5x8 font, but it's really tight.

There's currently no support for the key leds, as I didn't install any myself, and therefore I'm unable to make support for that. But I suppose it would be quite easy to add support for those too.

I will now start doing the UART stuff, so that the keyboard actually becomes useful.

@fredizzimo
Copy link

Hi,

I now have a first working alpha version of the serial connectivity. The two keyboard halves can communicate with each other, everything appears to work, and you can type and switch layers like normal with the two halves connected.

Only the master will do any layer processing, the slave will just send the raw keypress data to the master.

I still have to improve the the robustness of the protocol a little bit, so that state updates don't get lost, in case there's some noise on the link. And I will also increase the speed of the link, currently it's very slow, just to make sure everything works.

Related to the speed, I also found out that the whole keyboard runs at 1000hz at the moment, which is probably way too slow to handle the debouncing properly.The matrix scan does some waits of 1 us, but those waits will all be 1 ms. I haven't noticed any problems, but on the other hand, I have been doing way too much programming, and almost not used the keyboard at all, so I'm still very slow.

Another thing that I have to do until the keyboard is usable, is to make the visualization work over the serial link.

@tmk How should I proceed? Currently my LCD and serial communication code are both in the https://github.com/fredizzimo/infinity_ergodox/tree/uart2 branch. But I read that you have no intentions, on supporting LCD or LED functionalty, so I wonder how I should proceed. I can probably rebase the code so that the serial code is first and then the LCD stuff is on top of it, if you want to pull in the serial code to your branch. However I will very soon have to do stuff that requires both the serial code and the visualization, and at that point maintaining two separate branches would be very hard, and that would mean that you wouldn't get more updates to the keyboard specific side of the project. However the serial library would still be separated.

Or do you prefer to not take any of my changes at all, and make your own serial connection support? Another option would of course be that I took over the Infinity Ergodox project completely, rather than having two separate projects. That would be the best option IMO, since I have plans to continue updating it.

@tmk
Copy link
Owner

tmk commented Mar 3, 2016

Great job!
People will want to fork your repo instead of mine so you can do what you want on your repo. I think you don't have to care about this repo anymore. Make your repo center of develop and community!

You've done the work on UART and I no longer have any plan to develop on infinity ergodox myself now. Glad :) I'll become one of your code users and send pull request to you when I needed. This repository will be handle just as my personal one.

I'll try your code some later. thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants