Aug 082018
 

My latest project has been to add a clone of Wemos’ D1 mini to WowWee Labs’ MiP robot to provide it with Internet connectivity. So far I’ve been successful with bench-top experiments. I’ve been able to program MiP with the ability to send email using an ESP-01 and tell time using Network Time Protocol (NTP).

While the D1 mini is small enough to fit inside MiP’s empty head, doing so would make programming it a little more difficult. I designed an adapter board to replace the top of MiP’s battery compartment similar to the ProMini Pack and the Proto Pack that allows a D1 mini to be conveniently mounted outside MiP. With the D1 mini mounted externally you can add your own sensors to the board or power MiP externally using the D1 mini’s USB connector.

I’ve shared the source code for the API to support the D1 mini on MiP available on GitHub. I’ve also shared my Eagle files for the adapter board. Feel free to contribute to either project if you see room for improvement as I’m sure there is.

Oct 012017
 
The Geocaching logo.

Thank you to Jeffrey Zinn and Brandon Dove for adding me as a contributor to the official Geocache Stat Bar Widget for WordPress. Today marks the release of the plugin’s first update in seven years. The plugin has all of the same great functionality as before but with improved support for the WordPress translation system.

Jul 042017
 

Over a year ago I issued a plea for help in developing the SparkFun MiP Arduino software library for use on the SparkFun MiP ProMini-Pack. Today I finally realized that the ProMini-Pack is retired. I’m not sure how long ago SparkFun retired the product but doing so has almost certainly doomed any future development of the library.

Since I’m a slow learner I’m going to retain the ProMini-Pack documents here in the hopes that one day someone will put them to good use and either finish developing the software library or find new ways to interface the hardware with the MiP.

These documents provided by SparkFun.com:

Schematic
Eagle files
ATmega328 datasheet

Feb 272016
 

It’s been four years since my last post, mostly because I haven’t found a project that I can spend my limited free time on. Lately I’ve been trying to encourage my daughter’s interest in robots. A year ago I bought the MiP for her and since then we’ve discussed the possibility of programming it to do whatever we want it to do. Sure, there are SDKs available for both Android and Apple. But we have no Android devices in our household, nor do we have an Apple workstation for developing iOS apps.

Thus, I bought the SparkFun ProMini-Pack and installed it on a MiP I bought just for this project. When I bought the ProMini-Pack I knew that the Arduino library was still very crude. Support for one of the two most important functions was missing, that being the ability to read data from the MiP. The ability to write to the MiP was provided, as it should be or the project would never get off the ground. But the ability to read data from the MiP is absolutely required in order to treat the MiP like a “true” robot – one that exercises the “sense, think, act” model.

There are a couple demonstrations of the ProMini-Pack installed on the MiP but neither of them demonstrate that the content originator ever implemented the read function. You can see these demos here:

YouTube
YouTube

I’m sure you noticed the first video was provided by SparkFun. They clearly spent more time dressing up the MiP to look like something from MadMax than they did writing the code. 🙂 Ah, well, then I wouldn’t have anything to do, except make my MiP look like MadMax. The second video also shows that the content provider just slapped the ProMini-Pack on his MiP and filmed it driving in circles. Wow.

Myself and one other contributor have been working on the library for the ProMini-Pack that SparkFun provides on GitHub. A getMessage() function has been implemented but it’s only partially working. It reads the first four bytes of data with no problems, returning valid values for volume, voice chip hardware, and answers to boolean questions. Unfortunately any message longer than four bytes starts getting garbled at the fifth or sixth byte.

Other getters and setters are still being implemented but until getMessage is able to return the long messages without garbling the transmission functionality will remain limited. If anyone out there has what it takes to debug getMessage, please feel free to fork the SparkFun MiP library.