New York Primary Elections

The New York Primary Elections are on Thu, Sep 13th. We’ve learned in recent years that primary elections are very important; the results of those elections bear on issues like who the superdelegates are at the Democratic National Convention.

I’ve been doing some web research on the candidates. I found Ballotpedia to be a very useful resource, in that it let me know who’s running. This district finder let me identify for the first time which are my Congressional and Senate districts, both Federal and State. Hey, I’ve only been living here for 30 years. How did you expect me to know?

What follows are my current impressions of the candidates who will appear in contested Democratic Primary elections on my district’s ballot. Feel free to (politely) disagree with my views and reasoning.

The Democratic Gubernatorial Primary is between Andrew Cuomo and Cynthia Nixon. For me, it’s a tough choice. I like Nixon’s policy positions, even if they’re a bit focused on NYC issues. However, recent events have soured me on voting for inexperienced politicians solely on the basis of their celebrity. On the other hand, I don’t like Cuomo going to bed with the IDC.

Verdict: At this moment I’m slightly more in Nixon’s favor. I wish she’d run for a lesser office than Governor to gain political experience; if she wants improvements in the NYC subway, why not run for Mayor? I’ll follow the news for the next month and see if the balance shifts.

New York Attorney General: This is certainly an election I should know more about, especially with four candidates competing for the nomination.

Verdict: Again, a tough call given my general ignorance of the politics involved. After reading Ballotopedia’s links, I plan to vote for Zephyr Teachout, mainly for her anti-corporate stance.

New York State Senate: I’m in NYS Senate District 38; the race is between David Carlucci and Julie Goldberg

Verdict: Another tough call. I think I’ll go with Goldberg, as education is an important issue for me. Also, I don’t like Carlucci’s IDC connection, even if he says he’s trying to end it.

All the other elections in this upcoming Democratic Primary are uncontested, at least in my district.

Argh! Am I making the right choices? Are there any right choices? Argh!

It’s been a long time

Once again, I’m in an introspective mood as I contemplate my history in the Craft.

It’s been forty-three years since I took out a copy of Real Magic from the reserved stacks of the main branch of the Brooklyn Public Library. Without that book, I never would have engaged with paganism in my later years.

It’s been twenty-eight years since a friend of mine loaned me her copy of The Spiral Dance. Without that book, I would never have started searching for a Wiccan group.

It’s been twenty-seven years since Deborah Lipp allowed me to come into her home to attend classes on Wicca.

It’s been nineteen years since my High Priestess kissed me on the forehead and gave me permission to start teaching my own Wiccan Grove.

Over the past nineteen years, Acorn Garden has been a continuously functioning group (with the exception of a six-month sabbatical I took in 2005). People have come and gone, and a few have come and stayed. I did my best to teach them what I could.

It’s only now, after nineteen years of effort, that I’m just starting to work with my students on the magical issues for which I started my own group in the first place.

In some ways, it feels like I’m not even half-way towards teaching what I want to share. Do I have another nineteen years of teaching in me? I’m sure I’ll know by 2037.

Or perhaps it’s not a matter of teaching everything. It may be enough to prepare my students to move forward, learning for themselves, teaching their own students, hopefully not repeating my mistakes, and making some new and interesting mistakes of their own.

In the meantime, I give thanks for the blessings of Hecate and Hermes, and for allowing me to walk in their footsteps. Blessed Be!

Otter Voice Notes

I’m still working on the biography of Isaac Bonewits, though I admit my progress has been slow. I periodically scan more documents from the last boxes of papers Phaedra sent me.

One big issue with my research was transcribing interviews. I have about 70 hours worth of interviews so far, with still a few more to go. (I have to contact Joan Carruth, Carolyn Clark, and the members of Real Magic someday.)

There have been speech-to-text systems around for quite a few years, but they weren’t set up to handle multiple speakers. I knew I could never afford the cost of having the material professionally transcribed. I didn’t really need the transcriptions right away, since there was so much other organizing, scanning, and research to do, so I let the problem slide. I hoped that the technology for transcribing interviews would emerge.

It looks like my hopes have been realized. Otter Voice Notes is a program for both Android and iOS devices, and can be run in a web browser for desktop systems. It can transcribe an interview “live”, which I have not tried, or work with previously-recorded audio files.

As a transcription service, the results from Otter Voice Notes are far from perfect; on the other hand, my audio recordings are further from perfect. The software does a reasonable job given what I provide as input. Here’s a small excerpt from an interview I did with Oberon Zell-Ravenheart back in 2011:

Otter Voice Notes example.png

(The person we’re discussing is Ron Wright, whom I interviewed a few months later.)

There are some issues that are both inevitable and unavoidable. For example, there is no way Otter Voice Notes could have correctly interpreted the name Carl Weschcke or the name of the publication Gnostica. I have yet to see OVN correctly interpret “Gardnerian”, “Druidry”, or “Phaedra”. There’s no mechanism, at least in the web interface, for training OVN to learn new words. And there are the occasional wrong guesses (Oberon said “Let me see now” not “Let me see how you know”.)

What OVN does fairly well is identify the different speakers. In the above excerpt, I did not explicitly tag the sections spoken by me or Oberon. I tagged a few sections earlier in the conversation with our names, and Otter Voice Notes scanned and assigned the tags for the rest of the conversation. Again, it’s not perfect, especially when I’m slurring words or speakers interrupt one another, but it’s far better than tools like Dragon Dictate which offer no form of speaker recognition.

Another feature of the web interface (I assume the phone apps are similar) is that you can play back the audio file and Otter Voice Notes will highlight each word in the text as it’s being said. You can click on any word in the transcription and start playing from that point. That’s particularly handy: you can search text for a particular topic, then listen to that one paragraph to get the words that were too faint or too obscure for OVN to transcribe.

You can edit text via the web interface and merge paragraphs. That seems simple enough, until you see a long stretch of one- or two-word paragraphs. That happens because OVN will insert a new paragraph every time there’s a pause. For those of us who say “Um” a lot (modesty forbids me from mentioning any names) it can make for a lot of paragraphs.

Otter Voice Notes offers 600 minutes of transcription for free so you can see if you like the service. Once I tested it, I didn’t need the rest of those minutes. I immediately subscribed and uploaded 70 hours worth of interviews in MP3 and M4A format. Within a half hour the transcriptions were ready for me to tag the speakers and export the transcribed text.

I’m glad I waited until technology caught up with my needs. Now all I need is a program that will code and tag 10GB worth of scanned files for me…

230V Air Conditioner and HomeKit, part 10: Are We Done Yet?

Of course not!

The setup I described in my previous post has an issue that’s not obvious: the fans are on all the time. They’re powered by the +5V pins on the Raspberry Pi.

The fans were pretty quiet, but they were still audible in a quiet room. It was also a waste of power. I wanted the fans to only turn on when power was supplied to the solid-state relays.

At first, I had the brilliant idea of attaching the fans to GPIO pins, just as I had done with the relays. Fortunately, I did some homework; otherwise Goldy would have mocked me for days. It turns out that while the +5V pins can easily supply the 200mA required by the fans, the GPIO pins can only supply 16mA. If I had plugged the fans into the GPIO pins, it might have damaged the RPi’s circuit board.

Fortunately, I found this page which contained a simple circuit for controlling the fans from a GPIO pin. Here’s the circuit diagram from that page, redrawn by me:

Fan circuit

I included some extra details in my diagram, because I hadn’t worked with transistors in years and needed the B, C, and E pins labeled on the diagram. It was also the first time I ever worked with diodes. I read up on working with transistors and diodes so I’d be able to tell how to put them in the circuit. I had some old 470Ω resistors, 2n222 transistors, and a breadboard from my old wizards’s staff project, but since I had to get new diodes and a breadboard jumper wires anyway, I decided to spend the extra few bucks for new breadboards and transistors.

Here’s what it looked like when I installed two sets of components for the above circuit and tested it with my Raspberry Pi:

Fans and breadboard

It’s a bit of a mess, but it worked: I could turn the fans on and off via gpio commands.

Next I put the assembly in the box, which made things look even messier:

Breadboard in box

Again, it all worked.

I’m aware that for a “finished” product, I should have transferred the transistors, diodes, and resistors to a printed circuit board. In fact, they make circuit boards of the same size, shape, and pin layout of the breadboard so you can transfer the components to the same sockets and solder them in place. However, I wasn’t prepared to try to resurrect my old soldering skills. The breadboard came with a sticky backing that I used to fix it in the box. So far, none of the components have shown any inclination to shake themselves loose.

Next came getting the box mounted on my wall near the air conditioner. I quickly learned two things:

  1. The project enclosure box was not designed to be mounted on a wall.
  2. The cable of the micro-USB power supply that came with the Canakit was not long enough to reach from where I wanted to mount the box to the nearest available electrical outlet.

To deal with the first issue, I drilled some holes in the wall and use dry-wall anchors and bolts that fit in indentations in the back of the box. That wasn’t enough to hold it up, so I added some angle brackets:

Box mount

That still wasn’t enough, so finally I conceded “defeat”, drilled a couple of additional holes in the back of the box, and used dry wall screws to fix it in place:

Box on the wall

You can see my expert carpentry skills: Even though I used to a level to set up everything, the box still came out slightly crooked. Fortunately, it’s located behind my TV set where it’s not visible to the casual observer.

To handle the second issue, I purchased a USB charger and a separate 10-foot-long micro-USB charger cable. Before I placed the box on the wall, I tested this combination for several days to make sure the Raspberry Pi wouldn’t overheat or display any unusual symptoms.

As I type these words, my air conditioner has been running for several hours with power supplied through this box. The heat sinks are only slightly warm at best. Goldy is still nervous, but she’s becoming more relaxed with each passing hour.


In the first post in this series, I asked if there was any existing way to control a 230V air conditioner via HomeKit. It wasn’t until half-way through the project that I found this Reddit post. It turns out that people who own pool water heaters have to deal with this problem too, and they have several solutions.

Of the ones discussed in that post, if I had known about it I would have purchased the ELK-9200 Heavy Duty Relay. Its containing box is 12″x12″x3″, somewhat larger than the enclosure I went with, but it’s designed by professionals and is doubtless safer. I still would have had to cut apart power cords, so Goldy would still have cause to be anxious (and you would still have to read part 7).

On the other hand, if you’ve added up the cost of all the materials I purchased for this project, the ELK-9200 would have cost about half as much.

Wrapping it up

Here we are, at the end of my longest series of blog posts since I wrote about a road trip I took in 2008. That saga had radiant fruits of passion; this saga had an imaginary talking goldfish. It all balances out.

I now have the parts for future Maker projects if I’m so inclined. I have a Raspberry Pi, which is a pretty decent little computer. I may install another HomeBridge module that would give me some control over my PS4.

I learned quite a bit, I made a new imaginary friend, and got some more practice writing blog posts. All in all, it was a positive experience.

230V Air Conditioner and HomeKit, part 9: The Box

I knew from the start of this project that I’d need to put all the components in an enclosure. This was to be a semi-permanent installation; I couldn’t have wires and heat sinks dangling everywhere.

Sam Groveman suggested this type of project box. I picked one that would be big enough to hold the solid-state relays along with their heat sinks. Here’s a picture of just the box:

Project box

The size of the box is roughly 12″ x 10″ x 5″, a bit large, but I later became glad I had the extra room to work in it. Those round things on the side of the box are grommets; you can see that I took one out for the picture. The grommets could be easily cut with Xacto knives. I cut small holes in them so that hot air (if any) could circulate through the box, but hopefully discourage insects and cat hair from getting inside.

The lid of the box screws attaches to the base with screws, and there’s a thin rubber gasket around the rim of the lid. Of course, once I cut holes in the grommets the box was no longer water-tight. It’s described as an “electrical project enclosure” but I am under no delusion that this applied to house current. This means I wanted everything in the box to be secure and that no metal part that carried 120V AC would be exposed.

As I mentioned in part 6, I wanted to use fans powered by the Raspberry Pi to cool down the heat sinks. The problem was the fans’ wires weren’t long enough. So I extended the fan wires:

Extended fan

I got a heat-shrink set so I could splice the wires from the fans to the jumper cables.

I followed a suggestion from Sam and used scrap wire to tie the fans to the heat sinks. It looked inelegant, but it worked:

Fan attached to heat sink

The heat sinks came with screws to attach them to the solid-state relays, but no screws to attach them to a project box. So I purchased a set of small nuts, bolts, and washers, along with a cheap tap wrench with taps that corresponded to those screws. I marked where I wanted to put the bolts inside the box, used a Dremel to drill a hole in that spot, and tapped the hole from the outside. I was pleased to see that the bolts screwed into the holes and held nicely until I could get the washers and nuts on them.

The Raspberry Pi case did not not have any mounting holes, and neither does a “bare” RPi board. I settled for attaching the case to the box with adhesive Velcro strips; I guessed (correctly as it turned out) that I would want to take that case out the box frequently for various adjustments.

Here’s the final layout of the box:

Cords held with Sugru

You can see that I held the power cords in place with Sugru. It hardened nicely and I could tug on the cables without them budging. However, it probably would have been less expensive if I used gasket sealant.

Now came the part that Goldy was dreading (and this is your last chance to read part 7 again before you put her life on the line): I plugged the power cord into the NEMA 6-15 outlet. No sparks or flares or anything of the sort. I told HomeKit to turn the circuit on and off… and it didn’t work.

Goldy breathed a sigh of relief. Then she started laughing. It was not her finest moment.

What do I mean by “it didn’t work”? For the first test, I didn’t plug the air conditioner into the female end of the extension cord; if something were to go wrong I didn’t want to damage it. Instead, I used my multimeter to measure the AC voltage at the female end of the cord. When HomeKit turned the relays on, the voltage was 120V AC. When it turned the relays off, the voltage went down to 117V AC, but it did not turn off.

I talked it over with Sam. His first suggestion was that solid-state relays might require a load to function. Then he did some web searching and found this primer on solid-state relays. We looked it over. Perhaps I’d purchased the wrong kind of SSR for the project; I wasn’t sure whether I’d need SSRs that could handle resistive loads instead of inductive loads. Sam thought using a mechanical relay instead of a solid-state relay might be a better choice; then I wouldn’t have to worry about the type of load.

I thought I’d give it one more try before I ordered new relays. This time I would perform the full test, and plug the air conditioner into the hacked extension cord. Goldy covered her eyes with her fins, and…

It worked perfectly. Sam’s first suggestion was the correct one. I later scrolled to the bottom of that primer and confirmed that SSRs require an actual load to function. My multimeter was not sufficient.

I verified I could turn the A/C on and off using HomeKit. Then, as Goldy watched apprehensively, I left the system on for 45 minutes. Again, no sparks, no fumes. Those heat sinks remained at room temperature as far I could tell. Maybe the fans made a difference, but I doubt it.

My knowledge of AC circuits isn’t quite good enough to extrapolate how many watts should be dissipated by an SSR from its data sheet. If I use a calculator like this one and assume a 1.6V voltage drop from the data sheet at a maximum of 15 amps, the power loss within the relay should be about 24 watts. If I believe that number, I might expect the relays to get as warm as a modern florescent bulb. I didn’t even detect that much heat.

The project works! Yay!

So this should be my last blog post on the subject, right? Goldy is giggling. We may learn the reason why in the next installment: “Are we done yet?”