Build Your Own Arcade Controls Forum
Main => Main Forum => Topic started by: slinger on March 15, 2003, 02:12:38 pm
-
I've recenty built a DIYS keyboard emulator and I'm thiniking of making it open source, I was curious how many of you are able/would be willing to make thier own boards?
Features:
32 buttons (can go higher if needed, up to 96)
no ghosting
Keyboard in and out
userdefined keys
user set repeat rate
low parts count (30)
Let me know if you're interested
Ron
-
open source? like 'free plans on a webpage' open source?
heck, more options is always a good thing..:-)
-
open source? like 'free plans on a webpage' open source?
heck, more options is always a good thing..:-)
Yes open source like free plans, when I was first starting to build this thing I noticed that there wasn't really a lot out there that was free, So I figured I'd make one!
The only thing is that's it's in Rev 1 so there might be problems that I don't know of yet, but being open source maybe others can find and fix them as well.
If there is enough interest I'll set up a webpage for the circuit.
Also if there are other options you'd like to see added then let me know, I have lots of program space still available!
It's based on a PIC 16F874 and the development software is free from microchip.
-
Cool, go for it. ;D
-
Absolutely man! Free good, learning good, can't lose!
-
I would be incredibly interested in seeing it. :)
-
Me too.
-
I would be very interested in seeing an open source unit become available. Gives everyone more options.
BobA
-
This would be a nice contribution, I love seeing projects like this! There is a similar project, http://surf.to/buttonbox, but I have seen very few projects that use a ButtonBox.
I remember one time someone made a handful of ButtonBox's and offered them for sale on the Buy/Sell board, but it seems they only received negative feedback for their effort. Not that this has to do anything with your post, I'm just throwing it out there, FWIW....
-
Would like to see details on this.
A few random thoughts - one of the big drawbacks (guessing?) is that the cost to make a single PCB will be much greater than the cost to make PCB's in bulk.
You might contact Druin at http://members.rogers.com/druins22/ls30/ for advice/hints. He is currently only selling completed units, but he used to be selling kits for the rotary encoders.
Also, the I-PAC and KeyWiz are both selling well, so there is a market for completed encoders.
FWIW
-
I realize that but I'm not thinking of the average joe here I'm pointing towards those that have the knowledge and material to make thier own boards already, I'm affereing the design and software, they will also have to program the Micro on thier own.
But if people are willing I can get a run of boards made up and it would be cheaper, I may even be able to program the chips for them if they prepay everything, not sure if the cost of that would make it worth it or not.
I have the circuit on a breadboard right now and it works fine, I've already designed the PCB and I'll make it tonight, I'll also try and get the Website up and running tonight if I have time
Ron
-
Hey,
I just wanted to throw in my encouragement as well... I think another keyboard emulator is a "good thing" and an "open source" DIY was is great as well.
I'm certainly "able" to do a simple circuit (either on breadboard or a one-off home brew etching =P)
At the moment I don't have a need as I have a keywhiz that I need to integrate into my system...
But in the future who knows... even as just a documentation project it would be cool. *shrug*
rampy
-
I would be interested.
-
Don't ask, just post it! :P But if you want to know the truth oscar is probably right. It's not a matter of can it be done, it's a matter of does the time and money involved in making one outweight just forking over about 40 bucks to get one premade that you know is going to work. (i know my electronic builds are always a little shakey) You might get 2 or 3 people to actually build one if your luck. But others might learn from the schematics.
-
Since he hasn't replied yet, I smell vaporware.
-
Since he hasn't replied yet, I smell vaporware.
.... bah! shouldn't you be moderating stuff or something? Nobody calls your "FE" vaporware =P We're all just patiently waiting for your "graphics" guy to do his part. (I know my analogy is a little off - i just think duke nuke 'em forever is vaporware... flying cars are vaporware... it hasn't been *that* long since he posted the initial query. If you look at all of his posts (http://www.arcadecontrols.org/yabbse/index.php?board=1;action=usersrecentposts;userid=1256;user=slinger) it's not unreasonable to think that he created a keyboard emulator *shrug*
I think any info released publically about what he's found/created would be of value to teh community.
Rampy
-
No, it's not vapourware!
The circuit is built and programmed on a breadboard at the moment and works quite well.
I etched the PCB last night, it needs a bit of tweeking (I'm not going to post the PCB without knowing if I made it correctly!! as I stated in one of my posts!)
Plus remember I do work for a living and only have a small amout of free time each day, I will set up the website tonight though, and supply some details of the board.
If I can populate it and prove my PCB design works then that will go up tonight as well.
Ron
-
Way to go Slinger. Still looking forward to seeing the info.
BobA
-
Since he hasn't replied yet, I smell vaporware.
.... bah! shouldn't you be moderating stuff or something? Nobody calls your "FE" vaporware =P We're all just patiently waiting for your "graphics" guy to do his part. (I know my analogy is a little off - i just think duke nuke 'em forever is vaporware... flying cars are vaporware... it hasn't been *that* long since he posted the initial query. If you look at all of his posts (http://www.arcadecontrols.org/yabbse/index.php?board=1;action=usersrecentposts;userid=1256;user=slinger) it's not unreasonable to think that he created a keyboard emulator *shrug*
I think any info released publically about what he's found/created would be of value to teh community.
Rampy
Whoa, rampy, take a fricken pill :) I wasn't serious. Want to check out my setup wizard for my FE?
;D
-
OK here is the vapourware.....
http://home.cogeco.ca/~ron.hayes/main.html (http://home.cogeco.ca/~ron.hayes/main.html)
Click on the Projects folder on the right hand side and choose Keyboard Emulator.
For now I ask that you just review the infomation until I can verify that everything is working correctly (unless you want to take that chance!)
I have to drill the board and populate it still before I can test it
-
Cool, btw, I fixed the link for you.
-
Whoa, rampy, take a fricken pill :) I wasn't serious. Want to check out my setup wizard for my FE?
;D
*cough* yeah... I ... uh.. knew that. yeah. ha.... er... so how about them mets? These aren't the droids you are looking for...
Thanks for posting the plans, and keep us posted on how the maiden etching / build goes.
Rampy
-
http://home.cogeco.ca/~ron.hayes/main.html (http://home.cogeco.ca/~ron.hayes/main.html)
Click on the Projects folder on the right hand side and choose Keyboard Emulator.
hummm could you please post a direct link ?
I don't (and I could not) use flash
Thanks
Eric
-
It's not flash it's java.
You can't view it? I think you need to rethink your browser!
Here's the link anyways
http://home.cogeco.ca/~ron.hayes/keyemu.html (http://home.cogeco.ca/~ron.hayes/keyemu.html)
Edit: SirPoonga, fixed the link. auto link has issues with ~, click on help above (next to search) to learn how to use the url tag.
-
It's not flash it's java.
You can't view it? I think you need to rethink your browser!
Here's the link anyways
http://home.cogeco.ca/~ron.hayes/keyemu.html
Thank's for the link.
I guees my browser (mozilla) could hanle all kind of pluggins
Eric
-
Hi Slinger,
I took a cursory look at your project, but I'm no electronics expert, so take all my comments with a grain of salt.
Just looking at the circuitry, the PCB design looks very similar to the layout of the buttonbox, as shown here: http://w1.132.telia.com/~u13205992/buttonbox/bbox2/pictures.htm (http://w1.132.telia.com/~u13205992/buttonbox/bbox2/pictures.htm)
Note: I said SIMILAR, I realize the actual compnents used are different and am NOT accusing you of copying their design. Mainly I wanted to point out for others that your design will probably have the same features (and drawbacks) as building a ButtonBox.
Other Comments - I notice your design uses Matrix Mode. I am familiar with this from keyboard hacking and usually (with keyboards), you are limited to the number of rows in the matrix (without ghosting/blocking). I.E. a 16x8 matrix keyboard has 16 available key assignments. Since you and ButtonBox both say there are no blocking problems in matrix mode, I assume you have a solution that avoids this.
Most users are more familiar with using direct mode encoders. There is no real problem with Matrix Mode, except, you have to convert things yourself (i.e. input 11 means I want to connect Row 2 and Column 3, etc.)
I realize you are still trying to get the prototype developed, but once this is done, could you post details on how to get 96 inputs with the unit.
Also, I think these would be much more successful if they were available pre-assembled, FWIW!!!
Anyway, thanks for posting the details and I look forward to more information as it becomes available.
-
Hi Slinger,
I took a cursory look at your project, but I'm no electronics expert, so take all my comments with a grain of salt.
Just looking at the circuitry, the PCB design looks very similar to the layout of the buttonbox, as shown here: http://w1.132.telia.com/~u13205992/buttonbox/bbox2/pictures.htm (http://w1.132.telia.com/~u13205992/buttonbox/bbox2/pictures.htm)
Note: I said SIMILAR, I realize the actual compnents used are different and am NOT accusing you of copying their design. Mainly I wanted to point out for others that your design will probably have the same features (and drawbacks) as building a ButtonBox.
Other Comments - I notice your design uses Matrix Mode. I am familiar with this from keyboard hacking and usually (with keyboards), you are limited to the number of rows in the matrix (without ghosting/blocking). I.E. a 16x8 matrix keyboard has 16 available key assignments. Since you and ButtonBox both say there are no blocking problems in matrix mode, I assume you have a solution that avoids this.
Most users are more familiar with using direct mode encoders. There is no real problem with Matrix Mode, except, you have to convert things yourself (i.e. input 11 means I want to connect Row 2 and Column 3, etc.)
I realize you are still trying to get the prototype developed, but once this is done, could you post details on how to get 96 inputs with the unit.
Also, I think these would be much more successful if they were available pre-assembled, FWIW!!!
Anyway, thanks for posting the details and I look forward to more information as it becomes available.
My design was made completely from scratch, the reason they look simular (in components not traces) is that you need certain hardware to do the job and we both use those (uC,Max232,headers)
I'm acutally not using a matrix, there are currently 4 common line and 8 data lines (4x8=32) each common line is turned on the the data is scanned seperately then turned off and the next common line is turned on, and so on.
how do I get 96 inputs? there are 8 extra I/O lines unused (actually 9 but that one is open collector) so 4 that I am using + the extra 9 (4+8*8=96), I don't need that many so you are free to edit the PCB to do this yourself.
I couldn't care less how successful it is I built it for my own purposes and not for anyone else. I decided to make it open source, if you want it make it(and edit it)make it, if you don't then just browse.
I'm a little busy right now but I hope to do more on it soon, I only posted the info becasue everyone wanted to see it, I make no claims as to it's functionality yet, the first board had a few errors on it but I fixed them, also my first board didn't turn out as expected the transparency lifted from the board during exposure and the lines became a little fuzzy, so I'm going to make another.
Another thing about the software, I remember that the type-o-matic delay is not set up but is there and the Keyboard in is wired but not polled (the routines are there though)
-
I do alot of circuit board etching. and would love to have plans to build something like this. So I would be Interested in seeing a schematic and parts list. That would be cool.
-
I'm acutally not using a matrix, there are currently 4 common line and 8 data lines (4x8=32) each common line is turned on the the data is scanned seperately then turned off and the next common line is turned on, and so on.
I'm a bit confused, I thought that was how a scanning matrix worked.
Anyway that point aside, your circuit looks very interesting. The more alternatives that builders have the better.
I have been toying with the idea of building a ButtonBox. However I've been put off by the price and difficulty of obtaining the Atmel chip that Leif uses in his design. If I ordered the components from abroad (I live in the UK) over the internet then I believe the total cost would be cheaper than an Ipac but the savings aren't huge.
I have a few questions.
Is the PIC chip you use significantly cheaper than the Atmel, and can it be programmed directly from the parallel port?
Also I'm sure a lot more people would be interested in building the circuit if you designed a layout that could be used with standard stripboard. I doubt many people would want to go to the expense of getting their own board etched.
-
OK here is the vapourware.....
http://home.cogeco.ca/~ron.hayes/main.html (http://home.cogeco.ca/~ron.hayes/main.html)
Click on the Projects folder on the right hand side and choose Keyboard Emulator.
For now I ask that you just review the infomation until I can verify that everything is working correctly (unless you want to take that chance!)
I have to drill the board and populate it still before I can test it
Could you give suggestions or point to a howto to transfer your plans to pc board:)
-
My design was made completely from scratch, the reason they look simular (in components not traces) is that you need certain hardware to do the job and we both use those (uC,Max232,headers)
I realize there will be some common components. What I noticed was the physical layout (shape of the PCB, position of the processor and header and LED relative to each other) and the use of matrix mode seemed similar to the ButtonBox. Of course, I've seen other people come up with ideas that were mine originally without my having said anything previously about my ideas, so it happens. . . didn't mean to offend you . . .
I'm acutally not using a matrix, there are currently 4 common line and 8 data lines (4x8=32) each common line is turned on the the data is scanned seperately then turned off and the next common line is turned on, and so on.
Errmm- as Grasshopper said, what do you mean you aren't using a matrix? It says right on the circuit 1-4 X-Axis, 19-26 Y-Axis, sounds like a matrix to me.
What I mean by matrix is a circuit where each button is connected to one Row pin and one Column pin (or in your terminology, one common line and one data line). The button box and the Hagstrom encoders allow this mode, and I believe the X-Arcade uses it, so it is workable. This is opposed to direct mode used by the I-PAC and KeyWiz (and others) where one terminal of each input goes to a unique encoder input and ALL second terminals go to the SAME Common (GND) terminal.
how do I get 96 inputs? there are 8 extra I/O lines unused (actually 9 but that one is open collector) so 4 that I am using + the extra 9 (4+8*8=96), I don't need that many so you are free to edit the PCB to do this yourself.
That much I figured. What I meant is that when you or someone with more electronics knowledge than myself has time, it would be nice if they posted what terminals connected to what pins on the microcontroller to make 96 inputs work.
I couldn't care less how successful it is I built it for my own purposes and not for anyone else. I decided to make it open source, if you want it make it(and edit it)make it, if you don't then just browse.
I'm a little busy right now but I hope to do more on it soon, I only posted the info becasue everyone wanted to see it . . .
Fair enough. Thanks for making the details of your design available. Sorry if I sounded overly critical of your project earlier. I wasn't meaning to be. There are all levels of people on this board, anywhere from "What's a keyboard encoder, and why would I want one?" to "Why is your software written in VB and would you like me to convert it to C++ and add these neat features in while I'm at it?" I'm somewhere in the middle, but I thought pointing out matrix mode and comparing it to the buttonbox would put it on the map for people considering your project instead of an I-PAC/KeyWiz/MK40/Hagstrom, without having to de-cipher the circuitry for themselves.
-
I'm glad you mentioned that!
I had figured a way around that but I didn't implement that for the sake of simulation, but I'll add it back in and revise the website.
What I did to take care of that was to not have the inputs set as inputs all the time but to set them as Hi-z, if there is no ground other than the one in use then ghosting cannot happen.
Sorry but I wasn't offended at all, just stating how I felt about it.
As for the matrix, it isn't really a matrix since only one gnd line is active at one time it's more like an addressed buss.
I will post more details for upgrading the PCB on my websitte when I get more time, but I'd suggest that anyone willing to, downloadf the datasheet from Microchip and look to see what pins are free(I didn't hook them up because I didn't feel like finding a route for the extra pins if I didn't need them
Some of the things I'd like to hear back from you guys is what things you'd like to see added to the design. One of the things I forgot to mention is that you don't need any special software to configure it, you talk to the chip through any terminal program and send the value to the chip.(need to send hex though)
-
Could you give suggestions or point to a howto to transfer your plans to pc board:)
Load the board into Winboard print it out on a transparency, place this over your presensitized board, expose it to florecent light for 5min/side then develop and etch, drill and populate.
-
I'm glad you mentioned that!
I had figured a way around that but I didn't implement that for the sake of simulation, but I'll add it back in and revise the website.
Mentioned what??? And what did you figure a way around, and what are you adding to the website???
What I did to take care of that was to not have the inputs set as inputs all the time but to set them as Hi-z, if there is no ground other than the one in use then ghosting cannot happen.
Sorry but I wasn't offended at all, just stating how I felt about it.
As for the matrix, it isn't really a matrix since only one gnd line is active at one time it's more like an addressed buss.
You lost me on the Hi-z and only one ground stuff, but that's okay. I see what you mean about an addressed buss vs. a matrix.
One problem I will have is that I really need something with direct mode (i.e. a common input for all GND terminals). Can your design be modified to support this? And I assume you are limited to 32 inputs in this mode?
EDIT: For those who are wondering why I need direct mode - Matrix mode works fine for a large control panel on an arcade cab. I am building removable panel using DB25 connectors. In direct mode, I can pass 24 inputs through the DB25 cable. In Matrix mode, I have to allow for 8-row pins so I only have 17 inputs to pass through the remaining pins. There are other obstacles, but that's the highlights.
One of the things I forgot to mention is that you don't need any special software to configure it, you talk to the chip through any terminal program and send the value to the chip.(need to send hex though)
Cool, I meant to mention earlier that it says RS-232 on the PCB, so I assumed it uses the serial port. I'm sure many people would like more details on what information you send and structure/format, etc?
-
Could you give suggestions or point to a howto to transfer your plans to pc board:)
Load the board into Winboard print it out on a transparency, place this over your presensitized board, expose it to florecent light for 5min/side then develop and etch, drill and populate.
Can you get all this (and the chips and whatever) at radio shack? Dop they have a kit that explains what you just said?
Sorry,m I am an electronics n00b, but I like futzing with this stuff. I;d like to make custom hardware as I can make the software easily enough.
-
Don't know if radio shack has that stuff or not, I stay away from that place! Waaaaay too expensive, find an electronics store in your area or go to www.mgchemicals.com
Hi-z mean high impedence meaning not an input nor an output, almost like floating with a high resistance.
all you need to do is send the hex byte "0xFF"(255) through the serial port and the chip will send the menu back
-
quote author=OSCAR link=board=1;threadid=5689;start=0#38631 date=1047787785]
I remember one time someone made a handful of ButtonBox's and offered them for sale on the Buy/Sell board, but it seems they only received negative feedback for their effort. Not that this has to do anything with your post, I'm just throwing it out there, FWIW....
Not hi-jacking the thread here (I hope), but . . .
The only Buy/Sell/Trade post I could find was this one http://www.arcadecontrols.org/yabbse/index.php?board=2;action=display;threadid=1891;start=0 (http://www.arcadecontrols.org/yabbse/index.php?board=2;action=display;threadid=1891;start=0)
The "negative feedback" came b/c the guy was selling a buttonbox with Jamma connector for 100 Euro's without the designer's permission (for about $30 in electronic components.)
Not that I'm a huge buttonbox fan, but I wanted to point out that the bad press concerned the seller and his methods, and not the operation and function of the buttonbox itself.
-
Slinger,
The following link gives a detailed explanation of why ghosting occurs with a scanning matrix.
http://www.dribin.org/dave/keyboard/
I'm 90% certain that your board will suffer from ghosting unless diodes are used. However presumably blocking would not be a problem as that feature is deliberatly built into the software of most keyboard encoders. Fortunately ghosting is the easier of the two problems to solve.
Personally I could live with a scanning matrix if the components are cheap (I'm going to check out the PIC prices in a minute). However circuits that don't use a matrix are generally better for the following reasons:
1. Because all the switches share a common ground there is less wiring to do.
2. Non-matrix circuits can be used with optical controls.
My suggestions for desirable features are as follows:
1. Design a stripboard layout.
2. Use direct mode instead of a matrix (better still offer a choice as with the ButtonBox).
3. Use the cheapest, most easily available components possible. This is the main flaw of the Buttonbox.
4. Incorporate a keyboard pass-through. If you don't want to use up any PIC inputs then perhaps you could incorporate Stephan Hans circuit into your own.
Keep up the good work! I wish I had the knowledge to design a circuit.
-
This time, I probably will hijack the thread . . .
Slinger,
The following link gives a detailed explanation of why ghosting occurs with a scanning matrix.
http://www.dribin.org/dave/keyboard/
I'm 90% certain that your board will suffer from ghosting unless diodes are used. However presumably blocking would not be a problem as that feature is deliberatly built into the software of most keyboard encoders. Fortunately ghosting is the easier of the two problems to solve.
I would have to agree, although I'm not sure how the hi-z stuff factors into it.
Personally I could live with a scanning matrix if the components are cheap (I'm going to check out the PIC prices in a minute).
I was just on microchip's website and it looks like they provide free sample chips (up to five different kinds and up to three of each kind per month). Of course this might not last if everyone from this board orders a microcontroller sample ;)
3. Use the cheapest, most easily available components possible. This is the main flaw of the Buttonbox.
I checked digi-key yesterday and they had all the Buttonbox components for about 75% of the prices shown on the buttonbox site.
4. Incorporate a keyboard pass-through. If you don't want to use up any PIC inputs then perhaps you could incorporate Stephan Hans circuit into your own.
Errrm, he does - didn't you see the Key IN and Key OUT connections on the circuit board.
Now my questions for all the electronics gurus on the board (I e-mailed the ButtonBox designer, but he hasn't gotten back to me):
The Button Box with the Atmel chip provides 32 inputs, but only 27 are supported in direct mode as shown on his site. Does anyone know how to make the other five inputs work? Does anyone know if it would be possible to design an encoder like the button box, but using two Atmel chips for 64 inputs?
Ideally (really pushing my luck here) anyone know how to make a circuit using two of the PIC processors mentioned on Slinger's site for as many direct-mode inputs as possible???
-
Errrm, he does - didn't you see the Key IN and Key OUT connections on the circuit board.
You're right! I hadn't bothered clicking on the thumbnail of the circuit board picture because Slinger's site is so slow.
With regards to the Atmel chips, they can be bought fairly cheaply here.
http://www.futurlec.com/
However I'd rather buy locally if at all possible.
Has anyone on this board had a dealings with Futurlec?
Also Tiger-Heli, can you give me digi-key's web address please.
-
Also Tiger-Heli, can you give me digi-key's web address please.
www.digikey.com
-
Let me see if I can show you why this design will not be susceptable to ghosting.
1--C-|--A
2--|--|--|
3--B--|--|
4 5 6
If button A and B are pushed at the same time then button C would llook like it was also pressed because current wouls flow along line 1 down line 4 and out line 3 if a typical matrix was used i.e. 1-3 low and 4-6 high
how I did it was this line 1 is high 2-3 are low as well as 4-6 so there is only one path for current to go and that would be along line 1 untill it goes low and line 2 goes high then the only path would be along line 2 and so on...
in a common matrix 1-3 are low and 4-6 are high all the time and the values are just read in.
Like I said before key in is set up in hardware but not in software yet, but that can be fixed later on easily.
I thought about using a bootloader but I don't think there will be enough software updates to warrant that so I'm sticking to using a programmer to burn the chip.
If you guys can think of any features that I think will be nice to have I'll make the changes and post them, otherwise you're on youur own, I'll be gald to nudge you in the right direction though but don't expect me to do all the work for you.
-
The only Buy/Sell/Trade post I could find was this one http://www.arcadecontrols.org/yabbse/index.php?board=2;action=display;threadid=1891;start=0 (http://www.arcadecontrols.org/yabbse/index.php?board=2;action=display;threadid=1891;start=0)
The "negative feedback" came b/c the guy was selling a buttonbox with Jamma connector for 100 Euro's without the designer's permission (for about $30 in electronic components.)
Not that I'm a huge buttonbox fan, but I wanted to point out that the bad press concerned the seller and his methods, and not the operation and function of the buttonbox itself.
Yes, you are 100% correct and you followed my logic perfectly. The reason I mentioned it was because Slinger was offering up the plans for a keyboard encoder for free, and some people (not necessarily the regulars on this board) may see this as an avenue for making some $$ from his work. It has happened before, so I just wanted to point out what happened to the last fellow that tried it. :)
-
If I see anyone do that I'll take action, this is free and should not be sold or commercially produced.
-
If I see anyone do that I'll take action, this is free and should not be sold or commercially produced.
How would you do that? Is your plans copywrited?
-
If I see anyone do that I'll take action, this is free and should not be sold or commercially produced.
How would you do that? Is your plans copywrited?
Ok, this is getting interesting! Let me play devil's advocate and throw out some hypotheticals here. I will use the buttonbox as an example. (And I have neither the ability nor the time to act on any of these, so don't worry about me).
I looked on the buttonbox site and didn't see anything saying the plans were copyrighted nor did I see anything saying that it was not legal to sell his products without permission.
Now the questions -
Hypo 1 - I don't understand circuitry design although I have taken some courses in it. However, it seems pretty clear how the buttonbox is wired. I am looking to build a similar device with two microprocessors and double the inputs. I can see how to adapt the button box design to do this, but don't know if I would need dual timer chips, dual capacitors, etc. But assuming I figured that out, at what point does it become my product to build and sell if I want to, and not a modified ButtonBox. Remember ButtonBox has never mentioned a dual microprocessor unit and nothing on their page even suggests that it is possible, that part was totally my idea. OTOH, all the design and component layout for each half of the circuit is strictly ButtonBox and I couldn't reproduce it (without referring to their schematics) if I tried.
Hypo 2 - Let's say I build a ButtonBox for my own use. It's costs me $25 in parts and 2-3 hours in time. My plans change, and I realize that I will need an encoder with more inputs, so I sell it to buy a KE-72. I get $30 from someone on the Buy/Sell/Trade board. Did I rip anyone off? Should I send part of the $30 to the ButtonBox designer? If so, how much should his cut be? Keep in mind I only made $5 for my 2-3 hours of labor on it.
Hypo 3 - I buy components in bulk and hire legal sweatshop workers to make them and offer them on a website for $30.00. This is the same as Hypo 2 above, except now it is a business, and now hopefully, I am making $10-$15 per board instead of the $5 each shown above. Am I now cheating the ButtonBox designer? Even though he's said he does not sell ready-made boxes and has no plans to either? Again, what would be a fair cut for him?
Hypo 4 - The guy that was selling the ButtonBox with a Jamma adapter for $100 Euros. Where is the illegality or the unethicalness of selling these? Some people mentioned that he couldn't legally make a profit or even sell them without the developer's permission, but remember, the developer put his plans on a website and said "here is how to build one of these", with no restriction (AFAICT) on the use of the plans. And, like in Hypo 1, it isn't a straight copy b/c the ButtonBox doesn't use a Jamma connector. I agree it was a rip-off, because the professionally made J-PAC sells for $57 and the components for the ButtonBox J-PAC couldn't have cost much over $30. So let's say he sells the same product for $50.00. Is it still Illegal? Immoral? What if the price was $30.00? The real question is "Is it wrong for him to sell the product at all, or just that he was charging so much for it that you would be silly to buy it?"
Well, hopefully this should stir up some good debate!!!
Please post your opinions!!!
-
Could you give suggestions or point to a howto to transfer your plans to pc board:)
Load the board into Winboard print it out on a transparency, place this over your presensitized board, expose it to florecent light for 5min/side then develop and etch, drill and populate.
so let me see if it is this easy.
Goto your site, figure out how to get the circuit to board. Then get all the parts listed, solder them on in the right spot. No programming, or anything?
-
Could you give suggestions or point to a howto to transfer your plans to pc board:)
Load the board into Winboard print it out on a transparency, place this over your presensitized board, expose it to florecent light for 5min/side then develop and etch, drill and populate.
so let me see if it is this easy.
Goto your site, figure out how to get the circuit to board. Then get all the parts listed, solder them on in the right spot. No programming, or anything?
No it's not, he mentions software to download on his site. And there's an RS232 connection on that PC board. And earlier in the thread he said to send some command over the serial port to bring up the menu.
-
Ok, this is getting interesting! Let me play devil's advocate and throw out some hypotheticals here. I will use the buttonbox as an example. (And I have neither the ability nor the time to act on any of these, so don't worry about me).
I looked on the buttonbox site and didn't see anything saying the plans were copyrighted nor did I see anything saying that it was not legal to sell his products without permission.
Obviously, I AM NOT A LAWYER, so take my comments with the usual "grain of salt" :)
From the source code:
; You can use this code as you see fit, but you cannot sell anything
; that uses this code (or parts of it) without my permission.
Now, this isn't exactly a legal copyright statement, but it probably would offer some protection.
Now the questions -
Hypo 1 - I don't understand circuitry design although I have taken some courses in it. However, it seems pretty clear how the buttonbox is wired. I am looking to build a similar device with two microprocessors and double the inputs. I can see how to adapt the button box design to do this, but don't know if I would need dual timer chips, dual capacitors, etc. But assuming I figured that out, at what point does it become my product to build and sell if I want to, and not a modified ButtonBox. Remember ButtonBox has never mentioned a dual microprocessor unit and nothing on their page even suggests that it is possible, that part was totally my idea. OTOH, all the design and component layout for each half of the circuit is strictly ButtonBox and I couldn't reproduce it (without referring to their schematics) if I tried.
Even individual subroutines can be copyrighted (in some cases, even patented!). In the example you gave above, it would probably depend on how much of the code you used "verbatim" to achieve your goals.
Hypo 2 - Let's say I build a ButtonBox for my own use. It's costs me $25 in parts and 2-3 hours in time. My plans change, and I realize that I will need an encoder with more inputs, so I sell it to buy a KE-72. I get $30 from someone on the Buy/Sell/Trade board. Did I rip anyone off? Should I send part of the $30 to the ButtonBox designer? If so, how much should his cut be? Keep in mind I only made $5 for my 2-3 hours of labor on it.
Any use or distribution of copyrighted materials not sanctioned by the copyright holder is not allowed. This goes for any purposes not specifically allowed by copyright law. You can condition it any way you want, but it always boils down to that.
Hypo 3 - I buy components in bulk and hire legal sweatshop workers to make them and offer them on a website for $30.00. This is the same as Hypo 2 above, except now it is a business, and now hopefully, I am making $10-$15 per board instead of the $5 each shown above. Am I now cheating the ButtonBox designer? Even though he's said he does not sell ready-made boxes and has no plans to either? Again, what would be a fair cut for him?
You would have to discuss that with the copyright holder. Whether it is a business or not has no bearing on the situation.
Hypo 4 - The guy that was selling the ButtonBox with a Jamma adapter for $100 Euros. Where is the illegality or the unethicalness of selling these? Some people mentioned that he couldn't legally make a profit or even sell them without the developer's permission, but remember, the developer put his plans on a website and said "here is how to build one of these", with no restriction (AFAICT) on the use of the plans. And, like in Hypo 1, it isn't a straight copy b/c the ButtonBox doesn't use a Jamma connector. I agree it was a rip-off, because the professionally made J-PAC sells for $57 and the components for the ButtonBox J-PAC couldn't have cost much over $30. So let's say he sells the same product for $50.00. Is it still Illegal? Immoral? What if the price was $30.00? The real question is "Is it wrong for him to sell the product at all, or just that he was charging so much for it that you would be silly to buy it?"
You still have the copyrighted code to contend with. If the individual made a professional board of his own design and layout that was compatible with the programmed ATMEL (heck, the blank ATMEL could even be provided so the individual could just DL the code and program it through the board), they would probably be ok selling it. You definitely can't distribute the code without permission from the author. But again, I'm no Lawyer, so don't take this as legal advice. :)
RandyT
-
I've done the same, with 56 inputs (many more possible of course). Works like a charm, but the cost to do the PCB and all of the screw-down headers wound up jacking to cost up a fair bit.
My design was to build an 8x8 (wound up only doing 7x8) matrix switch with diodes. Worked first time. The PS/2 protocol was the trickiest part of the whole thing. I haven't coded up a host-side stack (to interface to another keyboard), but I did put a second ps/2 jack on the board just in case I decide to run pass-thru in the future.
I'm curious to know what route you took.
I'll put my plans up this weekend if anyone is interested.
-
I'm acutally not using a matrix, there are currently 4 common line and 8 data lines (4x8=32) each common line is turned on the the data is scanned seperately then turned off and the next common line is turned on, and so on.
you may find you have ghosting problems without using switching diodes on each input. think what happens if you have the following:
outputA-------X-------X (X closed, O open)
| |
outputB-------X-------O
| |
inA inB
if you drive outputB and read inA, inB, you fill find active signals at both inputs. You need to stop the current from flowing back onto parallel output lines by placing a diode in series with every switch like this:
output -------------X-----------X
| |
A A
| |
inA(bus) inB(bus)
(assuming you are driving active-low, diodes reversed otherwise) This lets the low voltage flow out of the switch towards the inputs, but stops it from flowing onto adjacent output lines from the input bus.
Not sure if you considered this or not (and I haven't read far enough down the page to see if this was pointed out by someone else).
I have a full 7x8 matrix working fine.. only downside is I had to mount 56 diodes :)
-
When I finally get the board done and I find out this is happeneing, then I'll add them to the buttons.
Ron
-
The PS/2 protocol was the trickiest part of the whole thing. I haven't coded up a host-side stack (to interface to another keyboard), but I did put a second ps/2 jack on the board just in case I decide to run pass-thru in the future.
Yes the PS/2 protocol was the hardest part to do and I also have set up a key in iin hardware and the routines are in software but I'm not polling the key in line I may down the road.
-
Yes the PS/2 protocol was the hardest part to do and I also have set up a key in iin hardware and the routines are in software but I'm not polling the key in line I may down the road.
Actually, the state machine worked with minimal effort, it was the unexpected 20k pull-down resistor I needed on the Data line. It was causing outbound codes from the PC to get garbled (0 sometimes read as a 1), so I couldn't ever make it past the keyboard test at power-up on the PC. Spent about 8 hours in the lab at work scoping that one out :P
About the diodes, if you find you have problems and you don't want to re-fab a PCB, you can just wire them into the cabling that goes to your switches.
Cheers,
Sean