Recent blog entries for 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

Stop that Robot Jeep

Photo by Alicia Gibb, CC-BY-SA
The last thing we needed was a 5,000 lb full size Jeep going out of control at the 2014 Sparkfun AVC. One of our safety features was an on-by-default brake actuator.

The microcontroller deactivates it during a run but if hitting the e-stop, or shutting off the ignition, or arriving at the last waypoint re-activates the actuator and stops the Jeep. During the run I could still press the brake manually. Here's how we built it.

Pneumatic System

The actuator uses a large pneumatic cylinder. Convenient, because the Jeep already had an
on board air compressor with regulator and all the trimmings to run the ARB front locker and air up tires.


After the A/C went out, I converted the compressor for off-road duty, mounting it vertically, and installing a crude manifold. The manifold contains a pressure switch with relief valve, a gauge, regulator, and oil separator. The system also has a reserve tank. The pressure switch turns the compressor on and off to maintain air pressure in the tank and the relief valve bleeds the air pressure off the compressor after it turns off.

The Jeep's On-board Air system
We plumbed in 1/4" flexible hose (green, above left) that runs into the cabin. There it goes through another pressure gauge mounted to the main console on the glove box (below) so I can see if system pressure is adequate prior to starting the run.

Pressure gauge and, lower left, compressor switch.
From there the air tube goes to a solenoid valve.


The valve, with no power applied, diverts air pressure to the piston, depressing the brake pedal. The MCU controls the solenoid valve through a Pololu relay board to divert air from the piston.


A spring pulls the piston and actuator arm away from the brake pedal.



We also installed an air flow control in the system so that the vehicle didn't slam on the brake too fast. It stops quickly but without giving us (much) whiplash.

How Do We Move The Truck?

So you might wonder: if the brake actuator is engaged by default, how do I move the vehicle around? Inside the cabin there are two manual valves that let me isolate and bleed pressure off of the actuator, respectively. By using a spring to pull the arm back, the system doesn't interfere with manual brake application when there's no air pressure applied.

Our pre-flight checklist ensures that we have the compressor on, pressure in the system, and pressure applied to the actuator before we arm the vehicle for an autonomous run. The post-flight checklist includes steps to bleed pressure from the actuator piston so we can drive back to the pits.

Actuator Mechanism

The Actuator frame is made from aluminum channel used and discarded by FIRST teams years ago, just like other parts in the pneumatic system. The frame bolts to the Jeep seat bracket and can be installed or removed in about five minutes.


We cut a slot in the forward frame cross-member as a guide for the pedal arm. After much tuning and tweaking we installed zip ties as bushings to improve operation.


Originally we designed a bracket that would clamp to the brake pedal. The design interfered with manual operation as well as suffering from some geometry challenges.

Our final design essentially implements a mechanical foot, a large flat surface that presses on the bottom part of the brake pedal and very effectively translates horizontal force to the brake pedal.

Bottom view of the "foot" and slide mechanism

Conclusion

Overall, it worked beautifully. The actuator applies an enormous amount of pressure on the brake pedal even with system pressure set to only 60psi.

When we had issues during testing early on Friday, the e-stop button deployed the brake quickly and effectively. The brake actuator held the vehicle in Drive, and released for the start of the run, no problem. It stopped the vehicle at the end of every run like clockwork.

Syndicated 2014-07-11 21:20:00 from Michael Shimniok

3 Jul 2014 (updated 3 Jul 2014 at 19:16 UTC) »

AVC: What About Data Bus?

Though Data Bus made it to the 2014 Sparkfun AVC, it had to sit out again this year. Time ran out to fix the Bus so I focused on the Jeep.

Data Bus makes a cameo (arrow)
You can see Data Bus in the Sparkfun AVC recap video, sitting on the table near Troubled Child and also riding on top of the Jeep on our final run...


Fortunately, Data Bus and Troubled Child use most of the same hardware and software so I know from running TC that my pure pursuit implementation works.

Anyway, here is Sparkfun's 2014 AVC recap video and an interview with me about the SHARC FSV at
8:03 followed by video of our third run and a special song about the Jeep at the end.