26 Replies Latest reply on Mar 21, 2017 3:44 AM by michaelkellett

    Looking for minimal dev boards

    hypoon

      Hello all,

       

      I'm hoping you guys might help me find an appropriate microcontroller and/or development board for my needs. I keep finding ones that I think I'm going to like, but then I discover a nasty deal-breaker an hour into the documentation.

       

      Desirable traits:

      Programmable USB interface (can behave like an arbitrary HID)

      Small, breadboard-friendly form factor

      Lots of GPIO pins

      Cheap (<$10, <$5 is even better)

      Support for generic/open toolchains (GCC, OpenOCD, JTAG, etc...)

      Reasonable long-term availability (several years)

      Strong community

       

      Undesirable traits:

      Magic/mystery/black-box/programming-interface chips

      Integrated peripherals that consume GPIOs

      Dedicated headers for specific peripherals, or special integration with branded peripherals

       

      I basically just want a bare chip on a minimal dev board. Here's what I don't like about the popular choices:

      Teensy: magic drag-and-drop bootloader and MINI54TAN chip

      mBed lpc1768: web-based development environment and "mBed Interface" chip on the bottom.

      Arduino Micro: ATmega32U4 is a little underpowered for my needs... not enough GPIO.

      Discovery and Nucleo boards: don't know enough about them... is there a big development community? Do they have that "mBed Interface" chip? (they're listed as "mBed Enabled")

      LeafLabs Maple Mini: Retired, and I don't want to encourage knock-offs.

       

      And pretty much all of them are too expensive for me to buy a couple dozen just to have around. I get the feeling that a lot of the popular development boards owe their high prices to all the extra hardware needed for the integrated programming features. Don't get me wrong, I like in-circuit programming, but I don't need additional embedded microcontrollers. Self-programmability over USB is a cool feature if the chip itself supports it (rather than some cleverness using another embedded controller).

       

      I'm not afraid of whipping up a quick board design and making my own dev boards, but that opens up a huge question: what chip should I use? Which chips don't use much supporting circuitry? Which chips have a thriving community? I'd *love* to find a nice chip with a few complete GPIO ports for fast parallel communication...

       

      My guess is that I'm looking for something with a Cortex-M3 or M4, but I can be convinced otherwise.

       

      Thanks in advance!

        • Re: Looking for minimal dev boards
          kas.lewis

          hypoon,

           

          Have you looked at TIs Launchpad family. Its pretty extensive and they run from $10 and up, don't quote me on the price I'm doing this from memory it's been a few months since I looked at price, but they somewhere are around there. Also they have the full gerber files and schematics available if you want to copy them in some way.

           

          Kas

            • Re: Looking for minimal dev boards
              hypoon

              No, I haven't looked into the Launchpad/MSP430 series too much. I was under the impression they required a special toolchain for compiling and/or flashing. A quick googling suggests GCC is up to the task, but it looks like debugging and flashing might still require TI's tools.

               

              I'm avoiding proprietary software stacks because some of my development boxes are non-x86.

                • Re: Looking for minimal dev boards
                  hlipka

                  MSP430-GCC can not only compile for MSP430, but also program and debug: Software Tutorials | Simply Embedded

                  I actually wanted to recommend the PSoC5LP chips to you (the CY8CKIT-059 is a great tool), but it will not met your nion-x86 criteria. Otherwise its great - comes with a simple programmer / debugger which can be detached, all pins are on the headers, easy to use and very powerful.

                    • Re: Looking for minimal dev boards
                      hypoon

                      Why do I need to download MSP430-GCC from TI's website? Are they shipping it pre-patched with MSP430 support? If so, why aren't these patches incorporated upstream into GCC?

                       

                      Also, in the link you gave, the author suggests that programming and debugging can be done using GDB, but instead the demonstration uses mspdebug. According to the text, GDB talks to JTAG interfaces through gdbservers, but it sounds like these servers don't ship with GDB itself. If I'm not on an x86 platform, I have no idea whether the gdbserver will function correctly, and mspdebug may have analogous issues.

                       

                      EDIT: I actually have one of the Cypress kits in a drawer somewhere, but I never took the time to play with it. If I remember correctly, it needs Windows for configuring some aspect of it, and I don't have any Windows machines on hand.

                        • Re: Looking for minimal dev boards
                          hlipka

                          mspdebug is part of gcc-msp430 I think. At least its open source, I have it in my Ubuntu repositories. So is gcc-msp430 - you don't need to download this from TI if you don't want. I never tested it, but since they are available in source you should be able to compile and run them anywhere, as long as you have proper hardware support (e.g. an USB port for the programmer/debugger).

                          GDBserver is just a way to run GDB over a network. You run a GDBserver specific to your device, it exposes a network interface, to which you attach a real GDB (or anything talking the same protocol). I think OpenOCD uses this too.

                          Yes, the Cypress PSoC need Windows to run PSoC Creator (which you need to programm all the configurable hardware). I'm running it on a VM. There a project one to expose Creator as a cloud service, but it seems to be canceled.

                            • Re: Looking for minimal dev boards
                              hypoon

                              The question wasn't so much about having to get it from TI specifically, it was about why it's not integrated into mainline GCC (under the assumption that it's not).

                               

                              I think I understand how the GDBserver works now, I'll look into this more. Perhaps the MSP430 series will work for my needs. It's a shame they increased the price... the $4.30 USD would have been great.

                    • Re: Looking for minimal dev boards
                      kas.lewis

                      hypoon

                       

                      Not all but a good amount of ST boards are mbed enabled. I think the Nucleos are and soem of the discoveries (there is a list on the mbed site). That being said I have never gotten really involved with STs boards because to me there was no real community or strong support. Also mbed does not have a debugger it  is trial and error. The one project I did using it I used an external logic analyzer to work out my issues, I find the same issues with Arduino.

                       

                      Just my 2c

                       

                      Kas

                        • Re: Looking for minimal dev boards
                          hypoon

                          Being "mBed enabled" itself isn't directly a good or a bad thing for me.... I just don't want the "mBed Interface" chips. I would have no intention of actually using the mBed capabilities... the real question is simple: Can use those boards with generic tools? Does the "mBed Interface" (if present) get in the way of using good-old-fashioned JTAG?

                            • Re: Looking for minimal dev boards
                              kas.lewis

                              From what I understand and how I have used it, mbed is just a boot loader of sorts. It allows you to drag and drop a file onto the USB mass storage image and when you reset the device if there is a program there it will run it. Can you overwrite it, yes without a question. As I said it's really just a USB  Thumb drive that when reset looks for a specific file type and if present will run it. Overwrite the bootloader and whoosh its all gone.

                               

                              Kas

                          • Re: Looking for minimal dev boards
                            COMPACT

                            You can't go past the NXP LPC1768 mbed enabled systems particularly if you want a USB master.

                            If you don't like the online compiler then install your own one.

                             

                            PSoCs are also fantastic beasties and also act as an introduction to programmable digital logic. They can act as USB peripherals.

                            And cheap - A PSoC 4 is only about $1.

                             

                            Have a look at my PSoC posts in the element14 community for more information.

                              • Re: Looking for minimal dev boards
                                kas.lewis

                                If you contact Cypres they might just give you a whole bunch for free. I only say this because everytime I see them at an event I have to say NO about a dozen times to them because they will give you their starter boards for just walking past their booth, and not just one... I think I have 3 or four already.

                                 

                                Kas

                                  • Re: Looking for minimal dev boards
                                    hypoon

                                    I have one myself from NYC Maker Faire 2016, but I think they told me I need Windows to use the configuration utility, and that certain aspects of the configuration "weren't possible" without that tool.

                                      • Re: Looking for minimal dev boards
                                        kas.lewis

                                        SO don't use teh config utility, do all the coding old school... Set the registers yourself.

                                         

                                        I must be honest I'm not sure what it is you ar elooking for that you can't use any thing that would be programed via Linux or Windows. BTW you do know you could look up the programming spec and send teh file to a micro of your choice and have that load teh file you compiled to the board you dsign... Its not a walk in teh park but its 100% doable.

                                         

                                        Kas

                                    • Re: Looking for minimal dev boards
                                      koudelad

                                      PSoC 4 has an ARM Cortex-M0 core, there is for example a CY8CKIT-043 PSoC® 4 M-Series Prototyping Kit

                                      If you need an ARM Cortex-M3 core, you need to look for PSoC 5, for example a CY8CKIT-059 PSoC® 5LP Prototyping Kit With Onboard Programmer and Debugger

                                      Or wait for the newest PSoC 6, dual core (ARM Cortex-M4 and Cortex-M0+) devices. There were some kits presented at Embedded World 2017 this week, however not the same format as mentioned above. We will see.

                                      • Re: Looking for minimal dev boards
                                        hypoon

                                        Don't I need a special toolchain for the Cypress chips? The NXP LPC1768 looked perfect for me until I saw the price tag and the "mBed Interface" chip on the bottom. Both are deal-breakers for me.

                                          • Re: Looking for minimal dev boards
                                            hlipka

                                            The 'mbed interface' chip is another NXP processor, which is seen as an USB disk drive, and programs the LPC1768 with whatever you place on that disk. Why should this be a deal-breaker?

                                            Given that you want to be as open-source as possible, and a cheapie too, the best route is to use the cheapest Cortex-M3 board you can get your hands on, using the cheapest OpenOCD-supported JTAG-programmer you can get. Maybe build one by yourself. This will cost you quite some work, but its cheap and open-source. When you want to have more comfort, you will need to use some non-open components. Its your decision.

                                              • Re: Looking for minimal dev boards
                                                hypoon

                                                I see the mBed Interface as an extra chip that potentially complicates any tasks which fall outside of the intended mBed-supported use, such as connecting to the primary chip using a dedicated programmer/debugger or attempting to use other features of the primary chip that may not be exposed in the mBed libraries (maybe certain forms of low-level USB communication?). I honestly don't know what headaches that chip might cause me, but I find it hard to believe that it has no drawbacks at all, and the price tag discourages me from buying it without fully understanding the limitations.

                                                  • Re: Looking for minimal dev boards
                                                    hlipka

                                                    The mbed chip does only the programming. So apart from using up the JTAG / SWD pins, it does not interfere with the MCU. Especially it doesn't force you to use the mbed libraries. In fact, you can export you mbed programs to gcc, run everything locally and the just put the compiled binary to the mbed flash drive (BTDT).

                                                    I think the Cortex-M0-mbed board are quite a lot cheaper so you might want to try them first Or look at the  FRDM-KL25ZFRDM-KL25Z its about 12 bucks(depending on where you are And this one even can be debugged via CMSIS-DAP so it can be used via OpenOCD

                                            • Re: Looking for minimal dev boards
                                              michaelkellett

                                              The ST Nucleo boards come very close to your requirements.

                                               

                                              Cheap and simple. You can use free versions of  IAR or Keil (part of ARM) or GCC.

                                               

                                              If you want to make your own boards the STM32Fxxx micros are pretty good, need no support stuff, very cheap debug interface available, range goes from Cortex M0 to Cortex M7, mostly pin compatible. There is no need to have anything to do with mbed if you use ST parts (I've been using them for years and never touched mbed in any way shape or form.)

                                               

                                              And soon you'll be able to buy the STM32H7xx  - Cortex M7, 400 MHz clock, 1M byte on chip RAM, on chip lcd controller and other amazing goodies (14 bit ADC, Ethernet ............)

                                               

                                              MK

                                                • Re: Looking for minimal dev boards
                                                  hypoon

                                                  That's the conclusion I was starting to reach on my own. As far as pre-built boards are concerned, the Nucleo boards are right on the upper edge of my price range. As for building my own boards, a lot of the STM32Fxxx chips were more expensive than I expected. I see cheap "Red Pill"/"Blue Pill"/"Black Pill" boards and Maple Mini clones available from China for $2-$4. For me to make my own boards, the chips alone would cost that much... not to mention the cost of the PCBs. From distributors' pricing tables, I can't see any way to make those boards at any scale for that cheap.

                                                   

                                                  Are there any reputable companies making boards like the Red/Blue/Black Pills or like the Maple Mini? I'd pay a small premium to avoid importing such boards from China. I've read about some of those boards needing fixes straight-out-of-the-box (weak connections and incorrect resistor values).

                                                    • Re: Looking for minimal dev boards
                                                      michaelkellett

                                                      I've not seen the 'Pill boards before - very cheap.

                                                       

                                                      They might serve you well enough - depends on your applications.

                                                      The downside is that they don't seem to support proper debugging which the Nucleos do.

                                                       

                                                      The other thing to consider is that with micros of this size you can use the Keil/ARM free toolset which offers much better debugging than GCC and much less hassle.

                                                       

                                                      You can get a Nucleo F334R8 for about $10 - which gives you a Cortex M4, or you can buy a Nucleo with an STM32F103 on it and use it as a dev board for the Blue Pills.

                                                       

                                                      Since you only need to forgo about 1 Pizza per Nucleo it's not too expensive to give it a try.

                                                       

                                                      MK

                                                  • Re: Looking for minimal dev boards
                                                    shabaz

                                                    I quite like the Atmel/Microchip AT91SAM ranges, reasonable I/O, easy-to-solder TQFP, is sub-$5 in fairly small qty so would meet your $5-10 goal for a board, and doesn't need much else apart from an xtal, and doesn't need any paid toolchain, in active production (although I don't know Microchip's future intent) and super easy to use, no additional hardware needed (a programmer/debugger would speed things up, it is not essential but is cheap). Plus they have an in-built bootloader for allowing programming from USB as you mention with no additional IC needed. Given a PCB costs less than $0.50, it is likely an entire minimal dev-board would be around $5-6.

                                                    I haven't used it in a while but it reminds me, I should use this part more often..

                                                    If you want Cortex-M then there are some NXP/Freescale parts with bootloader built-in. They are usually quite cheap (a few $) in low qty so a sub-$5 board is very feasible. In fact it is pretty much what the 'MCHCK' is ( https://mchck.org/about/  ) and that is mentioned as being sub-$5.