Quantom Dots and Unlimited Graphics

Two noteworthy reads today:

IEEE Spectrum reports on a paper, originally published on Nature Materials, regarding a UCLA professors efforts to used electron spin to replace transistors (spintronics). Using confined electrons (quantom dots) , current can be used to change the magnetic properties.

To build spintronic circuits, engineers need a switchable magnetic material. So Wang and his colleagues made dome-shaped structures of 95 percent germanium with 5 percent manganese, a material known as a dilute magnetic semiconductor. Because the domes are just 30 nanometers across and 8 nm high, they confine electrons to quantum-scale dimensions, creating what are known as quantum dots. The researchers deposited the dots on silicon to make a complementary-metal-oxide semiconductor gate structure, then modulated the magnetism of the device by applying electric fields. ”We can now switch from nonmagnetic to magnetic,” Wang says.

Using the electrons for computing is not a new notion, as they can be the qbits in quantum computing. That’s the theme of this Science Daily article about a recent breakthrough is of Princeton researchers who were able to isolate and influence the behavior of a single electron:

“In the quest to build a quantum computer with electron spin qubits, nuclear spins are typically a nuisance,” said Guido Burkard, a theoretical physicist at the University of Konstanz in Germany. “Petta and coworkers demonstrate a new method that utilizes the nuclear spins for performing fast quantum operations. For solid-state quantum computing, their result is a big step forward.”

Spintronics have been in the works for awhile (I vaguely reading something in Scientific American in, oh… say… 2001? Wikipedia mentions research in 1970s) .

On a different note in computing, Wired reports on a company in forming that promises “unlimited graphical power.” The technology is software based graphics rendering that uses an alternative to polygons:

Dell [not the PC maker] says Unlimited Detail has an alternative to these systems [polygons or ray tracing]. It uses billions of “point cloud” dots, or voxels, to accurately represent a world. To render an image, Unlimited Detail then acts as a search engine.

Dell says his algorithm can quickly figure out the dots needed to render a scene, search the data to find only those points, and pull them up quickly enough for smooth animation. He calls it “mass connected processing.”

“Instead of putting a trillion dots on screen and covering the ones you don’t use, we show only what needs to be done and how you can manipulate those dots,” says Dell.

Dell [the inventor] is an unusual candidate for a computer-graphics revolutionary. He’s an autodidact who’s never been to a university and who ran a supermarket chain for about eight years.

But I find the idea that revolutionary invention and innovation can still be found laymen and hobbyists- not just well resourced institutions.

Nokia 6100 LCD Display and Drivers

I spent several hours on Spark Fun drooling over parts for projects. One that stood out is the color LCD breakout board, which uses a Nokia 6100  LCD. Curious on running this screen, I found a beautiful, full set of drivers for the device, along with concise instructions, on here. Looks like a great simple option for hobbyist play as the larger, more sophisticated displays can cost as much as a development board itself.

Random Sentences

I wrote a little java console program to generate random sentences. The program simply strings together words from several large arrays, categories by the word’s grammatical type. The outcome are:

Not so grammatically accurate, but nonetheless fun to play with.

Disjointed Reading on Computing

As the title states, the last few days have been scattered reading about random aspects of computing. Yesterday was multi-core computing and embedded systems. From a free Embedded.com course (which I can’t link since it’s only for registered users), I learned some of the basics. The interest was launched by a newsletter from Embedded.com, which had the article “The multicore SoC – will 2010 be the turning point?

Side note: Embedded.com and TechOnline.com has a good number of free courses on electronics available to registered users. I highly recommend it.

Today, I was looking at what’s involved in porting the Linux kernel to embedded systems. It looks like there are several tools available to help do this. There’s a tutorial called “Build an Embedded Linux Distro From Scratch” on the IBM Developer Works tutorial pages.

According to the tutorial, there’s a tool called crosstool-ng, which can be used to build a tool chain for various target systems, allowing for cross-compiling.

Also today, a visit to the Linux tutorials to learn about the kernel’s memory management.

About Toyota

This post is inspired by a discussion going on at LinkedIn’s Embedded Systems Group regarding Toyota’s problems with unintended/spontaneous acceleration of some of its cars. In the broader embedded systems community, there’s a suspicion that this is a firmware problem. A bug. Somewhere in the thousands of lines of code that control ignition, brakes and all the trinkets, there’s a malfunction that causes disjunction between pedal and throttle.

Here’s a video posted with the discussion. It’s from UPenn’s Wharton School and features professor Takahiro Fujimoto of Tokyo University. He’s an expert in Toyota:

Fujimoto: I was surprised to see that Toyota was the first to be caught in this trap of what we may call complexity problems. Society and the market are making stricter and stricter demands on all the cars and vehicles in the world. So this could happen to anybody. But I was a bit surprised that this happened to Toyota first, because Toyota executives had [issued] a warning about [being] in a very difficult situation regarding complexity. So they knew that this could happen to anybody.

His sentiment about complexity of manufacturing that degrades quality is echoed in the discussion of LinkedIn:

I think the auto manufacturers have gone too far in creating the complexity in the first place. And I make my living from that same creation process, so this is no small statement for me.

Here’s my opinion: complexity is a product of uncontrolled growth. For public companies, such uncontrolled growth is encouraged through pressure from stakeholders, customers and employees.  Anyone who’s worked in a large (nationwide) company will know problems of interdepartmental communication. Though under one name, the company becomes segmented and often isn’t in sync with other parts. The left isn’t quite sure what the right is doing.

Another concern among the embedded systems community is that there isn’t any regulatory body in firmware standards for automobiles. As another poster in the LinkedIn discussion states:

The Toyotas, like other modern cars, are drive-by-wire cars. We have fly-by-wire aircraft. How do aircraft designers ensure very low probability of runaway acceleration during taxing, or landing?

I agree with Ian that “no matter what procedures you put in place it depends on the people doing the engineering”.

I think cars too will have to be designed, manufactured, operated and maintained with the standards and the mindset as in aviation.

Michael Barr, President of Netrino and a well respected expert in the embedded community discusses this in his blog post regarding Toyota’s woes. Although this is only a side note in his post, it carries a good message:

I think it is a net positive that journalists, the mass media, and a broader swath of the general public are increasingly aware that there is software embedded inside cars, airplanes, medical devices, and just about everything else with a power supply or batteries. Firmware has been inside these products for many years, of course. But as I wrote in a recent article in Electronic Design, my experience working with companies across many industries lead me to believe there is a looming firmware quality crisis. Greater public awareness is sure to bring litigation. This will force engineering management to care more about firmware quality than they currently do.

When I try and explain embedded systems to someone unaware, I usually get a response of surprise and amusement in the prevalence of firmware dependent devices in our lives. Most people don’t think about the c code and CAN busses that actually allow their vehicles to function, much less the mcu in their microwave that counts the cook time and turns the carousel at the same time.

But cars are dangerous; microwave less so. Maybe (and not that I know much about Toyota’s quality assurance methods) vehicle electronics should be treated more like medical devices. Ones where failure isn’t an issue. People love the magic of technology and that magic will only saturate our lives, and our vehicles, more and more.

iPhone Home Button Replacement

The home button stopped working on my iPhone. It was on the jailbroken 3.1.2 OS. In a rash move, I flashed the firmware in hopes that the button will be fixed; this killed any opportunity to circumvent the home button as cydia provides an app for such purposes.

In the DIY spirit, I decided to replace the button myself. Removing the digitizer from the frame was not an easy task to figure out, but very necessary to replace the home button. I used a blow dryer to weaken the adhesive that joins the digitizer and the lining plastic frame. Then I used a razor-like implement to pry the two faces apart- very carefully. One of the downsides is that a rubber seal that covers the joint between the two parts needs to be removed and it appears that this will make the device less waterproof.

I will now be selling my iPhone – or keeping it for projects only. My Nokia 3124, which was purchased at Walmart (my only walmart trip in about 10 years) for $10 has not had a single dropped call. The iphone seemed to drop half of all my calls; this may be an exaggeration.

Otherwise, I have a moral objection against using Apple products: it seems Apple is insistent that I use only applications that they approve. This is a bit like Sony determining my cable line-up. I’m reading that OS 4.0 will be even stricter in accepting apps into the store and, honestly, this makes me a bit angry. Here’s one of the few assessments that ARS makes about new restrictions on development tools for iPhone apps.

Sigma Delta Modulation

I just finished reading this whitepaper on Sigman Delta Modulation. It mainly promotes their older DSP56001 chip. The document is about 70 pages and took me a few days to get through as I had to mull over each section for a bit before moving on. It also made me realize how lacking I am in understanding digital signal processing.

One of our professors at WWU had retired with very short notice. This aligned with my digital communications course and the result was an unprepared professor (whos career at WWU was the single course) and a great wealth of information missed (I blame myself for failing to self study).

Nonetheless, the paper does a great job in explaining the sigma delta A/D process, touching on principles of sampling theorem, noise-shaping, etc…

I also stumbled into this code for implementations of a FIR filter on Netrino.com.  It’s accompanied by a really great explanation of how they work.

/*
 * Sample the input signal (perhaps via A/D).
 */
sample = input();

/*
 * Insert the newest sample into an N-sample circular buffer.
 * The oldest sample in the circular buffer is overwritten.
 */
x[oldest] = sample; 

/*
 * Multiply the last N inputs by the appropriate coefficients.
 * Their sum is the current output.
 */
y = 0; 

for (k = 0; k < N; k++) 
{ 
    y += h[k] * x[(oldest + k) % N]; 
} 

oldest = (oldest + 1) % N;

/*
 * Output the result.
 */
output(y);