Shop OBEX P1 Docs P2 Docs Learn Events
Propeller add-on for Raspberry Pi: RoboPi.. the most advanced robot controller for Pi - Page 4 — Parallax Forums

Propeller add-on for Raspberry Pi: RoboPi.. the most advanced robot controller for Pi

1246712

Comments

  • David BetzDavid Betz Posts: 14,511
    edited 2014-02-07 12:28
    Looks pretty easy to build even without a manual if you just provide a parts list that matches the part numbers on the board with their values.
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-02-07 12:34
    Thanks David!

    I decided to go the "extra mile" for the sakes of all electronics teachers out there, lending them a helping hand so to speak.

    You are absolutely correct, all people really need is a parts list (with pcb legend).

    Nine jpeg's edited, 8 - 9 to go... then time to put them in the manual! Then clean up the parts list, verify legends, clean up schematic for the manual, make block diagram... I'll be finished sometime this weekend I think. If you don't want to wait for the full manual, I can email you a draft.

    That SMT voltage regulator is the only slightly tricky part, as long as people follow the build order.

    The only other tricky bit is people decide to install the com/propplug header before soldering the Pi header, as that will make soldering a few pins of the Pi header a bit difficult.
    David Betz wrote: »
    Looks pretty easy to build even without a manual if you just provide a parts list that matches the part numbers on the board with their values.
  • David BetzDavid Betz Posts: 14,511
    edited 2014-02-07 12:36
    Thanks David!

    I decided to go the "extra mile" for the sakes of all electronics teachers out there, lending them a helping hand so to speak.

    You are absolutely correct, all people really need is a parts list (with pcb legend).

    Nine jpeg's edited, 8 - 9 to go... then time to put them in the manual!

    That SMT voltage regulator is the only slightly tricky part, as long as people follow the build order.

    The only other tricky bit is people decide to install the com/propplug header before soldering the Pi header, as that will make soldering a few pins of the Pi header a bit difficult.
    Is there any need to use the 6.25mhz crystal or can I just use a 5mhz one?
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-02-07 12:40
    About the only difference is that if you use my upcoming RoboPi libraries and demo's you'll have to change the crystal frequency.

    Reason I went with 100Mhz is the 10ns timing grain.

    You could use pin-sockets, and change crystals at will.
    David Betz wrote: »
    Is there any need to use the 6.25mhz crystal or can I just use a 5mhz one?
  • jmgjmg Posts: 15,155
    edited 2014-02-07 13:26
    ... the SOT-223 1117-3v3 voltage regulator:

    Just an idea if overclocking and using the fixed versions of 1117, you could try adding ~ 15 ohms to the GND leg.
    Or whatever is needed to give ~ 3.45V - you move the error bands to stay a margin below the Elect MAX, and yet still ensure Vcc never can be too low.
  • Heater.Heater. Posts: 21,230
    edited 2014-02-07 14:48
    Bill,

    TL;DR

    Never mind all the supposed happening,

    The bottom line is that if I get some binary executables from you. Then you are clearly distributing said binaries,

    Under the terms of the GPL you have to provide sources for those binaries if I ask.

    Are you prepared to do that?

    By the way md5 sums do not help. They cannot show that a particular binary came from a particular source code.
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-02-07 15:47
    Heater,

    I have no idea what "TL;DR" means, so I cannot respond to that part of your message.

    By your reasoning, if someone hires a consultant to install say Ubuntu 12.04 LTS, from an "official" Ubuntu DVD, the consultant has to supply the source on request, without charge?

    What about all the Linux magazines that include binary distro's in their cover DVD's?

    If I supply a binary, I would be willing to supply the source available to me at the time of request, but I would charge for providing that service, at my normal rates - which I think is fair, as whoever asks would be perfectly capable of getting the sources themselves. The GPL allows this, only noting that the charge must be reasonable. A consultants normal hourly charge for providing services is reasonable.

    By your reasoning, the Pi Foundation would have to supply source for the OS's included on Noobs on request, and I suspect they would - but they would charge for it, or just provide links.

    Re: md5 - pick your favorite hash, or several of them. Use 'cmp' recursively on the trees. Your argument would also mean you cannot "trust" the Raspbian images, as you cannot guarantee that they came from their source repos.

    FYI, for yucks I just tried to wget the whole wheezy archive, guess what - it failed!

    If I ended up doing this, I'd probably just grab the source archive, and if someone really wanted me to burn a dvd, I'd do it, but charge them actual time taken to handle their request and mail it, plus shipping.

    Much simpler for them to fetch it themselves.
    Heater. wrote: »
    Bill,

    TL;DR

    Never mind all the supposed happening,

    The bottom line is that if I get some binary executables from you. Then you are clearly distributing said binaries,

    Under the terms of the GPL you have to provide sources for those binaries if I ask.

    Are you prepared to do that?

    By the way md5 sums do not help. They cannot show that a particular binary came from a particular source code.
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-02-07 16:02
    Heater,

    Looks like it is not too tough to mirror Rasbian distros, just a long rsync session while sleeping.

    httrack also seems to work, matter of fact I am mirroring wheezy right now.

    update:

    will use a different server later, it would take forever to download the archive at 25KB/sec

    update2:

    different server tried, also limited at 25KB/sec

    One post says raspbian archive is 60GB, let's say wheezy is "only" 20GB

    at 25KB/sec that's > 9 days of downloading

    rsync is the way to go, and hopefully it won't be throttled as much

    I have a 50Mbps pipe, 25KB/sec (250kbps) is very painful. 1/200th of my possible bandwidth.
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-02-07 16:48
    I give up. Heater 'wins'.

    I have a lot of work to do, and tracking down counter arguments to Heater's objections is giving me a headache (and taking more time than I have to spare).

    Sorry rjo_, jmg, it is too big a headache for me to try to save you and others time by providing pre-installed SD cards.

    I'll just provide a page on my site with detailed instructions on how to install everything yourself.

    Sorry, I'd have loved to sell a RoboPi SD card for "plug in and go" development.
  • Heater.Heater. Posts: 21,230
    edited 2014-02-07 16:54
    Bill,

    Sorry for the slang. TL;DR is ancient usenet speak for "Too Long ; Did not Read"

    All these "if then but" examples are making the whole deal a lot more complex than it actually is.
    The bottom line is:

    1) If you give the binaries to me.

    then

    2) You have to be prepared to provide me the sources from which those binaries were built.

    How simple can it be?

    The software has to be free.

    That does not mean that it is free of cost. Or that you are free to do what you like. Or that I am free to do what I like.

    No, the software itself has to be free to travel where it likes.

    It sounds weird put that way, but that is what it is about.

    I read it as:

    If a consultant has the binary he has to be able to get the source for himself, If he installs it for me that's another transaction and I have to be able to get the source from him. And so on.
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-02-07 17:13
    Heater,

    I understand the strict interpretation. Even if I don't think it makes any sense whatsoever.

    If only Raspbian provided a DVD image of the source debs for all the GPL packages in the distro, it would be easy. But they don't.

    Perhaps that's so people cannot provide the service of SD cards.... but people do. Just check Farnell, Ebay, Amazon... need I go on?

    FYI, right beside me I have a brand new Model B from element14, with the 8GB Noobs SD card.

    Guess what?

    No written offer to provide the source.

    The point I was trying to get across is that GPL2 and GPL3 did not consider such cases.

    The strict rules make PERFECT sense for people who modify, or at least compile the source. They do not make sense for installers, or people trying to make life easy for the less technically inclined.

    By your latest post, I think you'd expect the consultant to provide the source... even if the customer handed him a purchased Noobs card, or the customer downloaded the image.

    Strict adherence in this case means newbies can't just "get up and go", power up a Pi, stick in an SD card, and be right on the desktop.
  • Heater.Heater. Posts: 21,230
    edited 2014-02-07 17:18
    Bill,
    I give up. Heater 'wins'. I have a lot of work to do, and tracking down counter arguments to Heater's objections is giving me a headache

    It's not me honest.

    It's the GPL working its unfathomable magic. I don't know how the GPL stands up as a legal document but having read through it a few times over the years I find it really hard to understand what is what.

    Personally, I may well be acting in violation of the GPL as well.

    I have posted binaries of SimpleIDE. Which includes Qt libraries, which are LGPL licensed.

    Can I get you the sources that they were built from? No.

    Do I care? No.
  • Heater.Heater. Posts: 21,230
    edited 2014-02-07 17:30
    I should say that I don't care because:

    1) I am not profiting by my action.
    2) I am not depriving anyone of income by my action.
    3) I am actually promoting the product of a company that does make money. In this case Digia who own Qt.
    4) No sane judge, (I'm not in America) would even consider a case against me for what I do.
    5) I believe the worst that would happen is that Digia tells me to stop doing that.
    6) 5) Will never happen because it would reflect very badly on them and the whole Qt project.
  • Heater.Heater. Posts: 21,230
    edited 2014-02-07 17:33
    Bill,

    Just for fun, it would be interesting to contact Element 14 and ask them for a copy of the source codes for that SD they sold you:)
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-02-07 17:40
    ROFLMAO!

    I don't want to cause issues for the Raspberry Pi Foundation, or Raspbian, otherwise it would be fun!

    They were out of stock of the SD-less Pi B's, and I needed some more (I am building Pi's into lots of bots, and thinking of other uses) so I forked out $41 instead of $35 each and got a few.

    I lucked out, they also had the Model A + camera bundle in stock for once... again $41, grabbed two of those as well.

    Prop1's are a lot of fun.

    Pi's are a lot of fun.

    Prop1 + Pi = A BLAST!

    I shudder to think what P2 + Pi will be like... too much fun?
    Heater. wrote: »
    Bill,

    Just for fun, it would be interesting to contact Element 14 and ask them for a copy of the source codes for that SD they sold you:)
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-02-07 18:15
    RoboPi I/O pin definitions

    P0-P7:

    - 10 pin EXP1 connector connected directly to processor pins, 3v3 I/O only
    - connects to signal pin on SERVO1-8 through a 2k4 current limiting resistor, 5V I/O safe
    - For the servo header, SV2 selects between the Pi's 5V and VBat from the screw terminal

    P8-P15:

    - 10 pin EXP2 connector connected directly to processor pins, 3v3 I/O only
    - connects to signal pin on SERVO9-16 through a 2k4 current limiting resistor, 5V I/O safe
    - For the servo header, SV3 selects between the Pi's 5V and VBat from the screw terminal

    P16-P23:

    - 10 pin EXP3 connector connected directly to processor pins, 3v3 I/O only
    - connects to signal pin on SENSOR1-8 through a 2k4 current limiting resistor, 5V I/O safe
    - the Pi's 5V is used for SENSOR1-8 to provide cleaner power to Ping's etc

    P24-P27:

    - SPI port for MCP3008/MCP3208 providing 0-5V analog input
    - P24 is MISO, connected to DO on ADC through a 2k4 current limiting resistor
    - P25 is MOSI
    - P26 is CLK
    - P27 is /CS

    ADC1-ADC8:

    - connects to the signal pin on ADC1-8 servo style header
    - the Pi's 5V is used for ADC1-8 to provide cleaner power to Ping's etc

    RoboProp compatibility:

    - use the supplied 6.250Mhz crystal for 100Mhz operation
    - use 24LC512 EEPROM
    - use MCP3208

    While there is no motor driver on RoboPi, if you connect a two channel motor controller as follows it will be RoboProp compatible:

    - Tie EN1-2 and EN3-4 high
    - P8 to IN1
    - P9 to IN2
    - P10 to IN3
    - P11 to IN4

    If you want to have a uSD card compatible with RoboProp, attach it as follows:

    - P12 to MISO
    - P13 to MOSI
    - P14 to CLK
    - P15 to /CS

    Btw, this is going into the documentation...
  • TorTor Posts: 2,010
    edited 2014-02-08 06:11
    Heater,

    You're making the GPL way more difficult than it really is.
    As long as someone provides binaries from unmodified sources there really is nothing to it. RMS said as much in my precense and he should know.
    Provide a link and specify the exact version of the sources. That's all. You don't have to provide magic proofs that the binaries were really built from those sources. Anyone in doubt can re-build from those sources, which is the point.

    -Tor
  • Heater.Heater. Posts: 21,230
    edited 2014-02-08 06:37
    I am making the GPL exactly as difficult as it is:)

    I have also seen Richard Stallman speak on Free Software. Even he had to think a bit when answering questions on some of the scenarios the audience dreamed up.

    I did already agree with you, mostly...

    The sticking point for me is that when Bill gives me the binary and I want those unmodified sources does Bill have them or does he know how to point me to them? Despite using Debian for years I don't know how to find particular versions of sources in the Debian repos that match whatever version of a binary you give me.

    Does anyone here know?
  • Heater.Heater. Posts: 21,230
    edited 2014-02-08 06:48
    Tor,

    From Wikipedia's summary of GPL terms:

    The fourth section for version 2 of the license and the seventh section of version 3 require that programs distributed as pre-compiled binaries are accompanied by a copy of the source code, a written offer to distribute the source code via the same mechanism as the pre-compiled binary, or the written offer to obtain the source code that the user got when they received the pre-compiled binary under the GPL. The second section of version 2 and the fifth section of version 3 also require giving "all recipients a copy of this License along with the Program". Version 3 of the license allows making the source code available in additional ways in fulfillment of the seventh section. These include downloading source code from an adjacent network server or by peer-to-peer transmission, provided that is how the compiled code was available and there are "clear directions" on where to find the source code.

    The emphasis is mine.

    Seems I'm a bit behind the times. Those version 3 clauses allow for what we are talking about.

    A lot of code is not and never will be licensed under version 3 of he GPL.
  • TorTor Posts: 2,010
    edited 2014-02-08 07:53
    Heater,
    That is not new for V3. It's just some additional wording. It's better to read up on the GPL on FSF (e.g. start with the links I gave), not WP or other 3party sources.
    I started using GPL software back around version 1.3x of GCC (that's before Linux). Binaries and source were distributed as outlined already then: A link[1] to the sources. It's a no-brainer as long as you use unmodified original sources. The controversies and court cases over the years have always, without exception, been about someone (e.g. TomTom) trying to provide binaries of modified sources but not providing said modified sources. They all comply now. My TV shows a download link to the (Panasonic modified) sources it uses, for example.
    In any case, you're of course free to copy the source you used to build from to somewhere else, your own website (or mine, feel free to) and provide a link. For genuine original sources there really is no issue though. It's not difficult to provide a link. If you provide a CD/DVD it's of course easiest to simply dump both binaries and sources on disk. For those who provide pre-installed SD cards (e.g. Odroid/Hardkernel) the source is not on the SD card because it's too small. So it's not physically possible to provide the sources by the exact same means as the binary was provided. A link is provided instead, and both the binaries and the sources are available from that link - the pre-installed SD card is simply a convenience.

    As for Debian, you can use apt-get source to get the current sources (about 3 versions), and archive.debian.org should give you the rest. But it is really not difficult, it isn't _meant_ to be either. The GPL is not about making it tricky to provide binaries from original sources, it's meant to protect from not providing _modified_ sources. It's important to keep in mind what the GPL is for.

    It's also important to keep in mind what will happen to you if you don't comply with the GPL: You are to stop distributing the non-compliant binaries. Simple as that. That's all. Check the court cases. You're not risking your money and home or having to retroactively getting back what you distributed already, in case you made a mistake (the genuine 'bad guy' cases are actually in the minority, it's mostly about ignorance). The GPL simply asks you to become compliant, or stop distributing. Change the error of your ways and you're OK. Also, your commitment is to the copyright holder of the sources, not to the user you provide binaries to. The latter can complain, but it's the former who has the right to do something about it.

    -Tor
    [1]URLs weren't invented back then but the README would give you the address of an ftp site where you would find the source. Of course back then it was more common to _only_ provide source, but you could still find pre-compiled binaries.
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-02-08 07:59
    Heater. wrote: »
    The sticking point for me is that when Bill gives me the binary and I want those unmodified sources does Bill have them or does he know how to point me to them? Despite using Debian for years I don't know how to find particular versions of sources in the Debian repos that match whatever version of a binary you give me.

    And *that* was the sticky point for me.

    After looking, it seemed to me that Raspbian is not making the sources easily available.

    Based on what you wrote, that may not be Raspbian's fault, but Debians.

    And that is a major problem with GPL's requirements, as it may be impossible to locate the source.

    Thus requiring someone downstream provide the sources directly, when they are not readily available, is ridiculous. Pointing upstream, to where they should be available is reasonable, as v3 seems to recognize.

    The "real" way around it is to "roll your own" distro from the sources, but that is nuts, no one will use it, everyone wants Raspbian. Too much effort for too little return.
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-02-08 08:07
    Tor,

    Good info.

    Perhaps that is why Raspbian does not have an easy way to download their sources - as the packages are mostly unmodified Debian packages, they (perfectly logically) expect people to get it from the horses (Debians) mouth (archive).

    And you are right, evern GPL case enforcement I've ever heard about was to force the release of *modified* sources.

    I read Groklaw everyday for years... I miss it.

    Bill
  • Heater.Heater. Posts: 21,230
    edited 2014-02-08 08:55
    Tor,

    You are actually preaching to the choir here. I'm quite familiar with all that. I'm certainly not expecting any bad outcomes due to the odds and ends I have posted around the net.

    I have read the GPL many times over the years. It's a kind of tortuous read but that is in the nature of licence conditions and leagal speak.

    If as you say getting Raspbian source is as easy as "apt-get source bla-bla" then all is well.

    This actually works well on my PC. Never tried it before.

    On the Pi I'm stuck at:
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    E: You must put some 'source' URIs in your sources.list
    
    I have yet to find any deb-src URI's that work.

    One might say that Debian ARM packages would suffice. But that assumes they were not modified to get them working on the Pi. Many were I'm sure.
  • David BetzDavid Betz Posts: 14,511
    edited 2014-02-08 15:20
    Just starting my RoboPi build. Managed to solder the VR without the locking tweezers. I'll post a picture when I'm done with the entire assembly. Even the preliminary instructions are quite clear. Nice job Bill!
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-02-08 17:57
    Thanks David!

    I fixed the two issues you found with the preliminary manual - thank you. Will send new revision as soon as I have one.

    See post #107 in this thread for I/O mapping - which I am also adding to the next draft of the manual.
    David Betz wrote: »
    Just starting my RoboPi build. Managed to solder the VR without the locking tweezers. I'll post a picture when I'm done with the entire assembly. Even the preliminary instructions are quite clear. Nice job Bill!
  • David BetzDavid Betz Posts: 14,511
    edited 2014-02-08 17:59
    Thanks David!

    I fixed the two issues you found with the preliminary manual - thank you. Will send new revision as soon as I have one.

    See post #107 in this thread for I/O mapping - which I am also adding to the next draft of the manual.
    I have it all assembled except for the 2x13 connector that plugs into the RaspPi. I'd like to come up with some way to use that as well as the PropPlug header in case I want to use the board without the Pi. Any chance of that working or does the PropPlug header get in the way of plugging the RoboPi into the RaspPi?
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-02-08 18:25
    Yes, as long as you don't plug in the PropPlug while RoboPi is attached to the Pi.

    Install the 2x13 Pi header first (make sure of the orientation, I know you know, but it is almost impossible to remove the 2x13 without destroying it) as it is MUCH easier to solder the 2x13 before the 1x5 is installed

    then add the 1x5, it is there specifically for stand-alone programming :)
  • potatoheadpotatohead Posts: 10,255
    edited 2014-02-09 11:57
    Ugh

    Sometimes this stuff is harder than it needs to be.

    It is true the FSF seeks release of code as it's primary resolution to GPL violations, breeches, etc... Their secondary one is a C&D, ideally, until code is released.

    In that sense, our exposure isn't all that significant. I myself worked through a case involving some GPL code I put out there. The FSF also will encourage people to work it out. In my case, I asked for credit somewhere and patches. Easy and it was all fine, low hassle, etc. The code got out there, and I got put somewhere in small type, which really was symbolic more than anything else. I figured actually doing something would grease the wheels, and it did. All relevant code got out there, which was the intent.

    I also issued them a license for the future, requiring only patches. Those were sent for some time. Appreciated by everyone.

    Personally, I see this one as:

    1. Is it possible to build the software? I think the answer is yes, but it is a PITA.

    2. Do people get code added / modified by Bill? I don't see him doing that, non issue. And if he does, it is super easy to make that code available.

    3. Good faith effort to inform people about where the source is. So do that. Take a day and drill down to find it and link it. Encourage others to contribute what they know and let the community figure this out for their mutual benefit. Sort of a "I did all I can, please help!" good faith thing. And value is clearly added from that activity, which makes sense in the context of a for profit offering. That's what I would do.

    4. Given the state of things, I don't think owning an ugly mess is a requirement to getting a product out there. I think some purists would disagree, but I would check that with the basic question of what is worth what? Having the product out there with a good faith effort associated with it seems solid to me personally. Frankly, I would appreciate the effort and recognize it for what it is and not think more about it, beyond whether or not I knew something to help identify all the source involved.

    My .02
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-02-09 17:38
    I don't know anything about GPL, but it would seem logical to me that is Bill...

    Provided an SD card with the appropriate binaries on the card
    All the Binaries were copied from third party websites
    The SD card included a txt file with the links to those binaries

    Then Bill would have complied with the GPL.

    The main purpose of Bill's SD card is to simplify the process for newbies to get a working SD card. They are never going to be interested in the sources (because by the time they are, there will be much later binaries available)

    Anyone wanting the sources will have the ability to go and get the binaries themselves, and therefore will not buy an SD card from Bill.

    Go do it Bill, you are making it simple for the newbies to get running.

    I nearly looked at buying an SD card for the Pi, just to save me time. Currently I am never going to want to compile the binaries, but I will be interested in perhaps getting later binaries. I did download the binaries and it ran quite simply. But for newbies, it is the terror of the unknown.

    Later, a newbie can then copy your SD card, and using the links, get a later binary and download it to the new card. You have reduced the initial burden on the newbie, and got him up and running quickly without pain. WTG.
  • Heater.Heater. Posts: 21,230
    edited 2014-02-09 21:23
    Cluso.

    If you are using a Raspbian SD, no mater if you bought it or downloaded an image, there is already a text file containing links to the source of binary packages. Have a look in /etc/apt/sources.list

    That is the file that tells the Raspbian package management system, "apt", where to find packages.

    Usually on Debian systems /etc/apt/sources.list will also contain URI's for the packages in source code form that you can build yourself if you so wish. I have yet to find working URI for Raspbian source code packages that works.

    One would perhaps want to provide links to the SimpleIDE repository and such though.

    I have come to the conclusion that "Just do it" is the way to go.
Sign In or Register to comment.