Seems like a very cool tool!
Why can't I save layouts in KLE now??Show Image(http://i.imgur.com/C09xpnz.png)
Seems like a very cool tool!
Why can't I save layouts in KLE now??Show Image(http://i.imgur.com/C09xpnz.png)
Apparently that's a new thing on KLE, wants you to sign in with GitHub and saves your layouts as Gists, not sure I like that...
Seems like a very cool tool!
Why can't I save layouts in KLE now??Show Image(http://i.imgur.com/C09xpnz.png)
Apparently that's a new thing on KLE, wants you to sign in with GitHub and saves your layouts as Gists, not sure I like that...
Yeah, it's strange. I signed into Github, and gave the application permission, but still the "Save" button was "greyed" out for me. Just tried it again, and it worked. I logged in first this time, before editing the layout.
This is exciting. Thanks skully.
Just wanted to let you know that I get a "500 - Internal Server Error" when I try to use my layout: http://www.keyboard-layout-editor.com/#/layouts/c2a2a76df8848ae2bdba84d606fa1635
Seems like a very cool tool!
Why can't I save layouts in KLE now??
Back OT, on the layouts that do work, I can't get the schematic or board download links to work.
This is exciting. Thanks skully.
Just wanted to let you know that I get a "500 - Internal Server Error" when I try to use my layout: http://www.keyboard-layout-editor.com/#/layouts/c2a2a76df8848ae2bdba84d606fa1635
Thanks!
The arrows are what's causing the internal server error. I don't properly handle unicode yet and that causes an exception. Making the app more robust in the face of errors is coming up.
# -*- coding: utf-8 -*-
Adding support for UTF-8 may be as simple as adding the following line at the start of your file. That appears to be all I had to do.Code: [Select]# -*- coding: utf-8 -*-
I'll give it a shot, thanks!
Ahh, gothca... Yes, I had to solve that problem too. I will get you that code. I have been trying to get the old builder tool (written in python) open sourced and available. I handled that stuff in it and I am sure some of what I have done will be useful for you. I have spent like 3 days trying to get the FreeCAD lib working correctly on my Mac which is why I have not made it public yet. I think I am going to just give Ubuntu install instructions and if someone wants to make it work natively they can contribute how they did it. :P At least that way people will be able to checkout the code.
Can't wait to try it once you get the download links fixed. I have so many questions waiting to be answered, haha.
Adding support for UTF-8 may be as simple as adding the following line at the start of your file. That appears to be all I had to do.Code: [Select]# -*- coding: utf-8 -*-
I'll give it a shot, thanks!Ahh, gothca... Yes, I had to solve that problem too. I will get you that code. I have been trying to get the old builder tool (written in python) open sourced and available. I handled that stuff in it and I am sure some of what I have done will be useful for you. I have spent like 3 days trying to get the FreeCAD lib working correctly on my Mac which is why I have not made it public yet. I think I am going to just give Ubuntu install instructions and if someone wants to make it work natively they can contribute how they did it. :P At least that way people will be able to checkout the code.
I'd love to take a look at it once you've done that. I don't have Ubuntu around so maybe I can take a stab at those mac directions. :p
I've actually published the code to github (https://github.com/skullydazed/kalerator), but not under an open source license for now. Eventually I want to let anyone fork it but for now I'm going to follow iprest's example.
Feature suggestion: the script do not like when you load a layout with blank keys, keep saying that another component already have the same name and you need to click a button on a dialog to advance. So, I suggest using any type of automatic naming scheme for blank keys.
I wasn't able to get it to work with the freeware version of Eagle, as the board size is too large for the freeware restriction. :(Good PCB autorouting algorithms is what makes that kind of software so expensive. It requires extremely well-defined parameters to work properly. Eagle's algorithm works but isn't that good.
But it looked like it was going to work, after downloading the Kalerator script files!
One thing I'm not fond of is that your generator seems to cache the layouts. When I updated a layout and saved it with the same gist name, it still had the old version in the output from your site. I'm not sure how to force KLE to save it with a new gist name, beyond starting fresh.
So this outputs a PCB with holes for the switches, and a wire matrix. Any chance of adding a controller section by default? An ATmega32U4 and its associated components would be a great choice. Routing that on the PCB might pose a bit of a problem, though, huh?
Already done, actually. :D It assumes that a blank key is named SPACE, and if it encounters a duplicate key is appends _DUPE to the name. If you have 3 or more copies of the same key you could end up with _DUPE_DUPE, _DUPE_DUPE_DUPE, ad infinitum, but I figure that makes it easy to spot and gives the user a chance to fix it.
Already done, actually. :D It assumes that a blank key is named SPACE, and if it encounters a duplicate key is appends _DUPE to the name. If you have 3 or more copies of the same key you could end up with _DUPE_DUPE, _DUPE_DUPE_DUPE, ad infinitum, but I figure that makes it easy to spot and gives the user a chance to fix it.
Can I suggest a different system? Or at least an option for a different system?
First, it would be great if there was a way to designate a key as the space.
Second, it would be nice if you allowed other non-labeled keys to be auto-numbered instead of adding DUPE to each one. Maybe something like A0, A1,A2...A9, B0, etc...
That might make it easier to navigate, and allow coding of keys that don't have set labels.
I wasn't able to get it to work with the freeware version of Eagle, as the board size is too large for the freeware restriction. :(I ran into the same problem, even when making a 2 switch keyboard that should fit in the build area that I can use the script tries to build it outside of that area.
But it looked like it was going to work, after downloading the Kalerator script files!
I wasn't able to get it to work with the freeware version of Eagle, as the board size is too large for the freeware restriction. :(I ran into the same problem, even when making a 2 switch keyboard that should fit in the build area that I can use the script tries to build it outside of that area.
But it looked like it was going to work, after downloading the Kalerator script files!
I wasn't able to get it to work with the freeware version of Eagle, as the board size is too large for the freeware restriction. :(I ran into the same problem, even when making a 2 switch keyboard that should fit in the build area that I can use the script tries to build it outside of that area.
But it looked like it was going to work, after downloading the Kalerator script files!
One thing I'm not fond of is that your generator seems to cache the layouts. When I updated a layout and saved it with the same gist name, it still had the old version in the output from your site. I'm not sure how to force KLE to save it with a new gist name, beyond starting fresh.
So this outputs a PCB with holes for the switches, and a wire matrix. Any chance of adding a controller section by default? An ATmega32U4 and its associated components would be a great choice. Routing that on the PCB might pose a bit of a problem, though, huh?
Already done, actually. :D It assumes that a blank key is named SPACE, and if it encounters a duplicate key is appends _DUPE to the name. If you have 3 or more copies of the same key you could end up with _DUPE_DUPE, _DUPE_DUPE_DUPE, ad infinitum, but I figure that makes it easy to spot and gives the user a chance to fix it.
Can I suggest a different system? Or at least an option for a different system?
First, it would be great if there was a way to designate a key as the space.
Second, it would be nice if you allowed other non-labeled keys to be auto-numbered instead of adding DUPE to each one. Maybe something like A0, A1,A2...A9, B0, etc...
That might make it easier to navigate, and allow coding of keys that don't have set labels.
One thing I'm not fond of is that your generator seems to cache the layouts. When I updated a layout and saved it with the same gist name, it still had the old version in the output from your site. I'm not sure how to force KLE to save it with a new gist name, beyond starting fresh.
Yeah, the cache was initially not a problem at all, as each save got a new hash. I need to revisit that now that that assumption has changed.
data_hash = hashlib.sha1(json.dumps(data, sort_keys=True)).hexdigest()
I also had to solve this problem. You may want to check how I do it in my code. My code will guarantee to have a new unique hash if ANY element of the build changes. Basically, I take the JSON object including both the layout and any settings the user specifies and I hash it (it MUST be ordered before you hash or you won't get consistent results).
Here is the code I used (https://github.com/swill/kb_builder/blob/master/kb_builder.py#L43):Code: [Select]data_hash = hashlib.sha1(json.dumps(data, sort_keys=True)).hexdigest()
Hope that helps...
The JSON package has a sort keys option that does recursive sort. It is really simple and reliable in my experience.I also had to solve this problem. You may want to check how I do it in my code. My code will guarantee to have a new unique hash if ANY element of the build changes. Basically, I take the JSON object including both the layout and any settings the user specifies and I hash it (it MUST be ordered before you hash or you won't get consistent results).
Here is the code I used (https://github.com/swill/kb_builder/blob/master/kb_builder.py#L43):Code: [Select]data_hash = hashlib.sha1(json.dumps(data, sort_keys=True)).hexdigest()
Hope that helps...
Luckily I haven't had to solve that particular problem here. Hashing JSON has proven to be a huge PITA though. At work we had to replace JSON's default dictionary object with OrderedDict() because we needed to hash dictionaries inside dictionaries.
The JSON package has a sort keys option that does recursive sort. It is really simple and reliable in my experience.I also had to solve this problem. You may want to check how I do it in my code. My code will guarantee to have a new unique hash if ANY element of the build changes. Basically, I take the JSON object including both the layout and any settings the user specifies and I hash it (it MUST be ordered before you hash or you won't get consistent results).
Here is the code I used (https://github.com/swill/kb_builder/blob/master/kb_builder.py#L43):Code: [Select]data_hash = hashlib.sha1(json.dumps(data, sort_keys=True)).hexdigest()
Hope that helps...
Luckily I haven't had to solve that particular problem here. Hashing JSON has proven to be a huge PITA though. At work we had to replace JSON's default dictionary object with OrderedDict() because we needed to hash dictionaries inside dictionaries.
Luckily everything in the KLE that is keys in a dict fits that requirement. :)The JSON package has a sort keys option that does recursive sort. It is really simple and reliable in my experience.I also had to solve this problem. You may want to check how I do it in my code. My code will guarantee to have a new unique hash if ANY element of the build changes. Basically, I take the JSON object including both the layout and any settings the user specifies and I hash it (it MUST be ordered before you hash or you won't get consistent results).
Here is the code I used (https://github.com/swill/kb_builder/blob/master/kb_builder.py#L43):Code: [Select]data_hash = hashlib.sha1(json.dumps(data, sort_keys=True)).hexdigest()
Hope that helps...
Luckily I haven't had to solve that particular problem here. Hashing JSON has proven to be a huge PITA though. At work we had to replace JSON's default dictionary object with OrderedDict() because we needed to hash dictionaries inside dictionaries.
It does, and it works wonderfully until you need to preserve an order that isn't asciibetical. :) I argued for using RFC 7518 instead but at the time it was still a draft and I couldn't convince the right people.
New release today with support for EAGLE's free versions! If you're using a free version just hit the radio button and your board will be moved into the upper left corner of the routable area. I was able to fit 8 columns and 5 rows into the default 160x100 routable space. I do not have the free version installed to test with, so please let me know if it places anything above or to the left of the routable area.
In addition to that headlining feature there are two other changes I want to bring to everyone's attention:
- Downloaded scripts are now named by the Keyboard Name, if set
- I've added pins for each row/column to make hand-wiring easier
As always please tell me what is and isn't working for you. I'd like this to be a useful tool for anyone who wants to build a PCB.
Those are the front and back silkscreen, shown together, right?
Those are the front and back silkscreen, shown together, right?
I dont know, before I run the script there are only single front silkscreen, and the diodes's labels are not mirrored :(
Thank you guys for the help :D If I keep both silkscreen, will it be automatically detected by manufactor or should I remove one of them?
ADD ALPSMX-1U-LED@AlpsCherry GRAVE (0.75 -3.75);
ADD DIODE'1N4148'@Seeed-OPL-Diode DGRAVE R90 (0.65 -3.30);
ADD HEADER-1P-KEYBOARD@Headers PROW2.5 R90 (0.65 -3.15);
JUNCTION (0.65 -3.15);
NAME ROW2.5 (0.65 -3.15);
I don't exactly know what I'm doing, so I keep getting errors when I run the script in the EAGLE Freeware for the keyboard I made. http://www.keyboard-layout-editor.com/#/gists/c7dce418c8d8dd65e18dcb238d1d297eas I recall free eagle has a rather small PCB size way smaller that what you drew up and unless this was fixed this script doesn't build in the area for the free version with even a one switch build unless it was updated
Yes, my row detection is rather rudimentary right now. I need to work on that.
I'm pretty busy with Clueboard stuff right now, this is pretty far down my list of priorities right now. After I ship the Cluepad and the Clueboard 2.0 case, and after I ship Nantucket Selectric, I'll be looking at designing my next board. At that time I'll be able to fix this up and add some new features, like a routing engine that can handle staggered rows. Sorry I don't have better news here for you guys, I know it sucks to have a tool that should work but has show stopping limitations.
I placed the required libraries into the lbr folder but it gives me tons of errors... it can't find the Seeed components on the schematic and the board keeps saying Unknown Element: Y... etc.
(right click and use)
(right click and use)
yeah i did, still tons of errors... cant find the libraries, cant find the generated items etc.
it's crazy, I tried moving them around, putting them into separate folders, replacing the Seeed folder etc.
nothing but errors, it essentially never finds the libraries...
I placed the required libraries into the lbr folder but it gives me tons of errors... it can't find the Seeed components on the schematic and the board keeps saying Unknown Element: Y... etc.
I placed the required libraries into the lbr folder but it gives me tons of errors... it can't find the Seeed components on the schematic and the board keeps saying Unknown Element: Y... etc.
Put all files with name seed into eagle folder SEED...Show Image(http://image.prntscr.com/image/cc8377b0110b4914b3234e27a5d82136.png)
This fixed error for me ;)
It works now to create the schematic but the board fails with LBRACKET and all other symbols... and then just freezes.
Never mind above - I forgot to switch to board view... BUT now I'm getting this:Show Image(https://dl.dropboxusercontent.com/s/g9g95e145oidva8/2016-11-16%20at%206.41%20PM.jpg)
... and afte pressing OK for some 50 times it just dies after placing ~10 switches in the right position.
Getting an error "Device not found: DIODE'1N4148'@Seeed-OPL-Diode". Now I'm a total n00b at this so it could be COMPLETELY user error, but I thought I'd ask to see if you had any guidance.
The site http://kalerator.clueboard.co/ is giving me 500 internal server error when I send the layout.
I've been trying since yesterday.
I get an error: Device not found: DIODE-DO-35
I think I have all of the libraries installed but it might be an issue there. Can someone help me?
Heyo,
Ive got a little issue here, I am getting a 500 Internal Server error with the following message: "The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application." I got this after pasting in my layout URL with all the default options. Any suggestions as to how I can fix this?
This tread is probably dead but when I try to make my board layout it ends up like thisShow Image(https://i.imgur.com/6codPVs.jpg)any sugestions?
Mod edit: fixed your image
The seeed that is linked in this post is now saying 404 not found and i am struggling to get the script to work in eagle. It keeps giving me errors because it doesn't know the parts since i don't have the correct seeeds. Is this not used much anymore? If so then is there another place that helps build a PCB?