New Products Flash Sale
Jack Crossfire's blog View Details
Posted by Jack Crossfire | Mar 26, 2015 @ 11:00 PM | 2,524 Views
In what has become an annual ritual, Wednesday was pilot suicide day. Now that Egyptian, Malaysian, & German pilots have killed themselves by crashing their planes, the question is who will kill himself next year?

Easy enough to say humans should be taken out of the loop & there shouldn't be a crew of any kind, but it's yet another case of humans now being unfit to do something they did successfully, 50 years ago, like marriage & politics.

Hard to say there are any more people with mental health issues on the street, than 30 years ago. There could be a zombie invasion.
Posted by Jack Crossfire | Mar 19, 2015 @ 10:39 PM | 3,763 Views
Are you finding millenials to speak a completely unintelligible language?

"On CSI: Cyber, Uber Is the Perfect Vehicle for Dad Sadness Murder"
"The Government Is Testing Myriad Invasive Biometric Surveillance Methods"
"Tag Heuer and Intel Are to Challenge the Apple Watch"
"Mall Cops Catfished Black Lives Matter Activists on Facebook"
Posted by Jack Crossfire | Mar 19, 2015 @ 12:14 AM | 2,985 Views

The next generation of travel fan was finished. While many ideas for a shroud emerged, it still ended up the same as last year. The tripod mounting was much smaller than last year. The maximum power was reduced to 1/4, to make it suitable for indoor use.

The best idea for a shroud would not fit in a suitcase, but be suitable near a pool.
Posted by Jack Crossfire | Mar 16, 2015 @ 10:58 PM | 3,515 Views

Motor Noise comparison (0 min 46 sec)

3 ESCs were compared to find the least noise. None were as silent as a household fan, but SimonK at 18khz was the quietest.

After debating the issue all day, decided to go with the original plan of installing SimonK firmware.

An hour of intricate soldering attached a programming header directly to the Atmega8 SCK, MOSI, MISO, RESET. It had the same pinout as the Atmega328. This was a SuperSimple 15-18A from 2007, predating Arduino by many years. Atmel had yet to even label it as an Atmega.

The firmware was on

Making the particular image required make tp.hex. There was also a tp_8khz.hex target, which generated 8khz PWM. tp.hex generated 18khz PWM. Installation used the Arduino as ISP sketch, using:

/amazon/root/arduino.heroine/hardware/tools/avr/bin/avrdude -C/amazon/root/arduino.heroine/hardware/tools/avr/etc/avrdude.conf -v -patmega8 -cstk500v1 -P/dev/ttyACM0 -b19200 -Uflash:w:tp.hex:i -Ulock:w:0x0F:m

The motor was now quieter than all the others, even at 19V. 19V at minimum throttle previously made the loudest squeel. There was still a slight wine from commutation, but the squeel was gone. It was quieter than the Castle Creation 35, which was rated at 32khz. The Castle still squeeled at 32khz, probably due to a bug.

There was a nugget on about the tp.hex image containing a bootloader, but it required some fuse mangling & yet another Arduino sketch.
Posted by Jack Crossfire | Mar 15, 2015 @ 02:55 AM | 4,582 Views
For all the 3D printers which you absolutely must buy, there is but 1 printer which has never improved or gone anywhere but up in price: the kind which prints on paper. More specifically, the 44" inkjet. They were $3000, 10 years ago. Now, they're $5000. To this day, they still dry out if not used every week. The refills cost hundreds in the old days & thousands now.

With all the advances in technology that we're told are packed into the 3D printer, absolutely none of it has benefited the inkjet. Hacks of inkjets only amount to reusing the x-y table, making the print head squirt something besides ink, but never expanding the form factor. There is still no consumer offering which can print on 44" paper & no-one has ever hacked an inkjet to do it.

Your best bet is based on a plotter, but it would be glacially slow at printing anything near photo quality, if it ever did. It takes very high resolution to achieve any kind of color gradient.

The Goog found some guy who built a 1 pin dot matrix printer, years ago. We seemed to have common interests, over the years. It's amazing how primitive everything in the 1980's looks today. In the mind's eye, the 1980's look as new as today.
Posted by Jack Crossfire | Mar 14, 2015 @ 02:54 AM | 3,419 Views
Built a simple test board for a 2nd ATmega & it worked perfectly. The Arduino ISP sketch required no changes. Getting the bootloader to work was the last straw. Many configuration parameters were missing from boards.txt.

Getting the required reset pin required pulling out the ATmega from the UNO & using the UNO as a serial port. Would never write a bootloader which required connecting the reset pin. This required a 2nd ribbon cable, different from the cable used to program the bootloader. The bootloader ended up not being worth it.

Found the verbose options in the Arduino preferences, which would reveal how to do everything on the command line. Made up a makefile which could compile an old time C program, upload it using Arduino as ISP, set the fuse bits & everything.
/amazon/root/arduino.heroine/hardware/tools/avr/bin/avr-gcc -O2 -mmcu=atmega328p -o fan3.o fan3.c

/amazon/root/arduino.heroine/hardware/tools/avr/bin/avr-gcc -O2 -mmcu=atmega328p -Wl,--section-start=.text=0x0000 -nostdlib -o fan3.elf fan3.o

/amazon/root/arduino.heroine/hardware/tools/avr/bin/avr-objcopy -j .text -j .data -O ihex fan3.elf fan3.hex

/amazon/root/arduino.heroine/hardware/tools/avr/bin/avrdude -C/amazon/root/arduino.heroine/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -cstk500v1 -P/dev/ttyACM0 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xDA:m -Ulfuse:w:0xE2:m
/amazon/root/arduino.heroine/hardware/tools/avr/bin/avrdude -C/amazon/root/
...Continue Reading
Posted by Jack Crossfire | Mar 09, 2015 @ 11:38 PM | 3,932 Views
2 weeks ago, an apartment in the city was $5000. Now, it's $7000. 5 years ago, the stock market was 10,000. Now, it's 20,000. Last year, a house in Palo Alto was $1,000,000. Now, it's $4,000,000. From this standpoint, $15,000 is not a lot of money.

Though a meaningless amount, the $15,000 tag should keep it out of competition with the thousands of fitness tracking startups. There's still at least 1 guy whose home equity isn't doubling every second & who still needs to pick $200 over $15,000.

From half an hour scrolling through long & informationless web pages of computer renderings of nothing, it's clear their market is men buying status symbols for their girlfriends. That segment is a lot more alive now than it was 20 years ago. But say you just sold your $5,000,000 condo. Why not drop a day worth of property tax on a $15,000 watch?

It's also clear the middle class is pulling away from the rest of us. The top 1% is the new middle class. That's what the 1st $1000 phones felt like, when they arrived years ago.
Posted by Jack Crossfire | Mar 08, 2015 @ 10:45 PM | 3,444 Views

A week of commutes yielded the standalone Atmega board, but it didn't take a program. The Arduino ISP generated all the right signals, sending 0xac 0x53 0x00 0x00 to enter programming mode, but the Atmega stood silent.

Getting this far was a bit harder than the marketing. 1st, most Arduino UNO's end up in a drawer, never to be seen again. The remaneder get used in a project which is never finished or turned on once & put away. Almost never is a project converted to a standalone board.

There is the standard guide

Since every version of the Arduino IDE is different, the guide is almost useless. The file needed to be decompressed directly into the arduino-1.6.0/hardware directory. Then the hardware/breadboard/avr/boards.txt file needed a very cryptic line:


Flashing a bootloader would 1st require installing the examples->ArduinoISP sketch on the UNO. That required having "Arduino UNO" as the board, "ArduinoISP" as the programmer. Open the serial monitor, set baud rate 19200 & send 1[space] to verify the ArduinoISP is running.

Then change the programmer to "Arduino as ISP" change the board to "Atmega 328 on a breadboard" & select tools->"burn bootloader". That invoked the ArduinoISP sketch properly. It generated all the right signals, but the target Atmega didn't send anything on MISO or even put it in output mode.

Tried slowing down the ArduinoISP to 32khz by changing CLKPR, increasing the delays to 1 second in start_pmode, connecting all the GND & Vcc on the target. It was still dead.

The next step would be making an Atmega breakout board just for programming the qfp32 package, with room for trying a crystal & serial port. Using a tried & true PIC or stm32 is a lot more productive than starting a new microcontroller.
Posted by Jack Crossfire | Mar 03, 2015 @ 11:05 PM | 3,601 Views
Posted by Jack Crossfire | Feb 28, 2015 @ 04:59 PM | 3,521 Views
It's 10 years late in the making, but now the Arduino nuggets not available anywhere else because no-one talks about the flaws in their own investment or they just don't know. The ATMega328 has a lot of performance not available in the default Arduino load.

The Arduino sketch is preprocessed into a C++ source file of some kind, which is linked into a main program in hardware/arduino/avr/cores/arduino. There are convenience macros named sbi in the main program but named setBit in the sketch.

The Arduino IDE runs a bunch of commands to preprocess, compile & flash your program. It would be easier to run a makefile from the command line, but there's no easy way to extract the commands from the IDE. Running a program requires uploading then clicking through to enable the serial monitor every time. The serial monitor resets it again.

There is no bit toggling opcode like there is on a PIC18. Toggle a bit with

bitWrite(PORTD, 2, !bitRead(PIND, 2));

Any project is going to finish as a standalone ATMega using its internal oscillator. The Arduino UNO is fixed to use a 16Mhz crystal & doesn't allow changing the clock source to the internal oscillator. This requires building up a 2nd board, using the UNO board to write a bootloader on the 2nd board. The clock source can only be set with the UNO board programmed with an ArduinoISP sketch.

Fortunately, the internal oscillator's 8Mhz speed can be simulated by setting the CLKPR register.

CLKPR = (1...Continue Reading
Posted by Jack Crossfire | Feb 21, 2015 @ 01:55 AM | 4,813 Views

10 years after everyone else, it was finally time to get the Arduino going. It was decided that a totally silent fan can be made, using the motor in stepper mode, driving a continuous sine wave on all 3 phases. It wouldn't be very efficient, but it would be guaranteed to work.

The atmega328 has a huge number of PWMs, enough to drive 6 MOSFETs independently. Getting this number of PWMs requires locking them to the CPU clockspeed, so the CPU clockspeed needs to be adjusted. Completely independent frequency would reduce the number to 3 PWMs.

At 16Mhz, PWM goes at 64khz. Using the 8Mhz internal oscillator, PWM goes at 32khz. The clockspeed can be adjusted in powers of 2 & would have to be 8Mhz or below. Changing the PWM frequency also breaks all the features of the Arduino libraries, since they use the timers for other functions.

The rest of the required functionality is standard for microcontrollers, an ADC to control speed, an ADC to detect stalls.

The mane problem is the arduino IDE offers little to program a bare atmega in a circuit. The IDE can't program an atmega without a bootloader. It requires connecting the bare atmega's SPI pins, programing the Uno's atmega to program a bootloader into the bare atmega, then connecting the bare atmega's UART pins, removing the atmega on the Uno to program a main program on the bare atmega. This has to be repeated for every bare atmega.

The IDE also can't write a new bootloader on the Uno's atmega. That requires buying yet another programmer & connecting it to the ICSP header on the UNO.

The IDE & Arduino libraries have more likely served their purpose in bringing up a PWM test program. The UNO has to be reprogrammed for programming bootloaders in bare atmegas. The bootloader source has to be modified to be a main program.
Posted by Jack Crossfire | Feb 15, 2015 @ 07:37 PM | 3,943 Views

A very brief test of path following was a complete failure. Machine vision did the business, but feedback was either too fast or too slow, never able to stay on the path. Maybe the machine vision was too slow. Line following robots have done this forever, but using very fast sensors.

Maybe the feedback needed low limits. Maybe instead of continually adding an offset to the heading, it needed to add offset once when the path veered 1 way & not again until the path veered the other way. Maybe the rate of change in the path is needed.

It's much more complicated than expected, for something that's just supposed to trim steering.

Anyways, either the battery was defective, never charged, or the PI sucked a lot more power than expected, but the battery went to 8.4V & the pi died. Then the 433Mhz died. It looked like a conformal coating issue. Managed to drive it home using the phone. There were signs the phone could have the same 1 handed interface as the stick & the phone could be reasonably water resistant.
Posted by Jack Crossfire | Feb 15, 2015 @ 01:02 AM | 3,625 Views
Posted by Jack Crossfire | Feb 12, 2015 @ 11:15 PM | 3,144 Views
After a sleepless night of using the travel fan, it obviously needed to be completely silent. PWM would never do. An ESC like none other needed to be built. It needed to use linear voltage control. It was finally a practical reason for the lifelong dream of building an ESC from scratch.

It needed to run on linear voltage down to 1V. It would be fed by a 6V BEC with some way of adjusting voltage without PWM. It would need all N MOSFETS, because the high voltage wouldn't be high enough to turn on a P.

There was technical appeal in making it out of BJT's. It would be the only one of its kind. There's a massive supply of BJT's in the apartment. They would take some voltage drop off the regulator. But to be a travel fan, it needed to be compact, so MOSFETs won out. There was still a massive supply of MOSFETs from the days of trying to launch spaceships with magnets & burning them up instead.

The 1st attempt was a through hole failure. It used P MOSFETS which would't turn on because the high voltage was too low. A more complicated circuit with N MOSFETS, a full boost converter, high side BJTs would be required.

...Continue Reading
Posted by Jack Crossfire | Feb 08, 2015 @ 07:32 PM | 3,808 Views

After a month of commuting, a new electronics package was fabricated. The $5 Turnigy BEC was put to use. It was a piece of garbage that melted at 2A. The high energy BEC business is a mercenary business. They only contain a few dollars of parts, but digikey has a $25 minimum. Castle creations remanes the only supplier of a functioning high energy BEC, still charging $25 after 10 years.

A rising edge interrupt handler allows any pin on the STM32 to be used as an SPI bus, at reasonable bitrates. Piecing together forum dialogs revealed a way to access hardware SPI on the raspberry. There was a workable test program on by the name of spidev_test.c

There was never an organized way to stuff the truck.

...Continue Reading
Posted by Jack Crossfire | Feb 01, 2015 @ 05:54 PM | 2,894 Views
A machine vision algorithm emerged, which could do a reasonable job tracking a path. The machine vision algorithm of choice goes at 3fps on the raspberry pi. The PI can only go up to 900Mhz. The RTL8188 is the only chip still supporting wifi access on it & it rarely stays connected longer than a few seconds.

The other problem is the algorithm only works in daylight, on a single uncrowded path near the apartment. When you have to commute 3 hours a day, you can't be home during the daytime, at all. There wasn't a chance to test it in January & probably won't be until April. There's no open space in the city to test it.

In terms of cost per clockcycle, the Odroid C1 has now been the duck's guts for several years. Development of the RTL8188 driver has continued on the Odroid, supposedly making it more bearable. It begins at $37, then the gauging begins in ernest, with exorbitant shipping, taxes, & cash only.

It makes no sense for so many middle men to now be required in payments, each adding on their own 2.5%. 30 years ago, there was just a bank. Now, it takes Paypal, Square, Apple pay, Google wallet, Coin, thousands & thousands of middle men. As middle men gauge more, new middle men emerge, promising to reduce the fees by spreading the cost of the lower middle men among a larger group. It was once said that Visa's exorbitant fees bordered on racketeering. Now, the current generation is in middle man euphoria, praising Google wallet, Apple Pay, & Square, which merely tack on other fees on top of Paypal, on top of Visa, on top of the bank. It's insane.
Posted by Jack Crossfire | Jan 20, 2015 @ 10:15 PM | 3,790 Views

It's amazing all those formerly penny chinese businesses of taxi cabs, pet furniture, LED blinkers, & bike delivery are now multi billion dollar Google acquisitions. Unlike 1999, there are no IPO's. All the money is in buyouts paid to the founders. It takes a lot less people to do what took a staff, 15 years ago. There are no more tales of Netscape staff members retiring. No more tales of six figure secretaries. There are no more secretaries or IT staff. The whole show is just a CEO & an iPhone.
Posted by Jack Crossfire | Jan 18, 2015 @ 08:27 PM | 3,164 Views

The long time quest for a KH-11 model ended when I remembered paper hubble models abounded. The KH-11 was once believed to be a short hubble with no instrument package. A later Kiwipedia update showed it being identical to hubble & having a large propellant tank for reboosts.

Decided to stick with the earlier theory. No matter what it really is, it's still vastly different than hubble.

The paper model wasn't as inspiring as hoped. It had to be 2.66x smaller than the NASA model to fit in the levitator. The toner fell off. The model was intended for a color printer. Left out the high gain antennas because they wouldn't fit in the levitator. Left out the instrument boxes because they would be crushed by the magnet & were microscopic.

...Continue Reading
Posted by Jack Crossfire | Jan 18, 2015 @ 01:50 AM | 4,195 Views
BART has constant, massive delays. What is a 45 minute ride on paper is normally 1 hour. The delays are 1/4 caused by equipment failures & 3/4 caused by people. There is a big difference between the news & how happy people actually are, because they're obviously not getting by while the news would have you believe things suddenly got rosy on Jan 21, 2009. The reality is there are so many protests, crime, & health problems among people who are doing a lot worse than 6 years ago that nothing is working.

Living on a train for 10 hours/week is more productive than operating the break pedal in a car, but it doesn't leave any time to do anything but what can be done on a laptop. The sum total of a week of physical fabrication amounts to a very minimal revision of the Tamiya circuit board

The new board probably ended up being unnecessary, since it ended up manely removing most of the reworks instead of integrating them.

Current sensing - a decided failure. It was easier to set a constant RPM than try to adapt the RPM based on power. Couldn't get an accurate reading of current usage. The user can manually adjust RPM based on steepness.

Headlight MOSFET - not worth the extra board space. Only set once per drive. Required a gyro recalibration.

3.3V - needed connections for external regulator.

Servo - needed connections for external regulator.

ESC - Needed PWM signal on 5V pin with pad to jump to 5V. The pad didn't make it.

Gyro -...Continue Reading
Posted by Jack Crossfire | Jan 12, 2015 @ 11:09 PM | 3,849 Views

The journey begins with grinding this thing down.

Then comes standing off the screw holes with spare plastic parts & laminated 1/16" plywood.

...Continue Reading