A JavaScript Interpreter For ARM ‘micros

When programming a microcontroller to do your bidding, you only have two choices. You could write your code in a proper language such as C and cross-compile your source into a piece of firmware easily understood by a micro. Alternatively, your could load an interpreter on your microcontroller and write code via a serial connection. Interpreters are a really fast and easy method to dig in to the hardware but unfortunately most microcontroller interpreters available are based on BASIC or Forth.

[Gordon] figured it’s not 1980 anymore, and interpreters for these relatively low-level languages aren’t a good fit with the microcontrollers of today. To solve this problem, he created Espruino, a JavaScript interpreter for the new batch of ARM development boards that have been cropping up.

Espruino is designed for the STM32VL Discovery board, although [Gordon] plans on porting his interpreter to the Arduino Due when he can get his hands on one. Installation is as easy as uploading any other piece of firmware, and even though [Gordon]’s STM32VL doesn’t have a USB port for a serial terminal, it’s a snap to connect a USB to TTL converter and get this interpreter working.

Espruino isn’t open source yet, only because [Gordon] would like to clean up his code and write a bit of documentation. He’d also like to make Espruino profitable so he can work on it full-time, so if anyone has an idea on how [Gordon] can do that, leave a note in the comments.

Finally, An ARM-powered Arduino

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.

Hands On The Stellaris Launchpad

We just got our hands on a Stellaris Launchpad. We had placed an order when the preorder was originally announced, but the marketing folks at TI reached out an offered to send us one a bit sooner and took them up on it. We’ve embedded a quick unboxing video after the break but read on for some info that didn’t make it into that clip.

The look and feel of the board and its packaging are almost exactly the same as the MSP430 version of the Launchpad. But why not? After all it worked so well the first time. This board hosts an ARM Cortex-M4 processor. The two buttons on the bottom are user buttons, the one on the upper right is a reset button. The top of the board is the programmer, with a micro USB port for connectivity. The kit also includes about a 2′ cable for this connection. Next to that jack is a switch that selects a power source. You’ll also notice a USB port to the left, this because the processor includes USB functionality, with a free library available from TI. Power can come from the programmer/debugger USB port, or from this device USB port. There are dual pin headers to either side on the face of the board, and pin sockets on the back which break out pins of the processor. Just below the reset button is a RGB LED, and a clock crystal has also been populated just above the chip.

When plugged in via the programmer’s USB port the PWR LED lights up as does the RGB LED. The firmware that ships on the device fades through a range of colors and the user buttons scroll through a set of predefined colors. The device enumerates as: “Bus 002 Device 005: ID 1cbe:00fd Luminary Micro Inc.” on our machine. But if you connect it via the device USB jack it enumerates as: “Bus 001 Device 015: ID 04e8:689e Samsung Electronics Co., Ltd GT-S5670 [Galaxy Fit]”. Interesting.

We have no idea if there are programming tools for flashing the board using a Linux box, but we’ll be trying to figure it out. If you have some info please share it in the comments.

Continue reading “Hands On The Stellaris Launchpad”

Beginner’s Look At On-Chip Debugging

As your embedded applications get more complicated an On-Chip Debugger will save you a lot of time when things don’t run quite right. On-Chip Debugging (OCD) is just what it sounds like — a way to run your program on the target chip that lets you pause execution to examine values and change them if need be. The Arduino has no built-in method of using OCD, but the AVR chips used by the boards do. The caveat is that you need a proper AVR programmer to access the Debug Wire protocol, or a JTAG interface for some of the larger chips. In this case I’m going to be using an STM32 Discovery Board to give you an overview of OCD. But this will work the same way for any chip that has hardware debugging capabilities. Many IDE’s have debugging support built right in so that you can use a nice GUI as you work. But often these are just a front end for the command line tools I’ll be using. Join me after the break and we’ll get started.

Continue reading “Beginner’s Look At On-Chip Debugging”

Hackaday Links: September 21, 2012

And then Obi-wan said, “you were supposed to be the chosen one!”

Yesterday, a little bird told us Makerbot will be moving to a closed source model for their newest printer. This was confirmed, and now [Zach Smith] a.k.a. [Hoeken] – creator of the RepRap Research Foundation and co-founder of Makerboth Industries is weighing in with his take on the situation.

Hey! Free stuff!

Remember that DIP28 ARM chip with BASIC? Remember how I told you Coridium will be giving a few hundred away as samples? Yeah, that’s happening now.

Replacing a scroll wheel with titanium

[Rhett] has been using a Logitech mouse for a few years now. Recently the scroll wheel became corroded, so [Rhett] replaced it with a titanium version. The perfect match for the trusty battle axe, theIBM Model M keyboard.

Web-based IDE for the Raspi

[Phil Torrone] sent in a video of something he and [ladyada] are working on. It’s a web-based IDE for the Raspberry Pi. We’ll do a full review of this when it’s released.

Intro to software defined radio

So you have one of those TV tuner dongles and want to get in to software defined radio. Where do you start? [Al Williams] over at Dr. Dobbs has a great introduction to SDR, and gives a few pointers that should help you get that cool looking waterfall plot very quickly. Thanks for sending this in, [Chris].

Programming An ARM With BASIC

For those of us old enough to remember the beginnings of the microcomputer revolution, we can look back fondly on ‘the programming environment is the OS,’ a ton of BASIC programs, and typing in small programs found in the backs of computer magazines. It’s a whole new world now with cell phones and Linux computers the size of credit cards, but some companies still remember the beginning.

Coridium is releasing an ARM microcontroller in the vein of old fashioned microcomputers updated for the 21st century. Based on the LPC1114 Cortex M0 ARM microcontroller stuffed into a DIP28 package, the Coridium ARM BASIC provides a programming environment in the firmware.

The ARM BASIC is a complete system on a chip, with Rx and Tx connections to connect to a serial terminal. To get this BASIC microcontroller up and running, all you’ll have to do is connect 3.3 Volts of power. Then, it’s a simple matter of plugging in an FTDI cable and pretending it’s 1989.

Coridium is planning on giving away a few hundred of these ARM BASIC chips to makers in a few days. I’ll put up the announcement of free microcontrollers up in a few days, but [Bruce] at Coridium is sending me one very shortly. Hopefully I’ll be able to do a demo before the stock of free chips is completely depleted.

Regarding The Development Files That Accompany TI’s Microcontroller Offerings

We received a tip from [Fabien] that Texas Instruments had posted a set of IDEs for the Stellaris Launchpad on their download page. At first we skipped right over the link, but then decided to take a look and see if things had changed any since the MSP430 Launchpad had been released. As we expected, there’s really no help on this page if you’re looking to develop for the hardware without using one of these IDEs.

Why would we want to forego the preconfigured development environments TI supplies? For one thing, they offer only trial licenses. When you go to download one of the packages you have to wade through a eyebrow-raising non-export agreement. When we made it that far, the ~500 MB Sourcery package we downloaded was quite slow. And we don’t see any option for installing any of these on a Linux machine. No matter what OS you choose, we think you should be able to develop for any architecture using the same development environment — be it Eclipse, GNU Emacs, Notepad, or whatever . We don’t want to download a huge package just to try out a new chip.

We know you can develop for Stellaris ARM chips using a vanilla cross compiler like arm-none-eabi (we use Sourcery CodeBench Lite — formerly CodeSourcery G++ lite). We hope that TI is planning on adding a barebones package that supplies a simple Makefile, Linker Script, and base libraries for the hardware. But we won’t hold our breath. After all, it is an industry standard to leave out Linux support.