CC2500 shield on serial Arduino

I have had some requests from people wanting to control their 1st Gen LivingColors via RS232. The current solution is just a shield on an Arduino and it would not make sense to build something on an other platform.

Of course, i could make it all mote complicated by combining the CC2500 shield with a serial shield but that would require some hacking.

The first versions of the Arduino used a serial port to communicate with the PC via RS232. Pieter  Floris still had a couple of these boards in store. Instead of making the solution more complicated i could then make the solution quite simple.

The serial Arduino

Notes: 4

The serial Arduino

I assembled the board myself so I cannot blame the people from Arduino for all the hacking needed, the crystal could have been a lower model. The 7805 on the BOM is in a TO220 however. Without rasing the connectors the shield is never going to fit.

Side view of the serial arduino plus CC2500 shield

Notes: 1

Side view of the serial arduino plus CC2500 shield

It seems the whole “shields” concept did not exist when the first Arduinos were built.

With some compromises the shield fits..

A serial LivingColors controller.

Notes: 1

A serial LivingColors controller.

And works.

I have tested it and I can now control the LivingColors via RS232.  No changes in de software or the shield are needed.

Dutch Design Week 2010

Eindhoven Design Academy Graduation Show.

Also

3D printed chair
3D printed chair
Printing a chair with a robot arm
Collapsable bench
Collapsable bench
Boat Kit
Kitchen bike
Kitchen bike

Shapeways stand in the Strijp main building.

Shapeways example product
Shapeways metal examples
3D printed neck band

Other stuff in the Strijp main building.

Pretty patterns CNC routed.
Pretty patterns CNC routed.
Cupboard from recycled doors.
Cupcake CNC

SMD Reflow Soldering

Sparkfun has a tutorial describing reflow soldering with a skillet. A couple of months after I read this “kruidvat” had a cheap skillet on sale.

If you use the skillet for reflowing PCB’s, don’t use it to prepare food.

What I needed too were tweezers and soldering paste. Good tweezers can be expensive and soldering paste is quite hard to find.

A warning about shopping for soldering paste. The name “soldering paste” can be used to two things : one is “flux paste” which will allow the solder to flow but does not contain any solder itself. The other is a paste or gel containing a tin alloy, flux and a carrier gel. You’ll need the last kind.

I was surprised to find out that DealExtreme, my favorite webshop for cheap stuff has both.

Sku 4711 is a quite usable soldering paste. DealExtreme sells both kinds of soldering paste. Make sure you get the right kind.

Notes: 1

Sku 19866 are nice tweezers.

You’ll need some way to get the paste on the pads. I used a syringe to get the paste in a small syringe and used the small syringe to apply the paste.

Air-bubbles or water in the paste cause problems during reflowing.  The water will boil and the air will expand causing the paste to splatter.

It’s messy.

Notes: 2

Then I applied the paste.

One thing I did wrong was putting way too much paste in the syringe. The paste is a mixture of tin powder, flux and a gel. The powder separates from the gel in the syringe and if you put too much paste in the syringe you’ll end up with clogged syringe.

I placed the SMD parts in the paste.

And I baked the PCB. First I measured the max temperature of the skillet and tried to get an idea of the temperature slope.

The sparkfun tutorial has some information about the temperature curve you are looking for. The skillet I had maxed out at about 220 degrees C so it worked fine.

8 x 8 pixel red display

The 8 x 8 pixel red display is one of the first projects I did after a long hiatus. I wanted to build something useless and work on my C programming skills.

The schema was made in CadSoft Eagle, the layout was laser-printed overhead sheet and the board was etched on the kitchen. Nowadays I use MakePCB or Sparkfun‘s BatchPCB.

The schematic is really simple : a 74HCT595 as high side driver, and a 74HCT595 driving a ULN2803 as low side driver.

I kept the board simple as well so I could etch it myself.

The built up board :

The software bitbangs a couple of IO ports to control the two shift registers, intensity variation is done by changing the duty cycle of the leds. This example has 3 bits intensity (8 different intensities).  We can use these “8 pixels x 8 pixels x 3 bit” intensity as 3 bitmaps with 8 pixels x 8 pixels. The highest valued bitmap (the MSB of the intenisty) is shown 2 x als long as the second highest. The second highest value is shown 2 x as long as the LSB.

Example 2 :

Making character bitmaps is a lot of work. If you have access to a unix box of sorts you can use figlet and the 5×7 font to generate these for you.

This will result in a monospaced font which are not as pretty as the hand made fonts.

For instance, you can generate the character “0” with :

And this will output :

I used Tom Torfs binconst macro to make the bitmaps usable.

Example 3 :

Testing plugins in WordPress

WP-Syntax is a syntax highlighter for WordPress. Not sure if i like it..

Code Colorer is a different syntax coloror

WP-Syntax and are both based on Code Colorer GeSHi

SyntaxHighlighter Evolved is does the Syntax Highlighting in Javascript and is based on SyntaxHighlighter from Alex Gorbatchev

Let’s compare the options:

XML / GML

WP-Syntax

Code Colorer
[cc lang=”xml” line=”1″]

222589.799 433765.081 222567.148 433755.043 222555.526 433748.222
222553.978 433747.425 222540.611 433739.534 222539.611 433722.180
222566.459 433681.207 222575.316 433666.027 222584.647 433670.364
222586.846 433671.386 222595.805 433676.184 222605.758 433681.096
222630.792 433693.222 222634.298 433694.711 222644.841 433699.628
222663.798 433708.937 222589.799 433765.081

[/cc]

SyntaxHighlighter Evolved


      
          
              
                  
                      
 222589.799 433765.081 222567.148 433755.043 222555.526 433748.222
 222553.978 433747.425 222540.611 433739.534 222539.611 433722.180
 222566.459 433681.207 222575.316 433666.027 222584.647 433670.364
 222586.846 433671.386 222595.805 433676.184 222605.758 433681.096
 222630.792 433693.222 222634.298 433694.711 222644.841 433699.628
 222663.798 433708.937 222589.799 433765.081
                    
                  
              
          
      

File inliner + Code colorer
[file lang=”xml” start=”1″ end=”18″ link=”on” preserveformat=”on”]http://www.knutsel.org/wp-content/uploads/2011/08/gml_example.xml_.txt[/file]

WP-Syntax

Code Colorer
[code lang="c"]]czoyODU6XCINCnZvaWQgUHJpbnRBZHJlc3MoKQ0Kew0KZm9yIChpbnQgbD0wOyBsICZsdDtsaXZjb2wuZ2V0TnVtTGFtcHMoKTsgbCt7WyYqJl19KykNCnsNCmlmIChsaXZjb2wuZ2V0TGFtcChsLGFkcmVzcykpDQp7DQpTZXJpYWwucHJpbnQoXCJbXCIpOw0KU2VyaWFsLnByaW50KGwpe1smKiZdfTsNClNlcmlhbC5wcmludChcIl0gXCIpOw0KZm9yIChpbnQgeD0wOyB4Jmx0Ozk7IHgrKykNCnsNClNlcmlhbC5wcmludChhZHJlc3NbeHtbJiomXX1dLCBIRVgpOw0KU2VyaWFsLnByaW50KFwiLCBcIik7DQp9DQpTZXJpYWwucHJpbnRsbihcIlwiKTsNCn0NCn0NCn0NClwiO3tbJiomXX0=[[/code]

SyntaxHighlighter Evolved

void PrintAdress()
{
  for (int l=0; l
<livcol.getNumLamps(); l++)
  {
    if (livcol.getLamp(l,adress))
    {
      Serial.print("[");
      Serial.print(l);
      Serial.print("] ");
      for (int x=0; x<9; x++)
      {
        Serial.print(adress[x], HEX);
        Serial.print(", ");
      }
      Serial.println("");
    }
  }
}

File inliner + Code colorer
[file lang=”c” start=”1″ end=”10″ link=”on” preserveformat=”on”]http://www.knutsel.org/wp-content/uploads/2011/08/c-example.c[/file]

Knspr-ImgNote lets you put notes on images.

Notes: 3