Jack Crossfire's blog View Details
Posted by Jack Crossfire | Apr 20, 2016 @ 12:04 AM | 6,269 Views
To not feel so bummed about the home made copters of years ago being stressful & difficult to keep out of harm's way, it's time to start compiling Neistat's quad copter crashes & tribulations.

boat crash:

https://youtu.be/gBdLBCZdnqA?t=1m27s

loss of signal:

https://youtu.be/XjSa8juMyJ0?t=4m34s

bridge crash:

https://youtu.be/30NY6-11IWk?t=2m12s

So basically, despite years of multiplying valuations & redundancies, even the most foolproof quad copter still isn't much more foolproof than the old days. The attempts at obstacle avoidance by sonar & IR obviously haven't translated into anything meaningful. Neistat explained that he gets away with flying by having 4 quad copters & chewing them up.

https://youtu.be/VBEqKYYF0-A?t=6m22s

He explained that he was getting all the selfie shots by semi autonomous control, not by any dedicated feature:

https://youtu.be/gBdLBCZdnqA?t=1m43s

Ergonomics were probably the biggest factor in doing it manually. Given the amount of flight time & length of the final shot he gets, it's probably too cumbersome to set up a "cable cam" , waypoints, "leash cam", or geofence.

Still suprising he has to carry all that gear. There would be no way he could use a 3DR copter because they're too big. The Phantom is just small enough.

Ground vehicles have no worries. They can precisely navigate the city streets. Combining their single handed controller with a quad copter would be the ultimate selfie system, 10 minutes at a time.

The videos of the Phantom 4 at low altitude do look rock solid precise. It uses sonar for altitude & dual cameras for optical flow, but also fuses that with the accelerometer.
Posted by Jack Crossfire | Apr 13, 2016 @ 09:54 PM | 6,414 Views
The amount of soot appears related to the amount of time the surface spent at ambient temperature, so the gradations in soot can show the amount of LOX left in the tank during each re-entry burn. 33% of the total LOX capacity was required for recovery. Of the 33%, finer gradations show the 1st & 2nd re-entry burns with 15% left over for the landing burn. The line dividing black from white would be the edge of the common bulkhead, since there is no intertank section to provide a smooth gradient.
Posted by Jack Crossfire | Apr 09, 2016 @ 09:14 PM | 5,927 Views
Managed to get the USB->serial dongle working in VirtualBox, since it's a ttyUSB instead of a ttyACM. The problem is the gimbal has to be turned on after the firmware update tool is already listening. The firmware update tool waits for a start code so it can force it into bootloader mode. PWM did indeed have to be off. TX came from the pitch PWM. RX went into the yaw PWM.

So the Feiyu turned out to already have 1.14, the latest firmware. That left waiting for another firmware update in the future or programming it from scratch. Feiyu already discontinued the mini 3D, so another update is unlikely.

Tearing it down revealed a bewildering nest of miniaturized boards which would have to be reverse engineered. The same board is replicated for each motor. There is only 1 IMU.

Next, we have an MV358 op amp, given away by some RC pairs next to it. It probably amplifies a signal from a chip marked only 01281000, undoubtedly a hall effect sensor despite the lack of any Goog results. It's directly under a magnet on each motor which serves no purpose other than giving the motor's orientation. These magnets are circular polarized to give a varying field for each position.

The same firmware probably runs on each board, relying on the placement of jumper resistors to know which board it is. Communication between the boards, how to change the firmware with the existing bootloader, how to control the motors are all the great tasks. It would have been a lot easier if they just allowed configuring the product.
Posted by Jack Crossfire | Apr 09, 2016 @ 03:45 AM | 6,087 Views



Another small step forward. Landing at sea increases the amount of mass which can be launched on a reusable rocket. Still up to the voters & government to determine when humans will finally be able ride it. Their 1st launch of a human is entirely dependant on your continued support of the CCDEV program. The human mission to low earth orbit would be the easiest to recover the booster from, the baseline mission for the reusable system.


You would think there would be competition between customers to be the 1st to pay for a used rocket. It would be quite a publicity boost. The 1st is going to be the one in Wikipedia for all time or at least as long as it keeps raising donations.
Posted by Jack Crossfire | Apr 07, 2016 @ 04:05 PM | 5,522 Views
Current usage with camera recording at 8.4V:

0.85A with motors not deflected
2.3A with all 3 motors fully deflected

The old pro doesn't work without battery. There's no point in using the power supply umbilical unless you're previewing video. Even then, the power lead should be desoldered. It's easier to use the pro battery in its included spot than carry around an extra gimbal battery.

A dummy battery could go in the pro that would trick it into working without a battery. It probably just needs to see 4.2V on a pin, but no spare battery exists to sacrifice.

Current usage without powering camera at 8.4V:

0.25A with motors not deflected
1A with all 3 motors fully deflected

When powering the camera, a converter reduces current usage for higher voltages. Without powering the camera, the current rises slightly for higher voltages, but with no increase in torque. Minimum current is always 0.25A. The torque seems just high enough, but could go higher without burning out the motors.

Motor control is quite a bit more robust than past gimbals. There's no skipping or studdering. It's like it has encoders giving it motor position, but it doesn't. It's using gyros attached to all 3 motors to gleam phase in addition to orientation. It seems to have an algorithm change which invokes the gyro based encoding when the angles get offset beyond a certain amount. This allows it to recenter instead of studdering.

It was deemed good enough to hard code the mode & speed in...Continue Reading
Posted by Jack Crossfire | Apr 04, 2016 @ 01:39 PM | 4,284 Views
The 1st assembly of the Feiyu was disappointing. It wasn't as transportable as hoped, but it was more compact than keeping the shock absorbers. Wires hung out everywhere, but the assembly can probably be wrapped. The aluminum arms are going to bend over time. The bolts need reinforcing tubes. There's not enough clearance from the handle to easily turn an allen wrench. The pins for calibrating the horizon need to be flush on the handle.

The power switch managed to stick on by reflowing the hot glue after gluing it on. Reflowing hot glue by blasting it with the heat gun after initially tacking it has been effective at sticking difficult parts.

The power switch was deemed necessary because the Feiyu has to be powered on in the orientation it's going to stabilize in, but it's a fragile arrangement with lots of wires. A quick test should reveal if the power switch is necessary or if the battery plug, a MOSFET with delay, a tact button, or app button for enabling the Feiyu can do the job.

It was decided to remove the 2 pots for mode & speed. Those are better controlled over bluetooth app. The voltage regulator needs to be replaced by a 3.3V & bluetooth connected to the debugging port. Need to measure the power consumption of bluetooth.
Posted by Jack Crossfire | Mar 27, 2016 @ 06:34 PM | 3,214 Views
After multiple credit card rejections & alerts, the bang good transaction went through. 4 days later, the goods arrived with a bang. The quest for a handle began.

1st, it needs another control board to generate roll, pitch, & mode PWM signals. The PWM generator is required whether it's on a handle or a vehicle.
Only 6 signals go in: power, GND, roll, pitch, mode, video There is a 0.176V diode on the shock absorber board to protect against reverse voltage.

The USB connector on it is overkill. It really takes a standard UART TX & RX signal on the same pins as the roll & pitch, so it can't be programmed when the PWM source is running. The 5V from the USB connector is floating, so it needs to be powered from the PWM generator while no PWM is being generated.

The original plan was to remove the enclosure & bolt the handle directly onto the motor. The problem is a control board is bolted to the enclosure, which is bolted onto the motor. You can't remove the enclosure without removing the control board. Hacking the board to operate outside the enclosure would prevent the original shock absorbing board from being used. It also uses high speed I2C to communicate with control boards attached to all 3 motors & the IMU. That won't work outside the enclosure. There aren't any bolts long enough to go through an outside plate, the enclosure, board & motor.

The shock absorbing board can be removed, yielding a much more compact setup suitable for a...Continue Reading
Posted by Jack Crossfire | Mar 26, 2016 @ 03:09 AM | 3,184 Views
WE'RE MOVING!!! (10 min 54 sec)


Romantic Night (10 min 10 sec)
...Continue Reading
Posted by Jack Crossfire | Mar 20, 2016 @ 05:43 PM | 3,397 Views
Posted by Jack Crossfire | Mar 19, 2016 @ 12:19 AM | 3,690 Views
Washington DC Timelapse run (7 min 33 sec)


After making that, a better stabilization system became a lot more desirable. So basically, the brushless gimbal made 3 years ago ended up too big & cumbersome to be useful for most running videos or traveling. There's no way without the power of Chinese manufacturing to miniaturize it. Either that or the cost would be more than a commercial version.

In the future, 360 cams will replace all brushless gimbals, but there is currently no incentive for anyone to make a 360 cam work like a brushless gimbal when it's cheaper to borrow money. There might be a way to hack it. Years ago, there was an attempt to use a phone's internal IMU to stabilize the video from its own camera. The problem was they had to use an off the shelf phone & only the software APIs included. The focal length was too long to give enough overscanning area. The IMU wasn't fast enough to track fast movements. It only worked if the API gave time stamps which could synchronize the video with the IMU data.

The new idea would be capturing IMU data externally from the camera & synchronizing it by reading the VSYNC pulses from the sensor. New cameras may not have an exposed VSYNC signal. It's not likely the clocks would stay synchronized tightly enough to pull it off.

The raw IMU deltas would be recorded on the microcontroller's flash. They would generate offsets for Cinelerra's motion tracker. They would have to be exactly synchronized...Continue Reading
Posted by Jack Crossfire | Mar 06, 2016 @ 08:42 PM | 3,177 Views
Air Hogs took another swing at the spin copter game again with the Hoverblade. It looked a lot more like a monocopter than their previous efforts, but once again, it just had up & down control.

Spin Master Air Hogs 360 Hoverblade Unboxing (13 min 15 sec)


The lone gootube video of it showed a bad horizontal oscillation. It's almost like they tried a monocopter, but after getting nowhere with it, went back to the standard vertically controlled spinner.

While somewhat surprising no-one has ever commercialized Marcy 1, miniaturizing it enough to make it practical for the toy market might be too difficult. The motor size might be the limiting factor. There may not be materials strong yet light enough to achieve the same slow motion in a smaller size.
Posted by Jack Crossfire | Mar 05, 2016 @ 09:51 PM | 3,422 Views
It was the 1st computer a fake test pilot could afford by his own doing. There will never be another 1st.

It was a monster for its day. 200 whole megahertz. 512 k of "cache". Surely it would open up serious audio reverb, all done in the "cache". The cache was physically the same as the DRAM in those days. It was just addressed faster, but all the memory had to be accessed through another chip. What a joy to finally have a living breathing UNIX workstation that would never crash, with someone else paying the electric bill. It finally crashed when the heatsink filled with dust.

It didn't take long after mastering its audio capabilities for video to arrive. 1st came playback of 320x240 MPEGs. Then came recording 320x240 at 4fps or 640x480 at 1fps. Still didn't know enough about video compression to get the most out of it, but it was a new world. There will never be another new world in video or audio. The new world nowadays is the physical world.

You can't afford to keep a lot of the stuff you once had, especially with rent heading for a 3 handle. After 19 years of waiting for some kind of embedded repurposing that would never come, it was time to put it down. It might have actually had some use, right until 10 years ago when the Gumstix arrived. By 2014, the CPU heatsink was repurposed for the contact lens agitator. In 2015, the last of the PCI video cards was discarded, so it would never run again.
Posted by Jack Crossfire | Mar 05, 2016 @ 12:21 AM | 3,189 Views
7m15s mile (8 min 4 sec)


Snagged a 7m15s mile from the Ruckus. The image stabilization had its 1st material improvement in 18 years. There were previous attempts, but nothing which gave a net improvement. Now, much higher resolution can be stabilized in translation & rotation in much less time. This one took only 3 hours on the Macbook. On the dinosaur PC, it took 5 hours. Previously, the dinosaur PC was slightly faster than the Macbook.

The mane focus was using mipmaps instead of the full resolution image. The original algorithm stressed memory access while the new algorithm stresses the cache more. It shows the Macbook may have slower memory bandwidth, but faster cores. Memory may only be slowed down by the virtual machine.

There's still no solution to rotation drifting. Stabilizing a flipped video showed it's not a rounding error.

Then came the reality that using the vehicle as a pacer over a full 2 miles resulted in a slower total time than running without it, because of all the flips & navigation through mobs. The vehicle still allows higher speeds when maneuvering isn't required. Surprising how much a phone screen scratches after many slides on the pavement.

Steering oscillation remaned pretty bad. Steering was also too slow to respond, symptomatic of high D constants to overcome the oscillation. These factors made it very hard to navigate obstacles.
Posted by Jack Crossfire | Mar 02, 2016 @ 12:33 AM | 3,160 Views
After roughly 110 miles & 2 months, the SPMS401 died. While disappointingly short lived, the failure was software induced. When full time heading hold arrived, it made the steering build up when sitting still. After drifting far enough, the servo saver jammed well within the servo's range & the motor stalled. That's what happened when it was left powered on the bench after a successful drive. It worked until the end, but the next day, the servo was fried.

It was another case of software costing money & a servo saver destroying a servo. Ideally, the heading hold would time out after 30 seconds of no throttle. Replaced the SPMS401 with a Futaba S3102. While it didn't fit the servo saver, it worked fine with a standard horn. The standard horn didn't jam in the servo's entire range. Pity the fool who bought a replacement SPMS 401. It's a standard micro servo.
Posted by Jack Crossfire | Feb 27, 2016 @ 08:41 PM | 3,408 Views
In the search for a way to power 2 19V devices from 1 brick, it was finally time to tear one down. It was possible to get in by prying the enclosure apart, rather than grinding through it. There was a minimal amount of adhesive. Helas, there was not enough room inside the enclosure to solder a 2nd wire. The best way to split the output was not to break it open.

What was discovered was it doesn't require a macbook to turn on. It's off with no load. It outputs 17V when provided a load. An ESC was enough. The Accucell 8150 was enough. When powering the laptop, the laptop embeds data on the power line which causes the brick to adjust voltage depending on the load. A high CPU load makes it output up to 19V. A low CPU load makes it output 17V. This allowed Apple to get a constant voltage to the laptop through the minimum wire guage. Without the laptop on 1 end, it outputs 17V with the least load, sagging to 16V with increasing load.

It wouldn't be able to power the Accucell & laptop during full CPU usage. That would make it go above the Accucell's voltage limit to keep the laptop even. It also has very little reserve at full CPU usage. Any significant power usage makes it turn off.

Didn't document the powerline data chips because that wasn't the focus of the day. Being able to power a 19V fan & laptop from 1 brick is a huge savings in luggage.
Posted by Jack Crossfire | Feb 27, 2016 @ 03:08 AM | 3,208 Views
It was named after the price per unit: $21 billion with a B. It's finally cheaper to rebuild the entire country from scratch & regrow all the people than it is to defend it. It would be a lot more fun to regrow all the people, anyway.

It wasn't ordered as a black project because they're broke & needed approval for more money. It may also be a way of keeping the contractors employed more than to fill any need. With only 1 dedicated military plane being ordered every 30 years, it's now a major announcement to order anything no matter how identical to the B-2 it is. The lack of evolution from the B-2 shows how the flying wing may be the ultimate design for anything in the atmosphere.

The rendering conspicuously lacked any engine exhausts, hid the exact shape of the engine intakes, & didn't give any size dimensions. It definitely has windows for a pilot. At least it showed the rendering may not represent reality at all.
Posted by Jack Crossfire | Feb 24, 2016 @ 02:46 AM | 3,013 Views
All the talk of motor braking brought up the subject of springs in legged walking robots. Springs are a popular topic in legged robots. The human body is modeled after springs which restore energy in the walking cycle. Actually, the human leg doesn't restore energy. Gravity extends the muscles, but all the energy required to contract the muscles in 1 cycle needs to be expended again in the next cycle. There is no restoration of energy in a human, but adding springs to robotic legs improves their efficiency.

Nevertheless, motors are very good at recovering the kinetic energy of a wheel. Not only can they stop wheels, but enough energy is recovered to recharge the battery & restart the wheels. An electric car in traffic is basically an electric spring with a small amount of energy added in each start to what is recovered in each braking.

Surely there is a way to replace the springs in the most efficient walking robots with some kind of regenerative braking & this mechanism could make legged mechanisms almost as efficient as wheels. It would be best realized in high voltage linear motors, but a good experiment would be trying to make a common brushless outrunner act like a spring with some kind of actively controlled capacitor, then measure the torque this mechanism can provide.

It probably could make a lot more torque with the capacitor mechanism than a motor driven straight from a battery. The capacitor could be charged to a very high voltage, pulsed through the motor to generate the 1st motion, then each subsequent motion would require a small topping off.

A legged robot driven by regenerative spring motors might be more efficient at running, but not at standing still.
Posted by Jack Crossfire | Feb 22, 2016 @ 11:18 PM | 3,139 Views
It was an intense series of firmware flashes, with full time heading hold followed by another simonk which brakes during idle (MOTOR_BRAKE = 1). Braking during idle finally solved the runaways when the tachometer died when going downhill & made driving in the city a bit easier.

With avrdude installed in /usr/local/bin, the command was

avrdude -e -patmega8 -cstk500v1 -P/dev/ttyACM0 -b19200 -Uflash:w:tp_8khz.hex:i -Ulock:w:0x0F:m

The trick is some point in its history, the dude changed to setting a custom baud rate for all baud rates including 19200, despite the fact that custom baud rates were unavailable in some kernels. It needed a hack to re-enstate the standard baud rate flag.

Also, /dev/ttyACM is non functional in virtualbox. It was functional for a JLINK debugger in native mode but not an Arduino. The arduino only worked for Linux 3.19 in native mode, but only after running another terminal program to initialize it to 19200 baud.

It's disappointing how much no longer works in Linux that used to work long ago. The stack postings for Linux drop off after the 2013 time frame, when smartphones dropped below $100. With waning use of desktop operating systems & programming becoming the fast food service of the 21st century, the desktop is returning to a time when weekly reboots were required.

Phones have always needed Windows 3.1 style dropkicking, but the kind of people who use them & who comprise the fast food age of programming don't care about breaking uptime records like 20 years ago.
Posted by Jack Crossfire | Feb 17, 2016 @ 11:08 PM | 2,736 Views
Running in redwoods (25 min 14 sec)


25 minutes of barely usable footage from 67 min of running. The obsolete gopro did what it could in backlit darkness. The difficulty of the terrain made quad copters look real good. They could provide 15 minutes of higher quality footage, but a modern quad copter with the full brushless gimbal would be too big. Cargo capacity was the game changer for the lunchbox. A quad copter with cargo capacity would have to be huge & much noisier than the lunchbox, indeed.

Practical limitations aside, a quad copter controlled like the lunchbox, in a large enough space to be practical, would bring a new world of video quality.


The search continued for a rationale to make a wireless audio input for a phone. The athlete mounted microphones could be useful if there was no camera robot. The camera robot may be quiet enough at head distance to be usable. Testing the audio quality of an athlete mounted microphone by using the simplest mono phone input is the word.
Posted by Jack Crossfire | Feb 15, 2016 @ 08:12 PM | 2,779 Views
The Zoom H2 has served for 7 years, showing growing limitations. Its battery life was never there. It never had a true microphone preamp. It didn't have any gain control. It's too big to do far less than a modern phone can do. It didn't have balanced inputs. Its user interface was utter trash.

The news of the day is the need for a very compact audio recorder which relies on a phone for the storage & user interface. There are many applications of this compact audio recorder.

1) Recording ambient sound in stereo from unbalanced electret microphones attached to an athlete.

2) Recording voice from an unbalanced headset or lav mic.

3) 3 unbalanced channels, with voice mic on 1 channel & ambient mics on 2 channels.

4) Recording balanced sound from 2 studio mics.

In all applications, it needs a headphone out to monitor the audio. It requires 4 preamps & 4 ADCs to capture all the required audio. 2 ADCs would be subtracted in software to capture balanced audio. Then it needs 2 headphone amps to power the headphones. It requires many digital pots:

4 - each preamp
2 - headphone out

The pots would be ganged for the user interface into 1-2 input gains & a single output gain. It needs presets to select configurations of preamps to record & pass to the headphones. It would be easiest to pass the digitized signal to a cheap DAC to drive the headphones.

Encoding needs to be 24 bit 48khz uncompressed. The total bandwidth would be...Continue Reading