NerdKits - electronics education for a digital generation

You are not logged in. [log in]

NEW: Learning electronics? Ask your questions on the new Electronics Questions & Answers site hosted by CircuitLab.

Support Forum » Trouble with initialload makefile in Mac OS X Lion

September 23, 2011
by Aploosh
Aploosh's Avatar

Hi,

I installed the latest Prolific PL2303 driver for Mac OS X (http://www.prolific.com.tw/support/files//IO%20Cable/PL-2303/Drivers%20-%20Generic/MacOS/MacOS%2010.x/md_PL2303_MacOSX10.6_dmg_v1.4.0.zip) and I was able to find the Nerdkit device listed in terminal as /dev/tty.usbserial. (It's also listed as /dev/cu.usbserial).

However, after changing the "AVRDUDEFLAGS=-c avr109 -p m168 -b 115200 -P /dev/ttyUSB0" line in the makefile to "AVRDUDEFLAGS=-c avr109 -p m168 -b 115200 -P /dev/tty.usbserial" (I've also tried replacing the tty with cu), the make process freezes, displaying only the line "avrdude -c avr109 -p m168 -b 115200 -P /dev/tty.usbserial -U flash:w:initialload.hex:a" (i.e. I navigated to the initialload directory in terminal, typed "make" and pressed enter)

I don't know if this is significant or not, but instead of showing my computer name in the terminal, it shows unknown58b035624337:~ [MyName]$

Thanks!

September 23, 2011
by Ralphxyz
Ralphxyz's Avatar

Are you on LION or on a older forgotten/deserted legacy Mac?

On my older Mac mini OS X 10.6 I use /dev/cu.PL2303-0000101D.

Ralph

September 23, 2011
by Aploosh
Aploosh's Avatar

I'm on Lion (Version 10.7.1)

September 23, 2011
by hevans
(NerdKits Staff)

hevans's Avatar

This definitely feels like a strange driver issue. Have you tried the driver from our downloads section. Its a bit older, but its at least known to work with our cable.

Humberto

September 23, 2011
by Aploosh
Aploosh's Avatar

Yes, I've tried the driver from the downloads section but I get this error:

make -C ../libnerdkits
make[1]: Nothing to be done for `all'.
avr-gcc -g -Os -Wall -mmcu=atmega168  -Wl,-u,vfprintf -lprintf_flt -Wl,-u,vfscanf -lscanf_flt -lm -o initialload.o initialload.c ../libnerdkits/delay.o ../libnerdkits/lcd.o ../libnerdkits/uart.o
avr-objcopy -j .text -O ihex initialload.o initialload.hex
avrdude -c avr109 -p m168 -b 115200 -P /dev/tty.usbserial -U flash:w:initialload.hex:a

I notice that it freezes on the same line as the newer driver.

September 23, 2011
by Aploosh
Aploosh's Avatar

Does the device have to be listed as cu.PL######etc or is it alright that it's listed as cu.usbserial?

September 25, 2011
by hevans
(NerdKits Staff)

hevans's Avatar

It varies depending on the driver you are using. Just to make absolutely sure there isn't something strange somewhere else in your circuit, could you post a good close up picture of your setup.

Humberto

September 25, 2011
by Aploosh
Aploosh's Avatar

I'm 95% positive it's setup correctly. Here are two images if they help:

http://i.imgur.com/d7OWO.jpg
http://i.imgur.com/DHBNs.jpg
September 25, 2011
by Ralphxyz
Ralphxyz's Avatar

Aploosh, you have, avrdude -c avr109 -p m168 -b 115200 -P /dev/tty.usbserial -U flash:w:initialload.hex:a

Try:

avrdude -c avr109 -p m168 -b 115200 -P /dev/usbserial -U flash:w:initialload.hex:a

Drop the tty!

Ralph

September 26, 2011
by Aploosh
Aploosh's Avatar

After dropping the tty, it says there is no such file or directory as /dev/usbserial:

make -C ../libnerdkits
make[1]: Nothing to be done for `all'.
avr-gcc -g -Os -Wall -mmcu=atmega168  -Wl,-u,vfprintf -lprintf_flt -Wl,-u,vfscanf -lscanf_flt -lm -o initialload.o initialload.c ../libnerdkits/delay.o ../libnerdkits/lcd.o ../libnerdkits/uart.o
avr-objcopy -j .text -O ihex initialload.o initialload.hex
avrdude -c avr109 -p m168 -b 115200 -P /dev/usbserial -U flash:w:initialload.hex:a
avrdude: ser_open(): can't open device "/dev/usbserial": No such file or directory
make: *** [initialload-upload] Error 1
September 26, 2011
by Ralphxyz
Ralphxyz's Avatar

Well what do you see when you ls /dev from the command line in Terminal?

Possible you do not have the USB driver installed fully, simple enough to just re-install.

Make sure you are using the latest for LION.

I wish Apple hadn't once again abandoned legacy Mac computers so that I could run LION.

Ralph

September 26, 2011
by hevans
(NerdKits Staff)

hevans's Avatar

Hi Aploosh,

Looking over your pictures, I am concerned about your wiring. It looks like the last wire to the LCD is not going to the proper place on the breadboard. This is probably causing you to believe you are in programming mode even when you might not necessarily be. Were you ever able to see the original congratulations message, or did you skip straight to programming?

Humberto

September 26, 2011
by Aploosh
Aploosh's Avatar

Thanks for pointing that out, Humberto! I think the wiring is fixed now:

http://i.imgur.com/HZiug.jpg

However, I'm still getting the same error as before. (It's freezing on this line: avrdude -c avr109 -p m168 -b 115200 -P /dev/cu.usbserial -U flash:w:initialload.hex:a)

September 26, 2011
by hevans
(NerdKits Staff)

hevans's Avatar

Your picture is showing the programming switch in run mode, not programming mode, yet there are still only two black bars on the LCD. Were you ever able to see the original preloaded congratulations message, and are you still able to boot into run mode and see the message?

Humberto

September 26, 2011
by Aploosh
Aploosh's Avatar

And yes, I was able to see the original congratulations message, but I got the same error. The wiring error came from after you asked me to post a picture and then I disconnected the wires, trimmed them up, and rewired them. Sorry, I should have triple-checked.

September 26, 2011
by Aploosh
Aploosh's Avatar

No, I can no longer boot into run mode and see the message.

September 27, 2011
by hevans
(NerdKits Staff)

hevans's Avatar

Well thats interesting. If your driver just wasn't working, you would not have been able to erase the program on the chip (assuming that is what has happened). Have there been any strange incidents with your kit like connecting the battery backwards or plugging a component in the wrong place that might have caused your program to be corrupted?

Here is something to try. Take one of the LEDs in your bag, put the anode on Pin 27 of the MCU, and the cathode on the GND rail. Then reset power to the chip (in normal run mode) if your chip is still running with our original code on it you should see the LED blink momentarily. Our preloaded code blinks this pin on and off once, so you should see the LED blink momentarily when you turn the chip on. Give it a try, let us know what happens.

Humberto

September 27, 2011
by Aploosh
Aploosh's Avatar

There haven't been any strange incidents with my kit besides this.

The light does not blink.

September 28, 2011
by hevans
(NerdKits Staff)

hevans's Avatar

Hi Aploosh,

Well this is a strange one. Do you by any chance have a different computer around that you can quickly use to install the cable drivers and see if the cable works? At this point I think your cable might be not working, but it would be good to make sure.

There is one test you can run, to try and check if the cable is working. Go to the Servo Squireter tutorial http://www.nerdkits.com/videos/servosquirter/, and go down to the Serial Communications section. Follow the directions to communicate with the NerdKit using Screen, but instead of connecting the yellow and green wires of the serial cable to the MCU connect them to the same empty row of the breadboard. Since the yellow and green, send and receive wires are hooked up together, everything you type on your screen window should be echoed back to you on the screen. Let us know what you get. If the cable is fully operational, then we are going to have to suspect something is up with your chip.

Humberto

September 28, 2011
by Aploosh
Aploosh's Avatar

I have tried the same process on my other Mac running the same OS (Lion 10.7.1), but I get the same error.

After following the instructions, nothing is echoed back to me on screen.

September 29, 2011
by Aploosh
Aploosh's Avatar

Is there a way to reload the original program onto the chip?

September 29, 2011
by hevans
(NerdKits Staff)

hevans's Avatar

Hmmmm, strange. I guess your cable must have just been damaged somehow. Go ahead and send us an email at support <at> nerdkits <dot> com so I can get some of your original order details and I'll have a new cable sent out to you.

Humberto

Post a Reply

Please log in to post a reply.

Did you know that binary numbers use base 2 to represent numbers, and these are important for understanding microcontroller registers? Learn more...