Older blog entries for shimniok (starting at number 98)

ATtiny and WS2812B

Did you know it's easy to drive a WS2812B smart RGB LED with an ATtiny?

eeZee RGB WS2812B breakout board on Tindie
I'm not talking about Adafruit's well-known NeoPixel library.

There's a much lighter-weight library for driving these LEDs that's perfect on memory- and flash-limited ATtiny AVRs -- or really any AVR for that matter.

All you need is the light_ws2812 library. I'm using it with the ATtiny25 on my eeZee RGB test jig.

Adafruit gets all the attention, but this little library is small, easy to use, and works great; it deserves more press. Pass it on, k?

Syndicated 2014-10-07 12:00:00 (Updated 2014-10-07 12:00:02) from Michael Shimniok

NoCo Mini Maker Faire

Failures, faces and fun. This past weekend I attended the NoCo Mini Maker Faire as a maker.

We had a lot of curious, inquisitive people of all ages at the SHARC / Bot Thoughts booth, where they found Ted's Shapeoko, my Hero Jr which failed miserably (fodder for a future post), Sawyer's robots, and my newest robot (also blog fodder):



Assembled and programmed in under 2 hours to demonstrate the PIPduino and OpenMV Cam, it was fun to ask the kids (and adults) to figure out what the red robot was doing.

Outside we were demonstrating the self-driving, robot Jeep, though it was up on jack stands. Many great conversations ensued.

I only got to use my GPS rope demonstration only once, on two adults, instead of the dozens of kids I envisioned would be crowding and pushing around the Jeep to take a look... Um, yeah.

Sparky's Widgets was our indoor neighbor. It was good to talk to Ryan as I hadn't seen him in awhile.

It was good to see Samuel from CyberHedz Technologies with his awesome Dalek that was a show hit.

In all, a good show.

Syndicated 2014-10-06 18:00:00 (Updated 2014-10-06 18:00:03) from Michael Shimniok

Making Test Jigs

Here's some cheap test jigs I use to test boards I sell on Tindie. Selling a quality product is of personal importance to me. With these test jigs, I've uncovered several board fabrication problems, more than several assembly problems (hey I'm not perfect), and identified ways to improve yield rate.

eeZee Power Jig

The goal for this jig is to measure 3.3V regulator output from the eeZee Power board. If it's 3.3V within the specified tolerance, that proves the regulator is populated correct, the USB connector is also populated, and all the corresponding traces are ok.

To build the jig, I installed pogo pins and test leads to an unpopulated eeZeePower board (to save time and money). When engaged with an eeZee Power, it enables the 3.3V regulator and connects the VCC and GND pins to the test leads. 

I plug a Mini USB into the DUT (Device Under Test), connect my DMM (digital multimeter) to the test wires and measure output voltage. 

Stacking another eeZeePower board would stabilize the pogo pins better. It's good enough as is.

eeZeePower test jig

AVR ISP Jig

This isn't a test jig, but one I use to program Turntable Strobes, Lost Model Alarms, PIPduinos, and other AVR-based boards. You can buy a fancier version of this on Tindie from BBTech.

AVRISP jig for programming AVRs
In case the picture isn't clear, one end has the familiar 6-pin AVRISP header, the other, pogo pins.

eeZee RGB Jig

I test every one of the eeZeeRGB WS2812B breakouts I sell to make sure the RGB modules are installed correctly and to ensure they work out of the box. I had been testing these with a breadboard Arduino but the pogo pins are unstable in a breadboard so I designed a test jig using an ATtiny85. I've discovered that some of these modules don't have reverse protection as advertised.

eeZeeRGB WS2812B breakout board
OSHPark builds boards in sets of 3 so I designed a single board that can stack 2-high (or 3-high if necessary) to stabilize the pogo pins. The Tiny and USB connector (for power) only has to be populated on one of those three boards. The other two boards can simply stabilize the pins. They're mounted together with screws, nuts and standoffs.



Test Jig, side 1

Test Jig, side 2

eeZee Prop Jig

The eeZee Propeller breakout (eeZeeProp) is the most complicated board I sell with a 44-pin QFP MCU, onboard EEPROM, crystals, a half-dozen resistors and capacitors, dual programming headers. I test every output pin on the eeZeeProp as well as programming functionality before it goes up for sale with this quick and dirty jig.

eeZeeProp test jig
The test jig above has two parts. The dual row of pogo pins, resistors, and LEDs is for testing pins. In the upper right is an FTDI programmer connector and pogo pins to engage the eeZeeProp FTDI pin pads. 

I program each board with a SPIN program that sequentially turns on each of the pins 0-28. The ability to program the chip in the first place tests P29-32 and the EEPROM.

Next, I lay the Propellers down onto the pogo pin bed and ensure each of the LEDs lights up sequentially. I can then investigate any suspect pins.

You probably noticed that the pins aren't well-aligned. My previous jig had two protoboards to keep the pins aligned better, but I broke it. Some day I'll redo this jig so I don't have to spend quite as much time manually popping each pin into place on the DUT.

Common Problems

You may wonder what kind of problems I uncover most when using these test jigs.

On the eeZeeProp I most often run into problems with connections on the Propeller MCU leads or the EEPROM. I've made some improvements in techniques that have reduced the frequency of these problems. 

While I very rarely found board fab problems on OSHpark boards (It's below 1% if memory serves, so reliability is very high), OSHpark is absolutely fantastic about fixing the occasional problem. 

I've seen far more frequent fab problems on a batch of Chinese made boards I ordered. I haven't contacted the supplier yet. The fab problems are mostly under-etching resulting in shorts to the ground plane. I may experiment with a wider isolation between ground pour and pads/traces and see if that helps any.

I've occasionally populated pairs of 0603 resistors rotated by 90 degrees. In future designs I'll try to avoid confusion by spacing the resistors farther apart. I've installed a diode backwards once or twice.

Syndicated 2014-09-30 14:20:00 from Michael Shimniok

23 Sep 2014 (updated 6 Oct 2014 at 18:16 UTC) »

Free Speech Synthesis For Your Robot

Newly painted Hero Jr.
I ran across a surprisingly good speech synthesis package. No, it's not Festival.

My Hero Jr had been painted blue, with holes drilled in the head, and other modifications. There's no better Hero Jr to modify and hack than this one. Possibly in time for the NoCo Mini-Maker Faire in Ft. Collins, Oct 4-5.

After painting it, the next step will be to add my recently purchased Raspberry Pi B+, or else the dusty PCduino in my closet, as a brain.

Then, implement speech synthesis. Vision: a robot "tour guide" for my Maker Faire exhibit.

While I adore the stock Votrax SC-01A speech synthesizer (it's the quintessential robot voice) I like the idea of a 20 year old robot with a modern voice even more.

Here's the fruits of my research so far...

Festival

I learned about the Festival speech synthesis system years ago. The now defunct Bot Thoughts podcast was hosted by the rab voice (UK). I thought it was the best of the stock voices, maybe because I'm not used to UK speech patterns and so the flaws aren't as jarring as those of the US voices.

The kal voice (US) is has a few digital-sounding artifacts in a few spots, and the intonation is noticeably wrong in several spots, too.

Other voices are available. The MBROLA US voices are decent. I also tried the enhanced CMU Arctic voices (download here). Here's rms.

rms_festvox.wav
rms_festvox.ogg

Mary TTS

Mary TTS is the package I ran across. Mary TTS is particularly linux friendly and comparatively amazing, primarily because it does such a great job with prosody (intonation, stress, rhythm in speech). Unfortunately it requires a lot of resources. It won't run on a Raspberry Pi because it requires quite a bit of memory. I plan to test it on a pcDuino3 which I just bought.

This is rms, again, clearly the same voice (easily downloaded with a native Mary TTS tool), but... well, see how you think it compares.

rms_marytts.wav
rms_marytts.ogg

Admittedly there may be some tuning parameters in both packages that would improve the results. Out of the box, it seems pretty clear that Mary TTS does a much better job with pitch and timing.

Other CMU arctic voices are available for Mary TTS. I haven't picked out the right voice. I kind of like Poppy, the female British voice.

Free TTS

I also came across Free TTS, also written in Java. Unfortunately, based on the samples I heard, the prosody is pretty poor compared to both Festival and Mary TTS.

Others?

Any other tips on free speech synthesis packages out there?

Syndicated 2014-09-23 12:10:00 (Updated 2014-10-06 17:27:09) from Michael Shimniok

Hero Jr Repaint

Ruining things sucks. I kinda screwed up and my impatience got the better of me. 


I didn't really care for the dark blue Hero Jr. I preferred the original computer beige and burnt sienna trim. So I "fixed" it... I fixed it real good...
I was going to be lazy and just paint over the blue with a nice heirloom white. But no, I decided to use Citristrip on one of the panels and of course I was too impatient to test it on an inconspicuous area. So the stripper works really well. I highly recommend it. But not for plastic. It'll eat plastic. So I found out.

Long story short, the stripped panel will become the back panel, as it's kind of hashed up from me scraping off gooey paint and plastic. I may try sanding it more. It's not too bad. You can't really tell unless you're really close up. You win some, you lose some. 

I picked satin paint for a very good reason.

The plan is to do the trim in aubergine. I am very likely to give the robot a female voice. I think my little girl will like that better than a male voice.

Syndicated 2014-09-16 15:13:00 from Michael Shimniok

12 Sep 2014 (updated 16 Sep 2014 at 00:14 UTC) »

Back to Linux Mint... 13

I installed Linux Mint 17 and have switched back and forth between Mint 14 and 17 for awhile due to instability in 17. I'm using the same home directory I had on Mint 14 which might explain it.

Yesterday, Thunderbird and Chrome kept repeatedly crashing until I logged out and back in again.

The entire computer hung at another point; I couldn't log in remotely, move the mouse, do anything with the keyboard (numlock etc).

At another point, the kernel reported some kind of error/crash/panic/something--can't remember as I was juggling several things at once.

And a few weeks ago, video was going wonky after waking from sleep (I believe they've gotten this known issue fixed since then)...


I fully expect all of these issues to be resolved in the coming months. Meanwhile, I really need two things. First, a stable Linux environment. Second, a supported environment so I can install and update packages, like Festival speech synthesis.

So Mint 17 is gone, replaced with Mint 13 LTS (Long Term Support), based on Ubuntu 12.04; it will be supported until April 2017.

Mint 13 appears to be rock solid so far, zero issues. There are some under-the-covers differences; I couldn't change desktop settings until I nuked the newer config directories. Minor issue. I may be stuck with older versions of some packages, we'll see. And Nemo file explorer didn't come out until Mint 14, but that's ok.

In another month or so I'll give Mint 17 another go and if it's not behaving better I'll try to spend some time reporting bugs.

Syndicated 2014-09-12 14:31:00 (Updated 2014-09-16 00:07:18) from Michael Shimniok

20% Off Labor Day Sale at Bot Thoughts

Get 20% off most items with coupon AF954E4 in the Bot Thoughts store. Thursday through Labor Day. ATtiny prototyping, Parallax Propeller breakout, microSD breakout, RoverMux, and eeZee Power breadboard power supplies.

Syndicated 2014-08-28 12:25:00 from Michael Shimniok

23 Aug 2014 (updated 9 Sep 2014 at 19:15 UTC) »

What the heck is PIPduino?

Introducing PIPduino
Our Jeep's steering servo controller, with this icky baseboard, was missing something. What?

Power and ground rails and a voltage regulator, that's what. So I made a 'duino clone with features for Putting In Projects and called it PIPduino.
  • Color-coded power and ground rails for each analog and digital pin, 
  • Dedicated I2C bus with 4 ports and pullups,
  • Combo SPI / ISP connector, 
  • Serial/FTDI connector,
  • Onboard voltage regulator, and
  • Flexible power options.
Goodbye shields. Use low cost breakout boards instead.

Before PIPduino (ick). And after (ah, much nicer).
Available soon on Tindie.

Syndicated 2014-08-23 00:14:00 (Updated 2014-09-09 18:32:52) from Michael Shimniok

Discovering Linux Mint 14 EOL

A little over a year ago, I converted to Linux Mint 14 for good, leaving Windows (mostly) behind.

Despite some initial bumps (and whining for which I remain deeply embarrassed), I've been quite happy with it and it is an excellent platform for my hobby electronics and robotics as well as for general use.

In the process of reworking my backup strategy, my attempted installation of rdiff-backup with apt complained about unsigned packages. Then bombed out...


Install these packages without verification [y/N]? y 
Err http://archive.ubuntu.com/ubuntu/ quantal/main libjs-underscore all 1.3.3-1ubuntu1
404 Not Found [IP: 91.189.88.149 80]
Err http://archive.ubuntu.com/ubuntu/ quantal/main libjs-sphinxdoc all 1.1.3+dfsg-4ubuntu3
404 Not Found [IP: 91.189.88.149 80]
Err http://archive.ubuntu.com/ubuntu/ quantal/main python-pylibacl amd64 0.5.1-1.1
404 Not Found [IP: 91.189.88.149 80]
Err http://archive.ubuntu.com/ubuntu/ quantal/main python-pyxattr amd64 0.5.1-1.1
404 Not Found [IP: 91.189.88.149 80]
Get:1 http://archive.ubuntu.com/ubuntu/ quantal/universe rdiff-backup amd64 1.2.8-7 [176 kB]
Fetched 176 kB in 10s (16.4 kB/s)
Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/u/underscore/libjs-underscore_1.3.3-1ubuntu1_all.deb 404 Not Found [IP: 91.189.88.149 80]
Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/s/sphinx/libjs-sphinxdoc_1.1.3+dfsg-4ubuntu3_all.deb 404 Not Found [IP: 91.189.88.149 80]
Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/python-pylibacl/python-pylibacl_0.5.1-1.1_amd64.deb 404 Not Found [IP: 91.189.88.149 80]
Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/python-pyxattr/python-pyxattr_0.5.1-1.1_amd64.deb 404 Not Found [IP: 91.189.88.149 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Turns out that Mint 14's underlying base, Ubuntu 12.10 aka Quantal Quetzal, is at
EOL as of May 2014. So I have to upgrade.

Because fresh installation is the only supported option, I'd rather not have to upgrade too often. But there is good news.

First, unlike Mint 15 and 16, Mint 17 is based on Trusty Tahr, 14.10, which is a Long Term Support release which gives me until 2019.

Second, Linux Mint offers a backup utility that lets you back up a list of your installed packages, my biggest concern about doing a fresh install.

I've already stuck /home onto a separate partition so it'll survive a fresh install. It's all backed up nightly to a local drive with Backintime.

Next, I need to back up some software that I manually installed into /opt and /usr/local. In the future I'll put that stuff on /opt and move it to a separate partition, also.

Syndicated 2014-08-15 01:00:00 from Michael Shimniok

5 Aug 2014 (updated 5 Aug 2014 at 16:13 UTC) »

Welcome, Hero Jr

After the AVC, my focus has shifted to four-wheeling my Jeep on Colorado mountain trails, making repairs, getting the fuel injection system tuned, and getting through emissions tests. I'm working on an automotive-ready 5V power supply that I'll be using with some upcoming projects including a Vehicle Speed Sensor Buffer.

I haven't forgotten about robotics, don't worry. In fact, a new robot has come to live at Bot Thoughts laboratories: this slightly dusty, cute, diminutive blue Hero Jr. very generously donated by a local robotics hobbyist, Michael Schievelbein. Thanks, Michael!

They were computer beige and red from the factory.
I think this will be a great demo robot for the Northern Colorado Maker Faire in Colorado or if I don't make that deadline then definitely Robots at the Hangar next April. Let's have a closer look...


That's a Motorola 6808 CPU below. Power board above.
Back in college, there was a Hero 1 in the ECE lab that I fell in love with. From a distance. So needless to say I'm extremely excited to have a Heathkit robot to tinker with!

Remote control receiver board.
So... the question weighing on my mind is do I mod the little robot? It's painted so it's not original which relieves some of the pressure I might feel to restore it. But it's not like there are a lot of these and it is a cool piece of retro-computing history. But this little fellow could do some awesome things with some modifications.

Considering all the advancements in robotics since 1982(!) is enough to make your brain melt. An embedded 8-bit microcontroller could run circles around the 4MHz 6808; Hero came out in the dark days before PIC and AVR, even the 68HC11!

The single Polaroid ultrasonic ranger could be significantly augmented by a slew of Maxbotix ultrasonics and Sharp infrared sensors. Not to mention machine vision--a few OpenMV Cams perhaps? Add an IMU, wheel encoders, GPS, the thing could compete in the AVC.

The chassis is ideally suited to add arms on each side, too. That's an area I've never explored before. The dual lead-acid batteries could be replaced with LiPos.

I could control the robot remotely with an inexpensive 6 or 9 channel FlySky, the receiver of which is 1/10th the size of the factory analog receiver. 

The head doesn't turn. But, it could. It wouldn't be hard if the massive, antiquated power and CPU boards were replaced and relocated.

There's an absolutely cavernous space inside this thing. And that's an understatement. It's unreal how much space is available. I could toss in a Raspberry Pi, PCduino, Beaglebone, or Olinuxino for vision, speech, voice, who knows what else. Cripes, I could easily fit a full-on Mini ITX board in here, no problem.

The mind reels at all the things that weren't possible in 1982. Internet connectivity (then a handful of academic computers, no web, no DNS). I can use OLED and LCD color displays. For status. Or... eyes? Precision navigation. All the compute power we never had then. Remember this robot predates the Apple Mac and PC AT. I was playing with a Commodore 64 (MOS 6510 CPU) circa 1982.

Hero Jr has a front steer/drive wheel. This is it.
I've wanted to build a butler type robot for decades. Now so much is possible that was basically science fiction when I started. Maybe this Hero Jr is the platform to start with. Again, many thanks to Michael for this very kind gift. The other robots and books will find good homes.

What do you think? Mod or restore?

Syndicated 2014-08-05 12:00:00 (Updated 2014-08-05 15:16:11) from Michael Shimniok

89 older entries...