Jump to content
IGNORED

Atari 2600+ Hardware


Blinky

Recommended Posts

From Specifications from the Atari website we know that the 2600+ Features a Rockchip 3128 SOC microprocessor with 256MB DDR3 RAM and 256MB eMMC fixed internal storage. But that isn't really satisfying enough.

 

We could already have a peek inside the 2600 tear down in this Unboxing & Teardown video and @Ben from Plaion showed a picture of his framed Atari2600+ parts on his wall. Today I could hold back my curiosity and opened up my 2600+ to have a closer look inside.

 

TaDa!

main-board-top.thumb.jpg.8beb32b0fd5512b6c683302fbad593e8.jpg

The black PCB is the mainboard and is what the 2600+ is all about. It has the Rockchip 3128 SOC and next to it the 256MB RAM from Hynix (Part# H5TQ2G63GFR-RDC a 2Gbit or 128Mx16 DDR3 SDRAM  @ 1.5V) and next to that the 256MB eMMC from Kioxia (Part# TC58NVG1S3HTA00 SLC 2Gbit or 128Mx16 SLC NAND Flash)

 

Other interesting things are that there is a Micro USB connector and a recovery button on the board. I cheched these out and the Micro USB connector has the same functionality as the USB-C connector and the game reset switch on the 2600+. It can power the mainboard and when pressing the recovery button while connecting the micro USB cable to a PC it puts the board into firmware recovery mode.

 

There are also  two pin headers that connect the mainboard to the I/O board (the big green PCB inside the 2600+) The switch inputs (1P_AB, 2P_AB, 16:9/4:3, B/W, Game Select and Game Reset) are connected to the pin header directly meaning these are read directly by the main processor. The Joystick and cart slot (5V logic) are not available on these headers. These are handled by the two MCUs (Micro controllers) on the I/O board and communicate with the main board using the RX and TX serial pins also on the header.

 There's also an unmounted 4 pin header at the bottom of the mainboard. There are no markings and I'm not sure what it is for but my best guess would be that this is a serial header for debugging.
 

There's also something more interesting on the board. At the bottom of the main board there is a footprint for a micro SD card slot and in the top  right corner is a label called  'CARD_TEST' that hints there is some SD card functionality implemented in the design. Whether it works or not remains to be seen. It makes me wonder though 
if there where plans to add a SD card slot to the 2600+ or if it's there for a future project like a portable 2600+ as the main board is very compact and doesn't consume much power (about 100mA @ 5V). and a portable I/O board can be very small without cart slot and some controller buttons :)

 

Bottom side showing the Micro SD card footprint:

mainboard-bottom.thumb.jpg.56132c0916e5d72d046a14912bc56ac7.jpg

 

Programming headers for the two MCUs on the I/O board:

io-board-headers.thumb.jpg.4d7391c9cdacd1308afd97aef3b1b55a.jpg
 

  • Like 7
  • Thanks 3
Link to comment
Share on other sites

10 minutes ago, karri said:

can the Rockwell tool program the MCU's over this jtag while you flash the firmware

I can't tell for sure yet. but I think there is a mechanism to redirect USB to both MCU's (There's a 2nd pair of USB signals on the header and there's a CH444G analog switch chip near USB-C slot) So the main CPU can select one of both MCU's and do a firmware update over USB.

 

17 minutes ago, THX-1138 said:

puts it into Mask ROM mode.

Yeah. that's the recovery mode I mentioned.


BTW the naming 'Mask ROM mode ' is kind of odd as a masked ROM can not be altered (it is used during chip production)

Link to comment
Share on other sites

Just discovered something else:

 

If you put the TV type switch in B/W positon hold down Game Reset while powering on, the 2600+ does not enter recovery mode but get's detected as a Game controller. Unfortunately it doesn't seem to have active buttons. So it ends there.

 

Just useful to know in case someone is wondering why the 2600+ can't be put in recovery mode (and the TV type switch in in B/W position).

 

 

 

  • Like 1
Link to comment
Share on other sites

On 11/19/2023 at 9:02 PM, Dionoid said:

Did anyone succeed in connecting a keyboard to the micro-USB port on the motherboard?

That doesn't work. It has the same function as the external USB-C port.

 

Confirmed! The 4 pin header on the mainboard is a serial debug port:

serial-debug-port.thumb.jpg.1cf65796ffcd6b06a5745b3aafea95c8.jpg

Hooked a FTDI cable (Serial to USB cable) to it at 115200 baud and got this:
 

DDR Version 2.12 20191113_uart1_dbg
In
ID:0x0
1A1A1A1A   3
DDR3
282C1A1A   3
35351A1A   3
Bus Width=16 Col=10 Bank=8 Row=14 CS=1 Die Bus-Width=16 Size=256MB
mach:8
OUT


U-Boot 2017.09 (Jul 26 2023 - 10:50:50 +0800)

Model: Rockchip RK3128 Evaluation board
DRAM:  253 MiB
Sysmem: init
Relocation Offset: 00000000, fdt: 6be1b098
Using default environment

dwmmc@1021c000: 0
MMC Device 1 not found
no mmc device at slot 1
Card did not respond to voltage select!
mmc_init: -95, time 9
Unknown command 'mtd_blk' - try 'help'
Unknown command 'mtd_blk' - try 'help'
Unknown command 'mtd_blk' - try 'help'

Device 0: ...nandc_flash_init enter...
No.1 FLASH ID:98 da 90 15 76 16
SFTL version: 5.0.58 20220814
Vendor: 0x0308 Rev: V1.00 Prod: rkflash-NandFlash
            Type: Hard Disk
            Capacity: 218.5 MB = 0.2 GB (447488 x 512)
... is now current device
Bootdev: rknand 0
PartType: EFI
boot mode: None
Found DTB in boot part
DTB: rk-kernel.dtb
HASH(s): OK
Android header version 0
vdd_arm init 1100000 uV
vdd_logic init 1100000 uV
Can't get crtc id, default set to id = 0
Model: Rockchip RK3128 atari2600 board
Rockchip UBOOT DRM driver version: v1.0.1
failed to get edid
mode:1280x720
CLK: (uboot. arm: enter 600000 KHz, init 600000 KHz, kernel 0N/A)
  apll 600000 KHz
  dpll 600000 KHz
  cpll 668000 KHz
  gpll 594000 KHz
  armclk 600000 KHz
  aclk_cpu 148500 KHz
  hclk_cpu 74250 KHz
  pclk_cpu 74250 KHz
  aclk_peri 148500 KHz
  hclk_peri 74250 KHz
  pclk_peri 74250 KHz
Net:   Net Initialization Skipped
No ethernet found.
Hit key to stop autoboot('CTRL+C'):  0
ANDROID: reboot reason: "(none)"
TEEC: Waring: Could not find security partition
Not AVB images, AVB skip
Kernel image @ 0x6be7d6c0 [ 0x000000 - 0x6617b8 ]
Booting ZIMAGE kernel at 0x62008000(Uncompress to 0x60000000) with fdt at 0x6830                                                                                                             0000...


Fdt Ramdisk skip relocation
## Booting Android Image at 0x62007800 ...
Kernel load addr 0x62008000 size 6534 KiB
## Flattened Device Tree blob at 68300000
   Booting using the fdt blob at 0x68300000
   XIP Kernel Image from 0x62008000 to 0x62008000 ... OK
  'reserved-memory' ramoops@62e00000: addr=62e00000 size=f0000
   Using Device Tree in place at 68300000, end 6830de97
Adding bank: 0x60000000 - 0x61800000 (size: 0x01800000)
Adding bank: 0x61b00000 - 0x70000000 (size: 0x0e500000)
Total: 1778.306 ms

Starting kernel ...

[    0.104319] /cpus/cpu@f00 missing clock-frequency property
[    0.110313] /cpus/cpu@f01 missing clock-frequency property
[    0.116361] /cpus/cpu@f02 missing clock-frequency property
[    0.122321] /cpus/cpu@f03 missing clock-frequency property
[    0.260014] genirq: Setting trigger mode 8 for irq 181 failed (gic_set_type+0                                                                                                             x0/0x60)
[    0.333311] vcc_io: regulator get failed, ret=-517
[    0.521628] rk-vcodec vpu_combo: failed on clk_get clk_cabac
[    0.531328] rk-vcodec vpu_combo: could not find power_model node
[    0.557055] rockchip-vop 1010e000.vop: missing rockchip,grf property
[    0.564421] i2c i2c-4: of_i2c: modalias failure on /hdmi@20034000/ports
[    1.192934] rockchip-pinctrl pinctrl: pin_config_set op failed for pin 11
[    1.199802] gpio-keys-polled gpio-keys-polled: Error applying setting, revers                                                                                                             e things back
[    1.221334] cpu cpu0: Failed to get pvtm
[    1.228010] cpu cpu0: failed to read out thermal zone (-22)
[    1.234567] cpu cpu0: failed to find power_model node
[    1.270446] rockchip-dmc dmc: unable to get devfreq-event device : dfi
[    1.279750] rknandc_base v1.1 2017-01-11
[    1.284769] rkflash_dev_init enter
[    1.398911] rkflash_dev_init device register as blk dev, ret= 0
[    1.405083] rksfc_base v1.1 2016-01-08
[    1.430286] rockchip-dmc dmc: Failed to get leakage
[    1.435430] rockchip-dmc dmc: Failed to get pvtm
[    1.440862] rockchip-dmc dmc: failed to get vop bandwidth to dmc rate
[    1.447410] rockchip-dmc dmc: failed to get vop pn to msch rl
[    1.453725] rockchip-dmc dmc: could not find power_model node
[    1.468520] asoc-simple-card sound: ASoC: no source widget found for HPOL
[    1.475402] asoc-simple-card sound: ASoC: Failed to add route HPOL -> direct                                                                                                              -> Headphone Jack
[    1.484088] asoc-simple-card sound: ASoC: no source widget found for HPOR
[    1.490875] asoc-simple-card sound: ASoC: Failed to add route HPOR -> direct                                                                                                              -> Headphone Jack
[    1.519383] mali-utgard 10091000.gpu: Failed to get leakage
[    1.525152] mali-utgard 10091000.gpu: Failed to get pvtm
[    1.633682] devfreq 10091000.gpu: Couldn't update frequency transition inform                                                                                                             ation.
NAME=Buildroot
VERSION=2018.02-rc3
ID=buildroot
VERSION_ID=2018.02-rc3
PRETTY_NAME="Buildroot 2018.02-rc3"
Starting logging: OK
Populating /dev using udev: [    2.484678] udevd[142]: specified group 'kvm' unk                                                                                                             nown
done
Will now mount all partitions in /etc/fstab
Note: Create /.skip_fsck to skip fsck
 - The check might take a while if didn't shutdown properly!
Handling rootfs: /dev/rkflash0p6 / ext2 rw,noauto 1
Wrong fs type(ext2) for /dev/rkflash0p6
Handling misc: /dev/rkflash0p3 /misc emmc defaults 0
Unsupported file system emmc for /dev/rkflash0p3
Handling oem: /dev/rkflash0p7 /oem ext2 defaults 2
Mounting /dev/rkflash0p7(ext2) on /oem
[    3.791017] EXT4-fs (rkflash0p7): couldn't mount as ext3 due to feature incom                                                                                                             patibilities
Handling userdata: /dev/rkflash0p8 /userdata vfat defaults 2
You may need to enable BR2_PACKAGE_DOSFSTOOLS_FATLABE
Log saved to /tmp/mountall.log
Starting network: OK
Starting launcher:
Starting input-event-daemon: input-event-daemon: Start parsing /etc/input-event-                                                                                                             daemon.conf...
input-event-daemon: Adding device: /dev/input/event0...
input-event-daemon: Adding device: /dev/input/event1...
input-event-daemon: Adding device: /dev/input/event2...
input-event-daemon: Start listening on 3 devices...
done
rk312x login:

 

Edited by Blinky
updated image with correct pinout
  • Like 4
  • Thanks 1
  • Haha 1
Link to comment
Share on other sites

ID of Nand chip.. 

Quote

FLASH ID:98 da 90 15 76 16

The kernal is a Android kernal like THEC64, size 6534 KiB so about 6mb, well THEA500 Kernel is 12mb.
Liniux is Buldroot.. 

Quote

ID=buildroot

VERSION_ID=2018.02-rc3

PRETTY_NAME="Buildroot 2018.02-rc3"

Nand Size

Quote

Capacity: 218.5 MB = 0.2 GB (447488 x 512)

Looks like oem/ is the rootfs and its ext2.. 

Quote

Mounting /dev/rkflash0p7(ext2) on /oem

 

Edited by Spanner
  • Like 1
Link to comment
Share on other sites

From what I've encountered during my search I already thought it may be something android based. If we just knew the login credentials...

 

I foundf this interesting too:
 

MMC Device 1 not found
no mmc device at slot 1
Card did not respond to voltage select!

This could probably be used as a simple test to see if the SD card is working once a connnector / sd-slot is soldered to the contacts.

Edited by Blinky
  • Thanks 1
Link to comment
Share on other sites

If say you want to run Retroarch on this, I managed to get RA 1.7.0 working on THEC64 Mini but because of its 256mb ram it would only load one game at a time so to load another one you would have to reset it and reload Retroach again so turn it off and on or restart it cause it would run out of ram, that properly why this is good a run a game from carts, load one then have to turn it off to load another one.
It could only run RA 1.7.0, I did try RA 1.9.6 but it would run out of ram before running the game so Retroarch was to big in its ram so its core used to much ram.

Edited by Spanner
Link to comment
Share on other sites

12 hours ago, Blinky said:

There are also  two pin headers that connect the mainboard to the I/O board (the big green PCB inside the 2600+) The switch inputs (1P_AB, 2P_AB, 16:9/4:3, B/W, Game Select and Game Reset) are connected to the pin header directly meaning these are read directly by the main processor. The Joystick and cart slot (5V logic) are not available on these headers. These are handled by the two MCUs (Micro controllers) on the I/O board and communicate with the main board using the RX and TX serial pins also on the header.

Are you sure joystick isn't present on the headers? 

 

I see D-/D+ and D-1/D+1 labelled on the left header, which could potentially be directional signals for each of the joystick ports.

Link to comment
Share on other sites

12 hours ago, Jstick said:

Are you sure joystick isn't present on the headers?

Yes. There are not enough pins on the headers. The most labeled signals connect to two pins of the the same header.

the D+ and D- are USB (differential) signals. One pair is for the main CPU the other most likely for the I/O board MCU's.

 

BTW  the serial header on the I/O board's  Rx and Tx signals connect to Rx and Tx signals of the mainboard.

 

  • Thanks 1
Link to comment
Share on other sites

2 hours ago, Thomas Jentzsch said:

What is wrong with Stella?

 

3 hours ago, Blinky said:

Stella is the best there is.

Sorry, I wasn't trying to diss Stella (didn't realize it was using it, actually) 😅. What I meant to ask was whether the compatibility of the machine itself can/will eventually be improved via user hacks.

Edited by jaek_3
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...