Posts Tagged ‘Arduino’

Dev8D 2010

February 23, 2010

I am very excited to be running five Arduino Workshops at Dev8D 2010 in London this week.

I’ll be running three hands-on Beginner’s Workshops on Thursday, Friday and Saturday. The electronics will not require a lot of knowledge, it’ll assume that folks remember there are two connections on a battery, and they are different. I’ll be using my favoured, ultra low-cost, Maplin breadboards, so we won’t be soldering. We’ll provide Arduino’s (Feeduino’s), electronic components and tools.

I’ve run these before, and I believe we can do most of the core Arduino language, and build some electronics, in a few hours. We’ll write programs for digital input and output, analogue input and output (PWM), and use the Arduino millisecond and microsecond clock. The electronics will be LEDs, squeaky speaker, resistors, potentiometers, light sensors, and lots of wire :-).

I’ll be running a couple of ‘Advanced Arduino Workshops’ on Thursday and Friday afternoon. We’ll use a small driver chip to power a motor (or 100+ LEDs), use ‘time division multiplexing’ to drive many more LEDs than an Arduino has pins (without using any external electronics), and recognising Infra Red Remote Control signals. These are all based on things people ask me about, so I hope they are useful. We’ll provide Arduino’s (Feeduino’s), electronic components and tools.

If you really want to drive motors in an even fancier way, get hold of an L293D, and we can experiment with that too. If you have something that responds to Infrared Remote Control, bring it and it’s control along, and we can drive it from the Arduino (if the data to generate the Infrared signal is on the web, we don’t need a control. For example, the specification for things like Nikon camera’s are available, and we can work the rest out ourselves).

I’ll be around all day Saturday, so if anyone wants some help, or wants to try any of the ‘Advanced’ projects, please come find me.

A lower-cost, ARM-based Arduino alternative?

December 15, 2009

I stumbled across this NXP press release for the LPC134x which is based on the ARM Cortex-M3. The press release says “The on-chip USB drivers support both the Mass Storage Class (MSC) and Human Interface Device (HID) class. Furthermore, these drivers are incorporated in ROM, saving customers approximately 5-6 K bytes of user code”

Looking at this presentation, (slide 25), the chip shows up under Windows (and they say Linux) as a Flash drive to provide “Drag and Drop Flashing”. It has this capability built in at manufacture! No need for a bootloader, JTAG, or a second chip, like the FTDI USB to serial interface on an Arduino. Put an LPC134x on a board, connect USB, and it should ‘just work’ (TM :-))!

An entire USB-based micro-controller board only needs an LPC1342 or LPC1343, a crystal, voltage regulator, a few passives and PCB. The LPC1342 is available from Farnell for £2.20 and LPC1343 for £2.70 or £3.30. So a board could be smaller than an Arduino-Nano, and lower-cost.

I haven’t read the datasheet in detail, but overall these micro-controllers are more powerful than Arduino’s comparable Atmel ATmega168 or ATmega328, with 16K or 32K of program memory, so this is the best I’ve found to achieve the goal of sub-$10 micro-controller (at one-off prices).

The NXP parts have plenty of advantages over the Atmel parts. The LPC134x runs at 72MHz vs the ATmega’s 16MHz, and both execute instructions in one or two cycles. The LPC134x is a genuine 32-bit processor, whereas the ATmega is an 8-bit processor, so this means some calculations will go much faster on the ARM. I don’t think this is a huge benefit, as my Arduino’s spend most of their time waiting around for something to happen, but it may mean some programs are smaller on the LPC134x.

The LPC134x looks like it has much faster (40x) Analogue to Digital Conversion (ADC), opening up a range of interesting sensors and experiments. The LPC134x has significantly more RAM; LPC1342 has 4KB vs the ATmega168’s 1KB, the LPC1343 had 8KB vs ATmega328’s 2KB.

Both families have a set of timers. Timers are used to implement analogWrite, millis, micros, delay and delayMicroseconds in the Arduino language, but they are also used to control servo motors, stepper motors, modulate Infrared LEDs, and time external events.

The LPC134x have 2 × 32 bit timers, and 2 × 16 bit timers vs the ATmega’s 1 × 16 bit timer, and 2 × 8 bit timers. The LPC134x timers look more flexible than the Atmega168/328. The LPC134x comes in a package with more pins, so there are more PWM pins, and more pins to time external events.

The on-board LPC134x USB is 12Mbit/second vs 0.115Mbit/second for the FTDI chip on an Arduino.

The rest of the comparison between LPC134x shows similar peripherals to the Arduino’s on chip. They both have I2C, SPI and USART. So overall the LPC134x looks as good or better than comparably priced ATmega’s (at one-off prices).

There is a free, Open Source, GNU toolchain for the ARM, which is based on the same compiler as the Arduino IDE uses. So it looks like there are no real obstacles to making a lower-cost, ARM-based Arduino alternative. Of course, there is a plenty of work in porting the Arduino language libraries, like analogRead and analogWrite, but the core functions, which we use the most, would probably be only a few weeks.

I’ve ordered a low-cost NXP development board, LPCXpresso, to do some investigation. This is a similar price to Arduino’s, at £18.34 from Future, or £17.86 from Farnell (plus VAT). This is an encouraging price because the LPCXpresso contains much more technology than an Arduino. The LPCXpresso has a JTAG debugger which supports much more sophisticated debugging than available on an Arduino, and it probably costs as much or more than the LPC1343 itself.

There is a free downloadable LPCXpresso development environment available, so it should be practical to get a better understanding, and discover the disadvantages that datasheets never show for very little further cost. I’ll try to make some time to investigate this in more detail after Christmas.

Please don’t misunderstand. I love my Arduino’s, but the ability to significantly reduce its price, and make better technology available to an even wider audience is compelling.

Freeduino Nano – Just Arrived

October 16, 2009

I have a bunch of full size Arduino and Freeduino boards which I use in workshops, but I am always on the lookout for something more breadboard friendly. I couldn’t resist the Freeduino Nano from nuelectronics.com:

Freeduino Nano - Top

Freeduino Nano - Top

I haven’t used it yet, but it looks very close to ideal for  Ourduino projects where I avoid soldering. All of the 28 pins are on a breadboard-friendly 0.1″ pitch. The rows of pins are 0.6″ apart, so it should fit into a 28-pin DIL socket, making it perfect for veroboard (Warning: I haven’t tried this yet).

It comes with both pin headers (for breadboard) and female headers like the ones fitted to standard Arduino’s. I’ll probably fit the pin headers, or buy female headers with long pins.

It is fitted with an ATmega328, so it has double the flash program memory (32K), RAM (2K) and EEPROM (1K) of the ATmega168 on my older boards.

Freeduino Nano - Bottom

Freeduino Nano - Bottom

Unlike some of the alternatives, it has a voltage regulator on board, so it should be easy to use in battery-powered projects where we often use 9volt batteries. It has the usual 16MHz crystal too, so timing-sensitive projects (like IR remote) should be okay.

It uses an FTDI USB chip like other Arduino’s and Freeduino’s, so there shouldn’t be any driver clashes. A nice touch is they include the USB to mini-USB cable in the box. so it’s good value for money.

This looks like a very good ready-made board, but as a basis for a DIY kit, it isn’t quite my ideal. The changes I’d like are:

  • increase the size of the SMD resistors, LEDs and small capacitors; these parts are a bit too small for school children (and me) to use,
  • use an SMD Crystal and put it on top, and
  • use a slightly smaller voltage regulator, and move it to the top too.

I think we could make a single sided PCB in schools, using wires for jumpers, and solder it in my mini-oven.

I am pretty excited about this. I was about to start designing a PCB, and this turns up! Isn’t the Internet wonderful?

(BTW – the service from nuelectronics was very good, with less than 48 hours from order to delivery. I’d like to add, I have no relationship to nuelectronics.)

Hello World – Blink.

October 5, 2009

Welcome to Ourduino. It’s been a long time coming, and I hope we have fun together.

I’ll be writing about the Arduino experiments we’ve been doing at Whitley Abbey School in Coventry, Birmingham Hack Space, and my ‘lab’.

I gain inspiration and energy from friends, the school students, my friends and colleagues at Micromouse.com, the Birmingham Hackspace, fizzPop, the Open Source community, especially the Arduino community, and last, but definitely not least, the Imagineering Web charity.

I found using Arduino so liberating that I hope to tempt other folks into experimenting with Arduino’s. It’d be great if you’d like to get involved helping others use this type of technology. If you live in this area of the UK, come join us at Birmingham Hackspace.

Some of my posts will explain practical projects – making electronics and programming micro-controllers. I hope you will improve anything you find here, and share it with all of us.

One of the projects will be the Nikon Infrared Remote Control we built at the Birmingham Hack Space, fizzPop.

I’ll also describe the “Introduction to Robotics” experimental projects we’ve built at school too.

Blink? Blink is the ‘Hello World’ of embedded programming 🙂

PS – I’ll set up my Ourduino domain when I get around to it.