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.
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.
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
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.
Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
No reviews yet.
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
Dean - Thanks for your very kind words!
- LeafLabs
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.
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.
Is it just me, or isn't it obvious that the name for this board (and its successors) should be ARMduino?
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.
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.
is this what you are looking for? http://leaflabs.com/docs/unix-toolchain.html
When will the mini will be available from SparkFun? Iwould love to try these one
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.)"
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.
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.
Could this run Android? Or does the cpu need to be significantly faster?
Not that I know of, I've seen it run off the Beagleboard, but none of the Maple Boards yet.
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.
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.
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.
Dear Leaflabs, could you provide nominals/values for the voltage regulators and transistors used on the board
I can now solder my wires into the board instead of hoping wires don't come loose? LeafLabs, you spoil me.
is this compatible with the arduino breadboard holder?
it apperars there is a typo...
128 ____ Flash
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
any idea when this will be back in stock ? :D
Now if only SparkFun would carry the one without the headers populated....
This board is so excellent!
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!
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
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.
Important to note, the mounting holes do NOT line up with the Arduino (at least not the Duemilanove)
Okie from LeafLabs here--
The form factor of Maple was fashioned after the Arduino Pro.
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 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.
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
Bummer about having to set jumpers for the power supply.
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.
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?
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.
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
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.
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.
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
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!!!
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.
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.
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!
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.
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
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.
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?
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.)
would love to see this get done!
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.
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 :)
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.
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.
When will the Maple be back in stock?
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.
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.
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.
Still on back order? What gives?
Does the Maple have a RTC? It would be quite beneficial to my project. Glenn
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?
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!
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.
How does MAPLE compare to DSPic in terms of audio capability / DSP algorithms (echo, reverb, etc) - has anyone had experience with this yet?
I've got an outdoors application for the Maple. I've looked and cannot find an ip67 enclosure, is there one out there? Thanks!
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.
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?