PROTOTYPE: Ethernet JTAG debugger for OpenOCD

We’re releasing a stalled or abandoned prototype every few days while Seeed Studio is on break. We put a lot of work into these projects, but they’re still missing major components and testing. If an abandoned project sparks your interest, we may have PCBs to get you started.

The goal of this project was to make a high-speed Ethernet and USB connected JTAG debugger for OpenOCD. It uses a PIC24FJ256GB106 with USB, and an ENC424J600 100MBPS Ethernet chip.

This project is currently stalled. We grew tired of messing with Microchips gratis-but-not-libre TCPIP stack, and lost interest in developing a new project with it.

Schematic and PCB are on the Ethernet JTAG debugger wiki.

Join the Conversation


  1. What about the license bothers you? (I haven’t used PICs so I don’t know it in detail).

    Many of these restrict to using with their hardware but little else.

  2. If its anything like the USB stack then anybody can use it for free with Microchip products but you’re not allowed to distribute it. This means everybody has to download it from Microchip and integrate it into their build along with the other issue is that Microchip don’t keep old versions around and they may change the API.

      1. Ah Ti’s license (at least how I read it) basically says: you can’t port this to some other hardware, because we want to be able to enforce this restriction you can’t combine this with GPL, but you can redistribute the source. (I think). Basically it limits you to using BSD style software for open projects.

        I know you guys aren’t lawyers either but that is how I read this:

        “1. LICENSE GRANT. LMI grants to you, free of charge, the non-exclusive, non-transferable rights solely and exclusively on or for LMI’s microcontroller products: (1) to use and reproduce the Software, (2) to prepare derivative works of the Software, (3) to distribute the Software and derivative works thereof in source (human-readable) form and object (machine–readable) form, (4) to sublicense to others the right to use the distributed Software, (5) permit the Software and derivative works thereof to communicate with “viral open source” software (as defined below); provided however that you may not combine the two separate and independent works to form a larger program, and (6) combine the Software and derivative works thereof with “non-viral open source” software (as defined below). For the purposes of this Agreement, “viral open source” software means open source software made available on license terms, such as the GNU Public License (GPL), that would alter the foregoing license grant restrictions if combined with the Software. For the purposes of this Agreement, “non-viral open source” software means open source software made available on license terms that would not alter the foregoing license grant restrictions if combined with the Software. For the avoidance of any doubt, the foregoing license grant does not permit you to combine the Software and derivative works thereof with “viral open-source” software in order to sublicense to others the right to use the combined software product. If you violate any of the terms or restrictions of this Agreement, LMI may immediately terminate this Agreement, and require that you stop using and delete all copies of the Software in your possession or control.”

        I base it on (2) + (3) if I can distribute a derivative work in source I must be able to include any of the library code I wish. I just can’t use GPL because that would void the current license.

      2. Which license was that for? Was it for the low-level TI peripheral driver libraries?

        That is a slightly annoying situation there.

        However for the actual TCP/IP stack, the LM3S6965 has been targeted with lwIP, and also uIP I believe. The 6965 is nice in that it doesn’t require an offboard PHY – the PHY is built in.

        (I’m just getting started with playing with a 6965.)

  3. I’d be very interested in picking this project up. I am just finishing a enc28j60 project and have extras of the appropriate passives and rj45 w/ magnetics. Seems one could sample the eth chip and use the above board (at a minimum) as a ENC424J600 “breakout”. Is there a chance you had any of these PCBs made?

  4. Hmm. I’d be interested in something like this. Would uIP not be good enough? There seems to be a few examples/ports which are using the ENC424J600 as well.

  5. Interesting – beyond a certain comment depth the “reply” links disappear.

    Having looked at the StellarisWare license (which is a bit lower-level than lwIP or a USB stack and hence might be replacable with less effort than replacing Microchip’s high-level stacks) I’m a bit more concerned about the LM3Sxxxx and open-source development.

    I think the biggest problem is that they explicitly call out the GPL as incompatible, and use the “viral” wording which is pretty hostile. It is clear that the lawyer who wrote that license HATES the GPL.

    The thing is that I believe that while a “fully open source” microcontroller software stack would be optimal, without the foul explicit anti-GPL language the StelarisWare license could prove to be GPL-compatible thanks to the GPL’s system library exception – One could easily consider StellarisWare to be a system library for LM3Sxxxx microcontrollers.

    I’ve been planning on learning/moving to the Stellaris series this year for some projects but the StellarisWare license is problematic.

    1. You and I might think viral sound harsh. But really that is a standard term for GPL like licencing. It attaches itself and you never can remove it, it isn’t really a free licence, it actually is very restrictive. BSD/MIT/Apache/some CC licenses are the most free.

      I don’t consider the StellarisWare license a problem at all. Because I can still give away the code and let people modify it. I can even say you have to re-release your code (copy left). What I can’t do is let abrogate the Ti/Luminary restriction that it has to be used on LM micros.

      If LMI didn’t put that in the licence the whole library could have been ported to STM32 with a little work and while that might be good for end users/engineers they would have had no incentive to develop the software on a corporate level. Therefore I totally understand the intent of the license and think it is okay.

      There are definitely open source zealots who are going to feel GPL compatibly is sacred but I am not one of them. I personally feel GPL is over used and BSD is underused. I love Chan’s FatFS and other tools because they are truly free: here do whatever you want with my code make something great.

  6. No, the GPL is not viral in that if you link in preexisting code that contains an incompatible license (and is not subject to the system library exception or another GPL exception clause), it doesn’t automatically throw the GPL onto that code as a new replacement license.

    It makes the “whole package” invalid and ALL licenses invalid (e.g. you can’t legally use any of it), but TI/Luminary can simply say that the StellarisWare package may only be used on LM3S micros and leave it at that without explicitly calling out the GPL. See my above comments about my belief that a StellarisWare license that had the “LM3S-only” restriction and GPL app code would be fine due to the system library exception clause within the GPL. However, explicitly calling out the GPL as forbidden in the StellarisWare license prevents the system library exception of the GPL from being used.

    Look at all of the GPL programs available for Windows – have you seen a single case of someone claiming Windows was now “virally infected” by the GPL and that its license was fundamentally changed?

    1. You didn’t read the license correctly at all:

      “[you are] permit[ed] the Software and derivative works thereof to communicate with “viral open source” software (as defined below); provided however that you may not combine the two separate and independent works to form a larger program”

      GPL software on windows is not a single larger work, it is inter-operation. What they say you can’t do is form a single larger work and license under GPL.

      The term viral is used on the context of this:

      1. BTW you wikipedia basically says you are wrong, you can’t use GPL to do part of a full work. You can use LGPL to do that though.

      2. Actually I take the below back you clearly know more about the clauses in GPL than I do… But that is how I read the section of wikipedia. The Ti/LMI license is what it is. Given the ROM functions you probably are going to call them so you probably have to get used to this license if you want to do dev on LM3S, it is a lot less bad than Microchips above though.

  7. The system library clause of the GPL is a pretty important aspect of why GPL applications can link in the various libraries of Windows, MacOS, etc. The fact that microcontroller applications are a lot more tightly linked/distributed makes things a bit more difficult.

    However, the way I read that clause, the StellarisWare libraries would still fit very well into the definition of a system library, and the fact that binary versions of them are now built into the ROM of some Stellaris models adds even more strength to that argument. Unfortunately they have that fairly explicit anti-GPL language, even though they could probably with some thought word the license to permit people to do GPL development work on their microcontroller products AND leverage StellarisWare while still keeping StellarisWare a TI-only thing.

    It’s of course not ideal compared to having a fully open/free peripheral driver library, but it’s a decent stopgap approach until something fully free/open (maybe libopenstm32 broadened in scope?) is ready

    1. libopenstm32 last I looked at it was rather primitive rewrite purely for the purpose of making it GPL which honestly in my view is a waste of human resources, there will be new Cores from ARM before such a project is mature.

      I don’t fully understand what GPL can be co-licensed with:
      “The GNU General Public License v3 cannot be linked with any other license except for GNU AGPLv3 (per section 13).”

      Etc. It is a rather long license. I def prefer MIT/BSD 3 or 4 clause type thing for most open source work.

      In the end it doesn’t matter though, I should be releasing a dev board for LM3S3651 soon… I had thought about all this stuff and some of the community impact before I started working on the project.

      1. The Wikipedia page is a mess… That quote from the “Compatibility and multi-licensing” section is pretty inconsistent with the clear ambiguity/debate in the “Libraries” section.

        In the case of the “System Libraries” exception, see the third paragraph of section 1 of the GPLv3. The wording there was clearly targeted at PC operating systems, but I believe it applies to a hardware-specific driver library. (It definitely applies in the case of StellarisWare-in-ROM like for the LM3S3651, less clearly so for linked-in StellarisWare such as for the LM3S811 and LM3S6965.)

Leave a comment

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.