Posted
by
timothy
on Sunday September 26, 2010 @02:47PM
from the now-with-less-italian dept.

EqualSlash writes "The Arduino Project is releasing two new boards — Arduino Uno to replace Duemilanove and Arduino Mega 2560 to replace the existing Arduino Mega board. With Uno, the board is not just getting a new pronunciation-friendly name but also has a custom-made USB-serial converter to replace the older FTDI chipset, thereby removing the need to install drivers (they now have their own USB Vendor ID). It now has a logo and stylish packaging, and soon will have its own branded web store. A new Ethernet integrated board and a tinkering toolkit will be made available shortly."

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=CCDD5EAC-04B1-4ECB-BAD9-3AC78FB0452B&displaylang=enThe Microsoft&#174;.NET Micro Framework is a platform that enables developers to more quickly develop embedded systems that are smart, securely connected, and easier to manage. With the version 4.1 release, the.NET Micro Framework enables developers to create powerful embedded systems that are more securely connected through a variety of wired and wireless protocols. The 4.1 release is al

Nah, I'm good. Hardcore OSS advocates fear a lawsuit against Mono and I'd be happier if that were entirely impossible, but I don't see MS tarnishing their recently improved image because of a project that benefits them. So, given equal capabilities and ease I'm happy:)

the official arduino shield spacing is goofy. I avoid it and adapt the 'italy boards' to normal 'point one' spacing that the rest of us sane people use;)

in fact, you can build an atmel 328 chip with a 16mhz resonator, 1 or 2 resistors, 1 or 2 caps and some wire. its REALLY that trivial. I've built at least 10 on proto boards (perf boards) all soldered by hand pt-pt and they all are nice little embedded systems. wire in the 'classic 6 pin inline' connector to talk to the magic $20 ftdi cable and you are

You can do it even without resonator, atmegas have internal 8mhz oscillator. I've made some projects with atmegas, never used arduino, but if they have spacing other than.1, it's just design error or plainly dumb.

Great! now I will have to upgrade my motherboard again.. sad thing about being an enthusiast is the sick feeling you get when you are behind tehnologies.. expecially in Motherboards [motherboardsata.com]

well as far as I know the ATmega8U2 doesn't really have the memory space to make the PS3 controller, but it is not that far from possible:-) If you manage to make the code, I send you board as a present

How do you make a new custom usb to serial chipset, with a new vendor id, that doesn't require drivers?

I'm no expert, but have used PL230x chipset cables and FTDI cables, and both required some kind of driver under OS X. I think windows may have included the PL230x driver, but not the FTDI. And Linux includes drivers for both. But if I took the FTDI or PL230x chipset and changed its vendor id, then the driver under linux won't detect it by default.

The only standardised USB class for serial-like USB devices is the CDC ACM class. That's driver-free under Linux and Mac OS, but it's not exactly driver-free under Windows - you still have to install a.inf file to tell the driver shipped with Windows to actually load. In practice, for Windows users it's not really better than any of the proprietary driver-required solutions.

"So how is it that a new custom chipset with a new vendor id requires no drivers? Is there a standard for USB->serial that if you follow you don't need a driver? (and why do most cables not support it if there is?)"

As others have said - the CDC ACM class. I believe that class was standardized relatively recently in an attempt to address the fact that there are 23432743290 different USB-serial chipsets all of which required special drivers.

How about some drivers that implement the other serial features of the existing hardware. You know something other than 8N1. It's not like the chipset manual provides functional code snippets to implement those features or whatever...

The Arduino system is a development kit around Atmel Mega8 microcontrollers. It makes microcontroller development simpler for those without a background in programming or hardware design by providing easy programmability with a boot loader and an integrated USB to serial converter, ready-made "shields" (pluggable boards with specific functions) and a software environment which abstracts from some of the nastier aspects of microcontroller programming. It has got quite a fanbase in the "maker community".

Those with a programming and hardware background, too:-) Once you get used to the pin-numbering abstraction, it's a real suck-saver for quick n dirty / one-off / non-production projects. The entire Arduino project, toolchain and most users' projects are open-source, and it's its own bootloader! One of the Mechies calls up and needs a quick test fixture to cycle a valve once per minute and log a sensor reading for the next several weeks. I can grab someone's microSD-FAT library off the internet and cobble something together in the time it takes to figure out whose desk the PIC programmer is hiding under this week and where the license code for their C (not C++) compiler went.

It's an awesome tool that makes interfacing with real equipment (lights, motors, sensors etc) easy for a software developer with minimum electrical engineering knowledge and some knowledge of C programming. After it's programmed, it can run on its own without a PC.

Arduino is a platform based on some minimal hardware wrapped around the Atmel AVR microcontrollers. It makes it very easy to slap the AVR into the middle of a design (especially if you use the Arduino Nano, which is designed to be conveniently breadboard-socketable) and actually get something done with it, like read some sensors or flash some LEDs, or perhaps read some sensors and flash the LEDs based on the input. Indeed, you can load the Arduino bootloader into sufficiently capable AVR processors and use their programming environment, libraries, etc. Arduino devices understand how to read many common sensors and control many common devices, including R/C car servo-motors. All this makes them an extremely common basis for small robotics projects. As well, Arduino devices are extremely inexpensive, and the microcontrollers upon which they are based even moreso.

But that wasn't very hard to begin with, and what's REALLY super-cool about Arduino is the idea of "Shields", which are sub-boards of hardware designed to be interfaced with an Arduino simply by plugging it in, and which are provided with the code necessary to utilize them. Thus, adding some functionality to an Arduino project can take one of two forms: you can build it out yourself and interface it, or you can simply buy someone else's premade "Shield", plug it in, and use their code to interface to the hardware.

Shields generally utilize Free and Open designs and so you get all the source and the full schematic. This means that while you can use Arduino for making finished products, you can also use it for rapid prototyping, then take the (Free, Open) Arduino schematic, combine it with the (Free, Open) schematic(s) of the shield(s) that you used, and send the whole thing off to get made into a permanent PCB for your own product. This in turn permits someone with programming ability but little to no electronics ability to produce finished products with semi-custom hardware.

Shields exist for a broad variety of functions, and generally they add input and/or output to a design. There are shields to control relays, and shields which can be used to determine how much power is flowing through them. There are LED blinking shields, Ethernet shields, sensor-control shields, ZigBee wireless mesh networking, video output, you name it. And anyone can produce any of this stuff from the designs, modified or not. Arduino is open hardware for the masses today, albeit a bit limited in processing power. However, it can always be linked to a more powerful computer; it has RS232 onboard (one of the tricks that Atmel teaches you to do with their AVR when you get the dev kit, in fact) and most designs include a USB to RS232 adapter which both powers the device and permits communication.

There is probably a much better way to summarize all of this, it could be a lot shorter, but I've never typed a full missive on what it is. Maybe someday this highly redundant piece of text can be used to train machine language or something:D

There are other controllers, just as easy or easier to use, with much more features for only a little more $. And most of them don't even require expensive bulky shields to do what you need.

Arduino is not a microcontroller, it is a system built around the Atmel AVR, which is extremely inexpensive for its overall functionality, though certainly you can find something cheaper. Shields give you access to rapid prototyping but you don't need to use them in your final design, or for that matter use them at all. Instead, you can plunk the $25 Arduino Nano down in the middle of a breadboard, and then build the shields' circuit on your breadboard next to it.

Anyway, what you are thinking of is called an 'augmented microcontroller', of which I was referring too. The Arduino is a bare-bones budget level augmented mcu. There are much better augmented microcontrollers out there.

As for shields, they aren't nearly as useful as you think - they only exist because the Arduino doesn't have a power bus or a normal 0.1" header spacing.

Here is an example of another microcontroller - notice how the servo and the sharp IR simply plug in witho

That's why I prefer simple, smaller carrier boards instead. They got the ISP header and sometimes a place for a crystal+caps or a resonator and a power supply connector at most.

I had a small batch made for the ATtiny85, and my PCBs only adds one row above and below for the carrier board pins (useful for connecting into protoboards), and 2.5 columns more to the width for the ISP header.

I actually have a few, already soldered up and tested. I made a mistake with the hole size for the IC pin headers that go into the protoboard, so I needed to drill those holes to fit the pins. The ISP header holes are just fine, though.

I'll be putting those on eBay in a few days, just search "attiny85" and you should find it (currently only two results on eBay.com, for the IC only).

FYI, I connect to the ISP header via the old STK500, I have no idea if it will work with anything else, but all six pins of the

yup, small carrier boards (boarduino or similar) are what you want to use in deployed units that are in small numbers. for larger runs, you might as well design in the atmel chip and resonator and header and you're done; but small runs might benefit from a carrier board approach.

I don't use 6pin (3x2) ISP headers; I use the 6 pin inline 'ftdi standard' header. if you are doing arduino things, that's the only connector you need; and the bottom 3pins act as the power-in point (2 gnd and 1 for 5v). ie, you

That's one of the great things about the Arduino - most of the hardware "magic" is really just the built-in capabilities of the Atmel AVR micro-controller. If you don't need to use a "shield" (daughterboard), there's plenty of simpler (and cheaper) clones for more specific purposes. They just need to be programmed with the Arduino bootloader (which they usually are) and the Arduino IDE will program it just fine.

With great difficulty these days. Unless you have a computer with a real parallel port lying around, you need a programmer of some sort as well. The nice thing about the Arduino is that it comes with a suitable serial bootloader already installed, and an integrated USB-to-serial interface too.

With great difficulty these days. Unless you have a computer with a real parallel port lying around, you need a programmer of some sort as well. The nice thing about the Arduino is that it comes with a suitable serial bootloader already installed, and an integrated USB-to-serial interface too.

Exactly my point.I got myself an Arduino starter kit last Christmas. First time I ever really tried doing hands on electronics. I actually learned and retained more in a week of playing with it than I did when I was reading electronics magazines regularly.

Oh come on. USB-to-ISP programmers are cheap and there are lots to choose from. You can build one yourself if you want. You don't need to buy a new one with every controller either, because it's not tied to the application board.

Oh come on yourself. I'm not the one trying to compare a prototyping board to a chip.

And where do you get the idea that the ATMega is somehow tied to the Arduino boards?

Well,
we did not server upgrade, we did just a layout change:-) and FYI it was planned since 3 months ago that the change would happen at the same time the keynote was taking place in NYC so that there would be a before and an after the talk. If we got Slashdotted is a happy coincidence, but our server is ready to take Slashdot once a day if needed (we do pay for a pretty reliable server).
Also as a side note, we registered over 20Gb of page traffic during the weekend, which is about 4 times the normal a

On Windows you'll need to install a driver in order for USBserial to work. There were no drivers on Windows Update ~6 months ago so you need to install the drivers manually (possibly it's already fixed now). Otherwise the board is useless since it cannot be programmed.

the only thing that does not 'plain work' is the rts/dtr hack to reset the cpu.

that, and, well, the ftdi cable is $20 and is needed to program the chip. the ftdi chip is not that much but its a PITA to solder to (fine lead pitch) and the usual solutions (sparkfun) have the board at $15, anyway. cut that out of the picture and things are finally cheap enough to be used by 'anyone'.

anyway, RTS/DTR idea is that you toggle one of those lines for a short while to discharge a small value cap across the cpu's reset line. its a neat idea and the cpu does NEED to be reset VERY prior to the first byte in the download. either you press it 'very quickly' or have software do it.

ftdi uses RTS and some other boards use DTR. that's one problem. and the other is that windows or linux (both) have no easy way to twiddle that bit and needed to call other routines to do the reset and then start the download (via what's known as 'avrdude', the downloader).

if they properly architected instead of hacked this, it would be a big step forward.

also, with regard to ethernet; I posted something about this on the ladyada forum and it did get some commentary. the problem with ethernet/ip is that there is no security (none, not even a tiny bit). for a physical device that can turn things on and off in the real world (including ruining/damaging things) you NEED security. I just firmly believe this. no firewall, no hosts.allow, no nothing. not authentication or encryption or MAC access control, just like TRULY nothing. I find that unacceptable in a real-world device.

given the fact that you can buy $50 things (pogoplug, seagate dockstar, even WRT routers) that run a full linux and IP stack, why hack around with dodgy ip-on-a-chip things (the arduino ethernet shield) when you can front-end the controller (arduino) with an embedded linux board that has proper IP features. as long as the linux board can shake 2 bits it can talk i2c. if it has 2 leds or 2 colors, it can shake 2 bits. there, you have all you need really to talk between the 1board linux plastic router thing and the arduino. AND you can run a real apache, php (etc!) there. even mysql;)

the controller is great for fast polling of i2c devices and even spi and analog. its really really sucky for things like ethernet and IP and apps that sit on them. just not meant for them and its the wrong tool for the job.

(disc: I develop for arduino and have spent over a year on an embedded project using them).

So Ethernet, at layer 2 of the OSI model [wikipedia.org] doesn't offer the security functions of layer 6?

With all those rules regarding collisions, timing, and even the physical wiring, they didn't even throw in the simple requirement for all Ethernet devices to have a powerful processor, memory, persistent storage, keys, and programming to handle security? Or even the ability to update as new encryption becomes standard?

While all that you snark is true, today there is no particular reason to do it wrong. Instead of an ethernet shield for Arduino, the arduino becomes an interface board (via RS232 or USB-RS232) for some more powerful embedded system, kind of like a shield in reverse. Except that it can let you use shields.

by 'ethernet' I've meant 'tcp/ip on a chip' kind of service. I wasn't at all being strictly literal.

'ethernet' kind of implies ip level service when used in conversation. I agree its technically wrong (I used to develop/teach networking courses) but when they (the arduino guys) call it an 'ethernet shield' and yet allow you to use the onboard webserver (??) you know its a lot more than just layers 1 and 2.

at some point, I really can envision 'security on a chip' or firewall chips being so easy to just plu

I agree wholeheartedly if you're using something in an industrial setting (besides the obvious safety concern, your robot's dance moves may be a trade secret!), but is that what Arduino ethernet shields really are targeting? As you said, there are already plenty of existing, commercial hardware products for that niche. Personally, I'm not worried about my neighbor hacking in and spoofing data from my homemade garden light meter. (If it came to that, 2048-bit AES won't stop them walking over to put some chew

I wouldn't. I, like many others, don't need encryption, so I'd just be paying $7 for a $3 function. If Wal-Mart has taught us anything, it's that a few dollars price difference makes a lot of extra sales.

With the prices you listed, encryption would have to be needed in 8% of network devices to just break even on price alone. They also must need the exact encryption features offered by the $7 chip, or they'd need the extra equipment anyway. Do 8% of devices really need security? Is my dancing robot (I'm the

No no, arduinos are wonderful for controlling things. Especially since you can transfer your prototype to a bare and cheap atmega later. Cheap prototypig platform for cheap embedded controllers. Great.

But if you already know that your project will be connected to the internet or needs any extended connectivity, arduino is not the cheapest way of getting there.

for a physical device that can turn things on and off in the real world (including ruining/damaging things) you NEED security. I just firmly believe this. no firewall, no hosts.allow, no nothing. not authentication or encryption or MAC access control, just like TRULY nothing. I find that unacceptable in a real-world device.

So what you need is to run two networks.

Have your computer LAN, and your hardware HAN.

All your embedded devices, PLCs, PICs, and Arduinos connect to the HAN which has no internet connecti

given the fact that you can buy $50 things (pogoplug, seagate dockstar, even WRT routers) that run a full linux and IP stack, why hack around with dodgy ip-on-a-chip things (the arduino ethernet shield) when you can front-end the controller (arduino) with an embedded linux board that has proper IP features.

Exactly, only $25 if you get a deal. But somehow that's not the same for arduino people. I mentioned exactly that point several times to Followers of the Church of Arduino: $25 will give you an ethernet-shield or a zigbee module. The same money buys you a router with ethernet, wifi, and a full ip-stack in linux, plus scripting. Easy to connect the atmega to the serial port of the router.

The Followers of Arduin somehow see it differently: If you add shields to your arduino you built something yourself, i

WRONG. FTDI has built-in drivers for Linux but not most other OSes. It definately requires drivers in Windows.

The newer USB CDC ACM class, however, has built-in drivers on any modern OS, with the "worst case" situation being Windows where you need an INF (but not actual drivers) to tell Windows that that VID/PID is a CDC ACM device.

Interesting that this story would pop up now. I have recently been thinking about getting into tinkering with microcontrollers. I've always had deep respect for what people used to be able to do with, say, a 6502 and a few kB of code. I think it would be great fun to try my hand at that. However, I have some special requirements that seem to be difficult to meet:

First of all, I would like to interface with hardware I already have. Particularly, video, input, and Ethernet. So it would be really great if I could get a board with VGA out, USB host or on-the-go, and Ethernet, although other combinations are possible (e.g. Ethernet not on the board, but via a USB device).

Secondly, I have virtually no experience with electronics, so I need something that is really easy to get started with. Of course, I am doing this in part because I want to learn, so if it's better to do a few simpler projects first to get the needed skills, I am open to that, too.

Thirdly, I want the device that will be running things to be _cheap_. I am thinking max 20 USD. That's for being able to run some simple software (doesn't need a lot of RAM or ROM, as long as more storage can be added) with video output, keyboard input, and network access. If I need some extra expenses to bootstrap things (e.g. some extra hardware to write the ROM), that's ok, but I want to basically be able to tell my friends "for under 20 dollars, you can get one of these computers and run all this great software, too".

Within these constraints, I would like to get the most bang for the buck that I can get. It doesn't have to be an 6502. If I can get an 68k or an ARM or an FPGA (given enough gates, of course), that would be grand.

I am really excited about the Beagle Board, but that's far outside my budget. I've looked at DigiKey's catalog, and there are many chips there that look promising, but frankly, I'm drowning in information, choices, and unfamiliar terminology for the moment. Perhaps one of the Arduino knock-offs will fit the bill. Uzebox looks really exciting, too. I feel that what I have in mind is out there somewhere, I just haven't found it yet. If someone could help me on my way, I would greatly appreciate that.

You don't have to restrict yourself to VGA output or Ethernet connectivity. You can get something like an Ardweeny for 10$, using a cheap LCD for your screen and an Xbee for connectivity. When you get down to the micro sized stuff, you aren't really dealing with "programs" anymore. More likely libraries and classes. If you do want something beefier that plugs into the wall, the beagle board you're looking at would be perfect. Arduino sized stuff rarely uses a full keyboard. More likely you'd have a fe

First of all, I would like to interface with hardware I already have. Particularly, video, input, and Ethernet. So it would be really great if I could get a board with VGA out, USB host or on-the-go, and Ethernet, although other combinations are possible (e.g. Ethernet not on the board, but via a USB device).

Bear in mind that the core of Arduino is a microcontroller. It's meant for small to mid-size projects. Although it has a lot in common with what we think of as a "computer" today, you won't be turning i

``You can get 32-bit microcontrollers for about $20. If you want to run Linux on those you do need the ROM and RAM of course.''

Right. Being able to run Linux would be a nice bonus, but isn't really what I'm thinking about. What I have in mind is more like a "build your own C64" kind of project, except that it doesn't need to be a C64 and doesn't have to have a case. Just the board will be fine, but I do want to be able to be able to use it like a desktop computer, so keyboard (preferably USB or PS/2) and vi

Right. Being able to run Linux would be a nice bonus, but isn't really what I'm thinking about. What I have in mind is more like a "build your own C64" kind of project, except that it doesn't need to be a C64 and doesn't have to have a case. Just the board will be fine, but I do want to be able to be able to use it like a desktop computer, so keyboard (preferably USB or PS/2) and video out (something I can hook up to a PC monitor or TV, preferably VGA), and, if at all feasible, Ethernet.

You can do this stuff with Arduino, except for VGA out. You'll get more of a C64 experience with a component video output anyway:)