Maple

In the past, ARM processors were notoriously unfriendly in non-professional environments due to proprietary tool chains and unfamiliar instruction sets. Because of this, they were conspicuously absent from classrooms and hobbyists’ workbenches. LeafLabs aims to change this by providing an ARM tool-chain built from open source components and a programming environment that is intuitively easy to use.

If you're familiar with Arduino then you'll recognize the shape of the board, in fact the Maple is designed to be Arduino compatible and not just at the hardware level! The Maple IDE will make Processing/Arduino programmers feel right at home. By swapping the popular "avr-gcc" compiler with CodeSourcery's****"arm-none-eabi-gcc," LeafLabs manages to provide a nearly identical programming experience to Arduino despite targeting a completely different architecture. Also, while some Arduino shields are incompatible due to certain capabilities being allocated to different pins, several of them are currently supported and there are more to come. There is also a guide available on the product page for porting Arduino libraries and source code over to Maple.

As similar as it may be to the Arduino, the differences are what really make the Maple stand out. It harnesses the power of a 32-bit ARM Cortex-M3 clocked at****72 MHz to push 39 GPIOs, 16 analog pins, 12-bit ADC resolution and 15 PWM pins at 16-bit resolution. In order to make sure you have plenty of programming room to flex that hardware, the Maple also provides 128k Flash and 20KB SRAM. All of this performance is delivered in the same form factor as the Arduino Pro.

If your current Arduino-based project is pushing against the performance limits of the ATmega, porting it over to Maple may be the fastest and easiest way to continue developing your project without starting from scratch.

Note: The silkscreen is incorrect for the power input range. The barrel jack can accept 5-12V and the VIN can accept 4-12V.

  • STM32 F103RB: a 32-bit ARM Cortex M3 microprocessor
  • Clock Speed: 72 MHz
  • Operating Voltage: 3.3V
  • Input Voltage (recommended): 3.0V-12V
  • 39 Digital I/O Pins (GPIO)
  • 16 Analog Input Pins
  • 12-bit ADC resolution (ADC)
  • 15 PWM pins at 16-bit resolution (PWM)
  • Dedicated USB port for programming and communications (USB)
  • External JTAG interface (USB)
  • 128 Flash and 20KB SRAM
  • 64 Channel nested vector interrupt handler (including external interrupt on GPIO’s)
  • Integrated SPI (SPI)
  • Integrated I2C (I2C)
  • 7 Channels of Direct Memory Access (DMA)
  • 3 USART devices
  • Four 4-channel Timers (Timers)
  • Supplies up to 500mA @ 3.3v
  • Support for low power and sleep modes (<500uA)
  • 2.05″ x 2.1″ (52.07mm x 53.34mm)

Maple Product Help and Resources

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

3 Programming

Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels


Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

1 Electrical Prototyping

Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels


Comments

Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Quazar / about 14 years ago / 6

    I'm glad that SparkFun is now carrying the Maple. It is a fantastic board, and the perfect step up for those of you already familiar with Arduino but need more oomph.
    I had been eyeing the Arduino Mega for a project I was working on, but a friend pointed me to Maple. Good thing too, since Maple is more powerful and cheaper, and has he same footprint as the standard Arduino.
    You guys should add the Maple to your Arduino Buying Guide!
    Cheers,
    - Dean

  • mbolivar / about 14 years ago / 4

    Marti from LeafLabs here -- just a quick correction.
    The 800 mA figure is from an old version of our docs, and is incorrect. The Maple's actual maximum supply is 500 mA, with separate 250 mA digital and analog regulators. You can tie these together if you need more power. This will cause some extra noise on your analog lines though, so you'll need to consider the tradeoffs.

  • freiguy1 / about 13 years ago / 3

    Have you thought of carrying LeafLabs' new Maple Native that was recently released? It's in beta, but I think it could still give many makers a nice computational edge for those projects requiring it. In my case it could be something with Kalman Filters for, say, a self-balancing robot or segway.

  • PeterG / about 14 years ago / 3

    Is it just me, or isn't it obvious that the name for this board (and its successors) should be ARMduino?

    • BB / about 14 years ago / 2

      Leaflabs, while making the Maple in the same formfactor as the Arduino, and having an IDE that mimics the Arduino IDE, eventually does want to distance itself from the Arduino platform, namely because of the limiting capabilities of the original. Tying the product to the -duino name would work against that ultimate goal.

      • LeafLabs / about 14 years ago / 2

        Correct, and our next boards, the Maple Mini and the Maple Native, are the first steps in this direction. You should know, that the entire toolchain works fine from the command line via make/gcc so you neednt the IDE at all.

        • You should know, that the entire toolchain works fine from the command line via make/gcc so you neednt the IDE at all.
          If I could make one suggestion, it'd be to put prominent instructions and a sample Makefile in an obvious location in the IDE archive, though it looks like everything I want should be on the libmaple page / repo, yeah?

          • LeafLabs / about 14 years ago / 1

            is this what you are looking for? http://leaflabs.com/docs/unix-toolchain.html

        • Ido971 / about 13 years ago / 1

          When will the mini will be available from SparkFun? Iwould love to try these one

    • okie / about 14 years ago / 2

      From the Arduino FAQ:
      "Note that while we don't attempt to restrict uses of the "duino" suffix, its use causes the Italians on the team to cringe (apparently it sounds terrible); you might want to avoid it. (It's also trademarked by a Hungarian company.)"

      • brewer / about 14 years ago / 2

        Also - A "`duino" suffix might -imply- full compatibility. Not true anymore, since "Netduino" came along:
        Netduino is not code compatible at all with Arduino (it is partly shield compatible). You code for it using Microsoft tools...
        Netduino took this name has trademarked "Netduino" (despite prior instances of "netduino" designs in the forums (which describe designs of Arduino with onboard ethernet).
        Sorry to go off on a tear, but since Netduino has trademarked the name I would not name -any- commercial product a "duino". The risk is Netduino could defend their trademark.

        • JoeH / about 14 years ago / 4

          Given that there is literally a ton of 'duino' prior art (not to mention, as you said, prior art of 'netduino' itself), that trademark would never be enforceable in the courts.
          That's not to say it's completely worthless. It can still be used to intimidate smaller entities that don't have the resources to take it to court.

  • Demolishun / about 13 years ago / 2

    Could this run Android? Or does the cpu need to be significantly faster?

    • Pearce / about 13 years ago / 2

      Not that I know of, I've seen it run off the Beagleboard, but none of the Maple Boards yet.

    • BigHomie / about 12 years ago / 1

      Sorry, It would need at least 340MB of memory to run JB, says Android Spec PDF. Also, it would need an MMU, which it lacks. Don't get me wrong though, I have one and it's pretty awesome.

  • Sabvriel / about 13 years ago / 2

    Ok, I have a dumb question here. On most of the ARDUINOS, you get only 32KB of storage on the chip for your code. This says 128K of flash.. does that mean it has 128KB of memory for the code?? I have a lot of projects and keep running out of room on a normal arduino with only the 32KB of memory it has. If this does have 128KB of storage space, then it would be perfect for my projects.

    • LeafLabs / about 13 years ago / 2

      Yep - 128KB program flash, 20KB program RAM. Although, the bootloader reserves an unnecessarily large chunk - 20KB - of the program flash, so you really only get 100KB. You can bypass this using the serial bootloader if you really need the extra space.

  • DmitryS / about 13 years ago / 2

    Dear Leaflabs, could you provide nominals/values for the voltage regulators and transistors used on the board

  • TheFlyingCouch / about 13 years ago / 2

    I can now solder my wires into the board instead of hoping wires don't come loose? LeafLabs, you spoil me.

  • madman123456789 / about 13 years ago / 2

    is this compatible with the arduino breadboard holder?

  • nojo / about 13 years ago / 2

    it apperars there is a typo...
    128 ____ Flash

  • DarthNater / about 14 years ago / 2

    In case anybody is wondering, the Maple can be used with the SparkFun XBee Shield!
    Option 1:
    Set the switch on the XBee shield to "UART" and use the Maple's Serial2 for communication; no jumpers necessary
    Option 2:
    Set the switch on the XBee shield to "DLINE", use the Maple's Serial3 for communication, and add jumpers from pin 2 to pin 30 and from pin 3 to pin 29
    Option 3:
    Set the switch on the XBee shield to "DLINE", use the Maple's Serial1 for communication, and add jumpers from pin 2 to pin 8 and from pin 3 to pin 7

  • CoVlad / about 14 years ago / 2

    any idea when this will be back in stock ? :D

  • J.R. / about 14 years ago / 2

    Now if only SparkFun would carry the one without the headers populated....

  • rryan / about 14 years ago / 2

    This board is so excellent!

  • joachimp / about 14 years ago / 2

    Just got the RET6 beta version directly from leaflabs. So fast, oh so fast. 17us conversion times on 12bit ADC?! Compared to roughly 100us for 10bits on the atmega328p! Spent the afternoon porting the IMU with kalman filtering found here http://arduino.cc/forum/index.php/topic,58048.0.html I think it's going to be quite a long while before I pick up another 8bit micro.
    The test code that it ships with is epic fun, ADC realtime scan feature! ADC noise analysis?! awesome! Pin state check, awesome!

    • LeafLabs / about 14 years ago / 2

      Glad to hear it! The RET6 has been a very successful beta and a near future revision of Maple will be armed with the same RET6 chip! I wanted to point out to you that while 17us is awesome, you can go WAY faster with some clever code-massage and analog care. For low impedance signals you can sample at 500ns! Seriously. Read more here: http://wiki.leaflabs.com/index.php?title=Dual_Simultaneous_Sampling

      • Nicholas.Searcy / about 13 years ago / 1

        Awesome. So, by 500ns, you mean using the highest frequency (1000Ks/s according to the code posted here http://forums.leaflabs.com/topic.php?id=739&page=3#post-4844) and getting two samples at a time? Because 2MS/s is crazy.

  • J.R. / about 14 years ago / 2

    Important to note, the mounting holes do NOT line up with the Arduino (at least not the Duemilanove)

    • okie / about 14 years ago / 2

      Okie from LeafLabs here--
      The form factor of Maple was fashioned after the Arduino Pro.

    • J.R. / about 14 years ago / 2

      So for an Arduino case, like the one sold here, the mounting holes will not line up with the support pins in the case. Maple folks care to comment on why it was designed this way? The board is so close that another 5 mm would have been enough to line up the pins.

      • okie / about 14 years ago / 2

        Okie from LeafLabs here--
        The Arduino Pro form factor was chosen for Maple because it's smaller, lighter, and maybe a tad more cute than the standard size.
        The mounting hole positions are very close to the Arduino Pro's mounting holes' positions, except the two holes on the right side of Maple are each 3/100" farther from each other than they are on the Arduino Pro. This was done so that 4-40 screw heads would clear the double row header while being a small enough adjustment that it would possibly still fit, albeit more tight, to an Arduino Pro mounting system.
        I'm glad you brought this up because on the current Maple revision (r5), the double row header dropped two pins (they're still broken out to thru-hole pads) so that it could be comfortably aligned to the 0.1" grid, which means there's room to realign the holes exactly with the Arduino Pro.

  • Dr. Shenanigans / about 14 years ago / 2

    Wonder how these compare with Digilent's newly released chipKit boards:
    http://hackaday.com/2011/05/21/bamf2011-chipkit-is-arduino-to-the-power-of-32/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+hackaday%2FLgoM+%28Hack+a+Day%29

  • sridenour / about 14 years ago * / 2

    Bummer about having to set jumpers for the power supply.

    • Camalaio_ / about 14 years ago / 2

      I'm thinking this could be accommodated by a 2- or 3-position switch?
      Most people would only need USB and EXT, or a combination of USB, BAT, and CHRG.
      Actually, I'm not quite sure how their jumper system works. But a switch or pair of switches may be worth wiring up.

    • LeafLabs / about 14 years ago * / 1

      We plan to fix this in a future edition, but right now the problem stems from a conflict with the battery charger and the auto-power-sel scheme.

  • Are all the pins from the ARM broken out on the board? If not, any chance of a Maple Plus or something with an Arduino Mega FF?

    • Camalaio_ / about 14 years ago / 2

      I'm going to make a guess: Not quite.
      The Arduino footprint is fairly restrictive. This is why they are developing the Maple Native, which gets away from the form factor of Arduino boards while maintaining the same programming interface and libraries.
      As for the Mega form factor being used, I don't think it's a wise choice. There's already some pin quirks in this version of the Maple when wanting to put on an Arduino shield (from what I've read).
      That said, a Mega footprint may help organize things better?
      Personally, I see no gain for Maple in an Arduino Mega form factor. There are not many shields designed specifically for the Mega anyway. Maple may be better off to take its own route in hardware layout, like the Maple Native is planned to do.
      That said, SFE, wanna bring in some Maples Natives when they are released? :)
      EDIT: Also, Rev5 (current version) removed two pins, if I am reading things right, so that the headers would line up with standard 0.1" layouts better.

      • The advantage of an Arduino Mega-like board is that the Mega can take normal Arduino shields, and has way more I/O and stuff.

      • LeafLabs / about 14 years ago / 1

        We made two changes on rev5 to fix the 1/10" issue. We added a second row of pins along the top header that are identical to whats on the arduino-positioned first row, but are on the 1/10" grid. We also shifted the right side header to sit on the 1/10" grid. The result is that you can use regular perfboard/breadboard to make shields! We have already gotten much mileage out of this. If you would like to buy Maple without the headers populated, this is available from our website, leaflabs.com

        • Camalaio_ / about 14 years ago / 2

          Oh I LIKE that idea. (The 0.1"-spaced row below the awkward Arduino one).
          I was actually wondering if anyone would decide to do that. Good work :)
          Also, a headerless version sounds wonderful for permanent, thin projects. Good stuff.

  • Robdrech / about 14 years ago / 2

    Seems really cool but after reading compatibility on the libraries and a few other minor hits (no eeprom). I think I'm going to hold off until everything get developed a bit more.
    Does sound promising though.

  • Ixox / about 14 years ago / 2

    I'm using a maple for my current project preenFM.
    I am really in love with this maple.
    32 bits at 72 Mhz open the door of complex real time sound synthesis (32 bits multiplication in 1 CPU cycle !).
    My maple is currently connected to an Eeprom 24LC512 (I2C), MIDI (usart), Encoders, buttons, a 20x4 LCD and the sound through a 16 bits PWM pin.
    Every thing works beautifully for me.
    The libmaple development is really going forward fast these days.
    Xavier

  • Member #226998 / about 14 years ago / 2

    Nice board but they could not finish the hardware I2C after two years. There are a lot of un-finished Arduino compatible libraries that are not complete. Someday they might complete them but in the mean time don't waste your money like I did on this ARM board. A much better solution is the FEZ Domino or Panda I or II, which by the way, everything works!!!

    • WilliamK / about 13 years ago / 2

      I got the FEZ Panda and its not real-time like Maple is. I couldn't do anything I wanted with the .NET stuff since its non real-time. Its also very slow. So I would say, stay away from .NET stuff, unless you want to do very simple stuff, them its ok, but for anything more advanced, it sucks. Maple, in the other hand, is native, totally real-time, and there's already some complex projects lying around.

  • BB / about 14 years ago / 2

    All those capabilities seem nice on paper, and the Maple same layout as the Arduino, but the actual development process when using it was a real turn-off for me. The core reason people use the Arduino is that it requires very little setup to get things going on it. The Maple is not to the maturity level of the Arduino, and users are expected to deal with unsigned drivers on Windows 7, putting the board into bootloader mode with a well timed reset button press, and immature drivers for such things as I2C.
    Use the Maple if you absolutely need more power than an Arduino but simply must use the same form factor, are willing to mess with many workaround to get it working, and are willing to wait for the devs to release usable libraries for some of the touted capabilities. For me, the Maple sits in a drawer unused, and sadly so, because the board really does have some nice capabilities, but the development process and immaturity of the libraries makes is a chore/impossible for me to make much use of it.

    • mbolivar / about 14 years ago / 2

      BB,
      Sorry to hear you haven't been able to use your Maple as much as you wanted to. We're going to keep improving the issues you've described. For instance, the new 0.0.10 beta release includes a finished I2C driver.
      I hope you keep an eye on us!

      • BB / about 14 years ago / 2

        I do hope so. That I2C library would have been nice last year for one of my projects to use the Maple instead of the far less capable Arduino. In the ends the Arduino won out because I just didn't have the time to debug drivers.
        The move away from the -duino platform will be a good thing, settling many of the expectations associated with it, and creating new expectations and assumptions.

  • Does this make a HEX file which it uploads to the unit? If so it should be fun programming that HEX using assembly instead for those who want to learn more about that.

    • LeafLabs / about 14 years ago / 2

      raw binaries are uploaded to the board. not ascii/intel hex. However, feel free to rock out in assembly and assemble it into a binary and upload via dfu-util

  • teachop / about 14 years ago / 2

    Schematic question... What is the Q2/Q3 circuit for (feeling dense), and where does the "+5V" net (not "+5V USB") come from, I can't see it elsewhere on the board.

    • okie / about 14 years ago / 2

      The "Q2/Q3 circuit" is for signaling power consumption information to the USB host. The supply with the value "+5V" is on the same net (which means it's connected) as "+5V USB". That's confusing, and they should have the same value.

  • Is it actual USB, like can it be an HID? Or is it FTDI-like?

    • LeafLabs / about 14 years ago / 1

      its actual USB. Our libraries give you a virtual com port (serial) by default over the USB. However, an enterprising programmer and get full control of the USB peripheral and do HID/audio/mass storage/ whatever. We do not have libraries for this yet, but code contributions welcome! github.com/leaflabs

      • That would be fab for, say, a USB-MIDI Sequencer. Or a 61-key USB-MIDI Capacitive Keyboard Controller! (Man, that's a mouthful.)

        • LeafLabs / about 14 years ago / 2

          would love to see this get done!

        • chipaudette / about 12 years ago / 1

          I'm using a Maple as the core to a MIDI-driven wavetable synthesizer. It's stunning how much more you can get done (compared to the Arduino) with the higher clock rate, the native 32-bit data types, and the 1-instruction multiplies. Wow. I've got 8 voices going at 45 kHz (without any real effort to save CPU cycles in my code) with tons and tons of CPU left to spare. Wow.

  • Camalaio_ / about 14 years ago / 2

    Quick question,
    The specs above say 3.0-12V, but the silkscreen by the barrel connector says 7-18V. Since Marti from LeafLabs has already corrected here once (Thanks for that! That's actually some good engineering thoughts there), I'd assume the 3.0-12V is the correct figure?
    Thank you for releasing this right BEFORE I make my order, SFE :)

    • mbolivar / about 14 years ago / 2

      For the entire board, depending on how you source the supplies, you can (although I won't say should) go from 2.4 to 12 volts.
      If you've got your own regulators, the processor will continue to work if you supply Vcc directly with as low as ~2.4V. It's a 3.3V board, though, so going below that will have all of the obvious negative consequences. ST's recommended max is 3.6V.
      If you supply Vin, you should be able to get away with 3V (though I won't swear to it); it goes through the same regulator as the barrel jack.

  • TeslaFan / about 14 years ago / 2

    Check it out. LiPo charger on board. Word. (fist bumps for LeafLabs engineers!) Add that to the Arduino Pro!
    I would definitely consider this before switching to a Mega. In fact, I think I'll order a couple of them right now for evaluation.

  • Member #651276 / about 10 years ago / 1

    When will the Maple be back in stock?

    • M-Short / about 10 years ago / 1

      Hi, it looks like we can no longer get these from LeafLabs so we will not be getting any more in. Take a look at the MBed, Teensy 3.1 and the Teensy LC if you are looking for a nice ARM board, as well as keep checking back, we are starting to get more ARM boards in our catalog.

  • Member #134947 / about 11 years ago / 1

    Would love to use this board, but as mentioned below, it is a pain to set up on Windows. I'm on Windows 8 and I couldn't get it running last night, was using it with the audio codec shield (there is a looper pedal example with the maple native that made me think to get the maple in the first place), but was up and running on the arduino in 5 minutes. Bummer.

  • bdwyer / about 12 years ago / 1

    I just want to say that it's funny the features read: Integrated I2C...

    If you know what the 'I's stand for in IIC...

  • Just a heads up. The Arduino Compatibility link is broken, it doesn't point to the right page. To get to it, go to the right side of the page it does take you to.

  • Maaseru / about 12 years ago / 1

    Still on back order? What gives?

  • glenndrives / about 12 years ago / 1

    Does the Maple have a RTC? It would be quite beneficial to my project. Glenn

  • Member #238368 / about 12 years ago / 1

    One of my favorite things about the Arduino is the ability to load Labview interfacing code the the device such that it can be used as a cheap DAQ card for quick testing using LV. Is it possible the the same such capabilites will become available with this device?

  • Member #327032 / about 13 years ago / 1

    Does anyone know and have tried to see what the Max Serial Baud rate is for this board? I'm looking for something @ 1M baud. It seems that the Cortex can supply up to 4.5 Mbps, but the Maple software library for some reason, limits it to 250K as stated on their forum - it's not clear if they fixed it. If this doesn't make it, does anyone know of another board that can run serial at 1M baud rates? Thanks!

  • Ido971 / about 13 years ago / 1

    Does anyone know , why the String are not implemented on the library? I have implemented a command parser and i rely on this object for some manipulation.

  • Member #325392 / about 13 years ago / 1

    How does MAPLE compare to DSPic in terms of audio capability / DSP algorithms (echo, reverb, etc) - has anyone had experience with this yet?

  • Member #99851 / about 13 years ago / 1

    I've got an outdoors application for the Maple. I've looked and cannot find an ip67 enclosure, is there one out there? Thanks!

  • Member #278912 / about 13 years ago / 1

    LOVE this board, its awesome. Works with arduino code really well, and even has a few extra functions built in to the language. Awesome if you need more power and pins than an arduino. Also, it has a ton of memeory and storage, I've never even come close to running out of space for code. It's an awesome board, have yet to have a problem.

  • Member #300363 / about 13 years ago / 0

    I bought the Maple and I'm trying to connect it with a NHD-0216HZ-FSW-FBW (16x2) LCD. It seems there are some problems with the liquid crystal library. The messages I wanted to display came out but with additional weird characters. It also seems that the Maple doesn't support lcd.clear() function. The screen never got cleared so I had to write a space character at every spot. Does anybody have a suggestion?

Customer Reviews

No reviews yet.