This is one of those "I keep needing this, so I bet it will help someone else" things.

A few months ago I purchased a "Basic Electronics Parts Kit" from Radio Shack (I'd have linked to it right there if I could find it, but sadly I cannot... it's part number 09A12, which no longer shows up on Radio Shack's website).  In said part assortment is a handful of ICs, but it appears that they are only for those that have the important parts of the 4000 and 74LS series of ICs memorized.  Since I am not one of those people, I looked up each one.  Here's the list and what they are:

LM386: Op Amp
NE555N: single timer
UA741CN: Op Amp
CD4013BD: Dual D-Type Flip-Flop (similar to 74LS74)
CD4017BD: Decade counter
UTC7805: 5V Linear Regulator
LM7812: 12V Linear Regulator
HD74LS00P: Quad 2-input NAND Gates
HD74LS02P: Quad 2-input NOR Gates
HD74LS08P: Quad 2-input AND Gates
HD74LS10P: Triple 3-input NAND Gates
HD74LS74AP: Dual Flip-Flop, D Type w/Set Reset
HD74LS86P: Quad 2-input XOR Gates



Category: General Stuff

On the way back from a meeting, I dropped by the Columbus Micro Center Mall.  I really didn't know what I was looking for, but I figured I'd want to look at something for a project in the works (that involves an accelerometer or two), my Hack A Day Trinket Project, and anything else that looked good.

It was a good trip.

I grabbed a few (relatively expensive) breakouts for SOIC and SSOP chips, which I'll ultimately use one for an SA602 mixer. I also grabbed a small pack of resistors, which will be in use for my HAD Trinket project.  I found two accelerometers for $5 each (!!!).  I grabbed a few PC boards.  And the best part - a Yun for $55 (off their normal $75)!

I uploaded a microcontroller Hello World (a blinking LED) to the Yun via Wifi.  It was awesome and convenient.  The code is below, and it'll work for any Arduino or clone (I initially wrote it for a Trinket).

In action on a Trinket:

And on a Yun (I used the onboard LED):

Next week, back to the normally scheduled DDS mischief.


Category: Arduino

A while back, I bought a few DDS modules through eBay.  I used code from NR8O to program one of them and started pulling parts from the bin and pushing the output signal through the parts and into a load resistor.

2014-11-28 23.23.26

Experiment 1: Just a diode

2014-11-28 23.23.36

Result 1: the large waveform is the input signal (A), and the small bumps are the scope channel 2 (B). The diode rectifies the signal, which is why the bumps are only going up (and not down). The forward voltage drop on the diode is why the bumps are so small.

2014-11-28 23.30.07

Experiment 2: a diode bridge

2014-11-28 23.30.13

Result 2: This is similar to the circuit above, just more voltage drop because more diodes are involved.

2014-11-28 23.38.55

Experiment 3: Through a capacitor

2014-11-28 23.39.01

Result 3: the capacitor blocks DC, but allows AC through, with some voltage drop.

2014-11-28 23.39.50

Experiment 4: Capacitor parallel with load.

2014-11-28 23.39.56

Result 4. No change because there is nothing between the test points.

2014-11-28 23.41.35

Experiment 5: through an inductor

2014-11-28 23.41.39

Result 5: there was no change.

2014-11-30 14.23.58

Experiment 6: inductive load

The video below shows what happened.  I'm sure there's an explanation of the instability, but I don't know the explanation.

Stay tuned for experiments 2!

73 de KE8P

Category: Arduino

While it appears I have not been affected, there is proof that QRZnow (NOT TO BE CONFUSED WITH QRZ.COM) is stealing content. Details can be found on Reddit. A real-world story can be seen on NT1K's website.

Please do not support the thieves. Seek out the original authors and support them.

Category: QSTs

I've run into a situation where I need to be able to read a temperature with my Beaglebone Black (I really don't care about humidity).  After setting up the sensor on my Rpi, a few have emailed me and asked about doing the same for a BBB, and I haven't had much by way of response.  The file that I previously used didn't work on a BBB.

On the Beaglebone Black, there are a few preparation items that must be completed:

1: Make sure you have Internet connectivity (I had to add DNS servers to /etc/resolv.conf)

2: Go to Derek Molloy's blog and follow step 3 under "Fixing SSL Problems with Curl"

3: Make sure Python and some Python tools are installed:

opkg install python
opkg install python-pip python-setuptools python-smbus python-misc

4: Install the Adafruit BBIO Python tools:

pip install Adafruit_BBIO

5: Follow LadyAda's steps to install

At this point, you can connect the sensor, make sure to use SYS_5V (P9 7 or 8) and not VDD_5V.

2014-10-28 21.09.56

Pin 1 on the sensor is connected to P9_7, pin 2 has a 10K pullup resistor and is connected to P9_11, pin 3 is connected to P9_1.

At this point, you can go into the examples and it should work... in Centigrade:

Screenshot 2014-10-28 21.12.27


...which is great for those of you that use that standard, but in America we use Fahrenheit, which is a pretty simple code change that you can see in my fork on Github.

So now...

Screenshot 2014-10-28 21.32.39

At this point, a mix of Python and Cron would make this able to send data to ThingSpeak, Xively, Phant, or any of the other IOT logging services (which may become a future blog post).


PS: for full disclosure, I'm looking at this because I've been brewing beer and I'd like to THINK my basement temperature is under control, but with temperatures possibly starting to fall in my area I'd like to keep a better eye on it. :-)

Category: Beaglebone

Yesterday I tore into a Keurig machine that I saved from a landfill.  The machine no longer worked and I don't really even recall what, but I have another Keurig that collects dust (I use a drip coffee maker), so why not.


  • This could be the beginning of something, I'm not sure what though
  • I now have two check valves and three pumps.  One of those pumps works (the other two, I'm not so sure).  These are not self-priming pumps.  Two of the pumps and the aerator are marked at 100 mA, which is nice and low but still too much to be driven directly from an Arduino pin.
  • The tank can be pretty useful.  It has a thermocouple and overheat switch on the side, a heating element at the bottom, and several probes on the top.
  • This is dangerous work.  Lots of sharp plastic.  I'm fairly certain these were made to be assembled only.

Category: General Stuff

One of the things I was looking into is a digital compass module.  These are modules that return a direction it is pointing relative to magnetic north.

I started by using the Bus Pirate to access and read the module.  I did that as below:

m <-- for menu
4 <-- for I2C
3 <-- for 100KHz

I2C>(1) <-- I2C Address Search
Searching I2C address space. Found devices at:
0x3C(0x1E W) 0x3D(0x1E R)

I2C>[0x3c 0x00 0x70] <--Set measurement mode to 8-average, 15Hz

I2C>[0x3c 0x01 0xa0] <-- Set gain to 5

I2C>[0x3c 0x02 0x01] <-- Set to single-measurement mode
I2C>[0x3d r:6] <-- Read 6 bytes
READ: 0xFF ACK 0xFD ACK 0xFF ACK 0x98 ACK 0x00 ACK 0x5F

This returned 0xFF, 0xFD for X, 0xFF, 0x98 for Y, and 0x00, 0x5F for Z.  This is Twos Compliment Form, which is best explained by this Stack Overflow Community Wiki.

X Coordinate (0xFF): Binary 1111 1111 + 0xFD: Binary 1111 1101

Y Coordinate (0xFF): Binary 1111 1001 + 0x98: Binary 1001 1000

Z Coordinate (0x00): Binary 0000 0000 + 0x5F: Binary 0101 1111

Ultimately, this is where I stopped.  I know it works, I have some ideas on how changes affect it.  Now on to an Arduino.

Arduino Micro Setup

I plugged this into an Arduino Micro on a breadboard as below.  The 5V, ground, pin 2/SDA, and pin 3/SCL were connected as shown (note that the compass on the left can be ignored - I have two and they are both in the breadboard just to keep them somewhere safe).

2014-09-14 22.39.54

One of the more difficult parts of this is ensuring you're in the correct pins on the Micro - the numbers are small and not centered on the pin.

The code is below.  I started with code from Sparkfun and modified it as necessary.

Right now, this is functional.  There will be more to come.


Category: Equipment

I saw that on Reddit today, and it is a real reminder that if you like reading my site or any like it, Net Neutrality is pretty damn important.

If you haven't filed comments with the FCC or taken action otherwise, please do so and show your support for an open Internet so you can still read this blog and the many other fine blogs out there.

73 de KE8P

Category: QSTs

I bought an Arduino Due a while back, and not having anything seriously pressing, it was set aside for other things.

The Due has a lot of differences from other Arduinos for various reasons.  The stuff you'll see on most websites leads with "it's 32 bits and runs at 3.3 volts!".  And those are important - any non-EE like me using an Arduino thinks at 5 volts, and in some cases you can blow up a Due with that much voltage.  But there are more important differences:

  • 4 serial connections
    The Mega has 4 also, but the Uno and Leonardo have 1.  Some things, like GPS receivers and the APRS Shield use serial connections, so this is a more-is-merrier situation.
  • 2 I2C channels broken out and labeled
    All of the Arduinos have I2C interfaces, but they are not labeled on the Uno, Leonardo, and Mega.  Really, this is just an inconvenience because you can look up the correct pins.  The Due labels them so you don't have to look them up, and the Due is the only current Arduino board that has two I2C interfaces.
    I2C is useful for a lot of sensors, including temperature sensors, EEPROMs, real-time clocks, digital compass modules, and DACs.
  • 2 Digital-Analog Converters (DACs)
    On the Uno, Leonardo, and Mega, there are no DAC converters - the analogWrite command writes to PWM outputs on those processors and that output is still 5V, but the output is a square wave that makes some things (like LEDs) look like you've reduced the voltage, when really you've reduced the amount of time that the voltage is on.  Wikipedia has a longer explanation.
    DAC converters do not output a PWM signal.  Instead the actual voltage is output, so if you give a 3.3V DAC a command corresponding to 50%, it will output 1.65V DC (NOT PWM!).
  • Controller Area Network (CAN) breakouts
    CAN is mostly used in vehicles in part of the On Board Diagnostics (OBD-II) system, but it is being adopted elsewhere.  It's adoption may continue with increased adoption of the Internet of Things.
  • Digital Signal Processing
    Perhaps one of the more interesting parts of the board where amateur radio is concerned is that the main chip (where all the magic happens) is powerful enough (between being 32 bits and 84 MHz) that it can do Fast Fourier Transform operations as well as number crunching operations.  Since there are both ADCs and DACs, an analog input can be sampled to digital data, processed, and then output through the DAC back to an analog waveform.  See an example at M0XPD's blog.  This also enables the use of the Due as an SDR (another link to M0XPD's blog).

I'm going to be doing a lot more here with the Due, so this should break me out of the no-post-slump I've been in.


Category: Arduino
Tags: ,

If you currently use a newsreader (e.g. to get my blog OR you have it as a feed on your website, please check your URL and ensure it is going to  The domain will be disappearing in about 2 months and I don't intend to renew it.


In 45 days (around September 19), I will be changing the domain over to a different page and breaking anything that starts with

Category: General Stuff, QSTs

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

This is the new server