Skip to main content
Topic: Web Platform v2? (Read 213665 times) previous topic - next topic

Re: Web Platform v2?

Reply #15
Hmm, I'm getting more and more involved in this, even though my usb stack needs a lot more work :-)

The OTG part of either 24F... or 32... props sounds really fun. Then we could have something like a Mass Storage class serving the sd card if connected as a function to another host (giving easy access to hosted pages for the not so involved user) or it could serve pages from an attached USB memory if used as a host.

Maybe I dreaming in technicolor. I should go back to the finalising the device function only part of my stack first.

Re: Web Platform v2?

Reply #16
We're also wiring up the Bus Pirate v4 to have USB OTG. Don't stop working on the stack ;) we're waiting for the next release to start debugging it in full on the pic24F/BPv4 :)
Got a question? Please ask in the forum for the fastest answers.

Re: Web Platform v2?

Reply #17
Quote
On board USB would be nice but dsPIC33 series doesn't have USB, for 16-bit PICs, only PIC24F series have USB.
PIC32 have on-board full-speed USB 2.0 and on-board 10/100 Ethernet (so they need an extra PHY). When checking prices you will find that a PIC32 with
on-board USB and Ethernet plus external PHY costs about the same as a PIC24F with on-board USB plus external Ethernet MAC/PHY.

ARM Cortex-M3 based MCUs with on-board USB and Ethernet would be a real alternative:
- Atmel SAM3S and SAM3U (Cortex-M3 with USB 2.0 - SAM3S with full-speed USB 2.0 OTG, SAM3U with high-speed USB 2.0 - no integrated Ethernet, yet)
- NXP LPC175x and 176x  (Cortex-M3 with 10/100 Ethernet and full-speed USB 2.0 OTG)
- TI Stellaris 9000 (Cortex-M3 with 10/100 Ethernet and full-speed USB 2.0 OTG)
- STM32F105_107RB/RC/VB/VC (Cortex-M3 with 10/100 Ethernet and full-speed USB 2.0 OTG)

A real alternative to the Cortex-M3 phalanx are Atmels AVR32UC3A MCUs (with integrated Ethernet MAC and full-speed USB 2.0 OTG).
The tools are free (AVR32 Studio IDE), the toolchain even open source (AVR32 GNU Toolchain) ... libraries are 

Re: Web Platform v2?

Reply #18
wrt arm cortex-m3 toolchains, I haven't found a proper c++ compiler for them that is open source? (never used m3 mcu's before and was trying to figure out the available toochains) .. the only free - and not open source - thing I found was that mbed compiler that works in "cloud" so I scrapped that as bad idea, I'm sure I heard about some eclipse + gcc working set for m3 but I was unable to find example on "where to get/ how to set up"

I'm in the "I hate microchip attm" mode but still 32mx I program with free (not open source) compiler from microchip (and yes libraries are with stupid licence) I wanted to test some dev boards from olimex with m3 (STM32F103RBT6 mcu) but I gave up as I was unable to find suitable free support for them. As I know there is one, pleeeeeeeeease gimme the links :D

anyhow I still vote for PIC32MX695F512H for the web platform v2

Re: Web Platform v2?

Reply #19
arhi, can you explain what you don't like about Microchip?  I am quite happy with the PIC32 itself and the available tools for it.  What I especially appreciate is for example the availability of a cheap step-debugger (PICkit 3).

As for a STM32F103RB, have a look at LeafLabs Maple: http://leaflabs.com/devices/maple/
It looks nice, is not too expensive, has nice features and a library which gets increasingly compatible with the easy to use Arduino libs.  The Maple IDE is a branch of the Arduino IDE but replaces the AVR compiler toolchain (targeting Arduino boards) with the CodeSourcery version of the GCC ARM compiler toolchain.

Markus

Re: Web Platform v2?

Reply #20
Like Markus said, there is a couple of free working ARM 7/9 and ARM Cortex-M3 toolchains:

CodeSourcery G++ Light
YAGARTO - which gives you an Eclipse based IDE (actually you can integrate the CodeSourcery G++ toolchain in Eclipse the same way)
Maple IDE if we'd use the Maple bootloader
... and more

By luck I got one Maple from Seeed and have tried out the Maple IDE with a few sketches ... just to see how well it works. So I had to overcome some minor issues installing and using it first (which actually related to the OLS client and the RXTX incompatibilities we experienced with the Arduino IDE) it works just fine.
A Maple compatible STM32F105RB_RC or STM32F107RB_RC based board with Ethernet on board would get quite a bit of interest, I think.

The only point against the PIC32 I have heard so far is the license issues with the USB and Ethernet library (actually all Microschip provided libraries). The MIPS architecture used as the core of the PIC32 family rocks in a similar league as the ARM Cortex-M3 cores.

I have no strong preferences towards any of the options ... the main advantage of the Stellaris 9000 seems to be the integrated MAC/PHY while the other MCUs require an external PHY - even the PIC32s with integrated MAC require an external PHY.

Re: Web Platform v2?

Reply #21
> The only point against the PIC32 I have heard so far is the license issues with the USB and Ethernet library

Well, although the libraries are not redistributable as open source, they are at least available, gratis and usable free of charge in your product.  I agree, this is not optimal, and true open source code would be nice to have, but I don't see this as a point against the PIC32.  Or do other manufacturers (who sell this or that flavor of ARM 32 CPUs) provide open source TCP/IP, USB, FAT software stacks?

Re: Web Platform v2?

Reply #22
[quote author="IPenguin"] ... the main advantage of the Stellaris 9000 seems to be the integrated MAC/PHY while the other MCUs require an external PHY - even the PIC32s with integrated MAC require an external PHY.[/quote]Isn't the PHY the most likely part to burn out or fail?  In other words, isn't there an advantage to having it separate, because that means it can be replaced without replacing the MCU?

Re: Web Platform v2?

Reply #23
[quote author="Markus Gritsch"]
arhi, can you explain what you don't like about Microchip?  I am quite happy with the PIC32 itself and the available tools for it.  What I especially appreciate is for example the availability of a cheap step-debugger (PICkit 3).
[/quote]

I hate the issues with licencing (I spoke about it in other threads, good example - microchip usb stack). WRT chips and tools, I like them a lot (I do hate that mplab breaks fairly often but I use my own "ide" with C30 anyhow)

Quote
As for a STM32F103RB, have a look at LeafLabs Maple: http://leaflabs.com/devices/maple/

it does not look like "standard m3 toolchain" but rather a fork to suit their needs...

[quote author="IPenguin"]
Like Markus said, there is a couple of free working ARM 7/9 and ARM Cortex-M3 toolchains:
[/quote]

as I said, I know there are some I was just unable to find any viable source of info about them, and everyone I know use pic or atmel so I found noone to share first hand experience, and I found no "standard gcc distro" (like for e.g. msp430-gcc for msp430 mcu's)

Thanks for the links .. I'll check them out but - do you have any first hand experience with them? Is this a diluted area or there is a "mainstream" toolchain (like avrgcc for atmel or C18/C30 for pic)?

Quote
The only point against the PIC32 I have heard so far is the license issues with the USB and Ethernet library (actually all Microschip provided libraries). The MIPS architecture used as the core of the PIC32 family rocks in a similar league as the ARM Cortex-M3 cores.
I agree 100%, that is actually the only reason I'm thinking of finding replacement for PIC as I'd like to move to a system where all this lib's are released under some less restrictive licence

Quote
I have no strong preferences towards any of the options ... the main advantage of the Stellaris 9000 seems to be the integrated MAC/PHY while the other MCUs require an external PHY - even the PIC32s with integrated MAC require an external PHY.

only preferences I have are 32bit vs 16bit .. as I really see no point in going 16bit here

[quote author="Markus Gritsch"]
Or do other manufacturers (who sell this or that flavor of ARM 32 CPUs) provide open source TCP/IP, USB, FAT software stacks?
[/quote]

That is what I am trying to find out looking at different toolchains for different mcu's. Atmel is pretty free in that respect (avrgcc and everything around it is mostly gpl) but I never used 32bit atmels.. So far I have not find a fully open source compiler + libraries ..

microchip released that gpl'd pic32 c++ compiler .. maybe it will grow with gpl libraries but iirc attm no eth/usb are available

[quote author="rsdio"]
Isn't the PHY the most likely part to burn out or fail?  In other words, isn't there an advantage to having it separate, because that means it can be replaced without replacing the MCU?
[/quote]

I see this as a very good point

Re: Web Platform v2?

Reply #24
[quote author="arhi"]
[quote author="Markus Gritsch"]
arhi, can you explain what you don't like about Microchip?  I am quite happy with the PIC32 itself and the available tools for it.  What I especially appreciate is for example the availability of a cheap step-debugger (PICkit 3).
[/quote]

I hate the issues with licencing (I spoke about it in other threads, good example - microchip usb stack). WRT chips and tools, I like them a lot (I do hate that mplab breaks fairly often but I use my own "ide" with C30 anyhow)[/quote]
Looking at the tool side, you will be trapped with licensing issues or debug/emulation option issues one way or the other.

The only true alternative to PIC32s are AVR32U3As with AVR32 Studio and the Atmel Dragon board for debugging (which gives integrated debug and emulation capabilities similar to PICkit3 and MPLAB for PIC32s). For the ARM Cortex-M3 MCUs you will always be trapped with gdb and ocd and one of the many low-cost FT2232 based JTAG interfaces or J-Link respectively the Atmel limited version AT91SAM-ICE JTAG Emulator or Raisonances RLINK for the STM32s which is limited to 32k code in the affordable light version. For TI Stellaris MCUs you can use any of their low cost evaluation boards as a debugger/emulator.

TI offers Code Composer Studio (GCC and Eclipse based development environment) that provides support for their Stellaris MCUs among others. However, it's not free (only a code size limited version for MSP430 MCUs is free) - only some functions EVM/DSK, sim (whatever those are) and XDS100 support (their low-cost JTAG debugger) are free.

On the other side here is a free (light) version of Attolic TRUEStudio which supports Atmel, NXP, STM and TI Stellaris ARM Coretx-M3 based MCUs.

Hitex offers the Hitex developer Suite and GNU C/C++ compilers for ARM/ARM Cortex-M3 MCUs for free ...

And Crossworks for ARM by Rowley Associates is available for US$ 150 in a personal/private edition ...

One way or the other you look at ARM Cortex-M3 based MCUs you will have to configure your development environment from different (re)sources (stitch them together) unless you are willing to pay money for a one-source development environment.

Quote
Quote
or

As for a STM32F103RB, have a look at LeafLabs Maple: http://leaflabs.com/devices/maple/

it does not look like "standard m3 toolchain" but rather a fork to suit their needs...
Cortex-M3 MCUs from different manufacturers use different on-chip peripherals. Which gets us back to the libraries ... since Maple IDE is a branch of the Arduino IDE they had to replace the toolchain with a "customized" Cortex-M3 version of GCC to accomodate for some low level libraries (for the on-board peripherals and data formats) needed for the STM32F MCU ... if we'd go with the STM32F MCU we could make use of the Cortex-M3 toolchain as used in the Maple project so it would require a (considerable?) effort to adapt it to Cortex-M3 MCUs from Atmel, NXP, TI or ENERGYmicro ;)

Quote
[quote author="IPenguin"]
Like Markus said, there is a couple of free working ARM 7/9 and ARM Cortex-M3 toolchains:

as I said, I know there are some I was just unable to find any viable source of info about them, and everyone I know use pic or atmel so I found noone to share first hand experience, and I found no "standard gcc distro" (like for e.g. msp430-gcc for msp430 mcu's)

Thanks for the links .. I'll check them out but - do you have any first hand experience with them? Is this a diluted area or there is a "mainstream" toolchain (like avrgcc for atmel or C18/C30 for pic)?[/quote]
I have no experience with any of the free toolchaines for Cortex-M3 MCUs - so I have done development for ARM7TDMI and ARM9 (ARM926) based MCUs with YAGARTO and it works pretty well except for the known issues you experience when using gdb and openOCD. As a matter of fact I have worked with TI/Luminary Stellaris MCUs using a commercial IAR Embedded Workbench for ARM only (well, I tested Red Suite by Code Red but we finished the project with Embedded Workbench). Consider the Sourcery G++ Lite Edition for ARM as a defacto and most up to date mainstream toolchain available in binary format for ARM cores.

Quote
only preferences I have are 32bit vs 16bit .. as I really see no point in going 16bit here
Agreed!

Quote
[quote author="Markus Gritsch"]
Or do other manufacturers (who sell this or that flavor of ARM 32 CPUs) provide open source TCP/IP, USB, FAT software stacks?
That is what I am trying to find out looking at different toolchains for different mcu's. Atmel is pretty free in that respect (avrgcc and everything around it is mostly gpl) but I never used 32bit atmels.. So far I have not find a fully open source compiler + libraries ..[/quote]
I don't think the licensing problem relates so much to open source or not but more to restrictions on the redistribution of the libraries/stacks and the executable code that makes use of the libraries.

If you can't distribute the libraries/stacks (regardless if in binary or source form) along with your application source code and there is no guarantee that the libraries/stacks will be available from the manufacturer in the future then it doesn't make much sense to use them in an open source project!

Examples of (at some point but no longer) available and/or not (redistributable) code:
- OpenOCD drivers for JTAG interfaces compiled/derived with/from the original FTDI driver source and JTAG DLL can't be distributed (by the FTDI license terms)
- Microchips libraries can't be (re)distributed - Microchip updates and improves their libraries (sometimes forgetting about downward compatibility) and sometimes "forgets" about keeping the old versions available. Someone who wants to compile an open source project that was built with a previous and no longer available library/stack gets stuck in a dead end.

Atmels support for AVR and AVR32 (AVR Studio and AVR32 Studio) as well as XMOS for their XS1 family (XMOS Development Tools) seem to be the only two companies that have an "open" policy regarding their tools and libraries/stacks. I wonder why open source developers don't embrace AVR32s and XS1 MCUs?
Both families play in the low to mid range 32Bit MCU league and are en par or even more advanced than the comparable ARM and MIPS architectures.

Quote
microchip released that gpl'd pic32 c++ compiler .. maybe it will grow with gpl libraries but iirc attm no eth/usb are available
Microchips restraint to become more open - so they offer low-cost evaluation/development kits/tools for some time as well as appealing 8Bit, 16Bit and 32Bit MCUs - is kind of irritating, maybe even frustrating.

As a matter of fact I am refraining from participating in any way in the open source PIC USB stack project Ian and Sjaak are pursuing.
Why should anyone attempt to make an open source library/stack/toolchain/utility available for products of a company that is as reluctant
as Microchip in making their licensing policy a little more liberal and open to the community. Open source is not a one way street!
Microchip took (and slightly modified) the GCC compiler (maintained by MIPS) because there is no other stable MIPS compiler/toolchain around!

Quote from the MIPS-Linux Wilki
Quote
Commercial Toolchains
All commercial Linux/MIPS distributions come with appropriate toolchain deliverables.

They had to make the modified PIC32/MIPS4K toolchain available in a compilable/reproducible source format and that's what they did via the Microchip Open Wiki - nothing else. So PIC24 and PIC32 examples for FreeRTOS are given, they are restricted to the very basic task switching and local LEDs blinking, nothing that would make use of the Ethernet stack or any Microchip libraries (not even serial port access) is included for PIC24, dsPIC30/33 and PIC32 in the official RTOS distributable. However, on the Microchip site you will find a FreeRTOS application note that makes use of their TCP/IP stack and other libraries ... so for PIC18F MCUs ;)

If you look at the Atmel AVR32U3A or AT91SAM7X256 or TI Stellaris LM3S6965/LM3S8962code in the FreeRTOS distributable for GNU based compilers you will find served web pages examples based on the lwIP/uIP stack that make use of libraries provided by Atmel or TI/Luminary ... !!!

The reasons for this appear to be the very same why many look for open source/freely (re)distributable TCP/IP, USB and other peripherals stacks/libraries for PIC MCUs.

Quote
[quote author="rsdio"]
Isn't the PHY the most likely part to burn out or fail?  In other words, isn't there an advantage to having it separate, because that means it can be replaced without replacing the MCU?

I see this as a very good point[/quote]

I agree but only if you are going to implement PoE on the web platform v2. Without PoE this is no real issue because
a) all users who can swap a burned PHY can swap a burned MCU as well ...
b) I don't remember to have experienced a dead PHY without other componets failing as well (Ethernet controller, MCU etc) ...

Re: Web Platform v2?

Reply #25
Thanks for all the great feedback.

The mission statement of DP(url) is to make cheap hardware available to talented (software) hackers who otherwise wouldn't solder stuff themselves so that we can increase the amount of open source licensed stuff. The WP v1 was pretty successful, the uIP stack was brought to the PIC (for example). Even if DP lost money on this project, it was a success because it accomplished our mission (***for various values of success***).

So if there is a platform that is part way there, it might be a good target just on the off-chance that we could inspire more open source development for it. So that is a definite consideration: potentially open, but not yet.

I think it might be a good idea to have an intro 16bit platform (follow up to WP) and a 32bit platform (a new board). I'll post the 100Mbps board with an STM32 that we designed tomorrow. It's not fabulous, but it's a start.
Got a question? Please ask in the forum for the fastest answers.

Re: Web Platform v2?

Reply #26
I agree that Atmel is one of the few companies with an open policy and would really like to see AVR32 used just out of curiosity for the platform.

Re: Web Platform v2?

Reply #27
[quote author="IPenguin"]
Atmels support for AVR and AVR32 (AVR Studio and AVR32 Studio) as well as XMOS for their XS1 family (XMOS Development Tools) seem to be the only two companies that have an "open" policy regarding their tools and libraries/stacks. I wonder why open source developers don't embrace AVR32s and XS1 MCUs?
Both families play in the low to mid range 32Bit MCU league and are en par or even more advanced than the comparable ARM and MIPS architectures.
[/quote]

I think I'm "sold" here .. definitely going to get some avr32 mcu's and give them a go .. too bad I don't have a local atmel distributor (as I have microchip) that can get stuff fast & cheap :D .. will c what seeedstudio can offer :)

wrt m3, I said I never used them, and was hearing about "how good they are", looks like I ignored the fact that only the core is same between different manufacturers and that all peripherals are different :( ... need to c if I can find a avr32 mcu with sd card driver on board :)



Quote
As a matter of fact I am refraining from participating in any way in the open source PIC USB stack project Ian and Sjaak are persuing.
Why should anyone attempt to make an open source library/stack/toolchain/utility available for products of a company that is as reluctant
as Microchip in making their licensing policy a little more liberal and open to the community. Open source is not a one way street!
Microchip took (and slightly modified) the GCC compiler (maintained by MIPS) because there is no other stable MIPS compiler/toolchain around!

It does make sense. It is in their interest to get as much of the source out, and with as free licence as it can get .. they live from hardware, not software... I never understood why they sell compilers at all

Re: Web Platform v2?

Reply #28
[quote author="arhi"]
... need to c if I can find a avr32 mcu with sd card driver on board :)[/quote]

Take a look at Atmels EVK1100, EVK1101 and  EVK1104 - they come with SD/MMC card readers/interfaces.