SMALL - Telemetry SMALL - Radio
Jack Crossfire's blog View Details
Posted by Jack Crossfire | Jun 13, 2014 @ 04:14 PM | 2,110 Views
So the last interview was the standard bit packing problem from many interviews before & that was the entirety of their dialog. They want you to pack a certain number of bits from each byte of an array into another array.

The traditional way of implementing it as fast as possible for an interview was to create a temp array of 1 byte per bit, write the packed data to the temp array, convert the temp array from bytes to bits. The way real compressors do it is to spend the time to make a write_bit function that writes a single bit at a time to the output array, maintaining the required state variables for the destination bit between calls, & padding the final byte with 0's. Suspect they want the latter.

Rather than spend the time verifying it alone, figured he had a test data set which would quickly show if it worked. That revealed a function argument was implemented for the number of bits to keep, but he wanted it for the number of bits to remove. Reversed the variable & it worked, but this ended the interview.

Out of a pool of many thousands of applicants, some would have had recent memory of data compressors with the write_bit method, some would have nailed it on the 1st try, some would have verified it on their own, appearing to nail it on the 1st try, some would have copied the solution from past interviews, some would have had snazzier solutions. The winner is purely random, but good enough. It may be they already had someone else picked, but had to follow through on the interview process for immigration laws.

Peers say they're "just hanging on" & the democrat controlled news media isn't covering reality. Reviewing what some of them did over the last 15 years made the MS seem a lot more important.
Posted by Jack Crossfire | Jun 13, 2014 @ 05:16 AM | 2,452 Views
A quick test revealed the 50 turn motors could reach the required 8mph with the required torque, at 15V 0.6A. They probably need active cooling & stall detection. It comes to 15V 1.2A for the motors, 6V 0.25A for the cooling fans, 3.3V 0.06A for the CPU. It would take 2Ah, 15V which is too heavy with modern batteries.

It's more efficient to reach that speed in ESC mode than stepper mode, but transitioning from stepper mode to ESC mode would require a super algorithm. It needs to power all 3 phases & adjust phase for stationary balancing, then when RPM reaches a certain point, powers just 2 phases & adjusts voltage for balancing.

The balancing robot needs an outer loop further regulating speed by tilt angle. If the inner loop voltage is too high, it tilts less. If it's too low, it tilts more. If it's stationary, it needs to tilt based on the amount of phase change.

Such an algorithm would have earned a master's degree, 15 years ago. Amusingly, a commenter on a goo tube video about the nbot balancing robot wrote "When you get that awkward [interview] question 'so what skills do you have for us', slap that robot on the table and you can name you salery. After all, how many people do you know who can make one of these from scatch?" 5 years ago. Times have changed so much, jobs have become so much more specialized, & robots have become so much more commoditized, such a thing won't get any more than a teary eyed "My kid got 5 for XMas. Moving on..."
Posted by Jack Crossfire | Jun 11, 2014 @ 10:25 PM | 2,639 Views
The old Yamaha HTR-5230 had problems ever since year 3. Its volume control finally broke, after 14 years. It has too many complex mechanical solutions for simple problems.

A modern replacement would be $200 with no speakers, all to replace a single pot. A search for a single pot connected to an ADC revealed this instead:

The pinout on the board:

+10 - +12 MOTOR
-12 - -12
+12A - +12 OP-AMP

Another 12 pins are where the 6 audio channels are routed through.

...Continue Reading
Posted by Jack Crossfire | Jun 10, 2014 @ 11:16 PM | 2,756 Views

Reading about refinery fires makes workers seem a lot less important than they were 15 years ago. The absolute worst disaster killed 4 & crippled 1 who jumped from a rusted 100ft tower that you drive by every day. The modern luxury SUV is built on blood, a nest of rusted 100 year old pipes with lots of gremlins, future leaks in development, tales of men burned alive, bosses ordering pipes cut before being fully drained, maintenance deferred to squeeze out maximum production.

Most of US's refineries are ancient, deteriorating structures, built around 1905. This ancient, deteriorating infrastructure won WWI, WWII, but lost everything since. In WWII, it received an upgrade in the form of fluid catalytic cracking. This provided the efficiency edge required to win WWII. Otherwise, there were incremental improvements to comply with environmental regulations. Some environmental regulations push the limit of chemical engineering & cost lives to produce.

There are still many pieces from 1905, operating on the ragged edge of failure, carrying extremely flammable materials in exotic states never encountered in normal life, at temperatures hotter than Venus. The heart of the operation is the distiller/regenerator unit, an extremely complicated, ragged nest of rusted pipe, all designed by someone, with every elbow of every pipe stored in either in a CAD file somewhere or someone's head. An army of workers constantly replaces aging pipes & builds new plants that some chemical engineer dreamed up.

The pictured section was built in 1971, burned down in 2012 when an ancient pipe rusted through & was rebuilt in 2013.

The tower of death, on which a naptha leak burned 4 workers to death & a 5th lept in 1999.

Where a worker was burned to death in an explosion in 1997, after many years of the 30 year old system beginning to show issues.
Posted by Jack Crossfire | Jun 08, 2014 @ 05:14 PM | 2,372 Views

The compressor proved essential over the last 15 years, but with a proper Lipo, it's so much more convenient. No more draining the car battery, opening different car doors, shuffling the cable, leaving the key in the ignition to power it. Very old cars require keys to be in a slot & don't automatically inflate their tires, but they don't have the mandated GPS tracking, remote engine cutoff, & tax premiums the government now requires.
Posted by Jack Crossfire | Jun 07, 2014 @ 04:23 PM | 3,163 Views

Despite all fears of shoemageddon, the 1st RC car run with the new shoes happened with no issues. It was a bit easier, thanks to 2 easy days. Didn't feel any hunger, thanks to a large salad with nothing else. The shoes just felt heavy. Fully intact soles put them at 11.6oz. After wearing down, they were 10oz.

At 7.4V, GPS reported the fastest segment was 8m8s per mile for 1.8 miles. The same segment uphill was 8m31s per mile. After GPS reported 10.25 miles, the battery started fading fast. Automatic steering died completely. It now has 109 miles on it. Used gyro * 4 for the automated steering, to no avail.

Still expect the tires to go before the motor. It's going to suck to spend $44 on another piece of junk instead of an ideal solution.
Posted by Jack Crossfire | Jun 06, 2014 @ 04:30 PM | 2,675 Views
SpaceX Landing Restoration 2014/06/04 20:52:32 GMT (0 min 21 sec)

Reading about how the restoration of that video was done, it's amazing how many people are able to hand restore a corrupted H.264 video stream, fixing the corrupted headers in a hex editor, writing a custom macroblock editor to fix the macroblock encodings in every single frame.

Years ago, it was a small miracle just for someone to know what a GOP was, let alone fix the macroblock encodings. Overnight, that skill became normal. From their piano competitions, to their self driving cars, to their H.264 video repairs, the millenials are a new league of talent, far more than generation Y & a different universe than generation X. It explains why job interviews are so much harder than 5 years ago & feel a lot more like standing on your head.

Fixing the SpaceX video was an exceptional case that required experts in H.264 macro block encoding editor writing. Attacking exceptional cases that require standing on your head is almost entirely what feeds the new economy.

It was the 1st time a 1st stage ever landed itself. It was an idea proposed only in drawings, for almost a century. They only launch 3 times per year, with 1 launch capable of having enough margin to attempt a recovery. The powered descent is too expensive to make more than 33% of their launchers recoverable. To be 100% recoverable, they would have to move the remaneing 2 launches per year to Falcon 9 heavy, which would be completely unaffordable.
Posted by Jack Crossfire | Jun 05, 2014 @ 09:27 PM | 2,755 Views

Now some interesting nuggets about the reprinted satellite photos which 1st appeared on May 25, 2011 from

...Continue Reading
Posted by Jack Crossfire | Jun 05, 2014 @ 12:22 AM | 2,517 Views
Should have tested the motor speed before anything else, because.

Max rpm: 823
diameter: 60mm

Crunching the numbers revealed a maximum speed of 5.78 miles per hour on 7.4V, with no load. Torque decreased as speed increased. That design was busted. The L6234 motor chip required 7V, busting any single cell ideas, too.

12V got it to 1310RPM or 9mph with no load.

The stock winding had the required torque & RPM, but took 3A when stationary, decreasing to 1.3A at its top speed.

The 130 turn DT700 hit 527 RPM at 12V 0.13A with no load.

A balancing robot with the required speed would need gearboxes. The direct drive idea with rewound motors would make an excellent hobbyist robot, but not meet the required application.
Posted by Jack Crossfire | Jun 03, 2014 @ 11:50 PM | 2,460 Views

Well, it definitely looks like an exact copy of the millions of other balancing robots. The problem is they all need a minimum height to have enough inertia to stay upright. Some use ballast. Some use 2 phase stepper motors. None use 3 phase brushless motors. They all use obsolete, heavy electronics. Interest in balancing robots vanished after 2007.

Many use 2 inline wheels & a large reaction wheel for horizontal balance. There are some which use a single fat wheel & no reaction wheel but probably can't turn. Many are unicycles with a large reaction wheel for horizontal balance. A control moment gyro can also be used. All of these are more cumbersome than 2 side by side wheels.

Weight shift can't balance a stationary unicycle. The problem is the astronaut problem. It needs an external force to act on it, to stay horizontally upright.

Performance of 2 wheel robots on trails is probably bad. Dirt getting in the motors is a big deal.

The balancing robot is extremely light, for what it is. A brushless gimbal sacrificed its brain & some aluminum for it. There's a huge bonus if it can run on 3.7V. So you need to find the minimum power with the recycled 7.4V board & spin a new board which can run on 3.7V if it works.

Posted by Jack Crossfire | Jun 03, 2014 @ 01:56 AM | 2,399 Views

Reviewing spare parts that could make a balancing robot, there are some 8:1 gearboxes, but no suitable motors. No way to attach a bell motor to them. There are some foam wheels, which wouldn't last long. They attach directly to some bell motors, which need 1.5A, but still probably wouldn't produce enough torque. No way the shaft would be straight enough for the gears to mesh.

Direct drive brushless motors are the cheapest way to get a balancing robot. They need to go from very fine adjustments to 1132rpm. The voltage would be low for stationary balancing. It would go to maximum for all movement. Brushless motors would not automatically change speed based on grade. Current is constant for all loads. The timing of the back EMF has to be sensed to detect the load & manually adjust the speed. There is an algortihm on

There are some pancake motors which have a tiny bit of clearance but probably enough torque. They either need skids for protection from rocks or slightly bigger wheels. The bearings probably wouldn't last long with a solid wheel. The days of cheap solutions are over.

The ideal motor is the bell motor.

A session of pin punching, allen wrench punching, back & forth sliding, & metal removal liberated the shaft. It was heavily jammed in.

...Continue Reading
Posted by Jack Crossfire | Jun 01, 2014 @ 04:38 PM | 2,542 Views

First build a product, then get a customer, then get friends-and-family money (or money from revenues which is cheapest of all) and then think about raising money. But only then. Don’t be an amateur.

But you already knew that.

Trying to get Mark Cuban to invest because “this would be great for the Dallas Mavericks.”

Never happened. We solicited the Reno homebuilder, the Canadian premier, & the Singaporean billionaire, but never Mark Cuban.

I just started my business. What should I do?
Sell it as fast as possible

Something workers should keep in mind. Advancements in 3D printer technology briefly swung towards hobbyists when the Makerbot came out. After Bre Pettis sold his business to Stratasys for $1 billion, they continued to make Makerbots, but innovation once again returned to just the high end with a clear division between what would be consumer & what would be professional. Maybe it set hobbyists back 5 years, but Bre did the right thing in selling as fast as possible.

Watching amateurs fail is not pretty. Denial of reality gets wider & wider. Egos get bruised. They all eventually asked for free work because just 1 more demo would seal the deal or they were going to have money next week. If 15 years of demos couldn't seal the deal, 1 more wasn't going to do it & they never had money next week. It was better to stop working & bruise their egos than use your bank account to dig them a deeper debt hole.
Posted by Jack Crossfire | May 31, 2014 @ 08:03 PM | 2,837 Views

Night run with the RC car. The slowest of any previous RC car run, yet it felt like maximum speed. Even had the most stops of any previous run, to fix steering crashes. The temperature was only 54F. Most likely a combination of diet & intervals the day before. The salads aren't putting out. Interval training used to require a lot more recovery time.

Installed headlights, which aided steering & visibility. No need for a headlamp. Steering was still bad, but can't improve anymore without a new vehicle. With the voltage at 7.3V, the fastest downhill part was 8m14s per mile for 1.8 miles. The same segment was 8m38s uphill. The battery seemed to have over 10.5 miles in it, despite 0.06A going to the LEDs, because of the slower speed. The gyro failed to initialize, so walked home & reflashed it with no gyro limit before the run. Total mileage is 99.2.

While pounding the pavement, the RC car idea started to seem pointless. The problem is there are electronic ways of pacing, which don't require steering. Google glass can overlay a virtual pacing object on the scene. Phones can read out the pace. These methods are not as realtime, not as precise, & aren't as tied to the real world. A previous attempt to have GPS derived pace read out every second was not accurate enough. Augmented reality overlays are really bad.

The car was more motivating, conveyed the exact pace in realtime, & could carry supplies or a camera to record the journey. Electronic pacing is still required for a race. Apparently, the sensor of choice is a footpod that measures g forces in 3 dimensions, in addition to number of strides. The trick is conveying the information to the user in realtime. Perhaps the metronome can change sounds or the phone can read out motivational sound clips. It's hard to beat a physical object.
Posted by Jack Crossfire | May 30, 2014 @ 05:22 PM | 2,674 Views
Posted by Jack Crossfire | May 29, 2014 @ 07:37 PM | 2,854 Views

An idea proposed on the Jack Crossfire blog finally hit the big time: synthesizing humans on other planets instead of transporting them. The 1 lone blog reader needs to look up that nugget & PM the link. It wasn't 3D printing specifically, because no-one made any money on 3D printing in those days, but it was beaming the information contained in a human to a machine on another planet that could synthesize a replica of the human, consciousness & all. The idea has been around forever, but this was the most prominent person to quote it.

For better or worse, an idea still needs gatekeepers to become official. Now if only Neil Degrasse would quote it.
Posted by Jack Crossfire | May 28, 2014 @ 07:40 PM | 2,074 Views
There's little more to improve in the functionality of RC car exercise coaches. Variable throttle would be nice, but not as ergonomic. A 2 wheeled balancing version would have better steering, but not enough to justify the cost.

The next win is autonomous path following. If the car follows behind the athlete, it's easy. If it's in front, it's a lot more than slightly harder. 1 rule can be to always keep the athlete centered in a rear camera. That lets the human control what side of the path it's on, but which path?

GPS is too inaccurate to follow a preprogrammed path. A compass is too inaccurate to follow a preprogrammed heading. Pole cams, lidar, chroma keying, are all too big or expensive.

Combining the compass idea with the rear camera might actually work. The key is the distance between car & athlete is relatively small. Any deviation from the intended path makes it steer away from the intended angle to keep the athlete centered. It makes an angle change big enough for an erroneous compass to detect.

It would be smarter, detecting when the athlete was off center, calculating what turn is required to center the athlete while not deviating from the desired heading. The heading would be determined by waypoints, but instead of current position to waypoint, it would be waypoint to waypoint. It would need GPS & a buffer factor to determine when a waypoint was satisfied.

The athlete would have to be a certain distance behind. It's very hard...Continue Reading
Posted by Jack Crossfire | May 27, 2014 @ 11:23 PM | 2,609 Views

Doubled the amount of aluminum between the LM317's & the board. Ran 3 laps around the complex, giving a rough estimate of the speed. 7.5V was now well above what the human can sustain.


At 7.2V, it was


Tested 7.3V last. It was


It was definitely inconsistent. GPS seemed accurate enough. The Lipo may be at the end of its life.

The I feedback made a small improvement in the steering. It still occasionally veered off course, but it managed to correct after a certain time. It's probably the best compromise between going crazy & not steering at all.

Finally moved it to C. Random failures abounded. Computing power went way down, manely owing to the required stack size. SDCC ended up not initializing the stack pointer. The stack pointer was 1 of the few registers the PIC didn't initialize. Manually put it at a reasonable address. There were probably also stack overflows. Managed to get the variables as compressed as possible, overwriting the gyro initialization variables. It didn't have any more issues. It ran fine at 3.3V, despite being rated for 5V.

SDNM doesn't work, making for a lot of guessing for the stack size. The free, 10 year old, through hole 18f1320's have probably made their last project. There are 2 more 5V ones, 1 more 3.3V, as probably dedicated spares. The 18f1220's are all gone. There are some exotic ones: 3 x 18F4685, 3 x 18f6585, 3 x dsPIC33fj128mc802, a lot of 18f458's intended for crash damage.
Posted by Jack Crossfire | May 27, 2014 @ 02:47 AM | 2,058 Views

Another day banging on the GPS analysis software yielded an easier way to get interval training times, manely basing pace on a fixed distance into the past instead of fixed time. The calculation was more complex. The result was no more accurate than fixing time, but easier to read.

The interval training app turned out to not work unless GPS was in keep on mode. If it's closed & reopened, it can't restart the alarm. What would be nice is if Android had a provision for detecting if an alarm is already set, so the alarm can be set wherever there's a chance it may need it.
Posted by Jack Crossfire | May 23, 2014 @ 01:34 AM | 3,412 Views
Since Google's interviewing formula became accepted as the proven way to hire everyone, algorithm tests on have all but replaced the interview. The 1st codility test was 15 minutes for 2 problems & a total failure. Assumed it would be equivalent to programming tests in the past, but it was drastically harder, with a much clunkier interface. Thus ended any chance of ever working at Airware.

They might have actually configured it wrong, because the guy said it would be 70 minutes. The 2nd codility test felt better, but also had 60 minutes for 2 problems. There is never as much time as a real job. The trick to winning in Google's world is more about mastering the algorithm tests than being good at the job.

For codility, you have to read the instructions in the sample tests, take the sample tests or at least formulate how you would solve them, then read as many blog posts about the solutions as possible. They require passing the complexity requirement, passing all corner cases, handling the very large numbers in their entire stated range, very small numbers, very large data sets, & very small data sets. Their example data sets don't test the corner cases. Cleanliness of code doesn't matter & there isn't enough time to clean it up, anyway. Sometimes a clue is given in the problem, like the range of a variable being the size of an array, thus you should make a lookup table, or order sqrt N complexity, thus a for loop of sqrt N...Continue Reading
Posted by Jack Crossfire | May 21, 2014 @ 11:14 PM | 2,929 Views

In another 10 miles of driving, the voltage regulator rework definitely reduced the amount of power. The fastest mile today was 8m2s. Things dragged on at 8m30s per mile for most of it. The recommended pace for a tempo run is 8m22s. Staying close to the car made it easier. Had nothing but salad before it. The fiber seemed to prevent crashing. Tried the most aggressive sugar content in the recovery drink.

Steering with AUTO_STEERING_PERIOD reduced all the way to STEERING_PERIOD / 4 was very ineffective. After 86.2 miles, the steering mechanism has deteriorated to the point of requiring I feedback.

For a good time, the GPS log can now be analyzed online.