The product is well manufactured, the idea of being able to plug in/out the ESP8266 module is smart.
The problem is that in the era of IOT, not being able to do a simple HTTP POST request out of the box is a no go for me. After some investigations it seems possible (see: https://github.com/AprilBrother/cactus-micro/issues/1 and http://blog.aprbrother.com/p/303) but in the process I lost the needed patience to test the final solution.
Anyway, it feels like more bumps as we often encounter with a fresh new product rather than unfixable bugs, so I keep on being confident with the product.
The documentation is growing up every day, see: http://wiki.aprbrother.com/wiki/Cactus_Micro and http://blog.aprbrother.com/tag/cactus-micro
I hope I'll find some more time to fiddle with, because the product seems pretty good once passed through the buggy things.
I received two units, shipping time was faster than I expected coming to USA from China. First inspection showed a well built device, with the ESP8266 daughter board atop the Arduino compatible motherboard. This is interesting because it allows for the use of the ESP8266 board without the Arduino, if that's desired. The micro usb plug is solid. I spent a week trying to get the Arduino to talk to the ESP through the SoftwareSerial interface as described in the documentation. I did use the recommended Arduino IDE, version 1.0.6. I tried three or four different SoftwareSerial libraries, but none worked. So I contacted the vendor, aprilbrother, who responded within a few hours with the suggestion to increase the Software Serial library buffer size. This didn't work. He then suggested to switch over to the uart interface. This required cutting two tiny jumpers on the back of the board, and connecting the alternate jumpers with solder. No problems there. After this change, everything worked as expected. I was able to create a simple sketch that takes input from the Serial Monitor and sends it to the ESP, as well as send information over the wifi, and receive information from the wifi. I can easily connect to my router, create a tcp client, a tcp server, and deliver info to a browser via http on request. The ESP is flashed for a 9600 baud uart speed. The ATmega32U4 has only 2.5K bytes of RAM, which is used for the stack, strings, and variables, so buffer sizes are somewhat limited. The vendor provides basic documentation for his device, but more is needed. It's available, but takes considerable searching to pull it all together. I'm disappointed that the Software Serial interface didn't work. It would pull up to a hundred characters from the ESP, but then would seem to lose synchronization and deliver gibberish. Same effect if I increased the buffer size to 256. Long commands back to the ESP didn't work either, but short ones did. If you don't need the uart for your application, then it's not an issue. For me, the Serial1 interface has more functionality than Software Serial, so I like it better anyway. Overall, this is a great device if you need small size, short messages back and forth, you're not afraid to solder, and you're willing to do the work to find all the documentation you need. Also, if you're going for a low power application, this device would work if you remove the power on led.
I was really excited about these, between the low price and the small size, not to mention the ease of programming them thanks to Arduino compatibility, they sounded almost perfect for about a dozen of the things on the "projects I want to work on if I ever have the time" list.
Unfortunately the these are very flawed devices indeed. I should say, the Arduino baseboard part seems to be mostly okay. I did have a few problems getting it to flash at first, removing the WiFi module let me flash it and after flashing it with my own sketch once I was able to flash it with the WiFi module in place. I assume there was some issue with the pre-flashed AT terminal sketch that prevents it from communicating with the Arduino IDE.
The next problem that I had was the lack of documentation. Maybe lack it the wrong word, maybe "thinness". Basically it's spread all over the place. They don't even have any documentation for the AT command set for the WiFi module, they just give you a link to the nurdspace wiki page.
None of these would stop be from recommending this device, the thing that does stop me is it can't actually do HTTP at all. Now you might be thinking "But they have an example that writes data to sparkfun data using HTTP!". Yes, they do have an example that writes data to sparkfun data, but the garbage that it sends isn't HTTP, it's just kinda-sorta http-like enough that sparkfun's servers are able to figure out what it meant (probably mostly by luck). I was very excited when I saw the method for writing out over a TCP socket, you actually tell it how many bytes you're about to send before you send it so there aren't any silly time-based escape codes like some AT command sets have. And it would have been great if they had implemented it properly, but they didn't. For some reason it seems to strip CRLFs ("\r\n") randomly so you can't have newlines between the line in an HTTP header, not all of them and I can't figure out how I'd even work around that. It also doesn't then count what it removes so you end up sending some of your next AT command to the server and have no idea where you are in a command.
This means that for this to be useful you're going to have to setup a build system to build and flash a community firmware to the WiFi module, which I haven't had the time to do yet. And at that point, why not just flash one of the eLua-based firmwares and make it even easier to use and not need the Arduino base board part?
I don't know if I can update these reviews after the fact, but if I can and if I ever find the time I'll let you know if I've found a way to make these useful.
tl;dr: Arduino part is fine. WiFi module is crap and can't handle new lines so can't do anything useful (HTTP).
It's small so it works with any size breadboard. All pins are brought out, and it has a built-in voltage regulator. I rated documentation and communication as "OK" because I didn't try to communicated with the vendor, and I don't feel there is really any need for documentation, so I don't remember if there was any or not. It works great, I use it daily for prototyping new ideas. Highly recommended. I also recommend trying the new "ESP-Arduino" development environment with this for quick and easy programming using the ESP features - http://www.esp8266.com/viewforum.php?f=25