shimniok is currently certified at Journeyer level.

Name: Michael Shimniok
Member since: 2007-12-23 16:33:37
Last Login: 2013-08-22 04:57:14

FOAF RDF Share This



Author of Bot Thoughts blog, interested in robotics since '89. Since 2007, dove in full force, built Pokey the firefighter (failure = learning), and then Data Bus, 3rd place in 2012 AVC, my Rapsberry Pi tele-rover, a beam robot, and have tinkered with lots of other electronic thingies.

Recent blog entries by shimniok

Syndication: RSS 2.0

Soothe and Glow doesn't light up

Our little girl goes to sleep easier when we have a Fisher Price Soothe and Glow running. One of them didn't light up, and I fixed it. But not before my wife bought another one. Here's what was wrong.


Undo the hook-and-loop closure at the bottom of the animal and pull out the electronics module. It's built in two halves with a giant button on the top. The top half is just a frame around the button.

Remove the battery cover retaining screw. Then remove the four screws holding the two halves of the module together.

With the top half off, remove the giant button to get access to the PCB. The button has two posts with springs around them and there are two clip ears retaining the giant button to the PCB.

Pry one of the clip ears loose and remove the button off of the PCB so you can inspect for problems.


There are three surface mount LEDs on the board. After giving the board a cursory inspection, I thought the problem was simply that the Q1 transistor wasn't populated. But, no; when I disassembled the second, working giraffe it was missing Q1 as well. (This is common on production PCBs I've seen, probably parts that testing revealed weren't necessary or features that were trimmed to save cost).

Next, I broke out the DMM to check voltages and noticed the LEDs come on when I tried to measure voltage at R1, the 0-ohm resistor jumper, which transmits power to the LEDs. That's weird.

And if I pressed one of the on buttons hard enough the lights would sorta-kinda flicker. Seemed like a bad connection somewhere. I couldn't see anything wrong, though.

Then I accidentally discovered that when I touched the 0-ohm resistor with my finger, the LEDs lit up. That points to a cracked resistor or cold solder joint.

And, in fact, it was a bit of both as the hot air rework station demonstrated. The resistor came loose even though only one of the two joints was molten. And there was a chunk missing.

I initially tried replacing the resistor with a 10-ohm, but it dropped too much voltage. So, I replaced the resistor with a small section of bus wire, soldered in with the iron. And now the giraffe glows like it's supposed to.

Pi Touchscreen and Lightning Bolt

I've been working on some neat-o projects with a Raspberry Pi 7" Touchscreen on a Raspberry Pi 2 for a few weeks.

But, the Pi has been plagued by the yellow lightning bolt icon, which means "your power supply sucks".

Nothing I've tried, until now, has fixed it. I've been through several phone chargers in 1A, 2.1A, and 2.4A varieties, several USB cables, and I've tried a Pololu 3.5A step-down switching regulator, and my own prototype 3A step-down regulator (I think I broke it?!)

My solution: power the touchscreen and Pi from independent phone chargers, after disconnecting the 5V jumper between them. Hope this helps someone else.

Subscribe and stay tuned for a future article on my Jeep-mounted Overland Expedition Pi with offline Mapping, Satellite Telemetry and Messaging to HQ, and APRS.

Syndicated 2017-03-30 01:00:00 (Updated 2017-03-30 01:00:26) from Michael Shimniok

My Western Electric 302

I've finally fixed my only vintage phone, an old Western Electric 302, and thought I'd share the old telephones' electro-mechanical guts.


These old phones are how dialing a number became a thing. Instead of push buttons and DTMF, rotary telephones send pulses. And not with a 555 timer, either...

Stick a finger in the number you want to dial next, rotate the dial clockwise until your finger hits the silver finger stopper thingy.

Then, remove the finger, and the dial rotates at a precise speed, sending up to 10 pulses within one second by way of contacts and cams.

The pulses are timed to within 10% of 66ms with the magic of physics.

How, you may ask?


The dial uses a speed governor with hinged weights attached to a spinning shaft, similar to automotive distributors' 
mechanical advance mechanisms that are used to advance timing as engine rpm increases.

In the 302, the spinning shaft is driven by the dial return spring. As rotational speed increases, the law of inertia for the mass of the weights (1) and the centripetal force at the hinge point cause the weights to rotate outward, overcoming an adjustment spring (3).

Rubber stoppers (2) mounted on the outside of the weights then contact a containing drum (4), where friction prevents further speed increase.


The electrical pulses are made by a cam that makes and breaks a set of contacts.

The cam (1), driven by the dial's geartrain and return spring, raises and lowers the flexible contact arm (2) to make contact with the second flexible contact (3). When one initially rotates the dial clockwise, no pulses are sent.

The cam (1) rotates counterclockwise along with a raised nub (3). When the nub is out of the way, the top contact is allowed to move down, remaining in constant contact with the lower contact (2).

When the dial is released, the cam immediately rotates clockwise, raising the contacts (2,3), while the nub rotates into place, holding the top contact up, so that the cam can now break the connection once per rotation.


Adjustment of the governor spring ensures the frequency of the pulses falls within the tolerances specified ages ago by the phone company.

By the way, many modern phone companies have equipment that still support pulse dialing. Including those at my central office.

I don't know what test equipment the Bell companies or Western Electric used to calibrate these dials. But I used a thoroughly modern (and indispensable) Saleae Logic 8 Analyzer.

I connected one contact to ground, the other to 5V through a pullup resistor, and measured that contact. When the connection is made, the voltage drops to 0V. When it is broken it rises to 5V.

Following lubrication and cleaning of the horribly gummed up dial mechanism, it was spinning a bit too fast, with 10 pulses being sent in only 0.9s.

Tediously tweaking the governor spring, I got within 1% of the target (506ms for 5 pulses as shown below).

Adjusting the duty cycle (pulse length) is a matter of bending the contacts slightly. With a little tweaking, and verifying that pulses are only sent when the dial is returning home, the dial's pulses are now within a few ms of the 66ms target across the entire rotation and range of numbers.

And, more to the point, the phone company correctly recognizes the numbers I dial.

Of course, none of this was possible until I first fixed the phone's internal wiring. More on that in a future post.

Syndicated 2017-01-17 19:10:00 (Updated 2017-01-17 19:10:02) from Michael Shimniok

Making Slot Car Tires

As Christmas approached when I was a kid and Rudolph the Red Nosed Reindeer aired on the TV, Dad would return from the garage with an enormous box emblazoned with "Thunderbolt III" and a picture of two race cars battling to victory.

We set up the Strombecker slot car tracks and, grasping the blue speed controllers, we brought to life the epic struggle of white Chaparral 2D and yellow Ford GT 40 Mk II, father versus son.

I still have that old slot car set. And now a child of my own. And though Dad left this life in 2010 and mom passed away in September, they'd be happy to see my 7 year old daughter and I reliving those moments from my own childhood.

Except... when I finally unwrapped the cars, stored carefully 35 years ago, the tires fell apart in my hands. Rats.

After some online research, I discovered one can create custom slot car tires using a 2-part RTV silicone rubber. So that's what I did.
I found an Alumilite Super Casting Kit for $40 with coupon from the local craft store. The kit contains 2-part silicone rubber, 2-part resin, mold release, measuring cups, and stir sticks.

The instructions describe using the silicone rubber to make the mold. Instead, I made a plastic mold with my Monoprice Architect 3D printer and used the rubber, instead of the 2-part resin, as the casting material.

I designed the mold in FreeCAD. It is designed to mold the tires right around the original tires. The mold is basically just a bowl with a raised cylinder that the original tires snap onto. Then you pour the RTV Silicone goo around the outside of the wheels.

Transparent 3d view of the mold

In the first attempt, I thought it'd be fun to add black coloring. Since the silicone is white, the tire came out dark grey. I'll have to look for some clear silicone in the future.

The first two test tires came out fine, and I put them on the GT40. I replaced the rear axle and tires with a set from eBay.

I had a working slot car, although the silicone tires were slightly too large in diameter and inhibited contact of the pickup brushes with the track.

For the Chaparral, I printed smaller front tire molds, and then printed the rear tire molds. I was able to get measurements from the crusty original tires before they fell apart.

The next day I had a set of white tires for the Chaparral. However, they have a tendency to come off the wheels really easily. But, they do have more traction than the original rubber.

For the next attempt I'll 3D print a wheel and mold to create undersized tires that have to stretch a little to fit onto the original wheels.

I ended up going a little nuts over the last month, buying two more cars (both need rear tires), a New Old Stock chassis, new brushes, and a ton of track. I repaired a lot of soldering issues on the cars and track.

We've had some good fun racing with family and friends. But I have more up my sleeve. I'm working on a track timer...

Syndicated 2016-12-27 00:00:00 (Updated 2016-12-27 00:00:03) from Michael Shimniok

24 Dec 2016 (updated 26 Dec 2016 at 22:11 UTC) »

Hello LED

My wife and daughter adore Hello Kitty. No, I mean really, really adore her. No, see, I don't think you quite understand. Here, let me just show you what Christmas looks like at the Bot Thoughts laboratory:
This Christmas we faced a major problem that would totally ruin our holiday season.

At night, the smallest of the inflatable Hello Kitties were really dim! And the lights inside them were --gasp-- not user replaceable!

Before: Small kitties are dim!
Well, we are not users, are we, gentle reader? With a little knowledge of electronics, we can fix the "unfixable". Here's how things looked with only 3 kitties left to fix.

All but three kitties have been upgraded
So, here's how we brightened up our Christmas Kitties...

What We're Dealing With

There's a single, white, surface mount LED inside the small kitties at the back of the head, clipped to the material from the outside (see right)

These inflatables have zippers at the bottom to access the internals. There's no need to unclip the LED.

The medium sided kitties have two LEDs. So, maximum of probably 20mA per LED.

How much voltage and current do the small power supplies provide? Voltage, verified by my multimeter, is 12V. Current available is 1A.
Epoxy-encapsulated single SMT LED


We settled on two sets of four series-connected LEDs and a series 82 ohm resistor. So, four LEDs in parallel with four LEDs.

Make sure you use a resistor rated for the power through it. Power is given by current times voltage: P=IV. So for example, 10mA x 12V = 0.12 watts. That's nearly 1/8W so I used 1/4W and 1/2W resistors I had laying around.

I selected wide-angle, 20mA, high brightness LEDs from Digikey, (Part No: C535A-WJN-CU0W0231-ND)


I found some great protoboards on ebay. Long and narrow, it was easy to install the LEDs and resistors.

Since my wife has mastered soldering while teaching the 5th graders, assembly was a team effort.


Installing the LED array was a matter of unzipping the un-inflated Kitty, reaching up in and grabbing the LED module, pulling out to access it.

Then, clipping the wires, I soldered them onto the protoboard.

I placed a dollop of Goop to glue the new board onto the old module.

Then added a zip tie (pink of course), belt-and-suspenders style, and we have bright kitties again!

Merry Christmas and/or Happy Holidays!

Oh, Here's an LED Refresher

These white LEDs have a forward voltage drop of about 2.8V and a maximum current of 20mA. By reducing current through the LEDs with a resistor, and by placing the LEDs in series, the current demands on the power supply are minimized while extending LED life -- at the cost of a slight reduction in brightness.

Kirchoff's Voltage Law states that in a circuit, when you traverse a single path starting and ending at a given node, the net sum of voltages is 0. You have 12V supply, so the load drops 12V. 

If you place four LEDs in series, the sum of voltage drops is around 12V. What about current through each?

Well, Kirchoff's Current Law states that the sum of currents entering and leaving any node in a circuit is 0. That means the current through each LED and resistor connected in series is the same.

It also means that connecting four LEDs in parallel draws four times the current as four in series. That's why I put the LEDs in series.

Finally, Ohm's Law states that voltage is equal to resistance times current for a resistor (V=IR).

Using all those laws, you can define the current you want through the LEDs and solve for the resistance value you need.

In this case, if I want I=15mA, and each LED drops 2.8V, then using Kirchoff's Voltage law, I can solve for the voltage across the resistor:

Then using Ohm's Law I can solve for the resistance, R, that results in a 0.8V drop and 10mA of current.

Closest E24 (5% tolerance) resistor is 56 ohms, but it's a good idea to see what happens in the worst case.

Most voltage regulators are within 5% (12.6V). Now if the resistor is at the low end of the 5% tolerance range (53 ohm), you'd end up with 26mA which is too high for the LED.

If you recalculated R for the worst case voltage and worst case current (20mA), you'd compute R=70. With the next E24 resistor of 75 ohms, you'd have a reasonably safe margin.

You could also check the LED datasheet and see if there is a worst-case (lowest) voltage drop on the LEDs. If you really wanted to get fancy, you could design a current source circuit instead that would be a lot less sensitive to power supply voltage error. But that's another story for another day.

Syndicated 2016-12-24 20:03:00 (Updated 2016-12-26 19:01:22) from Michael Shimniok

119 older entries...


Others have certified shimniok as follows:

[ Certification disabled because you're not logged in. ]

Robot of the Day


Built by
Angus Thomson

Recent blogs

10 Jun 2017 wedesoft (Master)
9 Jun 2017 mwaibel (Master)
30 May 2017 shimniok (Journeyer)
25 May 2017 AI4U (Observer)
25 Feb 2017 steve (Master)
16 Aug 2016 Flanneltron (Journeyer)
9 Jul 2016 evilrobots (Observer)
27 Jun 2016 Petar.Kormushev (Master)
2 May 2016 motters (Master)
10 Sep 2015 svo (Master)
6 May 2015 spirit (Journeyer)
14 Nov 2014 Sergey Popov (Apprentice)
3 Jul 2014 jmhenry (Journeyer)
10 Jun 2014 robotvibes (Master)
13 Nov 2013 jlin (Master)
23 Jun 2013 Mubot (Master)
13 May 2013 JLaplace (Observer)
21 Apr 2013 Pi Robot (Master)

Newest Members

Newest Robots

7 Aug 2009 Titan EOD
13 May 2009 Spacechair
6 Feb 2009 K-bot
9 Jan 2009 3 in 1 Bot
15 Dec 2008 UMEEBOT
10 Nov 2008 Robot
10 Nov 2008 SAMM
24 Oct 2008 Romulus
30 Sep 2008 CD-Bot
26 Sep 2008 Little Johnny