Adapter Board for Smart LCD Controller to Printrboard

I did a quick design of an adapter board to take the 14 pin connector from the Printrboard to connect to the two 10 pin connectors on the RepRap Smart LCD Controller. This will give you the display and encoder functionality like in the official Printrbot LCD. The reset, buzzer, and SD Card will not function as those signals are not broken out on the Printrboard’s 14 Pin EXP2 Header.

The adapter board measures 3cm x 5cm and looks like this.

The Schematic is pretty simple, just three connectors and some mounting holes.

As with the Full controller, I’ve bundled the files needed for construction into a ZIP file for download.

You can get the files HERE

EDIT 5-29-2016:  The download file has been updated to include the board perimeter in a GKO file.  Hope that will help possible builders.

Posted in News | 13 Comments

Schematics and files for my LCD controller for Printrboard

As promised yesterday, I have bundled up a zip with all the files needed to have your own board manufactured.

The zip includes the following:

This PNG file showing what the finished product should look like.

The 9 Gerber files required for construction.

LCD-Adapter.GBL

LCD-Adapter.GBO

LCD-Adapter.GBP

LCD-Adapter.GBS

LCD-Adapter.GTL

LCD-Adapter.GTO

LCD-Adapter.GTP

LCD-Adapter.GTS

LCD-Adapter.TXT

And the Schematic in pdf form.

DOWNLOAD HERE

Enjoy!! And if you build one, let me know…

NOTE: The rotary encoder layout on the board is for the wider version as sold by Sparkfun electronics. The footprint will also work for the more common narrow device, all you have to do is bend the large legs a bit.

Posted in News | 28 Comments

My version of the Printrboard LCD Controller

Well, I designed the board, routed it, checked it, and sent it out to be fabbed…

Got my boards in and built one only to realize, I had made an error :(. I got my 5V and GND connections reversed. I don’t know how I did this, but I did. So here I sit with 10 boards with reversed power connections.

Being the person I am, I’m not going to let that stand in my way of seeing if the design works otherwise so Here is my build progress.

The blank board looks like this:

PCB TOP Side (Encoder, display, and Reset button mount on this side)

PCB Bottom (14 Pin Connector, Switch, .1uf Capacitor, Backlight Resistor, and Contrast Pot mount on this side)

And the close up of the connector showing pin 2 going to ground with Pin1 being VCC…. ARRGH

 

Well, I built the board anyway. For a temporary fix, I used a 10 pin connector on pins 5 thru 14 and a two pin connector for the power and ground (Pins 1 & 2) so I could reverse them. Once assembled, the board looks like this:

 

 

By now, you may be wondering what the reset button and switch are for. Well, it so happens that the Printrboard does not use three pins of the 14 in the connector. So, I designed this board to use those pins if a custom cable is used. On my board, pins 3 & 4 which are normally not connected, can be broken out to the two boot pins on the printrboard. Pin 9 which is normally not connected, can be broken out to the reset pin found in the 6 pin header on the printrboard. By doing this, you can reset the printrboard by pressing the reset button. Firmware can be uploaded by turning on the switch then pressing the reset button to enable firmware mode. Normal run mode is with the boot switch off. I haven’t yet tested these options, but they should work.

I’ve corrected the schematic and board files for my board, and will make them available shortly. They are licensed under Creative Commons Attribution-ShareAlike 4.0 International License.

 

Posted in News | 9 Comments

Printrboard LCD

Recently I purchased a Printrbot Simple Metal and have been learning the art of 3D printing.  One thing I realized up front was the benefit of having an LCD display on the printer to show status and allow for menu driven printer control w/o using a computer host.

At the time I purchased my printer, the Printrbot store was out of stock of the official LCD.  So I set off on my own to determine the pinout’s of the Printrboard (The official printer control board for a Printrbot) to find out where the LCD connected and what signals were available.

My 1st thought was to use one of the many inexpensive “Smart LCD Controllers” that are all over eBay for reprap machines.  At about $16 for the complete setup, this seemed like a good place to start.

After looking at the Printrbot installation instructions for the official LCD, I could see that their LCD assembly connected to the EXP2 connector on the Printrboard.  A few web searches later and I found the pinout for that connector to be as such:

Printrboard EXP2 Labeled

Pinout of EXP2 on Printrboard

 

In the photo, you can see that Pin 1 is at the lower left of the connector as shown.

 

 

 

 

The pinout is as follows:

 

PrintrBoard 14 Pin EXP2

PIN1 – GND PIN2 – 5V
PIN3 – N/C PIN4 – N/C
PIN5 – D7 PIN6 – D6
PIN7 – D5 PIN8 – D4
PIN9 – N/C PIN10 – E
PIN11 – RS PIN12 – ROT_ENC-A
PIN13 – ROT_ENC-B PIN14 – ROT_ENC-SWITCH

The pinout on the RepRap Smart LCD Controller is broken out in two 10 pin connectors.

Smart LCD Controller

Pin 1 of each connector is lower left in the photo

 

The pinout for connection to the Printrboard is as follows:

 

Smart LCD Controller 10 Pin EXP1

PIN-1 Not Used PIN-2 ROT_ENC-SW
PIN-3 E PIN-4 RS
PIN-5 D4 PIN-6 D5
PIN-7 D6 PIN-8 D7
PIN-9 GND PIN-10 5V (VCC)

Smart LCD Controller 10 Pin EXP2

PIN-1 Not Used PIN-2 Not Used
PIN-3 ROT_ENC-B PIN-4 Not Used
PIN-5 ROT_ENC-A PIN-6 Not Used
PIN-7 Not Used PIN-8 Not Used
PIN-9 Not Used PIN-10 Not Used

After making the appropriate connections with a custom cable I made…

Voila — Success.

 

Smart LCD Controller for RepRap

Smart LCD Controller for RepRap


IMG_0326

The next step is creating my own board…

Posted in News | 19 Comments

Installing the NerdKit Bootloader

This is a continuation of some of my more popular posts on the NK site.   I had added this post to the NerdKit library section and since I don’t know if the library will return or not, I want to be sure it remains available.



As of late, I’ve noticed a lot of interest in the programming of the bootloader onto either a new or existing micro-controller.  This post is to provide a brief instruction to those venturing into this.

Programming a bootloader on a micro-controller requires additional hardware that was not provided with your NerdKit.

First and foremost, programming a bootloader requires a different type of programmer.  While there are other methods to install a bootloader, for this instruction, I am going to focus on the ISP programmer.  An ISP (or In System Programmer) is a device that connects to the SPI port of your micro-controller to program it via a serial protocol.  There are several of these devices readily available on the internet, or if you are adventurous, you can attempt to build your own from scratch.

Some common ISP programmers include:

  1. DAPA – Direct Access Parallel Adapter.  This is a somewhat outdated homebrew programming method.  To use this type of programmer, you MUST have a TRUE parallel port in your computer, not a USB to parallel adapter.  The schematic for this can be found several places on the web.
  2. DASA – Direct Access Serial Adapter.  This is the serial variation of the DAPA programmer.  It is also a homebrew programmer that requires a TRUE serial port in your computer, not a USB to serial adapter.  This schematic too can be found several places on the web.
  3. USB – ISP Programmer.  There are several variations of these available.  Many commercial types even some directly from Atmel.  Some of these would be the Atmel Dragon, USBASP, AVR MKII, USBTinyISP, etc…

There are others including the popular STK500 dev kit from Atmel, and some other buffered parallel port programmers that can be used.  The type you use isn’t terribly important.  I currently use a programmer I purchased in kit form on ebay.  It has the USBASP firmware on it.

Here is a photo of the programmer I use.  You may be able to find one on ebay, or from the designers WEBSITE.

NOTE: If you use purchase one of these programmers, be sure to specify the USBASP firmware.  There have been problems with the AVRISP MkII emulator firmware especially in Win Vista and 7.  I also have the USBASP Firmware in my programmer and can be of more help if we share common programmer hardware should you have a problem.

PHOTO
PHOTO

Once you have your programmer, you need to keep a couple of things in mind.  Some programmers will supply power to your circuit for programming, some require the circuit to have power.  The programmer I am using is capable of supplying the power.  As a result, I do not use the power regulator or battery when programming.

OK, let’s get started.

To program the bootloader you will need to build your breadboard very similar to how the initial setup in the guide describes.  If your programmer supplies power, you can leave the regulator portion off the board.  The main difference is that you MUST replace the jumper wire at pin1 with a resistor (I use 10k).

Note: If you use the programmer I have, the programmer will supply power if the 5v/3.3v jumper is installed.  If you use your own power, you MUST remove that jumper.

This Photo illustrates the basic setup.

PHOTO

Here I have added a small circuit board I made that breaks out the MOSI, MISO, SCK, and Reset pins from the programming cable to my breadboard.  You can purchase similar breakout boards on e-bay, or just attach wires into the ribbon cable connector to the proper places on your breadboard.

PHOTO

This photo shows the connections to the micro-controller.

PHOTO

And Programmer…

PHOTO

If you go your own route, the pin-out for the connector is this.

This is the header pinout on a board.

PHOTO

And this would be the view of the 10 pin female connector on the cable itself.

connector

Once all your connections are made, you are ready to start loading the bootloader.


Edit 1/16/2012

If you are using the USBASP like I have, you will need to have the low speed jumper installed when programming the bootloader.  This is especially important when installing to a new chip.


The NK team kindly has done most all of the work here for you in providing you with a compiled source to upload and a list of all the fuse settings.  The main thing here is to make sure to use the proper bootloader for the chip you are programming.  The ATMEGA168 and ATMEGA328P are different and used different fuse settings and bootloader file.

The chip I am using in my example is the ATMEGA328P.

In your code folder you downloaded from the member area, you will find 2 folders for bootloaders. They are called “bootloader168” and bootloader328P)

The first thing you need to do is look at the makefile.

The default makefile uses a DAPA programmer.  You must change this to the type of programmer you have prior to attempting to load the files.

In my case, I changed the dapa in the 1st line to usbasp so mine reads like this.

AVRDUDEFLAGS=-c usbasp -pm328p

Now, just to make sure we start of fresh, it’s a good idea to do a chip erase.  This will make sure the lock bits are cleared and any existing bootloader/program is cleared off the chip.  (It will also test the setup.

To do this simply type this from your command line.

avrdude -c usbasp -p m328p -e

(substitute your programmer and micro in the proper spots as needed)

If your setup is good, you should see this response.

C:\Users\Rick\Desktop\Code\BOOTLO~2>avrdude -c usbasp -p m328p -e
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e950f
avrdude: erasing chip
avrdude: safemode: Fuses OK
avrdude done.  Thank you.

If you did, your setup is good, and you are ready to proceed to programming.

After you’ve done the erase, you need to set the fuse bits in the micro to configure it.

This is done by navigating into your bootloader folder and typeing:

make fuses

If this was successful, you should see a bunch of lines scroll on your screen as each fuse is programmed.  Make sure each section verifies.  For the 328P I’m programming, this is what the response is from make.

C:\Users\Rick\Desktop\Code\BOOTLO~2>make fuses
avrdude -c usbasp -pm328p -U lock:w:0x2f:m
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e950f
avrdude: reading input file "0x2f"
avrdude: writing lock (1 bytes):
Writing | ################################################## | 100% 0.00s
avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x2f:
avrdude: load data lock data from input file 0x2f:
avrdude: input file 0x2f contains 1 bytes
avrdude: reading on-chip lock data:
Reading | ################################################## | 100% 0.00s
avrdude: verifying ...
avrdude: 1 bytes of lock verified
avrdude: safemode: Fuses OK
avrdude done.  Thank you.
avrdude -c usbasp -pm328p -U efuse:w:0x05:m
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e950f
avrdude: reading input file "0x05"
avrdude: writing efuse (1 bytes):
Writing | ################################################## | 100% 0.00s
avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0x05:
avrdude: load data efuse data from input file 0x05:
avrdude: input file 0x05 contains 1 bytes
avrdude: reading on-chip efuse data:
Reading | ################################################## | 100% 0.02s
avrdude: verifying ...
avrdude: 1 bytes of efuse verified
avrdude: safemode: Fuses OK
avrdude done.  Thank you.
avrdude -c usbasp -pm328p -U hfuse:w:0xd2:m
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e950f
avrdude: reading input file "0xd2"
avrdude: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xd2:
avrdude: load data hfuse data from input file 0xd2:
avrdude: input file 0xd2 contains 1 bytes
avrdude: reading on-chip hfuse data:
Reading | ################################################## | 100% 0.02s
avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: safemode: Fuses OK
avrdude done.  Thank you.
avrdude -c usbasp -pm328p -U lfuse:w:0xf7:m
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e950f
avrdude: reading input file "0xf7"
avrdude: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xf7:
avrdude: load data lfuse data from input file 0xf7:
avrdude: input file 0xf7 contains 1 bytes
avrdude: reading on-chip lfuse data:
Reading | ################################################## | 100% 0.02s
avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: safemode: Fuses OK
avrdude done.  Thank you.

After this is done, you are ready to send the bootloader to the chip.  This can be done by typeing:

make install

Once you’ve done this, you should get the following response from make.

C:\Users\Rick\Desktop\Code\BOOTLO~2>make install
avrdude -c usbasp -pm328p -U flash:w:foodloader.hex:a
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "foodloader.hex"
avrdude: input file foodloader.hex auto detected as Intel Hex
avrdude: writing flash (31756 bytes):
Writing | ################################################## | 100% 15.62s
avrdude: 31756 bytes of flash written
avrdude: verifying flash memory against foodloader.hex:
avrdude: load data flash data from input file foodloader.hex:
avrdude: input file foodloader.hex auto detected as Intel Hex
avrdude: input file foodloader.hex contains 31756 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 9.38s
avrdude: verifying ...
avrdude: 31756 bytes of flash verified
avrdude: safemode: Fuses OK
avrdude done.  Thank you.

If you made it to this point,

Congratulations!

You just installed your bootloader.  You should now be able to connect the micro-controller as shown in your guide and use it to upload your programs via the NK programming cable.

Rick

Posted in News | 2 Comments

Nerdkits back W/O libraries.

Well, the NK site seems to be functional again.  People are posting.  Libraries are still down but at least it appears the forums are operational.  I started a Hello thread in the “Everything Else” section so if you read this and haven’t posted there since it came back, please do.  I’m curious how many people make it back.  So far there has been a pretty good showing.

Welcome back NerdKits!!

Posted in News | Leave a comment

My Nerdkit LED Array Continued…

This was the second post for my array.  In this one, I show the cabinet I built to house it.

In case anyone is still interested, as I said I would do, here is the followup to my marquee project.

Original post Link

After a couple of hours of playing with the table saw, router, and brad nailer, the marquee is looking a bit more finished.  I built a nice little cabinet for my marque from some pine lumber I had.  Add a bit of stain and a NerdKit and voilla, its finished. (except for making a back) 🙂

alt NERD alt KITS alt ROCK alt TEST PATTERN

Here’s a view of the back.  I plan to add a thin back and possibly make a more permanant (NerdKit) to stay in the box.

alt BACK

Now I just have to figure out how to make a phrase scroll without sending it via serial.

I made a quick video and posted it on YouTube.  Pardon the mess in my computer room!

This is the most recent full program I have. All the text that is displayed is in the function do_testpattern(). You’ll notice the last time I used it was to wish my wife (Donna) a happy birthday… 😀 Anyway, the main function calls do_testpattern() and the while(1) loop keeps it there indefinitely. If you have any other questions please ask. This program was my first major modification and my 1st full learning experiance with C. So there may be some programming methods used that aren’t quite right, but it works…

CODE: Array_Code.zip

Fun times ahead.

Rick

Posted in News | 2 Comments

NerdKit LED Array Build

With the forums at the NK site having the problems, it has made me realize that it would be good to have the projects I built available in another outlet… One that I can control.  So the next few posts will be essentially old projects I did a few years ago.

The 1st is my build of the Nerdkit LED Array project:

In case anyone is interested, I thought I’d post the progress start to finish of my marquee.
I built mine from scratch using the following. Materials:

(1) Piece of laminate flooring cut to 5″ x 19-3/4″
(2) 60 light strands blue LED Christmas lights (Purchased mine at Wal-Mart)

alt Blue LED Lights

Black spray paint
About 2Ft of ribbon cable (old floppy cable split to 17 conductors)

Tools:

23/64″ drill bit (Size may vary based on lights purchased)
Center punch
Cordless drill
Soldering iron
Solder
Wire cutters
Wire strippers
Heat shrink tubing (various sizes)
Wire ties

The construction began by laying out a 3/4″ x 3/4″ grid on the back side of the laminate.  I then center punched and drilled all the holes with the 23/64″ drill.  Try to keep the drill as straight as possible when drilling.  I then cleaned the back side of the board and spray painted it black. (sorry I don’t have any photos of the layout and drilling process)

Once finished, the board looked like this.

alt Board top alt Board bottom

I then cut the light strands apart.  When cutting the strands apart, unwind the wires as you go.  The LED’s are run in series so there are some long continuous lengths of wire that can be used later for the marquee assembly.  After the LED’s and sockets were separated from the strands, these were the bonus pieces left over.

alt Blue LED's after cutting them apart alt Bonus bits

Notice I got 3 long wire sections, 2 resistors (in the green tube shaped pieces) a plug and socket from each strand.

After I had all the lights separated, I looked them over.  On the strands I purchased, there was a mark on one side of the socket.

alt Socket mark

On all but a few of the lights, this side represented the anode of the LED.  There were a few that were backward though.  I did go through all of them to make sure they were all set anode to striped side.

I then began the process of installing the LED’s in the board keeping the stripe on the socket facing the same direction on all of them.  This configured them anode to cathode as needed for the column wiring.

alt Installation progression alt Installation progression alt Installation progression alt Installation progression alt Installation progression alt Alignment

Once the LED’s were all in place, I began the daunting task of soldering all the wires.  I first soldered each of the rows skipping each column pair as I went.  I then soldered the column wires.

alt Beginning Column soldering alt Almost done alt Finally done

At this point, I was ready to test.  To do this, I connected all the row wires together and hooked an alligator clip jumper wire to it.  Then one at a time, I connected a column wire to another jumper.  I then connected the jumpers to 5vdc with a 1k resistor in series.  At this point, one column lit.  I would then swap the polarity of my jumpers to see the other column fed by that wire light.  I did this for all column wires.  Not only did this confirm all the connections were good, It allowed me to double check that each LED was installed correctly in it’s socket.  Here’s a couple of photo’s showing the test setup and a column lit during a test.

alt Test setup alt Column lit during test

I then separated the 17 conductors in the ribbon cable on each end, stripped and tinned the wires and attached them to the marquee wires starting with row zero thru 4 then column 0 thru 11.  I then wire tied everything in place.

alt Finished Marquee

Then came the moment of truth…   SUCCESS!!!

alt Success!

Even setup python on the pc so I could send my own messages…

alt Time sent from python

I hope this has been helpful to anyone attempting this project on your own.

I will warn you, this is a very time consuming project.  Be prepared to spend several hours soldering.  However, the reward seeing it running is worth the effort!!

Rick

Posted in News | Leave a comment

Sad NK Update

UPDATE 4/26/2013:

Apparently I spoke too soon…  While their forums appear to be up, and I was able to post on the evening of the 22nd, I noticed right away that the library section was not functioning.  I also noticed that after the few initial posts, the forums seemed totally inactive.  I originally attributed this to the possibility that people just weren’t aware the site was back.  Unfortunately, this isn’t the case…

I got an email from a friend of mine, that I had communicated with in the past outside of the forums.  He stated that when he tried to logon, to post on there site, an error was generated and displayed.  His frustration level is very high at this time.  I decided that I would create a new post, and find out just how many people were back, and able to post there.  At this time I discovered that now I can no longer post either.  While the forums are there to read, posting doesn’t work.  Now I know why the forums have been so inactive.

I at one time had HIGH regards for the NerdKit originators.  They showed passion and friendly helpfulness.  Now, they don’t even respond to email and they apparently don’t care too much about the people that have supported them along the way.

On 4/20, I sent this email:

Humberto or Mike,

Guys, C’mon.  It’s been over a week and a half since your site went down.  While you managed to get the static pages of your site back up, as you know, the forums, libraries, members section, and store are still down.  I have been a long time supporter of the Nerdkit community.  I like others are pretty disappointed at the level of response we are seeing.  Little to no communication for those sending you questions via the support email addresses, no generic broadcast email to all members apologizing for the inconvenience and explaining the situation, not even a blurb about it on the main nerdkits.com front page once you did get the static pages back up.

Please don’t get me wrong, I’m not mad, just disappointed.  When I came to this community, you were both (Mike & Humberto) active participants.  You would both on occasion post to peoples threads, and you routinely added new tutorials.  As time has gone by, Mike has all but disappeared from the site, and the postings, even in the support threads, has become very rare.  The NK Newsletter that was a monthly thing, became every few months, to now nearly a year has gone by since the last one.  The last tutorial was nearly a year ago as well.  Based on my communication with others, even messages sent to support@… don’t always get a response (even before this crash).   It seems that you saw the forums had become self sustaining.  Mainly because of the support of members like Noter, Pcbolt, Ralphxyz, esoderberg, and myself to name a few.  Even as it has become painfully obvious that your hardware is becoming obsolete (current cable doesn’t have drivers for win8), we still hear nothing. 

Your community is getting frustrated and concerned.  I have communicated with a few of them and one person, who is quite the regular on the forums stated in his last email to me:

I am really getting turned off … so I think I will just move on.

It is just so disrespectful, or maybe they lost all of the forum email.

Too bad I have really enjoyed and appreciated the forum.

I like many others willingly paid way over market value for your kit, because of the support behind it.  Now it seems that may even be failing.  I’d like to believe that isn’t so, but from what has been gradually happening over time, and with the length of time the site has been down, it may be true.

I don’t know if all this is falling on deaf ears or if I’ll even get a response, but I’m hoping you will still communicate.

Rick Shear, NerdKit owner

I have as of yet to get a response.

Sad days indeed.

Posted in News | Leave a comment

Nerdkits Forums are available… Site seems back 100%

Just in case anyone is following this progression, I figured I’d update the status.

The Nerdkit.com website is back up and functional.  The forums are alive and running.

I have but two negatives from this experience.  The first is the amount of time it took for the site to come back to 100% life.  In this day and age of easy backup options, I don’t really understand why the site was down so long.  I’m sure they had reasons though.  The second issue I had was the lack of communication between them and us.  I sent multiple messages to support to try to find out what was going on, they only briefly responded to one of them.  This is not very good customer service.  This was not a good situation, and reading the reviews on amazon.com for their kit, they probably lost a few customers because of it.

Anyway, enough of my ranting, the site is back, so for all you fellow nerdkit owners…  I’ll see you in their forums once again.

 

Posted in News | 1 Comment