Merging modern software development with electrons and metal
Random header image... Refresh for more!

Category — Embedded

SanCloud BeagleBone Enhanced Indiegogo Campaign

If you’re a BeagleBone fan, then the SanCloud BeagleBone Enhanced campaign is worth considering.  Like many BeagleBone related crowd funding campaigns, it’s not a huge success (so far it has 46 sponsors), but the prices are reasonable.  All the SanCloud BB-E models have 1GB RAM (double the BBB’s 512MB), 1G Ethernet (instead of 100M), and additional USB ports.  Some versions add more sensors and a bit of NOR flash.

For example, the BeagleBone Enhanced Light early bird is $52 + shipping ($7 to USA), which is reasonable considering that a stock BeagleBone Black is $55.  I have already committed, since I have been wanting a BeagleBone with 1G Ethernet for a long time.

As a side note, I’m not sure why BeagleBone crowd funding has a hard time.  Maybe it’s because most BeagleBone folks have not mastered the art of hyperbole, which seems necessary on Kickstarter and Indiegogo these days.  Probably it’s partly because the very hardware oriented Beagle universe is smaller than the simpler (and cheaper) Arduino or more media-centric Pi ecosystems.  In any case, I hope SanCloud can become a permanent part of the BeagleBone landscape, along with the BeagleBone Green and such.

March 31, 2016   No Comments

Preview: Cortex M4 Dev Kits


My Cortex-M4 Dev Boards

My Cortex-M4 Dev Board

Over the last year or so I’ve acquired six ARM Cortex-M4 boards; I have some experiments planed for them, and hope to be able to do some write ups this fall.  Here’s a chart highlighting some of their key specifications (of course, these boards can do a lot more, such as SPI and I2C communications).

LM4F120 LP TM4C1294 LP NucleoF401 STM32F4 Discovery Micro Python Pixy
MCU LM4F120 TM4C1294 STM32 F401RE  STM32 F407VBT6  STM32 F405RG LPC4330
MHz  80  120  84  168  168 204
SRAM  32K  256K  96K  192K  192K 264K
Flash  256K  1024K  512K  1024K  1024K 1024K
Debug  Yes  Yes  Yes  Yes  No No
USB  Yes  Yes  Yes  Yes  Yes Yes
Ethernet  No  Yes  No  No  No No
microSD  No  No  No  No  Yes No
Headers 1 Booster Pack XL  2 Booster Pack XL Arduino Uno R3 plus STM Morpho STMF4 Discovery Headers Micro Python skins (planned) None
Frame work  Energia, eLua (beta) Energia, eLua (beta) mbed eLua (beta) Micro Python Pixy vision
Open Source No No No No Yes Yes
Price $13 $20 $10 $15 $40 $59

Notes on the Chart

  • Debug means built-in debug support over USB, JTAG connector, or similar.
  • USB support varies; for example, some boards include USB OTG support.
  • eLua support is probably usable, but not very polished, on the various platforms, but that’s a guess because I haven’t tried it yet.
  • Energia is a Wiring-based IDE and framework for Launch Pads that’s very similar to Arduino.
  • Prices are approximate.
  • My apologies if the chart is hard to read; I haven’t had time to update my theme to allow for wider charts.

Stellaris LM4F120 LaunchPad (Tiva TM4C123G LaunchPad)

The LM4F120 LaunchPad is no longer available; however, the Tiva TM4C123G LaunchPad is very similar (it does have a few improvements).

I bought this board when it first come out, since TI had a special offer (around $5 IIRC).

Tiva TM4C1294 LaunchPad

I bought one of this when it first came out because I’ve been waiting for a successor to the Stellaris LM3S9Bxx MCUs (which had on-chip PHY and plenty of SRAM).  Yes, I do love to buy boards before I have time to play with them…

At EE Live! 2014 these LaunchPads were the top tool swap choice.  (At the TI tool swap, TI gives you a new TI dev board in exchange for an old, non-TI board).


I wasn’t planning on picking up one of these,  but I managed to snag a free one at EE Live! 2014 from the ST  booth.  It’s definitely a very impressive board for the price

STM32F4 Discovery

I wanted a STM32F4 board with Ethernet, and had a hard time choosing between the STM4F Discovery with Base Board (which adds Ethernet and more) or the Olimex STM32-E407 (which has Olimex UEXT connectors).  I went the STM32F4 Discovery route because it seems to have better software support.


I backed the MicroPython Kickstarter project primarily because I like the Python language (and have used it on production machines), and was curious to see how much of Python’s goodness could be packed into a MCU.  As you can see, it’s a pretty tiny board.

The base Kickstarter price was about $40; when it becomes available to all, the price will probably be a bit higher.


The Pixy is primarily a machine vision system, designed to track objects and work well with Arduinos and similar systems.  However, it could be used as a pretty powerful embedded board.

I backed the Pixy because I like machine vision (I also own 5 smart cameras), I’ve wanted to play with the NXP LPC43xx MCU at the heart of the Pixy, and because I remember the Charmed Labs guys from their Nintendo hack days.

The base Kickstart price was $59; it’s currently available on Amazon for $69.


June 23, 2014   No Comments

Interesting Microcontrollers

As I’ve mentioned before, I like to follow embedded development, but unfortunately don’t have much time to do it, either at work or at home.  There truly is an amazing number of very capable microcontrollers, such as the ST STM32F4, NXP LPC18xx, and Microchip PIC32MZ, that most don’t stand out.  However, I’d like to highlight a couple MCU families that have uncommon features:

  • TI’s Tiva TM4C129x is a typical high end ARM Cortex M4F MCU with FPU, up to 256K SRAM, up to 1M flash, and lots of connectivity and other peripherals.
    • What’s unusual?  It includes an Ethernet PHY on chip (IIRC, the only other ARM MCU with PHY was TI Stellaris LM3S9B models, which are now legacy parts.  Freescale also has some MCUs with Ethernet PHYs, such as the Coldfire MCF5223X).
  • NXP’s LPC4370 is another Cortex M4 MCU, clocked at 204MHz,  with FPU, 264K SRAM, no flash, Cortex M0 co-processor, and lots of peripherals.
    • What’s unique?  An 80M samples/sec 6-channel 12-bit ADC.  Even if the ADC isn’t as good as a dedicated ADC chip, that’s still quite impressive, especially for the price (~$10 in small quantities).
  • Freescale’s Vybrid series features a Cortex A5 at up to 500MHz, optional Cortex M4 co-processor, 1.5M SRAM, no flash, and lots of communications peripherals; a low cost dev board is available.
    • What’s unusual?  The most SRAM in an affordable (VF3xx is <$12 in 100’s) and available chip; double precision FPU is also uncommon.  (Renesas has some MCUs with 1M SRAM, with up to 10M SRAM coming, but they aren’t widely available or affordable).
  • Cypress’ PSoC 5LP is a Cortex M3 MCU with up to 64K SRAM, 256K flash, 2 1M samples/sec ADC, and a 20-bit ADC.
    • What’s unique?  Cypress’ PSoC programmable analog peripherals combined with a powerful ARM core.
  • The XMOS xCORE-XA has a Cortex M3 core, up to 192K SRAM, up to 1M flash, and a $15 dev kit that attaches to a Raspberry Pi.
    • What’s unique?  It also has 7 deterministic XMOS cores, for a total speed of 500 MIPS, which can be used to create peripherals in software.  The concept is very similar to Ubicom’s chips (Ubicom started by making the speed PIC-compatible SX chips, then created a multi-threaded (IIRC) MCU.  They went bankrupt, and IIRC, Qualcomm bought their assets), and a bit similar to the Parallax Propeller (but much faster).  Note: the dev kit uses the xCORE-Analog A8 chip with  8 xCORES, but no Cortex M3.
  • Spansion’s FM series of MCU’s are a broad range of ARM-based MCUs.
    • What’s unique?  All series include parts that can run at 2.7V to 5.5V, which is very unusual for a 32-bit MCU.

Note that the Tiva and FM series aren’t in full production yet.

December 2, 2013   3 Comments

My Impressions From The TI Industrial Control Workshop

I went to the three day TI Industrial Control Workshop in Santa Clara.  Instead of repeating stuff (such as class outline) that you can read on the wiki link (above), I am going to give my impressions.

The bottom line: yes, the workshop is well worth attending if you like to (or just have to) control motors.  5/23/2013: I also want to add that I think this workshop is good for automation developers like myself.  OK, I’m not sure it’s worth flying to another city to attend, but if there’s one close (next one is 17-19 September 2013 at Brookfield, WI) then it’s good to attend — you’ll learn a lot more about what goes on underneath the covers of your VFD or servo drive.  I know I have a better understanding and appreciation of my drives.  Also, you can just about do the course on your own by downloading the materials, but it’s not the same experience.

Disclaimer:  I paid for this class myself (OK, at $79 it wasn’t a big deal – and the price includes snacks, lunch, and a F28069 controlStick); it was a very nice break from my typical workdays.

Update Feb 2014:I notice TI now has 4 videos from a more recent Control Theory Seminar, with the first episode here, and videos for the C2000 One Day Workshop, with the first module here (there’s also an older set of video modules).  I couldn’t find videos for Day 2 (Motion Control Theory), although TI has a wide variety of other motor control videos.  So download the materials, watch these videos, and you’re almost there!  (But I still recommend attending in person if you can).

Overall Notes

Considering TI must be subsidizing the workshop, it had amazingly little marketing content – less than a typical trade mag article.  There was no mention of TI products at all on the first day (control theory) and very little on the second day (mostly pride in TI’s new instaSpin solutions).  The third day was all about TI products (F28x DSP), but it was all about the product (architecture, peripherals, Code Composer Studio, etc), not marketing.

Overall, there were many good discussions, and lots of questions.  I enjoyed learning about what other people are doing.

I think all three instructors did a good job; the biggest issue was time – each class easily could’ve been at least a week, so they had a real challenge trying to fit in as much material as possible, explaining it in an understandable manner, while still answering questions (and all three did a good job of answering the many questions).

Day 1 – Control Theory (Richard Poley)

On day 1 I felt like I was back in college; it was like a month (or more!) of college stuffed into one day — and the soft-spoken instructor, Richard Poley,  reminded me of a college professor.

You do need to have a good math background to follow the theory.  Fortunately I had a lot of math in college, and I did some reviewing via wikipedia before the workshop.  I won’t claim I understood everything perfectly, but I felt I remembered enough to follow the basic concepts.

The theory got a little practical at the end of the day with sections on Digital Controller Design, Implementation Considerations, and a Suggested Design Checklist.

I’m pretty sure the vast majority of attendees don’t use control theory day to day.  I know I don’t; for example, we rarely have problems tuning motion controller PID loops.  So for me, the theory isn’t very useful for my day today tasks; in fact, trying to use it when it’s not necessary is a waste of time.

But it’s still good to know the theory for when the normal experienced-based approach doesn’t work.  (The same applies to programming, say sorting: if you have a small set of data, all sorting methods will be reasonably quick.  But if you have large data sets, knowing the theory of different sorting methods is critical).

I’m now interested in learning about state variable control theory, which is covered in the two day version of the Control Theory seminar, but it will be a while before I’ll be able to find time for project.

Day 2 – Motor Control Theory (Dave Wilson)

Dave Wilson is a motor geek and a primary contributor to TI’s Motor Control blog, which is a treasure trove of motor control information (even if you don’t use TI chips, since most of info isn’t TI-specific).

Dave Wilson emphasized AC induction motors and servo motors, because none of us were interested in stepper motors.  He covered motor control theory and all the common algorithms (such as field oriented control).  He discussed advantages and disadvantages of the different motor types and motor control algorithms.  He did a good job of answering the many questions.  And, yes, he is very excited by TI’s instaSPIN solutions (especially instaSPIN-FOC).

I really like Dave Wilson’s Power Point and VisSim animations that graphically showed what was going on to make the motors spin.

Day 3 – Intro to F28x (Ken Schachter)

This day was a rapid fire introduction to the F28x DSP series.  The instructor, Ken Schachter, gave an overview of the peripherals, an overview of the available software such as controlSuite, and then we spent a lot of time doing labs that showed off some of the Code Composer Studio (CCS) goodness (like graphing memory).

I’d call the class an orientation – I wouldn’t even say I become comfortable, but I do feel like I got my feet wet with the tools, and have a better idea of how to start.  CCS is pretty intimidating at first, and TI does provide a lot of libraries and examples.

May 21, 2013   No Comments

BeagleBone Black: Great Control Potential for $45

The BeagleBone Black is out, and many are comparing it to the Raspberry Pi (RPi) and Arduino.  Compared to the previous BeagleBone, the major changes are the price ($45, down from $90), a HMDI output,  more speed (1Ghz vs 720MHz),  more memory (512MB DDR3L instead of 256MB DDR2) and 2G on-board eMMC flash memory.  The BeagleBone Black also has a 100BaseT Ethernet port, a USB 2.0 HS host port, a USB 2.0 client (device) port, and a microSD slot.

Note: in May 2014, the BBB Rev C is coming, with eMMC flash memory doubled to 4G, and price increased to $55.  It’s very possible third parties will continue to make the Rev B.

If you just want a little Linux box for learning and compact computing tasks, the BB-B is just a little more than the RPi: a little more expensive ($45 vs $25/$35), a little faster (1GHz vs 700MHz), a little more flash (2G eMMC vs nothing) — and a lot less popular (by volume, the RPi has outsold by BeagleBoard + BeagleBone by at least 10:1, although that probably will change now with the Black’s lower price).

But the BeagleBone’s great potential is as a controller, not a RPi clone, since it has excellent digital peripherals (better than many microcontrollers)  available on its 2 46-pin connectors.

This Bone isn’t perfect.  I really wish the new Bone had 1G Ethernet (since it has 1G MACs) instead of 100M Ethernet.  Since the BeagleBone’s pins are heavily multiplexed, you can’t use all the peripherals at the same time.  Some expansion pins are also used by the system (e.g. one of the I2C channesl must be shared with the cape ID memory).   (11/1/2013 – from following the BeagleBone group, I’d say pin conflicts can be a big issue, though it’s far to note this is true on most embedded processors.  Also, note that the only potentially shareable cape pins are the “bus” pins such as I2C and SPI).

So what’s available on the expansion connectors?

Expansion Communications

  • 1 McASP buffered serial port (e.g. for audio devices)
  • 2 SPI ports
  • 2 I2C ports
  • 4 UART ports
  • 2 CAN ports

Memory and Parallel Bus

  • 2 MMC channels (the BB-Black uses one of these for its eMMC memory).
  • GPMC (General Purpose Memory Controller, a 100 MHz 16-bit external bus)

Timers and DIO

  • 4 Timers
  • 2 eCAP (enhanced capture) units
  • Up to 66 GPIO (general purpose I/O)


  • 7 Multiplexed 1.8V analog inputs going to a 100KHz 12-bit ADC (the eighth channel is used by the system).

Motion Control Peripherals

  • 3 HRPWM (high resolution PWM) systems with 6 outputs.
  • 3 eQEPs (enhanced quadrature encoder inputs, used with incremental encoders).

At a glance, I’d say TI has “borrowed” theF28xHRPWM, eQEP, and eCAP peripherals for various other chips, including the Sitara chip used in the BeagleBone.  The F28x DSPs have a good selection of motion control software available from TI, such as the various InstaSPIN libraries and controlSuite.  TI has ported some of their motion control software to the Stellaris and Hercules lines, but not to the Sitara.  It’d be great if they did, but not even TI has infinite resources, and the payback probably isn’t there; after all, the volume motor control market is in stuff like cars and clothes washers, and those guys aren’t going to replace a $3 DSP with a $15+ Sitara module (MPU, DRAM, flash, etc).

PRUSS (Programmable Realtime Unit Sub-System)

I’ve always been intrigued by programmable co-processors, going back to the days of the Freescale (Motorola) MC68332, which has a TPU (Timing Processing Unit).  I’m pretty sure the TPU was mainly used in high volume applications (not by many hobbyists), although Circuit Cellar Ink did run a series on programming it.  The MC68332 was used for motion control in several Galil controllers.

TPUs and improved TPUs were also used in a variety of ColdFire and PowerPC microcontrollers.  Freescale also developed a communications co-processor, the QUICC Engine, which was used in a variety of PowerPC MCUs such as the MPC8360.  Recently, I think Freescale has moved away from co-processors, possibly due to the increased speed of MCUs.  For example, none of the QorIQ PowerPC chips have the QUICC Engine.

TI has used similar co-processors before, such as the HET (High End Timer), NHET, and N2HET on many Hercules safety MCUs, the CLA (Control Law Accelerator) on some C28x DSPs, and the original PRUSS on earlier Sitara MCUs.

The BeagleBone’s unit is officially called the PRU-ICSS (Programmable Realtime Unit – Industrial Communications SubSystem); it’s easy to see why, since peripherals include 1 12Mbps UART (perfect for Profibus), 2 Ethernet MII’s, 1 MDIO, and 1 eCAP.  TI provides drivers using the PRU-ICSS for real time industrial networks such as Profibus, EtherCAT, and Ethernet PowerLink.

The PRU-ICSS has two 32-bit processors inside that run at 200 MHz, with each instruction taking one cycle, so it’s great for deterministic tasks, especially if the BeagleBone is running a non-real time OS.  TI has released PRU development tools, and a Linux driver.

I think the PRU-ICSS can be used for a lot of things that it wasn’t designed for, and open source is already making a difference.  For example, there’s the PyPRUSS software.  The PRU is already being used for stepper control by BeBoPr and Replicape capes.  Another possible PRU use is producing precise, high speed digital waveforms for test.

5/23/2013: some additional PRU notes: according to a g+ discussion by Charles Steinkuehler, the GPIO logic can only be updated every 40nS, which limits its maximum GPIO frequency.  Also, there’s a good BBB PRU overview and getting started guide here.  11/1/2013: I’ve seen various discussion on how fast the PRU can toggle, so do your own research first if you need ultra-fast bit toggling.

5/28/2013: here’s another creative use of the PRU: interface to a serial mode LCD.


BeagleBone capes are similar to Arduino shields: they’re boards that stack onto the BeagleBone’s expansion bus.  Theoretically, you can use up to 4 capes at one time, but the practical limit is typically much less, since the expansion pins have many different uses, and if the capes fight over the pins, the result won’t be pretty.

Capes currently available or available soon include RS232, RS485, Profibus, 1-wire, CAN (with driver and connector), prototyping area,  stepper motor drivers, camera, WiFi, LCD touchscreens, and FPGAs.  The variety of capes make it that much easier to create a one-off BeagleBone system to perform a specific task.  Most capes cost more than the BeagleBone Black.

Operating Systems

Operating system support includes several Linux variants (including the  Xenomai real time framework for Linux), Android, Minix3 (port in progress), several commercial RTOS’s (at least QNX, Integrity, Nucleus+), SYS/BIOS, and the no-OS StarterWare.

Linux adds a lot of power, but it also adds a lot of complexity, especially when all you want to do is simple I/O.  To make the BeagleBone easier to use, the BeagleBoard folks have produce Bonescript, a node.js based language featuring Arduino-style functions.  Bonescript can run in a brower or in the Cloud9 IDE.

TI has realized that not everyone wants or needs a OS, so TI created StarterWare.  StarterWare components include peripheral drivers, the IwIP TCP/IP stack, MMC/SD drivers, and simple graphics borrowed from StellarisWare.

StarterWare can also be combined with an OS; TI’s SYS/BIOS combines StarterWare with a RTOS, and is used by the real time Ethernet drivers for the Sitara AM3359-based ICE (Industrial Communications Engine).  Since the BeagleBone uses a similar CPU (AM3358 or AM3359), it should be easy to get the Sitara SYS/BIOS working (although the EtherCAT client won’t work on a AM3358).

The BeagleBone’s Place In The Linux World

There are other ultra low cost (<$50) Linux boards, including the aforementioned Raspberry Pi, the OLinuXino ($30-$80), the Aria G25 SOM, the Cosmic board (based on the intriguing Freescale Vybrid SoC) and possibly others.  If you just want to run Linux, and maybe use some I2C, SPI, or UART ports, all will do the job.

The i.MX233 and Allwinner A13-based OLinuXino’s have two big advantages: they’re easier to use in your own design because they do not use any BGA chips (which are unaffordable to assemble in small quantities), and the schematics are in Eagle PCB (which is much more affordable than Allegro which is used by the BeagleBone).

The BeagleBone’s big advantages are its peripherals (especially the PRUSS, GPMC, HRPWM, and eQEPs, which give it a big edge in control applications) and its expanding cape ecosystem, which make it easier to get something built without doing a lot of custom design.  It really is a kind of Raspberry-Duino.

Beagle CNC

The BeagleBone is a natural for CNC with its networking, fast CPU, PRU-ICSS, PWMs, and QEPs.  Here are some BeageBone CNC resources:

The BeagleBone’s Place In The Embedded World

All of the ultra low cost Linux boards provide a lot of bang for the buck.  For example, the BeagleBone Black versus the Arduino Due (~$50) looks like no contest: 1GHz vs 84MHz, 512M DRAM vs 96K SRAM, 2G flash vs 512K flash.  The Due has better analog I/O, but the ‘Bone has better digital I/O, Ethernet, high speed USB, and more.

Arduinos are still going to be around because of its extensive ecosystem and ease of use.  Heck, BASIC Stamps are still around.  For example, my nephew is getting an Arduino because of its simplicity, the size of Arduino ecosystem (it’s so easy for him to find examples), and because he’s not ready to benefit from the BeagleBone’s extra features.

Custom PCBs with microcontrollers aren’t going anywhere, either.  Think about the challenges in fitting a RPi or BeagleBone into a case that fits your product, but still provide access to all of the connectors…  And, if you don’t need the extra compute power, these little Linux boards still add cost, complexity, size, and power compared to a single chip microcontroller.

I think BeagleBone could use an easy to hack, close to the metal solution such as a straight port of eLua, or a “eLua-JIT” port consisting of the LuaJIT Just-in-Time Lua compiler, libraries similar to eLua’s, resting on the base of StarterWare or maybe SYS/BIOS + StarterWare.

I think the BeagleBone is similar to the PC: frequently used in embedded applications because they provide great price/performance, and rapid development because there’s lots of hardware, software, and documentation available.  Similarly, the BeagleBone might cost more than a full custom solution, but for one-off or small volume projects can provide a much quicker solution with its software (Linux, Android, etc) and available capes.  (To be fair, the Arduino already provides a similar environment for rapid prototyping).

My verdict: next time I order from Mouser/Digikey/Newark, I’ll be adding a BeagleBone Black; my next challenge will be finding time to play with it…

P.S. – After I wrote all of this, I realized that most of my post also applies to the original BeagleBone — except the Black’s price is 50% lower, and that makes all the difference in the world.  Last year, if I had needed a little Linux controller board, I would have seriously considered the RPi over the BeagleBone; now, using the Black is the obvious choice for me.

P.P.S. 11/1/2013 – I’ve done some more updating.

May 7, 2013   2 Comments

TI Slashes Code Composer Studio Prices

I’ve had a fun time watching CAD pricing gyrations, especially Alibre’s pricing. TI has also varied pricing on Code Composer Studio (CCS) Platinum; most of the time it’s been $3595, it was $995 for a couple months, and it’s been around $2000. All the time the annual maintenance was $600/year.

Now a new node-locked license is $445 and annual maintenance is $99/year. A floating license is $795 with annual renewal at $159/year. TI calls this Promotional Pricing, so the price may go up, but with the drop in the yearly maintenance, I think they’ll keep the prices low.

Deelip and others think pricing too low is bad for CAD. I think there’s a point to this: the CAD (and embedded) market size is only somewhat elastic, and there are significant switching costs, so if you cut prices too much, your market size won’t increase much, but your revenues will go down.

However, TI is in the semiconductor business, not the software business, and the point of CCS is to sell more TI chips. Also, unlike the CAD space, there is significant open source competition (gcc and such). My guess is that TI will, over several years, significantly benefit from this; I suspect a major goal is to increase microcontroller developers’ familiarity with the rest of the TI processor (MCU, MPU, DSP) lineup. For example, my brother is more likely to design in a TI C6000 or OMAP processor after this price cut.

CCS is a great value; it includes the IDE and development tools for all of TI’s processors (MSP430 MCU, C28xx DSP, Stellaris MCU, C5000 DSP, C6000 DSP, TMS570 safety MCU, high-end ARM, etc) and a royalty free run time license for TI’s DSP/BIOS RTOS. Most commercial embedded IDE’s are quite pricey, typically starting at $1000 or more for a single architecture.

October 22, 2011   No Comments

Maxtor & Microchip: Somebody Has To Be Different

There’s always one company has has to different.   Back when Maxtor was independent, they spun their disks backwards from everyone else, and numbered their heads from top to bottom, instead of bottom to top like everyone else does.

Microchip is acting the same.  When everyone else, it seems, is using ARM cores for microcontrollers, they picked MIPS cores for the PIC32 micro-controller (MCU) family.  Their new IDE, MPLAB-X is based on NetBeans, instead of Eclipse.

I don’t think the MIPS versus ARM core is a big deal; maybe Microchip got a much better deal from MIPS.  Switching between ARM MCU vendors isn’t easy because all the peripherals are different.  I wouldn’t be surprised if it’s easier to port C code from a PIC24 (16-bit proprietary) to a PIC32 (32-bit MIPS) than from (to take a random example) an Atmel SAM7 to a TI Stellaris MCU simply because the peripherals are much more similar on the PIC MCUs.

On the other hand, I don’t see the advantages of NetBeans over Eclipse.  Both are Java-based IDEs.  Both are open source.  Both are cross-platform.  (Note that an IDE based on either one might not be cross-platform, depending on device drivers for emulators and such.  TI’s Code Composer Studio V4 (based on Eclipse) only runs on Windows; V5 adds Linux.  MPLAB-X has beta downloads for Windows, Linux, and Mac).

NetBeans is primarily known for an excellent GUI builder, which typically isn’t important in embedded development.  I don’t know of any other companies using it for embedded development (or non-Java programming).  Even in the Java world, it’s been a distant second to Eclipse.

Eclipse has been used for non-Java programming (e.g. the C Development Tools or CDT) and embedded programming for a long time, and has many companies supporting it.  So Eclipse should develop a lot faster than NetBeans, and has the advantage of many more plugins.  Plus, Eclipse is run by an independent foundation, not by a company (Oracle) that likes to get paid.

Microchip is not very supportive of open source (unlike most ARM MCU companies).  On the good side, the PIC32 compiler lite version does not have any code size limitations; instead, Microchip removed optimization support.

Microchip is also a good source of low pin count chips, and is one of the few companies still selling MCUs in easy to prototype plastic DIP packages.  For example, you can get a 16-bit dspPIC33F with a CAN controller in 28 pin SOIC, QFN, and DIP packages.

I find Microchip’s mTouch Metal over Capacitor technology interesting: it allows capacitive sensing of metal buttons.

July 26, 2011   No Comments

Christmas Kit Fun

Stellaris Eval Kit box

Stellaris Eval Kit box

I now have a TI Stellaris LM3S8962 evaluation kit.  Specs include a 50MHz Cortex M3 core, 64K on chip RAM, 256K on chip flash, 10/100BaseT Ethernet with IEEE-1588 support, CAN, a 128×96 OLED, a virtual serial port (via USB), and JTAG (also via USB).   It’s pretty amazing that a commodity (<$10) MCU is much more powerful than the first personal computers such as the Apple II, Commodore 64, and CP/M systems.  (I’ve always thought it would be interesting to see how CP/M would run on a 50MHz Zilog eZ80, which should be about 200 times faster than a 4MHz Z80).

I like TI’s packaging: they stick everything into the box using two-ring CD-ROM holders.

Unboxing LM3S8962 kit

Unboxing LM3S8962 kit

Below is a picture of the board running an eLua demo program.  eLua is a reduced size version of the Lua scripting language that can run on many MCUs.

eLua on the LM3S8962 kit

eLua on the LM3S8962 kit

January 2, 2010   No Comments