jmkasunich: are you around?
nothing high level or philosophical, I promise ;)
actually, I'm looking for a HAL solution, and the only ones I can come up with are complex
I was wondering if (a) you had any better ideas or (b) you could help a little with design of a new component
what are you trying to do?
if you read about 30 lines back, I describe "the new checkresult" and trying to check timing of quadrature (or any other) steps
so you want to measure the time between pulses or edges
in HAL, it would be counting the number of thread runs during which the inputs remain the same
which is a PITA with mathc8 and a bunch of muxes / flipflops
you could use the integrator, with the step signal connected to reset
generating a reset for a quadrature stepgen output isn't simple
you still need latches for the old phase-* outputs
but that's a good thought
"edge" would work
well, two edges and an or
ok. maybe I'll mess with that. thanks
I knew I just wasn't seeing something obvious :)
crap - need 4 edges, there's no "either" option
I'm about to reply to your mail
that "megacore" license is almost certainly completly irrelevant
megacores are predesigned chunks of IP, such as a cpu or a bus interface or what have you
that you license, and then embed in your FPGA design
Jeff used no such things
just plain old verilog code
(code that _he_ created, and holds copyright to)
but he used their tool, which spit out code like in <looking up the file name>
its a user constraint file.... whats the big deal?
it contains terms like "ALLOW_ANY_ROM_SIZE_FOR_RECOGNITION ON" which could be construed as "direct product thereof" in paragraph 10.2" in
which one? the megacore one?
I know it's bullcrap
, but it's complex legal bullcrap
"the megacore function"
he did NOT use any megacore functions!!!!
Ok, but doesn't a megacore function include any output from Quartus?
It is a "one or more design files", they don't specify whether the files in question are provided by Altera, or are user generated.
when people in the FPGA business talk about "cores", they are talking about predesigned functions
[04:05:20] <jmkasunich> http://www.altera.com/products/ip/design/ipm-design.html
John, I do understand your point, and from an engineering perspective I do agree with you completely.
put "megacore" into the search box at altera, and you get docs for PCI-express bus interfaces, FFT blocks, SDRAM controllers, etc
he did not use any of that IP stuff, so the "megacore" license is completely irrelevant
It's just that this license won't be interpreted by engineers, it will be interpreted by lawyers.
this is NOT just an engineering perspective - its also the legal one
its the WRONG license
its not a matter of interpreting it
thats like saying a windoze user who doesn't have office is subject to the terms of the office license as well as the main windows license
OK, I guess I'm just really leery of outfits that have lots of strings attached.
I can agree with that
but please don't make the FUD worse
I also can't see what damages Altera could possibly claim.
gene doesn't know wtf he is talking about
nor does paul
But common sense and the law are often only loosly related.
more info about megacores: http://www.altera.com/products/ip/altera/mega.html
they are a completely differnt product from the basic design softward
I did consult all the referenced docs trying to find where it said, "you can distribute any files you create".
Why in the world does their tool put that text at the top?
if the design software is equivalent to a compiler, then the megacores are equivalent to a proprietary library
because it was designed by greedy people
you can create a constriant file manually, or you can use their editor
if you use their editor, it shits in your file
The problem with these licenses, and Rabbit's is even worse, is that they are not sufficiently explicit <what you just said>.
I'm just so tired of this sniping about licenses. It sucks up a lot of time.
we need to be very sure that what we say on the users list doesn't just play into Paul's hands
the reason the old version has the altera crap in it and the new one doesn't is that jepler decrapped it after paul's first message
here is the commit message: "take care never to edit these files in quartus; it will add erroneous Altera copyright blocks to the file"
I read that.
I guess that the explanation that you've given needs to be posted.
I intend to
In great detail so that it is clear to any idiot, or even a lawyer, who owns which rights to what.
unfortunately we need to address the damned fud point-by-point to demonstrate that it is 99% bullshit
That was my original intent.
It's just that if they say, "this is subject to that license", I figured that they meant it. I figured that the pld contained some Altera provided IP.
# to the terms and conditions of the Altera Program License
# Subscription Agreement, Altera MegaCore Function License
# Agreement, or other applicable license agreement"
applicable is the key word
megacore licenses are not applicable, because he didn't use megacores
note OR, not AND in that sentence
in the beginning, they talk about"
our use of Altera Corporation's design tools, logic functions
# and other software and tools, and its AMPP partner logic
that is a laundry list of things that he MIGHT have used
he certainly did not use AMPP partner logic functions (that is third-party IP stuff - non Altera "megacores")
"logic functions" probalby means megacores, although its possible that it means things like "3 input and gate" which might be part of the basic design tools
OK, so he didn't use any of the Megacore functions. Is it OK to redistribute that constraint file or other infrastructure stuff from the design tool?
not sure yet
I had a heck of a time just finding these license files...
we need to look at the software license closely
its a heck of a lot shorter than the megacore license
I dont' see why altera would care about the constraint file
it's totally design dependent and contains no IP of theirs
Did he use the web version of Quartus?
you'll have to ask him
I'm sure he didn't buy any software from them
That license file link is in my e-mail
petev: Common sense is nearly unrelated to the interpretation of legal stuff
true, but they wouldn't want to waste money on legal fees over nothing
I don't have a copy of the altera stuff, and I'm not about do register for it just to examine the license that comes with it (which may or may not be the license that you found)
all it would do is hurt sales of their IC on the pluto board
petev: that is not the point
Paul is FUDding about the threat, not the reality
<what john said>
we have to show that we are permitted to release the firmware, not just that they won't bother sueing us
I understand, but I have used megacores before
We must present an affirmative defense
I bet you had to license them....
the idea there is you are licensing some IP from altera or a partner
they don't want you to then take that and make an ASIC
then they get no money
that's what all the legal BS is about
before you arrived, I already talked to matt about the megacore issue - that license is totally irrelevant to Jeffs work
the design software license is not
but it is also a lot less restrictive
matts message to the list focused the attention on the wrong license unfortunately
I didn't see anything in the design sw license, but I'm no lawyer
Right, we understand, but contracts are interpreted according to the "four corners doctrine", it's not the intent, it's what's written within the four corners of the page
as long as you are on the right page
the design software license makes no claim whatsoever to the output of a design
I'll admit I might have been mistaken on that point
if it did, Altera's corporate customers would drop them like hot potatoes
my employers are not going to give Altera even the tiniest slice of the rights to my work
I'm already dropping them after hearing thier tool drops copyright shit in your files
that is rediculous
Altera's corporate customers are not affected by this at all, they pay for a license to program chips, then distribute only the chips
or at worst, a .bin that is simply clocked into the chip
thats not how fpgas work
they pay for a license to use the tools to develop designs (or they use the no-cost tools)
they pay for the chips themselves (blank silicon)
and then they distribute the bit files to program them
the main only restriction
the main restriction is that you can't use those bitfiles to program somebody elses chips
you usually only need to buy the tool if you are using one of the latest and greatest parts that aren't supported in the free version
which doens't really work anyhow
and in any case, you still own the output files
the bit files are totally IC specific
but they don't redistribute any of the source used to compile that bitfile - that's what we're doing that's different
but that source is jelpers IP, not altera
I have libraries of HLD that get used in many parts
we own the source even MORE than we own the output bitfile
if I use it in an Altera, no way does that mean I can't use it elsewhere
anybody (corporate or free software) is free to take the Verilog and compile it using other tools, for other chips
they NEVER own ANY of the source
they MAY "own" some of the output, because it contains stuff that their toolchain put in it, but they only put a few limited restrictions on what you can do with the output
because to restrict it excessively would be commercial suicide
I think Paul didn't have a clue, or just wanted to make trouble when he saw the erroneous copyright
We need to locate the text that governs the redistribution of the "toolchain output" like the constraints file, etc.
constraints are an input
Yes <trouble>, but once an issue is raised it must be addressed
they set the timing and other parameters that the tool needs to meet
yes, but the names like "ALLOW_ANY_SHIFT_REGISTER_SIZE_FOR_RECOGNITION ON" are Altera IP. No?
no, I think they are Altera keywords
it's like a keyword in C++
or VHDL or whatever
mshaver: I can't speak for altera
for altera's toolchain, but xilinx has similar constraint files
they have their own editor to create them
but the keywords are completely described in the documentation, and it is quite possible to create the constraint file manually
but C++ is a standard that, for some reason I haven't researched, is publically usable to define a language
what does that have to do with anything?
it doesn't matter whether the language is standard or proprietary
if you tell me how to write a program in your proprietary language, that doesn't mean you own the program that I write
my point was that I don't see how using the language could make the IP belong to Altera
if it did, nobody would use their parts
there is a certain syntax for writing a constraint file, just like there is a certain syntax for invoking a program from the command line
using the syntax doesn't mean giving up copyright
No, but the parameters of their constraint files are specific to Altera's development software. We are revealing to non-licensees the names and potential values of these parameters when we redistribute the file.
as I said, I haven't looked yet, but I bet you those names and values are in the manual
For example, it might be that the fact that Altera has a parameter like "ALLOW_POWER_UP_DONT_CARE OFF" which is specific to their tools and which, because it is adjustable, or definable gives their system a competitve advantage and is copyrighted.
tfmacz: hi Ted
I know I'm reaching here, but I'm taking the other side in this debate
there are only reasons for Altera to want this IP distributed and non for them not to
I don't think we should waste a lot of time on it
it took me a couple days to figure out how to do the xilinx stuff without using their stupid IDE/GUI
the real tools are all command line programs
the docs for the command line programs almost certainly tell you what those options are
they do NOT force you to use their GUI, or their constraint editor
then can we just rewrite the file? (maybe that's what jepler did)
I think all he did was remove their header
__I__ sure don't want to waste any more of my time! Monday, I'll call Altera & explain this, give them the cvs URL & let them render their opinion.
cradek, Hi Chris
jepler wrote the file to begin with, he had to pick the approriate settings, maybe he used their editor
mshaver: please do not do that
cradek, I like the image2gcode that you added to Axis
if somebody is going to talk to atlera about Jeff Epler's design, it should be Jeff Epler - since only he can describe exactly what he did and did not use from their toolchain
Oh, OK! If he wants to do it that's even better!
I don't know if he wants to or not
he's not around at the moment
well, it's not like it's an emergency...
[04:58:40] <jmkasunich> http://www.altera.com/literature/hb/qts/qts_qii52001.pdf
is the manual for their constraints editor (they call it an assignment editor)
It just irks me to no end when these issues are brought up over & over, and I'd love to see all the nails driven home that settle this once and for all!
I'm downloading the manual for the step in the toolchain that reads that file
or not... got another gui tool manual
What is Paul's motivation here? Does anyone know?
he's been this way ever since he resigned his board position in a "huff"
mshaver: have you seen his writings on his tuxcnc website?
he wants people to be scared of emc2 so he has time to write his own derivative of emc
(which is FUD by definition)
jmkasunich: yes, found it the other day, sort of funny actually!
yeah I like the part about voodoo dolls or whatever it was
btw he'll read this archive tomorrow (hi paul!)
cradek: Between things like this, and sniping from the Mach camp about how much we suck, even to people who never gave the EMC more than 5 minutes to evaluate, I was very happy when you took over this mess ;)
hah, found it
[05:06:43] <jmkasunich> http://www.altera.com/literature/manual/mnl_qsf_reference.pdf
its 4 meg, don't download it unless you care...
that lists all those silly options
you over-estimate my role - I'm only part of a team
I think that was a collective "you"
yes, the part that gets blamed!
LawrenceG: how about this
yes, paul has a particular dislike of me, which is funny because he's the one who welcomed me into the project
"ALLOW_ANY_SHIFT_REGISTER_SIZE_FOR_RECOGNITION" is defined on page 2-129
well, I guess if they list the params in a publically avaiable doc, we can't be doing very much wrong here
none of those directives can be considered proprietary information
their editor is just a convenience tool, the output file can be created manually
even when you use the tool, the output is directly related to your input into the GUI, which means under copyright law you own the output
ok, just looking at the other files in pluto_firmware to see if there's anything else, probably not....
wow, I catted pluto....rbf to my terminal & now my term is pretty funky ;)
I think that is the binary bitstream ;-)
the .v files, they're dome sort of logic description language?
verilog I think
ok, so that's not a problem
those are the "source code"
jeff owns thost 110%
the .pin file looks pretty harmless, it just describes how the device was routed
Unless the .bin file contained some of those proprietary cores or other licensable IP, the .bin should be redistributable, so I guess it's all OK.
I'm out of arguments.
mshaver, are you still geographically near fred p./nist?
I have some that nist lathe on loan, and I'd like to get it back to fred p.
err, pretend that was english
In 1983 I got laid off from amy first computer job at Burroughs. A guy I worked with asked me what I was going to do. I said I was going to clean up my environment, and go to end of job...
cradek: yep, down the road a piece
it would be great if I could send it back his way through you - can you spare the space on the return trip after fest?
sure, no problem
I could ship it but it's so large that seems risky
thanks, that's great
I'm sure you can keep it as long as you need it, if you've got more you want to do
I got a message from someone at nist today - she wants to arrange paperwork so I can keep it longer
If it goes back, it might get thrown away
yep, that happens all the time
since I have retrofitted my own lathe the only thing that could still be useful on the nist lathe would be the spindle control
(I don't have that)
someday I want to do CSS, but rigid tap will be first
You know, I'm going to do some lathe stuff for Smithy, so i can return it if you're done & check it out myself
I'm supposed to do CSS
unless you do it first/soon :)
it's partly done (we moved spindle control into realtime)
good - I need to buckle down, stop reading the e-mail list & do some actual work.
have you played with lathe tool shape comp? it's pretty neat
we could do gouge protection too - the angles are already in the tool table
too many projects :-)
no, I even have a Hardinge HNC retrofitted in my basement & haven't done any software yet
I get waylaid all the time with life stuff
we should be careful not to duplicate work...
lately we seem to want to tackle the same things
cradek: Need something else to work on???
tfmacz: ask not what your Free software can do for you
cradek: need to add a spindle speed dialog to the image-to-gcode setup
cradek: don't cut much at 1000rpm
that doesn't sound too hard
you give me too much credit for i2g - it's mostly jepler's work based loosely on my older work
I have been using the image-to-gcode script from the command line pipes to a file, then I can edit the spinde speed
cradek: true (writing something about this debate here on the list)
right, good workaround
cradek: so I should ask Jeff about it???
spindle override might also be a workaround
yes, or submit a feature request in the tracker on sourceforge
or submit a patch! :-)
cradek: would need to be able to take the override to 1000% to be useful
I will have to keep bugging LawrenceG about that...waaaaay beyond me...
possible, but silly
cradek: a patch..
cradek: he suggested doing that
tfmacz: I heard that....
jmk, you still there?
I was cleaning out some old stuff and found some old dev tools
I have an old promice and some 80186 sw tools
you interested in any of it?
I have no use for it
neither do I
I only develop for the PC
the promice could be used for other projects, but I just don't use through hole stuff anymore
I would have a couple years ago (if it would emulate 2716 prom)
anyone else interested?
I can check on that cradek
thanks anyway, project long over
if anyone knows any DIY type that would want this stuff, let me know
I also have some old Borland x86 compilers and the Pharlap stuff for embedded
heh, me too (somewhere)
majorbbs used pharlap
I have Watcom C/C++ around here somewhere ;-)
yeah, I have that one too ;-)
one of those is free (of cost) now, I forget which one
used to be good tools at the time
OK, new e-mail on the list explaining the Pluto stuff. Should put it to rest. Something simillar should probably be written up for the other firmware directories.
thanks for doing that matt
no problem - going to bed now - or to eat a sandwich, probably both...
me too, goodnight
for anyone who still cares about the quartus settings file: while I think it's asinine that quartus puts a copyright on a file holding information that I entered, I did the following asinine dance:
made a Python program that had a list of the settings and their values, made by typing in the settings I read from the other file (which are purely functional, since there's no other way to request that signal X go on pin Y, for example)
then i ran that program
then I forgot all about it -- this was the *last* time this came up, a few months ago.
fast forward to yesterday -- the machine where I had done had been reinstalled in the mean time, and I was only able to find the output file, not the python program
I decided to check in the output file anyway
steves_logging is now known as steve_stallings
Just this once .. here's the log: http://www.linuxcnc.org/irc/irc.freenode.net:6667/emcdevel/2007-03-17.txt
I see someone was talking about 1000% override last night late. Anyone know what that was about.
rayh: I think that was because image-to-gcode had hard coded 1000RPM, and he wanted more
rayh: chris fixed it by letting the RPM be specified directly
a "work around." I tested large overrides with feedrate and they seem to work fine in the tcl stuff.
jepler: that's debateable
both aspects really
alex_joni: it's clearly afternoon where I am
sorry to hear that
time will make it right
cradek: I think I need to back-port all these image-to-gcode changes -- I forgot that the tool shape stuff was all wrong, which I discovered when I did gdepth...
jepler: great, do it soon then...
cradek: do you think doing hal_input would be OK too?
it's totally isolated?
yes, it's two additional files
no harm in that
I'll get to it -- I hope one of you will check that I got the packaging right
jepler: cradek: hi guys.... I am thinking of adding a sync pin to the pwmgen block so I can sync the pwmgen output to the 60hz line zero crossings... any comments?
jepler: I struggle to keep up
right now I'm wondering why I <strike>spent</strike>wasted so much time on the mailing list reading FUD
alex_joni: I skipped over it -- "more heat than light" as they say
98% for a lightbulb?
LawrenceG: hm -- I'm not quite sure how that would fit into the pwmgen algorithm
LawrenceG: don't you want a triggerable oneshot with configurable on-time?
LawrenceG: maybe there's some way to combine pwmgen with 'edge' or 'flipflop'?
yes there's also 'oneshot'
unfortunately, oneshot.N.width / edge.N.out-width-ns are both parameters rather than pins
what's 60Hz ?
alex_joni: US power
* alex_joni grins :P
jepler: it may be better to make a new block as one doesnt need the complexity of 8 pwm pins
I am playing with making a cheap spindle control using ssr and pwmgen... with it being none synced, there is some speed hunting as the pwmgen freq beats with the line freq
pwm duration gets radom additions to leading and trailing edges due to triac action
but it sort of works for 3 or 4 speeds
LawrenceG: I think I'd try my hand at a new, less generic component.
sync pin -> 0-8ms delay( to sync with real zero crossing) -> 0-8ms phase control
LawrenceG: have you read the source for any of the ".comp" components? they can be quite simple
yeah... I am just exploring the possiblities now... all the parts are there, smop
I am thinking open loop for now, but it could be generalized to accept speed feedback as well
it would be nice to use existing encoder and pid blocks for the feedback
would it be possible to re-use the existing pid module for that?
great minds think alike
I dont think anyone has done a speed control in hal... the lathe code comes close with the spindle feedback, but it is just syncing other moves and not correcting spindle speed
so this component of yours will take a reference signal, a width, and a phase, and output pulses of the requested width that are in the given phase with the reference?
sync pin in(120hz likely), commanded speed input from motion(ie S1000), and an ouput pin that pulses 0..8.3ms on
there will need to be a fudge factor input pin to get the sync signal actually lines up with the ac zero crossing the triac sees
feedback is another optional input
basically a $1000 light dimmer
does Hal Config work for you?
quite a bit easier then generating step pulses!
alex_joni: anything in particular about it?
jepler: running it?
I selected sim->tkemc, and the Hal Config from the menu
and it barfs (something about a signal)
Error in startup script: node "sig+XYZvel" already exists
yeah me too
in 2.1 from the package, I only get "Hal Show", not "Hal Config"
"Hal Show" works
Hal Config is not in 2.1
yeah, I know hal show is supposed to work
Hal Config is ray's attempt at making an HAL editing thingie
but he had problems on writing the output I think
this bug looks familiar, like it's something I had fixed in hal show once..
RCS file: /cvs/emc2/tcl/bin/halshow.tcl,v
date: 2006/07/23 20:10:06; author: jepler; state: Exp; lines: +4 -4
fix for error: Error in startup script: node "sig+XYZvel" already exists
maybe this can be applied to hal config as well
thanks for the pointer
yup, that fixes it
LawrenceG: still here?
I saw your thoughts about doing SCR control when I read back yesterday
that is definitely a candidate for a new HAL component
and I will do it sooner or later if you don't
LawrenceG: a good generic phase control module would have a sync input (for the zero cross signal), 1, 2, 3, or 6 outputs (for single phase and three phase, triac and scr bridges), an offset parameter used to tweak the timing, and a single control pin for an input
the control pin would control the lag between the zero cross input and the output(s)
any additional control and/or feedback would be done with other blocks, like PID, etc