Posts with «general» label

Teardown of an Old Dimmer Switch

The 40+ year-old dimmer (made by Nortron Industries Limited in Milton, Ontario) in my attic broke down. Electronically, the dimming circuit still worked, but mechanically, the push button got stuck.
This is what's inside, for the curious.



The active component in the circuit is Q2006LT, a "quadrac" which, according to the datasheet, "is an internally triggered Triac designed for AC switching and phase control applications. It is a Triac and DIAC in a single package, which saves user expense by eliminating the need for separate Triac and DIAC components".

The "reversed-engineered" schematic looks like this:


For those who want to understand more on how the triac-controlled dimmer works, this article provides an in-depth explanation.

The 250V capacitors may be reused in a Nixie high-voltage (~170V) power source. For a hoarder, both the choke and the potentiometer (push button removed) look good.

I will report back on the internals of the replacement switch in 40 years or so, when it breaks down. I hope I/it last(s) that long.

Wise time with Arduino 15 Mar 22:29
general  hacking  review  

Introduction to practical electronics for children

I designed this 7-hour (one hour/day) course for 6 graders, as part of their STEM curriculum.
The goal is to introduce the children to practical electronics and teach them about:

1. electronic parts/components: how to identify/recognize them, how to measure (using a multi-meter), what they are used for (role in an electronic circuit):
  • resistors (current reduction), variable resistor/potentiometer, trimmer
  • capacitors (energy accumulator), variable capacitor
  • transistors (amplification)
  • coils (inductors)
  • diodes, LEDs
  • speakers. microphones
  • buttons, switches
  • integrated circuits, processors
  • displays
  • sensors (light, magnetic, proximity/infrared/ultrasound)
  • servo motors
  • relays
2. how to solder (using a soldering station), how to place and position parts on a board, how to check connection, how to follow steps of an instruction manual;

3. electricity and electronics concept:
  • voltage, current, resistance;
  • AC vs DC
  • digital vs analog
  • oscillation
  • rectification
  • amplification
  • series, parallel
  • voltage transformation (AC)
  • voltage regulation (AC, DC)
4. basic understanding/reading of schematics (wiring, electrical connections).


Required materials

Course schedule

Day 1
theory: introduction to components; presentation and identification (1/2 hour)
practice: beginning soldering (1/2 hour) LED + resistor, using flux, soldering wire, wick, on prototype PCBs;

Day 2
theory: introduction of a simple clock kit or another, more familiar to me, simple HDSP clock kit; assembly analysis, component placement and positioning;
practice: solder passive components on PCB; assemble the HDSP clock;

Day 3
theory: more on components; introduction to schematics;
practice: solder the active components of the clock kit;

Day 4
theory: electricity concepts (digital vs analog);
practice: finishing up the kit assembly; power, test, use;

Day 5
theory: electricity concepts (voltage, current, resistance); example of other kits;
practice: learn to use an ohm/volt/meter;

Day 6
theory: electronics concepts (oscillation, rectification, amplification, sound generation etc.);
practice: bring an electronic toy, working or not; disassembly, analysis, repair (if needed);

Day 7
practice: continuation from Day 6; identification of components used in the toy; understanding of how it works; modding/expanding functionality/adding LEDs, speaker, buttons etc.;


We are already on "Day 3", but behind schedule. Soldering is harder for the kids than I originally thought. One thing that I overlooked was that each student needs individual attention/supervision on the practical side (soldering, component placement etc.). Half hour per day of hands-on practice is definitely too short at this level. The schedule may be a little aggressive for the average Grade 6, probably better suited for older and more disciplined students. In any case, I am working on adjusting the content of the course and the feedback I receive is amazing. Kids really enjoy the fact that it is practical and some of them are amazed when they see the LEDs they soldered actually lighting up.


hidapitester – Command-line program to exercise HIDAPI

To help diagnose USB HID communication and to test out updates to hidapi, I wrote hidapitester. It is a command-line program that allows you to exercise just about every aspect of hidapi. Pre-built binaries for MacOS, Windows, and Linux Ubuntu x64. I’ve found it very useful. You can use it to: Scan for connected HID [...]
Todbot 14 Jun 05:30
general  

Oberheim Matrix 6r firmware update!

I upgraded the firmware on my beloved-but-long-unused 1986 Oberheim Matrix 6r! These synths are the royalty of analog fatness. I love their sound. This is the result I was looking for: It’s remarkably clean inside for a machine made in 1986. I acquired it used in the early 90s. Just look at the bank of [...]
Todbot 04 Jun 20:47
general  

HIDPyToy – GUI to test USB HID devices

Here is HIDPyToy. It’s a small app written in PyQt using the hid Python package to talk to USB HID devices (like Teensy RawHID or blink(1) USB RGB LEDs). Pre-build binaries are available for MacOS and Windows. HIDPyToy allows you to exercise pretty much the entire hidapi library from Python. You can: List for all [...]
Todbot 04 Jun 05:26
general  

ILOVELAMP: my Supplyframe DesignLab residency project

For four months this year I had a residency at the Supplyframe DesignLab.  I worked on “ILOVELAMP“, a project experimenting with creating lamps with configurable light emitting surfaces using addressable LED strips. Check out the project: https://hackaday.io/project/20121-i-love-lamp
Todbot 28 Jul 18:55

Replacing the battery in a Macbook Pro Retina (late 2013)

I really like the generation previous to the current Macbook Pros. You know the ones. They had all the useful ports like USB-A, HDMI, an SD Card slot, and MagSafe!  And it had a long-lived battery in a thin case. That is my Macbook Pro. And it’s wonderful. But now 3.5 years on, the once [...]
Todbot 09 Jul 03:31
general  

Learning Fusion 360 via 3d-printed iPhone tripod mounts

Here’s how I taught myself Fusion360 by updating a 3d-printable iPhone tripod mount I found on Thingiverse. Several years ago, I needed a tripod mount for my iPhone, so like anyone with a 3d printer at the time, I headed to Thingiverse and found this awesome tripod mount by haasebert. It has some very clever [...]
Todbot 07 Feb 23:09
general  

From the mailbox

Alex managed to port the Wise Clock 4 code to Arduino Mega2560 (shared here, thanks Alex!). He made this video demonstrating it in action:


Today I have a great day! I did it! I soldered a development board for my Mega2560. A little corrected code and ... voila!  Wiring diagram:
  • rtc sqw (1hz) - pin 2
  • menu key - pin 3
  • set key - pin 4
  • plus key - pin 5
  • speaker - pin 6
  • speaker - pin 7
  • HT1632_WRCLK - pin 10
  • HT1632_CS - pin 11
  • HT1632_DATA - pin 12
  • HT1632_CLK - pin 13
  • rtc sda - pin 20
  • rtc scl - pin 21
(SD While not tested, but I think it works)
  • sd miso - pin 50
  • sd mosi - pin 51
  • sd sck - pin 52
  • sd cs - pin 53

Nelson built his own hand-wired version of WiFiChron and it looks awesome:



MikeM sent in (thanks Mike!) his latest WiFiChron code (available here).
The enclosed zip file compiles under Arduino 1.6.8, though it generates a warning I haven't figured out how to eliminate.
Ray ran into a problem with data overruns. When data in an RSS feed was split between multiple packets, sometimes the last few bytes of a packet were dropped from the RSS buffer. I didn't see that problem with my clock when I was developing the code, nor did I see it on the WiseClock4. I've re-built the RSS state machine to be more CPU efficient, and now the packets are processed without drops. We probably don't need to change the RSS code on the WiseClock4 as it runs at 16 MHz and not 8 MHz like the WiFiChron.
I also changed the PROGMEM statements to fit the 1.6.8 standard.
And finally, I got the PCBs for the 1284-equipped versions of WiFiChron and bGeigie nano.
For both I relied on internal (software-driven) pull-ups (basically I eliminated the pull-up resistors), without checking first if that would work. Unfortunately, the current sanguino library does not implement correctly the function pinMode(x, INPUT_PULLUP). So I had to resort to resistors solder on the back of the board. That, plus missing a (necessary) decoupling capacitor, plus also missing some connections on the bGeigie board, made for a "fun-filled", but in the end successful, testing. More on these in a future post.

LED driver chips

After looking at the many options for driving LED displays (5x7/8x8 matrix, 7/14/16/25 segment, common anode/cathode, single/bi-color/RGB), I put together this list of commonly used LED driver chips, to have a better picture of possible combinations, and use as reference for future projects.


The bottom 5 rows are not actually LED drivers, just substitutes (require current limiting resistors).

Some of the driver chips (e.g. "8x8" in the "channels" column) provide internal multiplexing, being designed specifically for driving array of LEDs. The others, where "channels" is just one number, would require extra circuitry (e.g. transistors) and logic (micro controller code) for multiplexing.

The "CA" column indicates "common anode", "CC" stands for common cathode.

There seem to be more options for driving common anode LED displays, probably because sinking current (by the chips' LED outputs) allows for higher currents and also for using a separate power source (usually higher voltage) for the LEDs.


Wise time with Arduino 08 Jul 17:27
general  review