Category Archives: Hardware

Introducing the Sir Sound CoCo Sound Card

NEW “PRODUCT” ANNOUNCEMENT

The team that brought you* the CoCoPilot DriveWire Server is proud to announce their latest innovation:

“Sir Sound”

Sir Sound is a solid-state multi-voice audio synthesizer that operates over a serial transport mechanism**. It provides arcade-quality*** sound with up to three independent tonal voices plus one white noise channel all in an external module that doesn’t require voiding your warranty to install. In fact, you won’t even need tools!

Pricing is to be announced but hopefully it will be around $50. Or maybe $30. Or cheaper. Or less if you build it yourself. Heck, we’ll probably just make kit versions available since we don’t really like to solder.

Sir Sound Configurations

  • Turnkey – This is a “plug and go” version where you just plug it in and go. No special drivers are needed, as they are already built in to both BASIC and OS-9.****
  • BYOE – The bring-your-own-everything edition is shipped as a set of simple instructions containing a parts list and how to run wires between the parts.
  • Custom – Also planned to be available are various custom configurations, like what color of case it comes in.

Pricing

We estimate the thing is gonna cost us, like, ten or so bucks to make using off-the-shelf parts ordered in small quantities from China. But, to make it a product, we really should have an integrated circuit board and a case made, which will run the costs up dramatically. Rest assured, we’ll pass those unsavings along to you!

Availability

The first prototype is in the process of being tested. Quit rushing us. We’ll let you know when it’s done.

Specs

Basically it’s a Texas Instruments SN76489 sound chip hooked to a tiny Arduino micro-controller with a TTL-to-RS232 adapter. Here’s the prototype John Strong of StrongWare sent me:

SN76849 sound chip hooked to an Arduino Nano on a neat 3-D printed platform from StrongWare.

You kinda have to use some micro-controller since the sound chip turns on and starts making sound. Something has to issue the “shut up” instruction to it. If you just had hardware to translate a serial byte in to the command, and made the CoCo do all the work, the CoCo would have to load and run a program to shut the thing up every time you powered up. Fortunately, a custom-built Arduino that handles this can be done for like $5. There are cheaper PIC chips that could do it for less.

Then, you add a MAX232 type chip that goes from the TTL signal levels of the Arduino to RS232 signal levels, or using one of these $3 (or less) boards that’s already wired:

TTL-to-RS232 adapter.

Lastly, add a CoCo serial cable (4-pin DIN to DB9), and you are set.

Prototype “Sir Sound” sound module for the CoCo (or anything with a serial port, actually).

A small program on the Arduino will monitor the serial port for bytes and then relay them to the sound chip.

By doing some POKEs in BASIC to set the baud rate, you could make music by doing things like this:

REM PLAY MIDDLE C
PRINT #-2,CHR$(&H8E);CHR$(&H1D);CHR$(&H90);

FOR A=1 TO 1000:NEXT A

REM VOLUME OFF
PRINT #-2,CHR$(&H9F);

The notes always play, so you shut them off by setting volume off. There are different channel values for each of the four channels.

I envision having a “raw” mode where the device just translates the bytes from serial to the sound chip, and a “smart” mode where you could use an API and just send note values (like 1-88 of a piano keyboard, or MIDI note values).

“Smart” mode could simplify the control so it might look like this:

REM ALL DATA: PLAY CHANNEL 0, NOTE 10, AT VOLUME 15
PRINT #-2,CHR$(&H00);CHR$(&HA);CHR$(&HF);

REM NOTE ONLY: PLAY CHANNEL 0, NOTE 10
PRINT #-2,CHR$(&H01);CHR$(&HA);

REM NOTE ONLY: PLAY CHANNEL 1, NOTE 10
PRINT #-2,CHR$(&H11);CHR$(&HA);

REM VOLUME ONLY: CHANNEL 0, VOLUME 5
PRINT #-2,CHR$(&H20);CHR$(&H5);

And, I could also add a “super smart” mode where it could parse PLAY command-style strings, then spool them in the background while you do other things:

REM PLAY COMMAND, CHANNEL 0
PRINT #-2,CHR$(&H30);"CDEFGAB";

And, a “super super smart” mode could let it store string sequences, and play them by triggering with a simple byte:

REM STORE NOTE SEQUENCE 0
PRINT #-2,CHR$(&H40);"CCDCECFECCDCECFE";CHR$(0);

REM PLAY NOTE SEQUENCE 0
PRINT #-2,CHR$(&H50);

REM PLAY NOTE SEQUENCE 0 FIVE TIMES
PRINT #-2,CHR$(&H55);

…or whatever. You could sequence them together, like MIDI sequencers do, and have complex patterns that could play in the background while the program does other things.

There are lots of possibilities. We could even see about using the Carrier Detect line as a way to tell if the sound card was still playing something (rather than needing routines to read data back from the device, which would be doable but not from BASIC without assembly language code).

If this “sounds” fun to you, leave a comment…

Until then…


Notes:

* If you call making a blog post “bringing it” to you.

** It plugs in to the Serial I/O port. “Sir” sounds like “Ser”, get it? Marketing thought SerSound wasn’t friendly enough.

*** This part is true. The same sound hardware is used in the arcade mega-hits Congo Bongo and Mr. Do, among others.

**** PRINT#-2, yo.

Arduino and the Texas Instruments SN76489

You may have never heard of the Texas Instruments SN76489, but if you are reading this article, there’s a good chance you have heard it.

The SN76489 is a sound chip which, according to the Wikipedia entry, was used in systems such as:

…and in arcade games such as:

…and many more. I am just naming the machines and games I have heard of or seen/played.

Side Note: The Wikipedia entry also claims the Sega Genesis used one, but it had far fancier sound. A quick search shows the Genesis did not use this chip, so other systems may also be incorrect. Ah, Wikipedia…)

This chip is able to produce three tones and one white noise at a time, which sounds an awful lot like the audio capabilities of my first computer, the VIC-20.

The chip has none of the fancy synthesizer features found in other chips, such as the famous Commodore 64 SID chip. The only thing you can do is adjust the volume level of each channel of sound. Clever software uses this to produce bell sounds and other effects. (If Congo Bongo is really using this chip, it’s doing some fancy things to make those bongo sounds!)

Thanks to StrongWare‘s John Strong, I now have one of these chips to experiment with. It is wired up to an Arduino Nano clone. (NOTE: I had issues getting this clone recognized on my Mac, due to it using a different serial chip. I found the solution, and wrote about it earlier this week.)

SN76849 sound chip hooked to an Arduino Nano on a neat 3-D printed platform from StrongWare.

John pointed me to this short tutorial on how to use the chip:

Using sample code there, I was able to get the device making tones, and then expanded it to play a sequence of tones to make a tune.

The next day I added more code so it could do a multitrack sequence.

I thought it might be fun to share what I have learned the first two days of playing with the device, and share the code I have come up with.

I will do a full article on the chip and how it works (summarizing some overly complex explanations I have been reading), but until then, here is my sample project:

https://github.com/allenhuffman/MusicSequencerTest

It contains routines to poke bytes to the SN76489, plus a work-in-progress multitrack music sequence that currently plays the 2-voice intro music to Pac-Man :)

I’ve been fixing up the comments and squashing some bugs, so check back for the latest. I still have to add real/better support for the “noise” channel, but it works right now for playing simple tunes.

More to come…

Arduino Nano serial port not recognized on Mac 10.12

John Strong of StrongWare sent me an Arduino Nano to experiment with, and I was puzzled when it would not appear as a Port in the Arduino IDE. All I could select was “dev/cu.Bluetooth-Incoming-Port”.

I never had to install special drivers for Arduino on Mac before (but do on a PC) but I did some searching and decided to try the FTDI drivers (most recent release from 2015). No luck.

I then decided to try my UNO. I couldn’t find it, and had to open a brand new one up. It was also not recognized.

After some searching, I found out that many clone Arduino are using a different USB-to-Serial chip, and need special drivers. The “official” ones (from a Chinese website!) cause a kernel panic due to a bug in the current release.

I found this:

https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver

These drivers work and I now can use this clone Arduino Nano:

Arduino Nano visible using replacement CH serial drivers.

I hope this helps someone else not waste an hour like I had to tonight to find this ;-)

Drobo (3rd gen) to Drobo 5C, part 3

This is part of a multi-part review of the Data Robotics Drobo 5C.

See also: Introductionpart 1 and part 2.

After having a Drobo 5C for a week, I’ve decided there are a few changes that I do not like, and one that I do like…

Don’t Like

Enclosure. As previously mentioned, the enclosure is now more of an outside shell that is no longer flush against the front of the device (when the removable face plate is on). Now, when the face plate is installed, there is a small gap running all around it. It just doesn’t seem as polished of a design. Also, when my laptop is set in front of the Drobo, if I open the lid too far, it now makes contact with the metal strip at the top rather than more gently rubbing against the plastic cover as it did with the previous 2nd and 3rd generation modules.

Power Supply. For some reason, the round power connector that goes in to the Drobo 5C now has a right-angle connector at the end. This causes extra tension on the cable (and probably power connector) as the chord is pulled at an angle a bit before running straight out the back and down behind my computer desk. I really don’t care for this, but if you put your Drobo at the far back of a desk (where the power cable would then point directly down), you may prefer this.

Drobo 5C right-angle power connector.

LED Status Lights. Since the front panel no longer covers the bottom row of status lights, the lights are brighter than the rest of the LEDs behind the panel. If I set the Drobo 5C brightness to 5, and have it next to a 3rd generation Drobo also set to 5, the blue LEDs on the 5C are much brighter because they are no longer being filtered out through the clear plastic of the face plate. It also means the 5C lights behind the faceplate are dimmer than the ones below it.

Drobo 5C (left) with brighter blue lights versus 3rd gen (right) with lights behind the face plate.

Can’t See LEDs. And, if your Drobo 5C sits a bit lower, the bottom row of blue LEDs can be hidden below/behind the face place. As I look down at the 5C and 3rd gen models, I can clearly see the front panel blue status LEDs on the 3rd gen, but cannot see the bottom row on the 5C. When sitting at a lower level, I can see them both. Not a big deal, but a change. I first noticed this when I walked in to where my computer is, and thought the 5C had locked up since all the blue capacity lights were off (or so I thought).

Drobo 5C (left) has recessed bottom lights, versus 3rd gen (right) that showed them through the face plate.

If they used the same power connector as they did on previous power supplies, and had kept the enclosure design the same, I would not have anything to gripe about.

Like

Face plate. There was one thing I did like, which I had not noticed before. In the previous photo, notice how the green drive lights on the 3rd generation (right) can be seen through the face plate. The black face plate is a bit transparent, and I had never noticed this until taking these photos. The 5C face place is opaque.

Drobo (3rd gen) transparent drive indicator lights.

Drobo 5C opaque drive indicator lights.

I expect I will have a few more things to say about this new Drobo (file copy speed, for example) so…

More to come…

Drobo 5C for $279 on Amazon

(Cross posting from my Appleause.com website. Over there, I post things related to Apple, Mac, iOS, etc.)

The Drobo 5C was introduced in October 2016 for $349. There has already been a $50 discount code ($299) and a one-day Amazon.com sale (also $299). Yesterday, the price tracking site, Camel Camel Camel, alerted me of a $279 price on Amazon:

http://camelcamelcamel.com/Drobo-5-Drive-Attached-Storage-DDR4A21/product/B01LWNHFBR?context=tracker

By the time you see this posting, the price may no longer be valid, but you might consider activating a Camel Camel Camel account to do your own tracking. You will receive an e-mail alert when the desired item (anything on Amazon) reaches the price you want. It also shows a historic graph of the price the item has been since tracking began.

Merry Christmas.

Drobo 5C for $279 on Amazon

The Drobo 5C was introduced in October 2016 for $349. There has already been a $50 discount code ($299) and a one-day Amazon.com sale (also $299). Yesterday, the price tracking site, Camel Camel Camel, alerted me of a $279 price on Amazon:

http://camelcamelcamel.com/Drobo-5-Drive-Attached-Storage-DDR4A21/product/B01LWNHFBR?context=tracker

By the time you see this posting, the price may no longer be valid, but you might consider activating a Camel Camel Camel account to do your own tracking. You will receive an e-mail alert when the desired item (anything on Amazon) reaches the price you want. It also shows a historic graph of the price the item has been since tracking began.

Merry Christmas.

Drobo volumes lose their names in Drobo Dashboard

Hey, other Drobo owners… Have you ever seen this happen?

Where, oh where have my Drobo volume names gone?

My volumes all have custom names, but occasionally I see Drobo Dashboard only show them as “Drobo”. I believe they always still show up as their proper names to Mac OS X, but Drobo Dashboard seems to have a problem reading them.

I have seen this on a 2nd generation Drobo, a 3rd generation Drobo, and on my brand new Drobo 5C (the second day I had it hooked up). I have seen it hooked to three different computers (all Macs) via FireWire, USB 2.0 and now USB 3.0.

I contacted Drobo support about this, and they asked me the typical list of support questions, which makes me wonder if I’m the only one this happens to.

Anyone else seen this happen?

Drobo (3rd gen) to Drobo 5C, part 2

This is part of a multi-part review of the Data Robotics Drobo 5C.

See also: Introduction and part 1.

Previously, I discussed the unboxing and setup of the new Drobo 5C. Today, I will walk through the migration process from an older 3rd generation 4-bay Drobo to this new 5-bay model.

Setting up Drobo 5C is no different than the previous models… Plug in the power cable, plug in the USB cable, insert drives, then turn it on.

Since the topic of this article is migrating from a 3rd gen model to the 5C, here are some important additional comments:

  1. APPLY FIRMWARE UPDATES FIRST. The code that came on my 5C was already out of date. The first thing you should do it hook up new new Drobo (with no drives inserted!) and power it on. Run the Drobo Dashboard software and it should recognize the new Drobo, and offer to update the firmware (if an update is available). Allow this to happen, and for the unit to reboot and be seen by Drobo Dashboard.
  2. Next, you want to power down the new Drobo, and move the “drive pack” (all the drives used together) from the previous Drobo to this one. DO NOT HAVE THE UNIT POWERED ON WHEN YOU INSERT THE HARD DRIVES! If you do this, the Drobo will see the drive inserted, and format it. You must have the new Drobo powered off, and then insert all the drives at the same time, then power it up. The Drobo should boot, then recognize the drives and have the same name and volume(s) you saw on the old Drobo.
  3. FOLLOW THE INSTRUCTIONS GIVEN ON THE DROBO WEBSITE! Don’t trust some random stranger’s website… The information I gave you may be incorrect and cause the total end of life as we know it.

Mine seemed to have some problem and it was not recognized by the computer after I did this. I had to power it down, and start it up again. It mounted just fine after that, and it showed up with the same device name and volume names since all of the information is contained on the drive pack itself.

At this point, the new 5-bay Drobo should act exactly the same as the former 4-bay model.

My next goal was to enable dual disk redundancy. When I looked at the Drobo Dashboard, the option to enable this was grayed out. I suppose that makes sense. My unit was quite full and there probably wouldn’t have been enough free space to make a third copy of all my data. However, my understanding is that as long as there is enough space available, you could switch over to dual disk redundancy. (But I may be misunderstanding.)

To get the needed space, I acquired a brand new 3TB Western Digital Red hard drive.

NOTE: When I get a new hard drive, I like to first zero-byte format the entire drive. By writing to every sector of the new drive, any severe problems can be located. I would rather spend the hours it takes to do this, than blindly put in a new drive only to find out it had some severe issue far at the end of the drive which doesn’t show up until months (or years) later when the drive finally fills up to the bad spot. (Yes, I have found bad drives this way, but only two so far.)

After I plugged in the new device, as expected, the option for dual disk redundancy was available:

Drobo 5C dual disk redundancy option.

I checked it, and the drive began the long process of migrating data so every bit existed on three different drives (thus, two could fail, and data would still be protected):

Drobo 5C rebuilding for dual disk redundancy.

It initially stay it would take over 40 hours to do this, but it was actually completed in about 24 hours. The newer Drobos certainly handle rebuilding much faster than the early models which could take all week even with much smaller hard drives.

The end result was a new Drobo with a few more volumes available and some extra peace-of-mind.

To be continued…

 

Drobo (3rd gen) to Drobo 5C, part 1

This is part of a multi-part review of the Data Robotics Drobo 5C.

See also: Introduction

Drobo 5C box.

I have received my Drobo 5C unit which I will be using for this review. Much like the 3rd generation model, the 5C comes packaged in a large white Drobo box, with the unit itself wrapped in a cloth shopping bag protected by two foam inserts. In the top of the box is another smaller box which contains the paperwork, power supply, power cable, and a USB to USB-C cable.

Data Robotics does a nice job at packaging their products. It’s not quite on the level of Apple, but fairly close.

Let’s take a look inside the box…

Drobo 5C box and contents.

Drobo 5C accessories: USB cable, power cable, and power supply.

Drobo 5C quick start guide (inside of the removable cover of the small box).

Since the 5C can hold five hard drives, it is about one inch taller than the previous model. Here is the 5C (left) compared to the 3rd generation model (right):

Drobo 5C vs Drobo (3rd gen).

Please excuse the protective plastic covering you see on my drives. I tend to keep it on things I buy to protect them, so when I sell them later it is still in “like new” shape.  (I do remove any plastic that would cover air vents or similar.)

The first thing I noticed was that the 5C case is a different design. While similar looking, instead of being a sleek case where the front and back are flush to the metal casing, the new model seems to just be a metal casing, with the front and rear inset a bit with a gap running all around them. This seems like a step back, cosmetically. It just doesn’t look as sleek as the past incarnations, and the gap seems like it would be even more places for dust to collect.

You can also see that the blue capacity lights are now along the bottom of the enclosure, and no longer behind the removable front cover. I always throught the “show through” lights were a nice touch, so I am sad to see them go. BUT, in the previous Drobos I had, there were two additional lights hidden behind the front panel: power and data transfer. I would sometimes have to remove the front panel to see if the Drobo was locked up, or if the data transfer light was flickering. Function wise, being able to see these without removing the panel is a plus.

Here is a photo of the two units with the front covers removed:

Drobo 5C vs Drobo (3rd gen) – front panel removed.

You can see that the drives start a bit lower than in the old model, which is why the unit can hold an additional drive and not be as tall as you might expect. You can see the two “hidden” lights on my old Drobo, that now appear at the far left and far right of the new Drobo 5C.

In the next part, we’ll take a look at moving drives over from the old Drobo to the new 5C, and see what it takes to activate the Dual Disk Redundancy feature.

More to come…