Raw Thrills Pac Man LED Desk Clock now 50% off...$39.99!

EDIT: And have you tried adding a speaker to see if there is some sound?

Yeah i should try that out to see if any output is coming from there... hmmm....

So the cpu pcb they use is a proprietary one but its very similar to the nootropic rgb matrix backpack where as on the pacman pcb the J1 and P2 6-pin's can be used for programming and usb traffic to/from the atmel atmega328p

how can i hook this up to a computer to read the contents/data on this atmel ic?

oh yeah, i removed the 18 micro-screws from the led display and took a better photo of the led driver pcb now (attached to this post)
 

Attachments

  • pacman-clock-3.jpg
    pacman-clock-3.jpg
    195.4 KB · Views: 82
Last edited:
Cool, thanks for the pics.

...and it looks like a battery can be added for those interested.
The battery doesn't go anywhere... it probably keeps time horribly, because they cheap'd out and got rid of the RTC chip that was supposed to be at U3 (probably with a 32KHz xtal at Y2).

Yeah i should try that out to see if any output is coming from there... hmmm....
There won't be directly... again, they didn't populate those parts. You could look at the signal at the top pad of R5, which probably goes to the MCU. It was supposed to go to a transistor (Q1) to drive the speaker. Since they didn't populate the parts, I'm guessing they didn't write the code either.

how can i hook this up to a computer to read the contents/data on this atmel ic?
You can try reading it back (with avrdude for example), though they probably set the lock bits, to prevent you from doing that. Though everything else looks like it was just thrown together, so maybe not.

DogP
 
Wonder if this would be something Ben Heckendorn would do for his YouTube series??? I know he goes to MGC so maybe someone on the forum knows him personally and could request it.
 
...and it looks like a battery can be added for those interested.
The battery doesn't go anywhere... it probably keeps time horribly, because they cheap'd out and got rid of the RTC chip that was supposed to be at U3 (probably with a 32KHz xtal at Y2).
^ Verified and correct. The pcb is just a template. They didn't hook the battery up to anything on this pcb. Would it even work if you soldered in an RTC chip + xtal + battery?

Yeah i should try that out to see if any output is coming from there... hmmm....
There won't be directly... again, they didn't populate those parts. You could look at the signal at the top pad of R5, which probably goes to the MCU. It was supposed to go to a transistor (Q1) to drive the speaker. Since they didn't populate the parts, I'm guessing they didn't write the code either.
^ ah good point. I won't even bother then (but, I could still check for signal via oscope on R5 like you mentioned), but yeah, no transistor to provide audio driver/amp on Q1.

how can i hook this up to a computer to read the contents/data on this atmel ic?
You can try reading it back (with avrdude for example), though they probably set the lock bits, to prevent you from doing that. Though everything else looks like it was just thrown together, so maybe not.
Ah nice. I'm new to the atmel scene. Downloaded avrdude and ordered some stuff on adafruit for further experimentation! :)
 
I just picked up one of these. It's pretty nice - a little smaller than I expected but not bad.

The biggest surprise... mine is really bright. Like eye-piercingly bright. I'm going to need to find some sort of tint to cut for the front of it. Who could have one of these in their desk without going blind? (I'm joking of course, but it is extreme for me.)
 
I just picked up one of these. It's pretty nice - a little smaller than I expected but not bad.

The biggest surprise... mine is really bright. Like eye-piercingly bright. I'm going to need to find some sort of tint to cut for the front of it. Who could have one of these in their desk without going blind? (I'm joking of course, but it is extreme for me.)

Code:
Individual pixels are drawn with the "drawPixel()" function. This takes an X and Y 
coordinate and a color. To lower the brightness, you specify a less bright color.

      // draw a pixel in solid white
      matrix.drawPixel(0, 0, matrix.Color333(7, 7, 7));

There are two basic ways to specify a color: RGB or HSV. When using the RGB color 
functions you can specify a darker color by reducing the values of the R, G and B 
components proportionally.

When using the HSV function (Hue Saturation and Value) the "value" parameter 
controls the brightness of the pixel color.

See: https://learn.adafruit.com/32x16-32x32-rgb-led-matrix/library ...for examples how to code.

The problem here is this is a retail-sold clock and not sure if the code inside the atmel chip is obfuscated, encrypted or just left out readable text source code (doubt it since it'll be compiled into binary).

Other then that, stick something over the front panel to dim it. Otherwise it is what it is! :)
 
Last edited:
Would it even work if you soldered in an RTC chip + xtal + battery?
Heh, the RTC would probably work great... but the the time would still suck, since it's unlikely that the MCU would try to read it. It looks like they probably designed for a DS1307, which is an I2C RTC.

Ah nice. I'm new to the atmel scene. Downloaded avrdude and ordered some stuff on adafruit for further experimentation! :)
Cool, have fun!

DogP
 
Here's something interesting... this thread inspired me to unbox the Pac Man clock again and find a place for it in the arcade. I noticed when I plugged it in that the time, while wrong, wasn't 12:00 or some other default looking time. So I set the time, then unplugged it for a couple minutes, and saw that it actually kept time.

Figuring that there's no way that could happen without a battery backed RTC, I popped mine open, and yep... mine has the DS1307 and a battery. It's also got the components for the speaker populated, though I hooked up a speaker, and nothing seems to come out.

So, it looks like there are at least two revisions. I wonder if it uses the RTC at boot, and then the atmega keeps its own time while powered up... in which case those without the battery/RTC would have to set it at startup, but that could explain the poor timekeeping, and the firmware would be identical (and maybe resetting would set the clock to accurate time again).

Another possibility for mine is that it looks like they used the wrong xtal. The marking on mine is K310CD, which is likely a Kyocera ST3215SB 32.768KHz xtal. The K=ID, 310=date code, C=7pF load capacitance, D=management code. According to the DS1307 datasheet, the chip is designed for a 12.5pF xtal, not a 7pF... and should be <45k ohm ESR (the ST3215SB is <70k ohm). They also violated the recommended xtal layout from the datasheet by routing the traces underneath the chip, even though it specifically states not to.

From the datasheet:
CLOCK ACCURACY
The accuracy of the clock is dependent upon the accuracy of the crystal and the accuracy of the match between the capacitive load of the oscillator circuit and the capacitive load for which the crystal was trimmed. Additional error will be added by crystal frequency drift caused by temperature shifts. External circuit noise coupled into the oscillator circuit may result in the clock running fast.

thegleek: What firmware version do you have (shown as FW when you're setting the time)? Mine has 01. Also, does yours have a black or silver sticker on the back? Mine is silver, but I noticed one review on Amazon had a black sticker in their pic.

DogP
 

Attachments

  • DSC03814.jpg
    DSC03814.jpg
    140.9 KB · Views: 75
thegleek: What firmware version do you have (shown as FW when you're setting the time)? Mine has 01. Also, does yours have a black or silver sticker on the back? Mine is silver, but I noticed one review on Amazon had a black sticker in their pic.

I'm guessing the 2nd version is the one with less parts, which might explain (but not account for) the 50% price drop.

Great. coinopper is right. the 2nd revision sucks ass and has less parts and just epic fail all around... i've attached answers to your questions dogp...
 

Attachments

  • pacman-clock-4.jpg
    pacman-clock-4.jpg
    191.2 KB · Views: 65
  • pacman-clock-5.jpg
    pacman-clock-5.jpg
    183 KB · Views: 58
I did not know this ->

Raw Thrills, Inc. was founded in 2001 to develop the finest arcade video game entertainment. The studio is led by veteran game designer Eugene Jarvis, whose credits include classic titles such as Defender™, Robotron:2084™, and the Cruis'n™ series of adventure driving games. From its debut hit The Fast and the Furious™, to the 2015 release Jurassic Park Arcade™, Raw Thrills strives to bring the player the ultimate arcade experience, while delivering consistent reliability and value.

In 2006, Raw Thrills merged with the renowned game development studio Play Mechanix, Inc. to create a new world leader in arcade video and video redemption games. Founded in 1995 by George Petro, a former designer for Midway Games, the Play Mechanix design team are the creators of the famed Big Buck Hunter™ series, Deal or No Deal™, Wheel of Fortune™, Terminator Salvation™, Aliens Armageddon™ and many others.

The combined strength of the two studios have produced an amazing lineup of games for 2015 including Batman™, SnoCross™, Super Cars™, SuperBikes 2™, Barrel of Monkeys™, Kung Fu Panda™, Aliens Armageddon™, and the incredible new Big Buck HD Wild™ and Jurassic Park Arcade™. Raw Thrills has achieved many accolades and awards from the entertainment industry, including the Best of Show Award (BOSA) 2015 award for Jurassic Park Arcade™, and Play Meter 2015 Players Choice award for Big Buck HD™. The company exports its line of video arcade and redemption games to over 60 countries throughout the world.

http://rawthrills.com/about-us/
 
Great. coinopper is right. the 2nd revision sucks ass and has less parts and just epic fail all around... i've attached answers to your questions dogp...
Interesting... here's mine.

DogP
 

Attachments

  • DSC03815.JPG
    DSC03815.JPG
    127.2 KB · Views: 64
  • DSC03816.JPG
    DSC03816.JPG
    136.5 KB · Views: 76
Ok, my nootropic RGB matrix backpack came in today. came as a kit, so had to solder on some parts, then plugged it directly int the back of the pacman 16x32 led display and it worked (see photo #3).

Now... Also, i purchased a FTDIFRIEND so i can communicate (read/write) to this ATMEGA328P chip (contain data on internal flash/eeprom) for pacman clock data...

but... I am having most difficult time with AVRDUDE and this thing! argh! yes, the windows 10 drivers are working 100%, the usb is installed as serial COM5, but this is what I get:

Code:
C:\Users\thegleek>avrdude -c ftdifriend -p m328p -P COM5 -v -F

avrdude: Version 5.10, compiled on Jan 19 2010 at 10:45:23

         System wide configuration file is "C:\WinAVR-20100110\bin\avrdude.conf"

         Using Port                    : COM5
         Using Programmer              : ftdifriend
         AVR Part                      : ATMEGA328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65     5     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : SERBB
         Description     : design ftdi adatper, reset=dtr sck=tx mosi=rts miso=cts

avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for ATMEGA328P is 1E 95 0F

avrdude done.  Thank you.

any ideas?
 

Attachments

  • FTDI-1of3.jpg
    FTDI-1of3.jpg
    130.3 KB · Views: 69
  • FTDI-2of3.jpg
    FTDI-2of3.jpg
    70 KB · Views: 57
  • FTDI-3of3.jpg
    FTDI-3of3.jpg
    122.5 KB · Views: 73
Oh yeah, I made a small entry into the avrdude.conf file (per adafruit instructions):

Code:
# some ultra cheap programmers use bitbanging on the 
# serialport.
#
# PC - DB9 - Pins for RS232:
#
# GND   5   -- |O
#              |   O| <-   9   RI
# DTR   4   <- |O   |
#              |   O| <-   8   CTS
# TXD   3   <- |O   |
#              |   O| ->   7   RTS
# RXD   2   -> |O   |
#              |   O| <-   6   DSR
# DCD   1   -> |O
#
# Using RXD is currently not supported.
# Using RI is not supported under Win32 but is supported under Posix.

programmer
  id    = "ftdifriend";
  desc  = "design ftdi adatper, reset=dtr sck=tx mosi=rts miso=cts";
  type  = serbb;
  reset = ~4;
  sck   = ~3;
  mosi  = ~7;
  miso  = ~8;
;
- taken from: https://learn.adafruit.com/ftdi-friend/programming-blank-avrs
 
I've never used the FTDI Friend... my understanding is that it's ridiculously slow. But it should work. On the page after the one you linked to, it says to verify the connection, type:
Code:
avrdude -c ftdifriend -P \\.\COMxx -p atmega328p
(where xx is the number of the COM port)

That's slightly different than the command line you entered, though looking at the output of your command, it seems like it's happy with what you typed.

Do you have a new bare chip, rather than just the Pac Man clock's atmega? If they have the chip locked down, they likely disabled serial programming in the fuses, which would prevent you from communicating with the chip at all. You could confirm that your programmer is set up correctly if you tested with your own (known unlocked) chip.

Also, you need to be careful, as the wrong command will erase the flash (you might want to put option "-n" to disable write: http://www.nongnu.org/avrdude/user-manual/avrdude_4.html ).

DogP
 
I've never used the FTDI Friend... my understanding is that it's ridiculously slow. But it should work. On the page after the one you linked to, it says to verify the connection, type:
Code:
avrdude -c ftdifriend -P \\.\COMxx -p atmega328p
(where xx is the number of the COM port)

That's slightly different than the command line you entered, though looking at the output of your command, it seems like it's happy with what you typed.

Do you have a new bare chip, rather than just the Pac Man clock's atmega? If they have the chip locked down, they likely disabled serial programming in the fuses, which would prevent you from communicating with the chip at all. You could confirm that your programmer is set up correctly if you tested with your own (known unlocked) chip.

Also, you need to be careful, as the wrong command will erase the flash (you might want to put option "-n" to disable write: http://www.nongnu.org/avrdude/user-manual/avrdude_4.html ).

DogP

I don't even know whats going on...

Version 2 seems to be holding the time so far a few weeks in...
 
I don't know what revision I have, but if someone could figure out how to make it keep decent time that'd be great. As it is now, it loses a minute every couple days.
 
I'm on FW02.
Had it for about 1 week or so.
Keeps perfect time (so far).

Thanks everyone for the pics and the hacking investigation. Fascinating. :)
(Though long term, I'd prefer to buy the LED array, add a RPi, and have it do more amazing things).
 
I've never used the FTDI Friend... my understanding is that it's ridiculously slow. But it should work. On the page after the one you linked to, it says to verify the connection, type:
Code:
avrdude -c ftdifriend -P \\.\COMxx -p atmega328p
(where xx is the number of the COM port)

That's slightly different than the command line you entered, though looking at the output of your command, it seems like it's happy with what you typed.

yeah that command is supposed to read (r) the flash on the atmega IC, but it doesn't get past the expected signature for the atmega328p. For shits and giggles, here's your command, pretty much same output as my last:

Code:
C:\>avrdude -c ftdifriend -P \\.\COM5 -p atmega328p -F

avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for ATMEGA328P is 1E 95 0F

avrdude done.  Thank you.

Do you have a new bare chip, rather than just the Pac Man clock's atmega? If they have the chip locked down, they likely disabled serial programming in the fuses, which would prevent you from communicating with the chip at all. You could confirm that your programmer is set up correctly if you tested with your own (known unlocked) chip.

heh. i'm not even messing with the pacman pcb/chip yet. This is working with the vanilla atmega chip that comes with the nootropic RGB matrix backpack. it has data on it as it shows a demo of colors like i posted a photo of previously.

Also, you need to be careful, as the wrong command will erase the flash (you might want to put option "-n" to disable write: http://www.nongnu.org/avrdude/user-manual/avrdude_4.html ).

yeah i am not writing to anything yet and some instructions on adafruit even said something about wiring the DTR for writing that overrides the RTS signal. I'm not even close to this step yet. I JUST WANT TO READ THE DATA.
 
Version 2 seems to be holding the time so far a few weeks in...
Actually, you know what's really weird? I plugged mine in last week, and it's actually keeping good time now! When I had it apart I pulled and reinstalled the coin cell battery. I wonder if the RTC was in a bad state from shipping? Of course V2 doesn't have an RTC, so if people have time keeping problems with V2, that's definitely not the problem.

yeah i am not writing to anything yet and some instructions on adafruit even said something about wiring the DTR for writing that overrides the RTS signal. I'm not even close to this step yet. I JUST WANT TO READ THE DATA.
I'm pretty sure you need to do the DTR mod ( https://learn.adafruit.com/ftdi-friend/programming-blank-avrs ), even to read the data.

DogP
 
Back
Top Bottom