The higher-power ARM micros have a bunch of debugging tools for program and data tracing, as you would expect. This feature – CoreSight Trace Macrocells – is also found in the lowly ARM Cortex M3 microcontroller. The Cortex M3 is finding its way into a lot of projects, and [Petteri] wondered why these debugging tools weren’t seen often enough. Was it a question of a lack of tools, or a lack of documentation? It doesn’t really matter now, as he figured out how to do it with a cheap logic analyzer and some decoders for the trace signals.
There are two trace blocks in most of the Cortex M3 chips: the ITM and ETM. The Instrumentation Trace Macrocell is the higher level of the two, tracing watchpoints, and interrupts. The Embedded Trace Macrocell shows every single instruction executed in the CPU. Both of these can be read with a cheap FX2-based logic analyzer that can be found through the usual outlets for about $10. The problem then becomes software, for which [Petteri] wrote a few decoders.
To demonstrate the debugging capability, [Petteri] tracked down a bug in his CNC controller of choice, the Smoothieboard. Every once in a great while, the machine would miss a step. With the help of the trace tool and by underclocking the micro, [Petteri] found the bug in the form of a rounding error of the extruder. Now that he knows what the bug is, he can figure out a way to fix it. He hasn’t figured that out yet. Still, knowing what to fix is invaluable and something that couldn’t be found with the normal set of tools.
As one of their colleagues was retiring, several CERN engineers got together after hours during 4 months to develop his gift: a fully open electronic watch. It is called the F*Watch and is packed with sensors: GPS, barometer, compass, accelerometer and light sensor. The microcontroller used is a 32-bit ARM Cortex-M3 SiLabs Giant Gecko which contains 128KB of RAM and 1MB of Flash. In the above picture you’ll notice a 1.28″ 128×128 pixels Sharp Memory LCD but the main board also contains a micro-USB connector for battery charging and connectivity, a micro-SD card slot, a buzzer and a vibration motor.
The watch is powered by a 500mA LiPo battery. All the tools that were used to build it are open source (FreeCAD, KiCad, GCC, openOCD, GDB) and our readers may make one by downloading all the source files located in their repository. After the break is embedded a video showing their adventure.
Continue reading “Introducing the F*Watch, a Fully Open Electronic Watch”
It’s still relitavely early in the year, and all those silicon manufacturers are coming out with new toys to satiate the engineer and hobbyist for years to come. NXP’s offering is the LPC1500, a series of ARM microcontrollers optimized for motor and motion-control applications.
The specs for the new chips include an ARM Cortex-M3 running at 72MHz, up to 256kB Flash, 36kB SRAM, USB, CAN, 28 PWM outputs, an a real-time clock. There are options for controlling brushless, permanent magnet, or AC induction motors on the LPC1500, with dev boards for each type of motor. Each chip has support for two Despite NXP’s amazing commitment to DIP-packaged ARM chips, the LPC1500 chips are only available in QFP packages with 48, 64, and 100 pins.
Don’t think the LPC1500 would be a perfect chip for a CNC controller – the chips only support control of two motors. However, this would be a fantastic platform for building a few robots, an electric car, or a lot of the other really cool projects we see around here.
This Tweeting cat door uses the Electric Imp to read a sensor and report back to the server. The hardware is pretty neat. The board hosts an ARM Cortex-M3 processor and gets on your home network via WiFi. The mini-USB cable simply provides the power. Programming is done over the network. Our own [Brian Benchoff] had a chance to try the Imp out earlier in the Fall.
Monitoring a cat door is as good a reason as any to undertake a project. The hardware added to the board includes a reed switch mounted on the jamb along with a magnet on the door itself. There is also a blue LED that gives a bit of user feedback. The software isn’t quite as easy but it still wasn’t that bad. As with most web-connected projects getting all the parts to talk to each other was a bit of a chore. The Imp reports back to a server on the local network which then activates a PHP script that uses Sen.se to push out a Tweet.
Far removed from the legions of 3D printers featured at this year’s Maker Faire in New York was a much smaller, but far more impressive announcement: The ARM-powered Arduino DUE is going to be released later this month.
Instead of the 8-bit AVR microcontrollers usually found in Arduinos, the DUE is powered by an ATSAM3X8E microcontroller, itself based on the ARM Cortex-M3 platform. There are a few very neat features in the DUE, namely a USB On The Go port to allow makers and tinkerers to connect keyboards, mice, smartphones (hey, someone should port IOIO firmware to this thing), and maybe even standard desktop inkjet or laser printers.
The board looks strikingly similar to the already common Arduino Mega. That’s no mistake; the DUE is compatible with existing shields, so connecting a RAMPS board for your 3D printer should be a snap.
Here’s a PDF the Arduino and Atmel guys were handing out at their booth. A few DUE boards have already made it into the hands of important people in the Arduino community, including 3D printer guru [Josef Prusa]. Sadly, the folks at Arduino didn’t think media personalities needed a DUE before its release, so you’ll have to wait until we get our hands on one later this month for a review.
The new crop of ARM Cortex M0/M3/M4 microcontrollers have a lot of interesting features for developers. In addition to supporting drag and drop programming via USB, the same hardware can also be used as a debugger. Setting breakpoints and inspecting memory at any point in the code is a wonderful feature, but not all the new ARM dev boards we’ve seen support this feature.
The folks over on SimpleCortex have a solution to this problem, but they need your help. To get their CMSIS-DAP hardware working with Open Source tools, they’re looking for a few good programmers and hardware developers to build a toolchain.
Right now, the hardware only works with Keil development tools. A closed source development environment is no good to anyone, so if you have some experience writing drivers and such, send the guys at SimpleCortex an email. They’ll give you a free board in return for a contribution to building an open source ARM toolchain.
Common sense requires us to mention that you should probably only send these guys an email if you actually plan on working on this problem. Still, it’s a great opportunity to contribute to open hardware.
ST Microelectronics keeps kicking out development boards to show off their new ARM processor line. Yesterday they issued a press release announcing the STM32 F3 Discovery Board. As their naming scheme implies, this carries an ARM Cortex-M3 processor, but compared to the F0 Discovery board (which we loved) it’s got several extra goodies built into it.
We took a look at the F3 Discovery product page and it doesn’t look like you can order these quite yet. But click-through to the pricing and you’ll see they’ve set it at $10.90. Digikey lists the board at that price point, Mouser lists it at about $16, but neither supplier has any available. We also didn’t see a link for free boards like when the F0 model was released. If you do come across a giveaway link please tip us off about it.
Okay, now let’s discuss those extras. We think this dev kit could be used as an IMU for applications like a quadcopter or a self-balancing robot. That’s because it has a gyroscope and an accelerometer. It’s also got ten LEDs, eight of which are arranged on that white circle. We’d guess that layout is for displaying orientation data from the IMU sensors. There’s also a second USB port to use when developing USB applications for the chip.
Like the other boards in the Discovery family this has the STlinkV2 built-in to use as a programmer. We don’t know if OpenOCD has support for the F3 chipset yet, which is what we’ve been using to program STM chips in a Linux environment.