Posts | Comments

Planet Arduino

Archive for the ‘reviews’ Category

These eight boards stand out for their advanced specs, built-in offerings, and, in some cases, their innovative interface options.

Read more on MAKE

The post From the New Issue of Make: Our 8 Standout Dev Boards appeared first on Make: DIY Projects and Ideas for Makers.

In a recent post, I talked about using the “Blue Pill” STM32 module with the Arduino IDE. I’m not a big fan of the Arduino IDE, but I will admit it is simple to use which makes it good for simple things.

I’m not a big fan of integrated development environments (IDE), in general. I’ve used plenty of them, especially when they are tightly tied to the tool I’m trying to use at the time. But when I’m not doing anything special, I tend to just write my code in emacs. Thinking about it, I suppose I really don’t mind an IDE if it has tools that actually help me. But if it is just a text editor and launches a few commands, I can do that from emacs or another editor of my choice. The chances that your favorite IDE is going to have as much editing capability and customization as emacs are close to zero. Even if you don’t like emacs, why learn another editor if there isn’t a clear benefit in doing so?

There are ways, of course, to use other tools with the Arduino and other frameworks and I decided to start looking at them. After all, how hard can it be to build Arduino code? If you want to jump straight to the punch line, you can check out the video, below.

Turns Out…

It turns out, the Arduino IDE does a lot more than providing a bare-bones editor and launching a few command line tools. It also manages a very convoluted build process. The build process joins a lot of your files together, adds headers based on what it thinks you are doing, and generally compiles one big file, unless you’ve expressly included .cpp or .c files in your build.

That means just copying your normal Arduino code (I hate to say sketch) doesn’t give you anything you can build with a normal compiler. While there are plenty of makefile-based solutions, there’s also a tool called PlatformIO that purports to be a general-purpose solution for building on lots of embedded platforms, including Arduino.

About PlatformIO

Although PlatformIO claims to be an IDE, it really is a plugin for the open source Atom editor. However, it also has plugins for a lot of other IDEs. Interestingly enough, it even supports emacs. I know not everyone appreciates emacs, so I decided to investigate some of the other options. I’m not talking about VIM, either.

I wound up experimenting with two IDEs: Atom and Microsoft Visual Studio Code. Since PlatformIO has their 2.0 version in preview, I decided to try it. You might be surprised that I’m using Microsoft’s Code tool. Surprisingly, it runs on Linux and supports many things through plugins, including an Arduino module and, of course, PlatformIO. It is even available as source under an MIT license. The two editors actually look a lot alike, as you can see.

PlatformIO supports a staggering number of boards ranging from Arduino to ESP82666 to mBed boards to Raspberry Pi. It also supports different frameworks and IDEs. If you are like me and just like to be at the command line, you can use PlatformIO Core which is command line-driven.

In fact, that’s one of the things you first notice about PlatformIO is that it can’t decide if it is a GUI tool or a command line tool. I suspect some of that is in the IDE choice, too. For example, with Code, you have to run the projection initialization tool in a shell prompt. Granted, you can open a shell inside Code, but it is still a command line. Even on the PlatformIO IDE (actually, Atom), changing the Blue Pill framework from Arduino to mBed requires opening an INI file and changing it. Setting the upload path for an FRDM-KL46 required the same sort of change.

Is it Easy?

Don’t get me wrong. I personally don’t mind editing a file or issuing a command from a prompt. However, it seems like this kind of tool will mostly appeal to someone who does. I like that the command line tools exist. But it does make it seem odd when some changes are done in a GUI and some are done from the command line.

That’s fixable, of course. However, I do have another complaint that I feel bad for voicing because I don’t have a better solution. PlatformIO does too much. In theory, that’s the strength of it. I can write my code and not care how the mBed libraries or written or the Arduino tools munge my source code. I don’t even have to set up a tool chain because PlatformIO downloads everything I need the first time I use it.

When that works it is really great. The problem is when it doesn’t. For example, on the older version of PlatformIO, I had trouble getting the mBed libraries to build for a different target. I dug around and found the issue but it wasn’t easy. Had I built the toolchain and been in control of the process, I would have known better how to troubleshoot.

In the end, too, you will have to troubleshoot. PlatformIO aims at moving targets. Every time the Arduino IDE or the mBed frameworks or anything else changes, there is a good chance it will break something. When it does, you are going to have to work to fix it until the developers fix it for you. If you can do that, it is a cost in time. But I suspect the people who will be most interested in PlatformIO will be least able to fix it when it breaks.

Bottom Line

If you want to experiment with a different way of building programs — and more importantly, a single way to create and build — you should give PlatformIO a spin. When it works, it works well. Here are a few links to get you started:

Bottom line, when it works, it works great. When it doesn’t it is painful. Should you use it? It is handy, there’s no doubt about that. The integration with Code is pretty minimal. The Atom integration — while not perfect — is much more seamless. However, if you learn to use the command line tools, it almost doesn’t matter. Use whatever editor you like, and I do like that. If you do use it, just hope it doesn’t break and maybe have a backup plan if it does.


Filed under: Arduino Hacks, ARM, Hackaday Columns, reviews, Skills
Mag
01

Review: HUZZAH is the ESP8266 WiFi Setup You Need

adafruit, arduino, arduino hacks, CE, ESP8266, espressif, fcc, Hackaday Columns, huzzah, lua, lua interpreter, NodeMCU, reviews, wifi Commenti disabilitati su Review: HUZZAH is the ESP8266 WiFi Setup You Need 

A little board that adds WiFi to any project for a few hundreds of pennies has been all the rage for at least half a year. I am referring to the ESP8266 and this product is a marrige of one of those WiFi modules with the support hardware required to get it running. This week I’m reviewing the HUZZAH ESP8266 Breakout by Adafruit Industries.

If you saw the article [cnlohr] woite for us about direct programming this board you will know that a good chunk of that post covered what you need to do just to get the module into programming mode. This required adding a regulated 3.3V source, and a way to pull one of the pins to ground when resetting the power rail. Not only does the HUZZAH take care of that for you, it turns the non-breadboard friendly module into a DIP form factor while breaking out way more pins than the most common module offers. All of this and the price tag is just $9.95. Join me after the break for the complete run-down.

The Hardware

huzzah-esp8266-breadboardThis board is about 1.5 inches by 1 inch… like two postage stamps side-by-side. It hosts the FCC and CE approved module which we first heard about in December. These modules need a 3.3v supply and there is a regultor on board which can supply up to 500mA (the module can consume as much as 250mA) and can be fed by a battery, USB power, or any other 5V supply. As I mentioned earlier you need to pull a pin low during reset to put the module in programming mode. There are two switches on the board that facilitate this, hold the user button down and press reset and you’re ready to flash.

On a breadboard you’ll have two rows not covered by the board on one side, and one row on the other. The board doesn’t have a USB-to-UART bridge but we’re fine with that. On one end of the board you’ll find the common pinout for a USB-to-serial programming cable. Above you can see the programming cable Adafruit sent me with these samples. huzzah-esp8266-ftdi-cableTo the right I tried out my 5V Sparkfun FTDI board and as advertised, the HUZZAH can be programmed with either 3.3v or 5V logic levels.

The one thing I noticed is that the two buttons are a bit tricky to get at with the programmers connected, especially the FTDI board. For the second module I may supply my own right-angle header to get around that. Of course doing so would cover part of the breadboard so this is probably six of one, half dozen of the other.

I love it that they supply the pin headers but don’t solder them. Sometimes I prefer pin sockets or unpopulated pads, and this makes it easy for me to make that choice like the right-angle one I mentioned above. It’s something small but I also appreciate that the pinheaders in the package were not the minimum number necessary for this board — there were a few extra pins. You need to break them off and sometimes they can break one pin over from where you expected. If it were the minimum number you would either start over or solder a single pin at the end of the row (not ideal). If you screw up snapping these you could conceivably use a set of three pins and the rest as one unit to fix your mistake. Maybe I’m weird but it’s the small things in life!

Programming Options: NodeMCU and Lua

The board ships with this firmware on it. I was up and running with the Lua interpreter within three minutes of the package arriving at my door. Seriously, it took me longer to figure out if the USB-to-serial was green or white for TX/RX than it did to connect to my local WiFi Access point. Adafuit’s ‘Hello World’ walkthrough gets you going if you haven’t given this a try before.

Programming Options: Arduino IDE

adafruit-board-managerAdafruit has a Board Manager for Arduino IDE. Perhaps this is common knowledge but I don’t often work with this IDE and it’s the first time I’ve run into it. What can I say, it kicks ass!

I hate setting up tool chains for new chips. With this you add a web address and port number, restart the IDE, and use the board manager to add support for this board. Sweet!

That turns this into an Arduino compatible board which solves something that has long bothered me. I’ve seen a ton of really simple Arduino projects that use the ESP8266 externally. Last month’s porting of the Arduino framework for these chips, coupled with this ready-to-go hardware does away with that nonsense. Seriously, the vast majority of those projects need little to no computing power and will work like a dream when directly programmed onto this chip.

huzzah-plenty-of-IOTo prove my point, I knocked out this quick binary counter that uses five LEDs as outputs. I’m not leveraging any of the WiFi features on this, but the compiled binary is 174,358 bytes and the Arduino IDE reports this board has a max capacity of 524,288 bytes. It five I/O used for LEDs there are still four more digital pins, the two UART pins, and an ADC input.

Programming Options: esptool

Arduino will overwrite NodeMCU but that’s easy to reflash. I followed [cnlohr’s] direct programming guide to write the binary using esptool. Both this method and the Arduino method are directly programming the EEPROM on the module. This is exactly the same method you’d use if you wanted to develop natively using the Espressif or the Open Source SDKs. Here’s the commands I used to reflash the NodeMCU firmware:

sudo python esptool.py --port /dev/ttyUSB0 write_flash 0x0000 /home/mike/Downloads/nodemcu_latest.bin

Get the NodeMCU binary from their “latest” folder of github repo.

Conclusion

“Buy as many of these as [Phil] will make for us.” That’s what I’ve asked [Julian], the Hackaday Store manager to do. You should be able to get the Hackaday black version of this in a few weeks. Adafruit is currently sold out but I’m sure they’re racing to remedy this.

These are amazing little boards. The price of $9.95 is crazy considering what you get for it. I’m talking about the entire ecosystem which gives you multiple flavors of programming environments. Adafruit has done a lot to contribute to the code and knowledge base here, but a mammoth portion of this is community developed and I think coming in low on the price is one more way Adafruit has chosen to be a good guy in this ecosystem. The board has a ton of I/O for what it is, and if that’s not enough just, implement I2C, SPI, or UART to couple a beefy uC to the connectivity this one brings to the party. I see zero downside on this board. It’s as close to perfect as you can get.


Filed under: Arduino Hacks, Hackaday Columns, reviews
Feb
12

Hands on with the super tiny arudino: FemtoDuino

arduino hacks, Femtoduino, reviews Commenti disabilitati su Hands on with the super tiny arudino: FemtoDuino 

photo(30)

We originally heard about the FemtoDuino last year. It looked good enough and tiny enough, but we didn’t really have a need for it. Recently though, we started on a new project (which you can follow on the forums!) which required an easy modification to an existing circuit. Space and weight were quite important so we decided to pick up a couple femtoduinos at $25 each, and give them a try.

These things are tiny. Their foot print is 20.7×15.2mm. You can see in the picture below, with a quarter for reference. Tiny. Frankly, there’s not much to say about them. They’re an Atmega328 that is arduino compatible. I plan on using my redbull Arduino to program this thing, since you need to bring your own serial interface.
photo(31)

If you’re anything like me, you have atrociously sloppy soldering and shaky shaky hands. I was a bit concerned about actually getting those wires soldered in without bridging the pads. I was able to pull it off though.  Here’s a video so you can see how horrible my soldering technique and equipment are.

I really don’t have any complaints about this thing, it works just like an arduino but smaller. The closest thing to a complaint is that the silk screening is a bit blurry making it difficult to read which pins are what. It isn’t horrible, but it isn’t perfect either.  We really couldn’t think of much else so we decided a haiku would cover it.

one arduino
much smaller than a quarter
Femtoduino

Of course, if you want to follow along and see if I end up with complaints, you can watch me build these battling star wars themed R/C cars.


Filed under: arduino hacks, reviews
Gen
10

The PICnDuino Review

arduino, arduino hacks, pic, Pic and Arduino, PICnDuino, reviews Commenti disabilitati su The PICnDuino Review 

picnduino

For those of you that can’t make a decision between buying an Arduino and a PIC processor, [Brad] has come up with a novel solution, the PICnDuino. We’ve featured him before with his [Retroball] project, but this time Brad has been full funded on Kickstarter, and is pre-selling boards for delivery in March.

[HAD], specifically I, was fortunate enough to be sent one of the boards to try out early. I’ve worked with an Arduino before, but never a PIC processor, so read on to see if it was actually as easy as the tutorial video (at the end of the article) would have you believe it is to get started.

I was sent both a black board fully populated, as well as several blanks in the various colors pictured below.  After loosely attaching the headers, I found that the oscillator on the bottom makes the board sit up a bit when placed into a breadboard. This is actually a clever design feature to make sit up a bit to allow USB attachment while breadboarded. After a quick physical inspection, the real trick would be seeing if it worked as advertised.

The first challenge for me was that, according to the documentation, this board runs in Windows or a virtualisation environment. I normally run Ubuntu, so, grabbing my wife’s circa 2000 vintage XP notebook, I downloaded and Amicus and Arduino software as explained in the video tutorial. The tutorial really spells out how to get the software running. This would be great for a total beginner, and made it so I didn’t have to even poke around for where to get the software.

picnduino-colors

picnduino-in-usb

The only issue I had connecting to the board(s?)was that I had to manually install the Amicus18 USB driver. I’m a total noob when it comes to the PIC processor, and only have limited experience with the Arduino, but once the driver was updated, it was quite easy to get everything going.

After programming a “blink” sketch using it as an Arduino, I then flipped a switch and opened the Amicus IDE. Programming the PIC was also simple, although I had to use a and modify a program called “LED_Flash” to match the video instead of the “blink” program as described in the tutorial. It was a bit strange to see the built in blinking light for the Arduino still working while the PIC was being programmed, as well as both built-in lights blinking slightly offset while running simultaneously.

The documentation is extremely well done for a product that won’t even be available for delivery until March 2013. I’m really excited to play with it more, and I think it will be a great tool for people to either run two processors simultaneously, or just have the option of learning to program both a PIC and (n) Arduino. So check it out here, and get it shipped worldwide straight out of Australia!

Side note, bonus points if you can tell from the two pictures what kind of computer I used for this review!


Filed under: arduino hacks, reviews


  • Newsletter

    Sign up for the PlanetArduino Newsletter, which delivers the most popular articles via e-mail to your inbox every week. Just fill in the information below and submit.

  • Like Us on Facebook