ASCIIMath creating images

Friday, July 22, 2011

SIDshield prototype: test results

For those interested in this project (both of you!) :-) I finished the testing of the SIDshield prototype. Summary: It works! (Yay!) but with caveats and a few fixes are needed (booo!)
Arduino (under Protoshield) with SIDshield prototype fully populated
After cleaning, visual inspection and continuity check (see yesterday's post) I found I forgot 3 wires - one to connect the grounds together, and 2 for getting the 12V to the SID chip. Thus fixed, I populated the board with all chips except for the SID and applied power. Seeing no magic blue smoke escape, I measured the 12V supply, which looked very good (without load of course) giving me ~12.4V. All other signals on the SID socket looked good so I put it in, applied power again and verified the voltages again. Same as without load.

Power Considerations
The SID needs up to 100mA on the 12V line (according to the datasheet), so about 1.2W of power. The TPS6734 has to produce that power from 5V, and thus needs to draw more than twice the current off that supply. Clearly, this is too much for a USB port, thus the Arduino must be connected to a power supply. Also take note that the barrel connector is going through a regulator with associated voltage drop (at least on my Arduino Diecimila) so your supply needs to give more than 5V.

A further complication is that the TPS6734 regulates really well for a range of input voltages; this means it has an effective negative resistance: if the input voltage drops (say, to 4V) it will draw more current; this could lower the voltage even further. We have a positive feedback loop, ending when the supply voltage drops below what the boost converter can use and we loose the 12V. Milliseconds later, the converter starts up again (since it did not draw any current and the supply recovered) and the process begins anew. Needless to say, this does not sound good on the output. So, give the poor SID a good supply!

The multimeter shows the draw on the 5V line, including the Arduino.  The scope shows the noise on the 12V line, which is 1Vp-p and about 100mV RMS.  Noise control needs to be improved.
One could argue of course that the better solution is to provide a good stable 12V supply and drop in a good old 7805 to supply the Arduino - this is why we build prototypes, right?

BTW, with all this power being sucked up, the SID gets pretty warm, I tell you...

Corrections and Changes to the Schematic
The circuit even when supplied with good power on the Arduino external power barrel connector gives a bit of noise when playing large amplitude sounds. This probably needs some resizing of capacitors when compared to the circuit given in the TPS6734 datasheet.

I also moved the reset line of the SID to a programmable (Digital Out) pin, and toggle that line in the SID library constructor.

The biggest error in the schematic posted in a previous post is that the capacitors on the input and output lines are far too small.  22pF?  I have no idea how that got in there - they need to be about .1uF!  I need to fix that on the board.

The hardware is thus effectively finished, needing just a few corrections. I will update the schematic eventually, including the boost converter. The main to-do is now some more code, especially to get steady timing, which is vital for good sounding vibrato, tremolo,  and arpeggio effects - not to mention basic song timing.

However, there are a pile of other projects I've been itching to do...

Wednesday, July 20, 2011

SIDshield prototype almost done

I've finally gotten around to doing some electronics again, and finished wiring up the full prototype of the SIDshield for Arduino.  Soldering and wiring got done yesterday, later today I will go over the whole thing very carefully to check for shorts and broken connections/wires, make sure GND and power are everywhere they're supposed to be.  Then, I will plug in everything except for the SID and apply power, to make sure the magic smoke stays in; only then will I plug in the SID since it's a not-easily-replaced chip.

Component side

It's not a "real" schield in this format, but I decided it was better to separate it from the Arduino using a ribbon cable.  Still, the whole thing is in a 8cm x 5cm rectangle.

Solder side
I'll post the results of checking and testing either tonight or tomorrow.
Update: results here.

Wednesday, July 13, 2011

Geek happiness is... a box from the parts store

My day was made this morning when I received my order from Digi-Key.  Yes, this contains the parts to finally build the real prototype of the SIDshield, including the 5V-to-12V boost converter, a 8-pin DIP chip TPS6734.  And, of course, the needed inductor, diode, and caps.  I also got the 1 MHz oscillator (ECS-2100), so the board can be completely self-standing.

What I forgot to order was the 14-pin and 8-pin sockets - but those I can get at the local store, I just have to find the time to bike there...

Wednesday, June 8, 2011

Ancient history: my first Amiga mod

Currently, I am in the process of cleaning up my collection of old computers. I came across one of the pieces I'm still quite attached to (since it was my main computer for a considerable while): my Amiga - one of those before they had model numbers (now called the Amiga 1000). One of the reasons it is special to me is because it was the first major surgery I performed on a computer, which furthermore _had_ to work since I didn't have any other computer at that time. The hack? Expand it to have 1 Megabyte of RAM.

The stock A1000 came with only 256k of RAM, and was quite famous at the time for being able to multitask in that limited environment. However, noone ever left it at that. Almost every A1000 has the added 256k expansion in the front slot, for a more usable 512k. From Commodore's perspective, that was as much as once could expand the A1000 without using the external side expansion slot.

However, if you had the guts to do it you could add another 512k inside the A1000 without a PCB.  This involved piggybacking RAM chips on the existing onboard RAM, and hacking RAS, CAS, and address lines to select the chips appropriately. This is what I did - and I have no idea where the instructions came from. A quick search of Aminet and the Fish Disk index didn't find anything. The hack was done in about 1991, if I remember correctly.

This is the inside of the A1000, with the RF shield removed. Nothing special to see except for one extra small green wire attached to the WOM (kickstart) daughterboard.
Underneath the daugtherboard, it's a bit more messy.  Note that I did label all the wires, but instead of heat-shrink tubing I used bits of electrical tape for insulation.
This shows the detail of 2 RAM chips piggybacked onto the original RAM, with a socket.
Now this is truly ugly. Obviously, I had no idea about proper electronic construction back then.  Yes, these are resistors directly soldered to IC pins.
But, 20 years later, it still works! The screen titlebar actually says "896456 free memory'
This is the only repair I have to do. The wire on the daughterboard is close to breaking off. 
How much I have learned since then... But the lesson I learned is not to be afraid of modding hardware!

Thursday, June 2, 2011

A bit of LaTeX code: placing your documents under a CC license

Distributing digital content with a Creative Commons license is usually a simple affair: decide on the license, and follow the instructions on the website to put it all in there; usually a link and a small png file.

But what if your work is a printed dead-tree document?  What is a visually appealing way to indicate your work is "free" (at least in the beer sense)?

Here is a solution at least if you use LaTeX to typeset your documents.  This was started by my supervisor, Prof. Peter Kabal, and I completed it by adding all the standard CC licenses and cleaning the LaTeX code a little.  The documentation of the package is in pdf format here.  The icons are all svg converted to eps and pdf, so nicely resolution independent.

The package could use some work to make work properly with odd paper sizes.  Email me (or comment below) if that ends up being necessary.

Wednesday, May 25, 2011

Back in Montreal

After a very nice vacation in Chile*, I am finally back in Montreal. This means that the temporary hiatus is now over. In fact I have several things to do now that my studies are officially done: write up more of my research (to get more journal publication), hunt for a job (specifically a post-doc position, for which I need a stronger publication record), deal with family issues, and general upkeep of the abode (summer came while I was away)!

And yes, it is time to get back into the whole blogging thing.  The SIDshield is on the top of this list - I'll be getting parts to add the oscillator on-board and the 5V-12V boost circuit running.  That should be good fun.

Then there is the parts of an old Yamaha CS-01 I have kicking around... that should be fun to hack with.

And there is an Amiga 1200 I'm supposed to pick up one of these days.  I'm getting it in exchange for my Amiga 3000 and a Mac SE/30, in order to reduce the size of my collection a bit, but I'll need to drive down to Vermont to get it.  Now that the weather is nice, that should happen fairly soon.  Then I can play with OctaMED again, the way it's supposed to be done.

There are many more things to keep myself occupied with.  In any case, this could be an exciting summer.  And a busy one.

(*) Chile and a bit of Argentina, too.  As mentioned in a previous post, photos are on Picasa Web here, and we are writing more detailed descriptions on a new blog here, starting with this post.

Thursday, May 5, 2011

Hiatus update: Out of Patagonia, still in Chile

A brief update about the hiatus.  I am now in Valdivia, Chile, enjoying the sunshine of the southern fall. We will be heading to Pucon next for some hiking and camping, then head for Valparaiso, then La Serena, and finally San Pedro de Atacama before heading back to Santiago and then home to Montreal.  My picasa site is being updated with pictures as we go along (yay for my Netbook!)

Pictures on Picasa Web