Archive for the ‘Life Force Learning Center’ Category

American River Parkway Introduction

7 September 2017
american river parkway map

Parkway on-site map

The American River is the waterway that flows down from California gold country and joins the Sacramento River at Sacramento.

Due to the fact that flood protection is necessary in these areas, levees have been erected on both sides of the American River. I would guess they are maybe 25 feet high. Anyway, on the river side of the levees you just can’t have houses (not normal ones, anyway) so it is all parkland. There are paved bike trails that extend from the Sacramento River up to Folsom.

I have been spending a lot of time on a particular section of this bike way, as it is on the way to downtown, which I visit often. I get on at Watt Ave, and exit to the north and east at Fair Oaks Blvd. Between Watt and Howe – the next big street before Fair Oaks – is an old oak grove that the trail goes through.

parkway grove evening

Oak grove illuminated by the evening sun.

At first for me this was just a picturesque spot. Then one morning at about 11AM, two deer (bucks with three-point antlers) showed up along the trail, nibbling on underbrush. Later that day I saw them again. The next day I saw a doe with one of them, as well as three turkey hens at another spot. This got me more interested.

These were very tame “wild” animals. Humans don’t bother them that much. A lot of squirrels are the same way. The turkey may even be escapees from a domestic flock. But the point was that these animals were showing up in what otherwise is considered a very urban area.

deer buck

Buck wanders through his temporary home.

I can only guess that the hot weather extending out for many weeks has been pushing some animals towards waterways, and a few ended up in the parkway. So I started looking at this section of the park more closely, as it seemed to be providing adequate shelter for these larger animals as well as countless other smaller ones. I spent most of my time on the north side of the river, where I spotted the deer.

elderberries

Elderberries are seen everywhere along this trail.

The land itself in this area is of some interest. On the north side of the bike trail, undergrowth consists mostly of dry grasses, not counting small trees like elderberry. Something on that side is preventing other plants from taking over there. On the levee itself the grass is being mowed, but not down here. Maybe the soil is just very poor.

forest understory

River-side forest and understory.

On the other side of the trail, the land is “foresting out” as I call it. The grasses that dry as the summer progresses are being replaced by plants that are staying green. It is more or less obvious that the soil is more moist there. Tree cover, presence of mulch and its thickness, understory plants, as well as the structure of the soil layers themselves all contribute to soil water content.

forest floor mulch

Forest floor mulch; this found right by the trail.

In any case, plant diversity and greenness increase as one gets closer to the water, but seeing it so starkly just across the width of a bike trail was a bit unusual for me. Seeing rushes growing is evidence of much wetter soil. I noticed these in only a few places.

parway rushes by trail

Rushes indicate a spot with wetter soil.

The area is also undergoing a “second flowering” at this time (early September) which sometimes happens when the weather has been a bit unusual, and seems to be up to individual plants or even individual buds. I saw a huge lily plant reflowering, plus some of the elderberries – which I know of as spring-only bloomers – and possibly some of the asters, which are known as late summer bloomers (think sunflowers), but I was seeing evidence on some of them for one bloom cycle already done this year.

asters in a field

Aster family plants grow tall in this field; very sun-tolerant.

There are a few other plants in this area that are persistent bloomers, such as the Jimsonweed (Datura stramonium) and a few others with very good heat tolerance. Jimsonweed is native to Mexico and is dangerously toxic, though has been used for a long time for medicinal purposes. It is related to tobacco, nightshade, tomatoes and potatoes.

jimsonweed flower

A jimsonweed flower beginning to wilt.

Sharing the canopy with the oaks in this region are the walnuts. California black walnuts are native in this area, but do not produce nuts as edible as the cultivated English walnut. I have also seen some cottonwoods, but not many sycamores, which are widely planted along the streets and in parks.

walnuts fruit and nut

Walnuts look like fruit; the nut is inside the husk.

There are also areas of the park “infested” by grape vines. The grapes seem to the casual observer to be a problem, as they grow over and seem to smother other plants and trees. But ecologists are hesitant to control them as a weed, because they do produce food for the animals. Humans could eat these grapes, too (I tried one), but I don’t think many do.

grapes

Grapes hide under the shade of their leaves.

blackberries

Blackberries dry out quickly in the summer heat.

peas drying in the sun

The weather is too hot and dry for these peas; they bloomed in the spring.

Blackberries are also widely seen in open areas and in the understory, and I even saw some pea vines which came from goodness knows where. So animals that venture here can be quite well fed. I have managed to photograph some of them.

turkey hens

These turkeys seem happy here.

rabbit

I found this rabbit further up the trail.

quail

Quail are more skittish than some of the other animals, so a bit harder to photograph.

rose hips

We know rose hips as a source of vitamin C. I have not seen them eaten much by animals, though.

Though this section of the parkway is an important commute route for me (and for many others), it has also developed into quite a rich habitat that supports a lot of different life forms.

Advertisements

I discover Permaculture

14 August 2017

It all started with this guy…

David Bellamy 2005

David Bellamy, 2005, by Begaoz – Own work, CC BY-SA 4.0,
https://commons.wikimedia.org/w/index.php?curid=61342374


British botanist and educator David Bellamy created an educational TV series “Bellamy on Botany” that I watched on Canadian public television while I was in high school. The point I remembered most about it was how Spain had been overgrazed, which eventually deprived it of tree cover and totally changed its climate and local ecosystems.
Bellamy was just using Spain as an example. This same thing has happened, and is happening, throughout the world. This is sometimes called “desertification.” Though it is more than unlikely that all deserts here on Earth were caused by overgrazing, when you let cattle or sheep graze through a forest, or burn down the forest (as has been done in Brazil) to create grazing land, then you have, at minimum, lost a forest with everything that goes with it.

Thus I became interested in attempts to reforest land of all types, and hoped I could some day try my hand at it.

California

Here in California, there has been a water supply problem for a long time.

In the north, damming of local rivers has provided the more regulated flow needed by modern agriculture, southern California had to reach out of state many years ago to supply its water needs. All across the state, ground water is also used. Though there are many reasons that water supplies can vary from year to year, amount of precipitation is the most obvious. And in Sacramento in the summer, that can get very obvious, as it might not rain at all for two months or more. So every year there is a mini-drought during the summer, and in recent years there has been an overall drought of some magnitude. As a result, residents are asked to conserve water, and have been whenever I have lived here. One way to do this is to plant a drought-resistant garden. We also had a water problem in Pullman, so I have been interested in how one goes about replacing an ordinary lawn with low-water plants. And now I have had a chance to look into this more, and that led me to the subject of permaculture.

Permaculture

Permaculture is a coined word invented by Bill Mollison, an Australian from Tasmania, who in his mid-life studied “bio-geography” at the University of Tasmania. He was nearly 40 and being a university student at about the same time I was being a high school student. The ecology movement was gaining steam at that time. Ecology had been an academic subject since the early 1900s, but turned into a political movement in the mid-1900s as it became more clear that some of our human enterprises were making very poor environmental decisions.

During the 1970s Mollison worked with a graduate student to develop an engineering approach to environmental design which involved water systems, agriculture, architecture and social development which they called “permaculture” in the sense that the systems so designed were meant to be permanent; what is now known as sustainable. This goal was based (roughly) on the premise that if natural systems can survive for thousands of years, then human systems should be able to, too. He believed in taking his lessons from those natural systems and implementing them in his designs. He fostered a whole movement by offering a “Permaculture Design Course” which would result in someone certified to practice or teach permaculture. By this time nearly half a million people have been so certified.

One such certificate holder is Geoff Lawton.

Geoff Lawton

Geoff Lawton, by Bonnie Freibergs – Own work, CC BY-SA 4.0,
https://commons.wikimedia.org/w/index.php?curid=47278739

Geoff is almost exactly my age. He’s a Brit who moved to Australia and took up permaculture as his mode of life and his creed. Geoff has crafted many videos – many relatively short – often produced by quite excellent videographers, which communicate his knowledge and excitement regarding this subject.

Oddly, for one of his videos he visited Davis, not too far from here, where a development (Village Homes) using permaculture practices has existed for about 30 years (construction started in 1975). Though this is an upscale subdivision in a university town, the basic fact remains that it grows an incredible amount of food that is available to residents almost year-round, and is a very shady, livable space. Other neighborhoods or communities could follow the design practices used to create Village Homes. And I was very interested in these practices because they are much more sustainable than conventional suburban design, and they create food and shade, as forests do.

Lawton has traveled all over the world spreading his permaculture philosophy and doing consulting work. He has worked in the Middle East and in India, two of the most ancient human areas on the globe, and both desperately in need of more sustainable practices. Unfortunately, current culture and big business agendas favor a restricted-access approach to this technology. Current culture does not expect life on earth to be permanent, and certain big businesses don’t plan for – or even particularly want – a sustainable Earth. Those groups seem to favor the “rape and pillage” approach to planetary life, and apparently are preparing – even as this is being written – to find some new planet to take advantage of once this one has been worn out.

Personally, though, I would very much prefer to leave behind at least a piece of ground – if not an entire planet – that keeps on giving long after I have left.

Links to Scientology Official Sites

23 April 2017

I give you this comment from “José” as a brief post to provide you with good links to vital information:

Hello and thank you for the information.

I would suggest that, if you are going to mention isolated pieces of information from Scientology to the general public, please refer your public to the source materials where they can find the information in sequence with examples, to avoid causing misunderstandings to people that never heard the subject of Scientology.

1.- Please, always refer first to What is Scientology, here the official link:
http://www.scientology.org/what-is-scientology.html#slide7

2.- Second, the subject you are mentioning in your respective blog entry, in this case the Tone Scale, in my opinion this is a good entry point:
http://www.scientologyhandbook.org/tone-scale/sh4_1.htm

3.- Please use references to the Scientology Manual which it is a good introduction to Scientology fundamentals for daily use in every part of life.
http://www.scientologyhandbook.org/

Best regards
José

My favorite site, which I should probably include a link to in every post I make, is the Volunteer Ministers training pages: http://www.volunteerministers.org/training.html

…starting to come together…

1 November 2015
interactive art rack

Equipment rack for interactive art projects.

The idea of making interactive art didn’t occur to me until rather recently. I got into electronics via audio – amplifiers and the like – and then started getting interested in music synthesis. Later I got into measurements, digital control, and computers.

During my Sea Org years I realized that not many people knew about basic electricity and electronics, yet Hubbard was using examples from those subjects in his books and lectures. So that gave me the idea of a learning lab centered around electronics. The Exploratorium in San Francisco is an example of an interactive learning environment. I wanted to do something like that at home.

It was not until 2009, when I had a lot of time on my hands but not much cash, that I started buying used gadgets at Goodwill and re-purposing them at my workbench. It was at this point that I started working on interactive “art” designs – possibly inspired by Halloween.

Making interactive art installations using electronics is certainly not an original idea with me. There are lots of examples out there, from merely cute to ponderously imposing. I was thinking in terms of something someone might have in a room at home, that would sort of “wake up” and start doing things when people came in. The development of such a system, though, was a lot more involved than I originally imagined. I still don’t have a fully interactive “dream” system up and running. But I have lots of pieces of one, and I needed a way to tie them all together.

The numbers of inputs and outputs that would probably be needed to develop such a system was difficult for me to confront. I imagined something like the old MOOG synthesizers – a mass of patch cables. But nothing seemed to come together until I purchased a used Extron video switching system for the aluminum enclosure, and found out what the back panel looked like. More signal connectors on one panel than I’d ever seen before! Finally I started working on a couple such panels to modify them to do what I thought I would need. It was not the easiest project I’ve ever attempted, but it’s beginning to be actually usable.

Technical details

I have chosen the 19-inch rack-mount form factor for my work. It is the most widely-used mounting system for professional equipment. The average rack cabinet, however, is designed for enclosures that are rather deep (more than a foot), while the things I am making are quite shallow (less than 1/2 a foot). But moving beyond the 19-inch equipment rack is another project.

Let’s go through the equipment in the top photo:
1) A row of four voltage-controlled fans, inspired by a TED Talk I saw of a guy who did some amazing things with remote-controlled fans.
2) Example of a piece of used equipment, not yet re-purposed.
3) A system for developing Arduino projects, made from a used enclosure, of course.
4) My matrix of connectors, used to route various control signals to displays or similar devices. You can see that this isn’t finished yet; none of the controls have knobs!

So far I only have a few displays and sensors to experiment with. But several others are just waiting to be finished.

Audio in or audio out?

In another part of the room, my audio rack has been newly re-assembled.

While my interactive art focuses on sound and motion as inputs and light patterns as outputs, on this rack the output is sound. That means it includes two speakers and a stereo amp, effects to be applied to sound inputs, and the beginnings of a synthesizer. Also included is my latest version of my “LED oscilloscope” and tone generator.

audio rack

Equipment rack for audio projects.

Everything is made from used gear re-purposed for what I want it to do. And all these projects are in a constant state of re-development. I keep older gear until I find or make something better to replace it with. The older stuff gets trashed or re-used inside newer projects.

Organize or perish!

The decision to organize better did not come easily. Organizing and rebuilding old equipment takes time, so I can only do so much of it. But it is a rock-solid basic ingredient to making any activity viable. So I’ve been pushing it forward, and wanted to document the current scene.

A Tale of Two Towers

19 April 2015

No, it’s not another 9/11 exposé. For my favorite on that subject see Courtney Brown’s website.

This is a little long-delayed article on making electronic equipment for a hobbyist workbench.

Here’s a view of my two towers:

the two towers on my workbench

Inception

I have designed and built a lot of test equipment for my hobby. I still do.

But a lot of it I end up hardly ever using, or using just once. I had a need. I built something to fill the need. It filled the need. And the need never returned. Or so it seemed.

But some needs kept coming up. A quick source of power. Need to measure a voltage. Need to measure a current, or a resistor, capacitor, sometimes even inductor. I had created a lot of different solutions for these basic needs and usually put them in some sort of horizontal enclosure. This was the standard approach. However, if I put the thing close to me so I could use it, it blocked access to the rest of the bench. And if I put it further away, I never used it, opting instead for something portable that I could put on the bench temporarily then put back somewhere else.

So one day (a year ago?…hard to say when for sure) I got the idea of trying a vertical arrangement. Maybe this was the compromise design that would keep the tools I needed the most close at hand without blocking my access to the rest of the bench.

I started on Tower One. I had a piece of plastic I was going to use for some sort of rack-mount project (19 inches wide) so I just turned it on its end and made a cabinet out of it.

tower one

Tower One

I wanted all the stuff I had put in past designs in this one. A bunch of power supplies, including a variable one. At least one meter. A selectable voltage divider and a bunch of current shunt resistors. And a signal generator. And since I was getting into Arduino, the signal generator would run on software.

I also wanted to include a “patch bay” that I could use to change cable connector types, as this was a constant problem.

And I came up with something.

It worked pretty well.

But after sitting on my bench for six months or so, it was obvious there were parts of it I hardly ever used. The minus supplies were one thing, but didn’t matter that much, as they didn’t take up that much space. The whole top section was not being used, either. The other parts were being used a good deal, but I wished I could monitor voltages and currents easier.

So I decided to build Tower Two.

tower two

Tower Two

I wanted to make this tower half the height of the other. I had a hard time finding a good enclosure, but finally decided to take the front panel of a rack-mount enclosure that I didn’t want and cut it in half. I used both halves, with a hinge between them. One half had the power supplies in it and the other half the rest of the electronics. I expanded my Arduino application to monitor 4 power supply outputs at the same time.

(I didn’t photograph the towers with the displays on because I thought they would just glare and look bad.)

I had to find a little stand to sit this on to get it up to near eye level, and settled on an old plastic speaker cabinet that was the perfect fit.

I simplified the “patch bay” to a few most essential connectors.

Result: I use the new patch bay all the time, but for some reason prefer the power supplies in the other tower. That’s probably because my current metering didn’t work out very well in the new tower.

I still use other tools quite often, including a little Radio Shack multimeter that I modified to work off an AC adapter, and a cute capacitor meter that I found online and installed in a rack-mount enclosure that sits to one side. This capacitor meter is very cool, as I often want to know cap values with more precision than they are marked – or can’t read the markings.

The Bench

This is probably the most productive bench I have ever used.

The Radio Shack temperature-controlled soldering iron is really nice, I have all my hand tools pretty well organized, and I don’t try to make it double as a table to eat at, as I used to with past workbenches in other apartments.

Yet the look of it is not yet that great, wouldn’t you agree? It still looks pretty messy.

Order is defined as a condition in which everything is in its proper place and performs its proper function.
– LRH
HCOPL 14 Feb 1980 Order Versus Disorder

So maybe I don’t totally have order in on my workbench yet. But at least I have some good guidance on what to do about it.

my workbench

Part of my workbench in a unusually cleaned-up state.

HDMI Exposed!

9 August 2014

It all started innocently enough…
I was wandering the aisles of my local Shopko when, there it was, seemingly alone on its shelf…a Blu-ray edition of Kubrick’s 2001 A Space Odyssey (1968). I had never seen it. Well, I thought, I should pick it up and find a way to play it…

Digital Video

Blu-ray is a data storage technology. A blu-ray optical disc has roughly 25GB of storage capacity compared to 5GB for a DVD. It uses a blu-violet laser to read the disc and a smaller spot size.

The importance of this technology to “the industry” is digital video. Digital movies have become a huge business. They are also a most potent way for corporate America (or the global military-industrial complex – however you want to look at it) to get its messages across to a live audience. Story telling has always been used for this.

In the Old Days of video, the picture wasn’t digital. It was an analog signal combined with digital synchronizing signals. It was used for TV for years. Movies used film; they still do. But now the frames of film can be digitized into digital video. They put films onto video tapes for TV shows using a similar process. Video tapes were the first way for consumers to buy movies and watch them at home. But that video was very coarse compared to the film it was made from. And so the pressure was on to bring video up closer to the quality of film. Digital video was seen as the answer.

Home movie watchers want an experience more like they get at a movie theater. And that means “high-definition” (HD) video and “surround sound” audio. People have “theaters” in their homes all set up to view movies the way they are shown in a movie theater. And blu-ray gives people a way to buy (or rent) high-definition movies on disc.

Encoding

Digital data of any type must be stored using some sort of coding system. It’s just a binary number until it’s decoded and its significance to humans (if any) is retrieved. Computer science has worked out hundreds (if not thousands) of coding schemes to turn data that means something to people into streams of binary numbers. In its digital state, data is relatively meaningless. But while in that state it can be reliably manipulated to include, for instance, encrypting, which then requires someone who wants to decode it to also have a decryption “key.” Both of these features of digital data – encoding and encrypting – are seen as valuable to people who think they have the “rights” to the data and should be able to charge others for the privilege of using it.

HDMI (High Definition Multimedia Interface)

When I got home with my blu-ray disc, I discovered that none of the optical disc players in my house were blu-ray compatible. That means I had to purchase a player. I looked online and found a refurbished one at NewEgg for what I thought was a reasonable price and purchased it. When it arrived a few days later, I found out that the player had only one output on the back: HDMI.

I had heard of HDMI, but I had no equipment that used it. My DVD player outputs analog video and audio; easy to make copies from this output. But HDMI is totally digital; difficult to make copies from this output. That’s why “the industry” likes it!

Actually, the HDMI system is pretty cool. It has four channels of very high speed digital, transmitted on “differential” twisted-pair lines the way ethernet signals are. These channels can go really fast. That means they can squeeze high-definition video PLUS up to 8 channels of digital audio (32 channels with version 2.0) through an HDMI cable, plus let the source of the signal “talk” to the receiving equipment to ensure all licensing fees have been paid by the manufacturer of the receiver!

None of this solved my problem of not yet being able to view the movie I bought.

And I didn’t see buying an HDMI TV ($500 and up) as an option.

Handling the video signal

Video is relatively easy with HDMI. I have computer monitors with DVI inputs (another digital video connection system) and the signals are compatible. Just get an adapter that has DVI on one end and an HDMI connector at the other. Then connect disc player to monitor with an HDMI cable.

Problem: No sound!

Handling the audio

Older blu-ray players had analog audio outputs (I am told). I couldn’t find one. I tried a gizmo that converts HDMI to VGA video (that’s analog but for computers) and analog audio. My player talked to it and decided it wasn’t licensed. Nothing came out!

At this point I went a little crazy. I tried my best to research it all out on the internet and make the right decision. From what I read it sounded like I needed an “A/V Receiver” and maybe even an “A/V Preamp.” A/V preamps specialize in pulling the audio out of HDMI signals. They are considered “top end” and are très cher (very expensive). Not an option.

I settled for an older A/V receiver. It had lots of audio amplifiers. If worse came to worse, I could use them for something else. It had an HDMI input, so I figured all would be good. I wanted to make sure I would have one that worked so I bought two of them! The first one arrived, I opened it and got out the manual, and there in the fine print…”the audio signals which are input into the HDMI IN cannot be reproduced on this receiver.” Wow. I had 12 60 watt audio amplifiers at my disposal and still…no sound!

The next day I went back to Shopko and got a blu-ray player there that was on clearance sale for $70. It had a coaxial digital audio output. I remembered that the receiver had a coaxial digital audio input. I was going to be in business.

I haven’t studied the manual for my Sherwood RD-5405 Audio/Video Receiver yet. It’s a computer-controlled gizmo like all these “modern” electronic things are. But I read enough to figure out how to connect it up to some speakers I had laying around, and to my new blu-ray player, and to one of my computer monitors, and I finally got to watch the movie I’d purchased about 2 weeks earlier!

(See the next post for more about some movies I watched.)

Electronics Projects Update

28 July 2014
vacuum tube demo

Vacuum Tube Demonstration Project

Here’s a project I’ve had in mind for quite some time that has finally come together. The inspiration came from the item on the right; an LED lamp made in the style of a camping lantern. “I should put a vacuum tube inside that,” I thought, “you could look at it without worrying about hurting it or yourself.”

At the time I thought I could squeeze all the electronics needed to power the thing inside its bottom battery compartment. But I gave up on that; too cramped. So recently I finally put together a separate box that has all the power supplies needed plus some meters to show you what’s happening.

The display at the top left gives the approximate value of “B+” divided by ten. Below it is the voltage on the plate, also divided by ten. There is a 6,000 ohm resistor between B+ and the plate (or anode). The top right display shows heater voltage, measured directly. And below it is grid voltage, which is actually an inverted copy of the actual grid voltage, which is negative.

Here we have the heater at about 5 volts, the grid at about minus 3.5 volts, and B+ at about 136 volts. The plate is at 96 volts indicating that the tube is conducting about 136 – 96 / 6,000 amps = 6.7 milliamps. This tube is actually rated for 6 volts on the grid, a B+ of about 200 volts and plate currents of up to 30 or 40 milliamps. So I’m not stressing it (or my box) out too much.

Almost all of the materials used in this project are used. The enclosure still has its original panel label on it; a very nice aluminum enclosure. The electronics inside were cool for their day but have almost entirely been replaced with computerized equipment. The power supplies (4 – 48 volt switching supplies plus an 8.5 volt switching supply for the heater) are all used. The digital meters are new, as are most of the control electronics (but purchased from surplus suppliers Jameco and All Electronics).

I was glad to get this one materialized, as it was harder than I thought it would be.

Electronic Percussion

electronic percussion project

Electronic Percussion Project

Here’s a skimpy shot of the beginnings of an electronic percussion instrument. Most of this is new equipment, but not expensive. What you see here includes a stage rack made of black aluminum tubing, one of two BOSS percussion pads which I have had for a long time, and two new KAT pads. Each of the KAT pads has 4 sections, so the whole instrument has 10 striking surfaces in all. All the pads output audio samples of some preselected sounds. The two KAT pads also output MIDI control signals, so I can attach them to a synthesizer and play any sound I want.

Also hiding underneath these pads are used tube clamps from All Electronics. These are an important part of the project as I did not know how I would secure the pads to the stand. The clamps required adapter plates to convert from the hole pattern on the clamps to the hole pattern on the pads. For these I employed 1/8-inch-thick aluminum that was also being sold as used/surplus.

Inspiration

One of my inspirations for building an electronic percussion instrument was Gamelan Sekar Jaya, which I participated in for a year in 1980. There is the backside of I Wayan Suweca, the Balinese teacher who showed us all how to play our parts. At center-left (looking up) is Michael Tenzer, the original mastermind behind this gamelan, who bought the instruments in Bali. He’s now a music professor at the University of British Columbia.

sekar jaya berkeley 1980

Gamelan Sekar Jaya early rehearsal in Berkeley 1980

Panel Project – First Successes

30 April 2014
panel project illustration

My panel connected to a computer.

This is my first article about a project I have been working on for some little time now. I’m presenting it now because I finally got some important features of this project working.

Depicted above is my hardware for this particular project. The “control panel” was once part of a now-replaced flight training computer program. It supposedly represents some of the controls on a Cessna airplane. It was meant to be attached to an old-fashioned game controller to give it a “flight yoke.” I added the basic parts of such a game controller to the top of this panel, but am not using it yet, and probably won’t.

A Problem and a Solution

This panel is operated by a microcontroller that talks to the flight simulation computer program over an “old fashioned” serial communication line. These days microcontrollers are equipped with “flash” memory to hold their programs. This type of memory is permanent, but its contents can be changed. The older microcontrollers were programmed once and that was it. So there was no way for me to adapt this panel for my own use.

I had to rewire it with a new controller somehow. I found a way to do it (which I won’t get into here) using a Digilent product much like the Arduino Uno that I thought would have enough pins to connect to all these buttons. This product was purposely made to be programmed in a very similar way to the Arduino. As gone over earlier, this means this product uses a programming system that is a standard used for many different purposes today.

So, after installing the new microcontroller in the panel, I worked out – over a period of many weeks a few hours at a time – a program that would send out data about the panel. The code for this is gone over below.

Discovering a workable host program

I needed a program running on a computer to stand in for the flight simulation program that went with the original control panel. The original program was made for Windows. Those programs are a bit difficult to write! But there are several ways these days to achieve a similar effect. And one pretty good open source program-writing resource is Processing, which I covered briefly in a previous post.

I discovered that Processing had a little code “library” (a collection of usually short programs that adds a certain feature) for “old fashioned” serial communications. Many modern microcontrollers communicate to the computer that is used to program them through a USB cable that is set up to mimic an “old fashioned” serial communication line.

So all I had to do with the panel was program it to send “old fashioned” serial messages through its USB cable (which also powers it) to the host program written using Processing.

Below is a screenshot of a generic panel program I wrote using Processing to receive and display data from a panel of up to 64 (8X8) separate controls. Most of these controls would ordinarily be switches, and that is the only functionality I have implemented so far.

This panel has two other types of controls besides switches: Rotary switches called “encoders” and sliding controls that can be assigned numerous values depending on position. These are a little bit trickier than switches to code for, so I’ve left them for later.

This application shows a grid of colored rectangles with some text in them. They switch colors depending on data received from the physical panel. This screenshot shows that some of the positions on the panel are open or inactive (grey). A “1” from the panel results in a yellow box and a “0” results in a red box (I was going for something more orange, but I liked this color better). So this application just gives us a start at writing a host program that can take data from a control panel and act on it, do something with it.

panel display

Screenshot of the Processing application that displays the state of the panel.

The Code

With some trepidation, I present below the code more or less as I have written it so far. The data behind the slashes are “comments.” This is information that helps the program writer explain to himself or others what he or she is trying to do with a line or section of code.

The following code was written on the Multi-Platform IDE for uploading into the microcontroller that is wired into this panel.

/*
DigitalReadToSerialMonitor2
Reads digital inputs connected to the controller pins and sends
out the result on a serial communication line.
Modified extensively for the FS-100 application.
This example code is in the public domain.
This version implements simple handshaking scheme
to make sure the host is ready for the next message.
*/
// Set up global (can be seen by all other code) arrays of values:
int prevValues[8][8]; 
// 8 by 8 array holds previous state of the panel to compare to.
int valueArray[8][8]; 
// 8 by 8 array holds most current state of the panel.

void setup()
{
/* These setup steps are needed to tell the microcontroller
what its pins are connected to. I don't use all these pins 
in this particular program. */
pinMode(0, INPUT);
pinMode(1, INPUT);
pinMode(2, INPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(11, INPUT);
pinMode(12, INPUT);
pinMode(13, INPUT);
pinMode(14, INPUT);
pinMode(15, INPUT);
// Below are the data lines that will be read by this code.
pinMode(34, INPUT);
pinMode(35, INPUT);
pinMode(36, INPUT);
pinMode(37, INPUT);
pinMode(38, INPUT);
pinMode(39, INPUT);
pinMode(40, INPUT);
pinMode(41, INPUT);

/*
The 3 volt outputs of the controller are connected to
inverting transistors ("buffer") that output 5 volt signals.
Reset needs a high pulse, so I give the buffer a low pulse.
This reset pulse is for the rotary encoders, not yet implemented.
*/
digitalWrite(7,HIGH);
delay(5); // delay() introduces a time lag in milliseconds.
digitalWrite(7,LOW); //reset the encoders just once
delay(5); // delay() helps make sure your timing works out.
digitalWrite(7,HIGH);

for (int i=0; i<8; i++) // this line implements a "loop"
{
  for (int j=0; j<8; j++)
    {
      prevValues[i][j] = 0; // This fills one array with zeros.
    }
 }
Serial.begin(9600); // This activates the serial comm line.
}

/* The Processing IDE uses a program element called draw()
to contain code that will be repeated over and over again. 
This IDE calls this loop() as it does not draw to the screen. 
Void refers to a method (function) that does things, 
but does not return any value. */

void loop()
{
/*
During each iteration of this loop, the panel is scanned
by issuing an address, then enabling the controls that are
at that address (up to 8) and reading their values.
Right now, all we are reading is digital (on or off)
controls. These data go into the valueArray.
Addresses are inverted due to inverting buffer...
Start with address 0 which is 111 inverted.
Output enable (on pin 6) is active-low. 
That means issuing a LOW turns it off (makes it HIGH).
*/
digitalWrite(6,LOW); // Ensure outputs are disabled.
delay(5);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);

digitalWrite(6,HIGH); // Now enable the control outputs.
delay(5);
// Below illustrates how an array is addressed in code.
valueArray[0][0] = digitalRead(34);
valueArray[0][1] = digitalRead(35);
valueArray[0][2] = digitalRead(36);
valueArray[0][3] = digitalRead(37);
valueArray[0][4] = digitalRead(38);
valueArray[0][5] = digitalRead(39);
valueArray[0][6] = digitalRead(40);
valueArray[0][7] = digitalRead(41);
digitalWrite(6,LOW);

// Repeat for address 2:
digitalWrite(6,LOW);
delay(5);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);

digitalWrite(6,HIGH);
delay(5);
valueArray[2][0] = digitalRead(34);
valueArray[2][1] = digitalRead(35);
valueArray[2][2] = digitalRead(36);
valueArray[2][3] = digitalRead(37);
valueArray[2][4] = digitalRead(38);
valueArray[2][5] = digitalRead(39);
valueArray[2][6] = digitalRead(40);
valueArray[2][7] = digitalRead(41);
digitalWrite(6,LOW);

// Repeat for address 4:
digitalWrite(6,LOW);
delay(5);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);

digitalWrite(6,HIGH);
delay(5);
valueArray[4][0] = digitalRead(34);
valueArray[4][1] = digitalRead(35);
valueArray[4][2] = digitalRead(36);
valueArray[4][3] = digitalRead(37);
valueArray[4][4] = digitalRead(38);
valueArray[4][5] = digitalRead(39);
valueArray[4][6] = digitalRead(40);
valueArray[4][7] = digitalRead(41);
digitalWrite(6,LOW);

// Repeat for address 5:
digitalWrite(6,LOW);
delay(5);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);

digitalWrite(6,HIGH);
delay(5);
valueArray[5][0] = digitalRead(34);
valueArray[5][1] = digitalRead(35);
valueArray[5][2] = digitalRead(36);
valueArray[5][3] = digitalRead(37);
valueArray[5][4] = digitalRead(38);
valueArray[5][5] = digitalRead(39);
valueArray[5][6] = digitalRead(40);
valueArray[5][7] = digitalRead(41);
digitalWrite(6,LOW);

// Repeat for address 6:
digitalWrite(6,LOW);
delay(5);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,LOW);

digitalWrite(6,HIGH);
delay(5);
valueArray[6][0] = digitalRead(34);
valueArray[6][1] = digitalRead(35);
valueArray[6][2] = digitalRead(36);
valueArray[6][3] = digitalRead(37);
valueArray[6][4] = digitalRead(38);
valueArray[6][5] = digitalRead(39);
valueArray[6][6] = digitalRead(40);
valueArray[6][7] = digitalRead(41);
digitalWrite(6,LOW);

/*
Next step is to loop through and compare old values to new values, etc.
*/
for (int i=0; i<8; i++)
 {
   for (int j=0; j<8; j++) 
    { 
      if (prevValues[i][j] != valueArray[i][j]) 
        { 
          String outStr = String(i)+String(j)+String(valueArray[i][j]); 
// Here is where we implement the semi-handshake. 
            if ( Serial.available() > 0)
              {
                Serial.println(outStr);
              }
            else
              {
                delay(100); 
// If we don't get an answer in 100 milliseconds, send the data anyway.
                Serial.println(outStr);
              }
        }
    }
 }
/*
Now transfer new values to old values using loops.
*/
for (int i=0; i<8; i++)
 {
   for (int j=0; j<8; j++)
    { 
      prevValues[i][j] = valueArray[i][j];
    }
 }
  delay(5);
}

And here is code written in the Processing IDE to receive this data:


/**
 * SerialReadControlPanel
 * Larry Cox 2014. Developed from "Simple Read" and other code examples.
 * Read data from the serial port and change the color of a rectangle
 * This code was tested 29 April 2014 and worked with loopback cable.
 * (Loopback = pins 2 and 3 connected.)
 */

import processing.serial.*; // This is the serial communication features.

Serial myPort;   // Create object from Serial class
int ports;       // Number of ports in list of serial ports.
String inputStr; // Data received from the serial comm line
String titleStr; // via out serial port.
int cols = 8;    // For the display grid.
int rows = 8;    // For the display grid.
Cell[][] Panel;  // Cell is a special object that displays as a grid.
String[][] labelArray = 
  {
  {"1"," 9","17","25","33","41","49","57"},
  {"2","10","18","26","34","42","50","58"},
  {"3","11","19","27","35","43","51","59"},
  {"4","12","20","28","36","44","52","60"},
  {"5","13","21","29","37","45","53","61"},
  {"6","14","22","30","38","46","54","62"},
  {"7","15","23","31","39","47","55","63"},
  {"8","16","24","32","40","48","56","64"} 
  };
int[][] valueArray = 
  {
  {1, 9,17,25,33,41,49,57},
  {2,10,18,26,34,42,50,58},
  {3,11,19,27,35,43,51,59},
  {4,12,20,28,36,44,52,60},
  {5,13,21,29,37,45,53,61},
  {6,14,22,30,38,46,54,62},
  {7,15,23,31,39,47,55,63},
  {8,16,24,32,40,48,56,64},
  };
  int rate = 0;
  int evenToggle = 0;
  
void setup() 
{
  size(800, 500); //Initial window size.
  
  ports = Serial.list().length; // Find out if any ports are active.
  if (ports > 0) // If one is, assume it's the first one (index = 0).
  {
  String portName = Serial.list()[0];
  // I create an informational title string.
  titleStr = "# of ports = " + str(ports) + " :" + portName;
  myPort = new Serial(this, portName, 9600);
  myPort.bufferUntil('\n'); // '\n' means a linefeed in the C language.
  myPort.write("000"); 
  myPort.write('\n');
/* The above lines will initiate the first serial event if 
the serial line is connected as a loopback. */
  }
  else
  {titleStr = "No serial ports currently active.";}
  Panel = new Cell[cols][rows]; // This is called a "constructor."
}

void draw()
{
  background(255);             // Set background to white.
  fill(rate);                  // Fill color for update ticker.
  ellipse(750,25,40,40);       // Draw update ticker.
  fill(0);                     // Set fill to black.
  text(titleStr,2,2,700,20);   // Draw the title.
  
                                // Create the panel.  
  for (int i = 0; i < cols; i++) // For each column in Panel...
  {
    for (int j = 0; j < rows; j++) // create a row of cells. 
    {
      // This line initializes each object in turn.
      Panel[i][j] = new Cell(i*100,(j*50)+50,100,50,labelArray[i][j],str(valueArray[i][j]));
/* Cell Constructor syntax:
Cell(float posX, float posY, float width, float height, float angle) */
      Panel[i][j].display(); // Draws the panel a rectangle at a time.
    }
  }
  // I want an indicator to flash at the speed I'm updating the display.
  int nextRate = 0;
  if (rate == 0) { nextRate = 255; }
  else { nextRate = 0; }
  rate = nextRate;
}

/*
The serialEvent() method runs automatically whenever the buffer reaches 
the byte value set in the bufferUntil() method in setup().
This is the crucial code that responds when data are received.
*/
void serialEvent(Serial myPort) 
{ 
  inputStr = myPort.readStringUntil('\n'); 
  inputStr = trim(inputStr);  // Just in case it contains junk characters.
/* The int() method will convert a numeric string to a value. */
  int i = int(inputStr.substring(0,1)); 
  int j = int(inputStr.substring(1,2)); 
  String k = inputStr.substring(2);
  valueArray[i][j]= int(k); // Updates array contents - crucial!
/* I wanted to toggle the data that gets sent out so in a loopback 
test I could see it changing on the screen. */
  int nexToggle = 0;
  if ( evenToggle == 0 )
  { 
    myPort.write("000"); // Send a string to serve as a test and to ask for more data.
    nexToggle = 1;
  }
  else 
  { 
    myPort.write("001"); // Send a different string...  
    nexToggle = 0;
  }
  myPort.write('\n');
  evenToggle = nexToggle;
} 
// A Cell object is defined below:
class Cell 
{
// A cell object knows about its location in the grid as well as its size.
  float x,y;   // x,y location
  float w,h;   // width and height
  String label; // Cell "content"
  String value; // rest of cell content

  // Cell Constructor
  Cell(float tempX, float tempY, float tempW, float tempH, 
        String tempLabel, String tempValue) 
  {
    x = tempX;
    y = tempY;
    w = tempW;
    h = tempH;
    label = tempLabel;
    value = tempValue;
  } 
  void display() 
  {
    stroke(255); // Draws a black border.
    strokeWeight(2); // One of several border options.
    fill(204); // Fill color for the next object to be drawn.
    rect(x,y,w,h); // Gives us an array of boxes on the screen.
    fill(0); // Fill color for the text.
    text(label,x+2,y+2,w-4,h-29); 
// Above line draws text superimposed over the boxes.
    text(value,x+2,y+27,w-4,h-29);
  }
}

I didn’t capture quite the latest version of my code with the yellow and red logic in it, but this is plenty for now.

Voltage indicator

4 April 2014

This post is an experiment for me.
I don’t usually describe how I do my design work.
The objects, generally speaking, are not that photogenic, and electronics is a bit of a dry subject. But some people just aren’t familiar with it, and they should be. This is the age of electronics on earth.

most of my patch bay

My patch bay – right side.

Design opportunity and goal

While some electronics designers work within the framework of marketable consumer or industrial products, I don’t. It’s strictly “for fun” you might say. But any designer requires opportunities to do his or her work. After all, you can always buy OTS (off the shelf) if the item you want has already been designed.

I had made a “patch bay” – a kind of interconnection panel where lots of signal connections come together at the same place – for signals used to control my displays. I had purchased a blank piece of aluminum from a local welding shop, cut a slot down the middle (don’t ask me how) and drilled a bunch of holes in it for switches and connectors, then started loading it up with circuit boards.

But on the far left end I had four holes where nothing really seemed to fit: A design opportunity! I decided I wanted a voltage indicator that used four LEDs that got brighter as the monitored voltage got closer to each one’s center setting. The usual bar graph, of which I had made many using a commonly available part, uses ten LEDs that just go on when the input voltage goes above their set point, and off when it goes below. There is also a “dot mode,” which I like to use because it uses less power, where the LED whose set point is closest to the input voltage is the only one that goes on.

I didn’t want to use ten LEDs in the usual way. I wanted to use only four and have them get brighter and dimmer, the way my light panels are designed to do. I wanted each one a different color, but I only had three colors on hand, so the middle two are green, the top is white and the bottom is red. The red LEDs I have are a good deal less bright than the other colors, so I had to try to compensate for that, too.

patch bay left side

My patch bay, left side.

Dot display IC (integrated circuit)

I decided to use the dot display IC as the central component in this project. The two bottom outputs would go to the red LED. The next three to the lower green. The next three to the upper green, and the top two outputs to the white LED. You can set up the IC for so much current per output. Old LEDs required 20mA (milliamperes) to be bright. But modern LEDs only need 2. I tried limiting the current through the LEDs using series resistors. The brightest LED (white) would get a big series resistor (7K – kilohms) the green ones would get smaller ones (I think I used 1.5K) and the red would get the smallest series resistor, something like 100 ohms. These values were arrived at experimentally, and weren’t perfect, but good enough for this project.

How do you get an LED to get brighter and dimmer? You can simply drive it with more or less current. But almost exactly the same effect can be achieved by turning it on and off rapidly using a technique called “pulse width modulation” (PWM). This works because the body only takes a picture of its environment about 100 times a second. So any light flashing at about that rate or faster will appear constantly on. In technology, this is most commonly experienced when watching video monitors (or films). The picture on them only changes 30 to 70 times a second, but the motion appears continuous.

To do this with my dot display IC, I would have to make the input move back and forth through the set points of each of the dot outputs. I decided to use a “triangle wave” for this, and here it is:

triangle wave

This image is from my USB oscilloscope. There is a grid with the vertical and horizontal scales shown by the knobs. The period of this waveform is about 10mSec (milliseconds) and the amplitude is about 800mV (millivolts) peak-to-peak. So it’s oscillating at about 100 Hz (Hertz, cycles per second) and it’s about a volt high. The entire scale of my meter is 2.5 volts, so this signal should activate about 4 outputs at one time, with the one at the center of the oscillation the brightest.

I coupled this signal to an amplifier through a capacitor, then made the DC (direct current – not oscillating, or changing very slowly) level of the amplifier equal to half the input signal (0 to 5 volts). This created an input signal to the dot display IC of a triangle waveform going up or down depending on the slowly-changing DC level being measured, centered at zero to 2.5 volts, the input range of the dot display IC.

Does it work?

With the input set lower (see knob) the red LED is brighter than the lower green (by a little).

low input display

With the input set higher, the white LED is brighter than the top green.

high input display

The effect is quite noticeable, particularly to the eye (less to a camera). I was pretty happy with the outcome.

Limitations of measuring instruments

The range of voltages I use for my analog projects is zero to five volts, so that’s the only range my indicator needed to have. Since the electronics run on +7V and -5V, they can’t put out much more than 5 volts anyway.

But I noticed a funny thing happening with my USB oscilloscope when I didn’t connect it to my signal through a capacitor (to block the DC component of the signal).

clipped triangle wave

It was “clipping” off the top of the waveform! My cheap little USB oscilloscope only has a display range of plus and minus 5 volts! (at least at the settings I was using). This is a very small DC range for a professional oscilloscope, where more like plus and minus 50 volts is what is expected. This little scope had no DC offset built into the front end (all good scopes do) so if the signal goes beyond certain limits, it just disappears.

Here is a trace of the 12volt square wave that creates the triangle wave. Notice that it stops at a little under 5 volts. This means I will have to build a more compliant front end onto my scope if I want to see the entire waveforms in my 8-12volt projects.

clipped square wave

Comments?

I hope this post gives some small insight into the electronic design process. I kept it conceptual. The hardware details are VERY dry. You just look up the data sheets of the parts you decide to use and figure out how to connect the correct pins together. There are certain real-world considerations to take into account, such as using bypass capacitors on the supply pins so signals don’t get into the circuit in unexpected ways. And you have to know how to solder if you want to make a permanent circuit board. Solder is hot metal and it has stuff inside that smells pretty bad when it burns, so a lot of people don’t like it and I don’t blame them. It’s a great technology for military equipment, but hobbyists could probably get by with conductive glue.

Anyway, I rarely get real comments on this blog and would appreciate some. They don’t appear immediately; I have to go through them and approve or disapprove them.

Bye for now.

Spring News

31 March 2014

More photos of the tiny white roadside flowers!
They’re back! They are a crucifer, probably an alyssum that most would consider a weed. I took my camera out to “the vacant lot” on a brisk, sunny Sunday afternoon for these shots.

flowers look like snow

They look like snow on the ground from a distance…

drift of tiny white flowers

Get closer and you still can’t really tell..

mat of tiny white flowers

Yes, they are flowers!

huge field of tiny flowers

From an ant’s eye view, they look like a huge field!

flowers in gravel

Basalt gravel adds a little character.

defiant little flower

They defiantly grow where no plant has grown before!

Remote Viewing News

Speaking of defiant, Courtney Brown, who runs the Farsight Institute single-handed, has released his latest project, after much fanfare in an attempt to get more attention. This project concerns the building of the Great Pyramid of Giza. Yes, ETs and cloned rock miners appear to have been involved. The stones (up to 80 tons in weight) were hovered into place with the manual help of human devotees. The sessions include the data that another ET group came in and introduced monotheism to the area. The “magic” of the pyramids had evidently waned by that time, and the people, finally realizing they were free to leave the area, did in droves.

Courtney is convinced that data gained from Scientific Remote Viewing can change the planet for the better, but he has come to understand the grim realities of the situation: He has only two remote viewers he can rely on; the technology is dying out. You need a group to push a new technology forward, or it will die as an esoteric curiosity. Data of this variety is being pushed into the “alternative media” with the hope that it will never be picked up by the mainstream. The “intelligence” community seems very involved in this activity. They also work hard to discredit and/or ruin anyone who has something truly promising or revealing to offer. The strategy is to make the “alternative realities community” – also known as “New Agers” – look like a bunch of kooks so no one who wants to be known as “serious” or “legitimate” will touch them. Works pretty well most of the time.

One year on the Palouse as of end of January!

tiny flowers with bicycle

My bicycle celebrates its first year in service.