Phonetendo
The Phonetendo takes an unmodified ACN videophone, and by inserting an SD memory card, turns it into a proof-of-concept video game platform.
ACN operates by selling phone service contracts; these include the physical phone hardware. Without ACN’s services (which have often been called disappointing), these devices are essentially garbage.
Through a combination of reverse engineering by the artist and online research, this device has been sufficiently dissected to permit its use as a game platform complete use of the phone’s interactivity – speakerphone, handset, video, and the keypad.
By building an SD card with specific characteristics, it appears to the phone to be a diagnostic tool. The SD card can then intervene in the phone’s usual startup procedure and instead run the game software. This transforms the phone into a game platform, and the SD card into a game cartridge.
The proof-of-concept game is actually not a game at all; it is intended to simulate the soul-destroying employment of an office administrator. It mimics the look and feel of a game but fails to be enjoyable. Instead it is a never-ending repetition of responding to robocalls, greeting coworkers, and finding an ever-errant stapler. (This is a work in progress.)
Coverage
More Information
Free Resources Used
- Tileset by Clint Bellanger
- Zombies from Flare
- Includes sounds from Intimidated at freesound.org
- Music sampled from Antonio Fiorucci (with apologies)
- Debian GNU/Linux
Any chance you could include the commands that you used to switch over to Debian and get it (somewhat) up and running?
Andrei, have you got an SD with Debian? Have you gotten root SSH? If so, let me know and I’ll dig up the specifics.
I did set up a QEMU vm with Debian, however I cannot figure out how to transfer that image over to the SD card.
“qemu-img convert -O raw diskimage.qcow2 /dev/mydevice”
does not seem to do anything. The SD card does not have any space used.
Also, in the Debian vm, doing “fdisk -l” outputs that each partition has different physical/logical beginnings and endings. The vm works fine, but I do wonder, could that be a reason for the transfer not working as it should?
Scratch that – I got the actual Debian partition from the Qemu image written to an SD card, but the phone does not recognize its contents, my Ubuntu install however, sees the SD and its contents fine.
After more trials, I think I got Debian on the SD (chroot seems to work).
Andrei, great!
Thanks! However, this is where I’m stuck. I can chroot into the SD but I’m lost when it comes into pivot_root-ing and getting Debian into some kind of running state. Got any tips/hints/specifics?
Andrei, gotcha. I take it you’re doing this via ssh, not by modifying the startup script on another machine and booting it directly in? I had lots of trouble with the latter.
For running pivot_root etc. via ssh, it was pretty straight-forward. I put the following into a script:
killall mx27
killall acn
killall dropbear
mount /proc /mnt/sd/proc -t proc
mount /sys /mnt/sd/sys -t sysfs
/sbin/pivot_root /mnt/sd /mnt/sd/mnt/mtd
cd /etc/init.d
./ssh start
exec /bin/bash
This would kill the phone’s daemons, provide system info in the new directory tree, change the root, and start the new SSH server instead.
I didn’t have ssh access for some reason so I was using telnet instead. Anyways, thanks a lot for the script! One problem I ran into was upon a new ssh login, it would output “stdin: is not a tty” After some research, the fix was adding “mount -t devpts /dev/pts /dev/pts” to the script.
One last question – do you think it is possible to get X running? Seeing ACN’s logo is nice, but pretty useless.
Thanks again for the help!
No problem, and if you do get somewhere with this thing, please post a link here!
X should be quite possible — the framebuffer driver in the kernel is passable, if picky about its configuration. (Playing around with mismatching resolutions and bit depths in SDL didn’t always result in an error message — just an unhappy phone.) Your problem is likely to be input configuration. The kernel doesn’t have HID support compiled in OTOH, and it’s a custom kernel besides, so you may have to hack something weird together for standard USB mouse/keyboard support. Maybe my keypad code will be useful.
I got X up and running. It’s pretty useless without HID, but at least it’s progress!
You may have noticed that “useless” is a compliment around here. Excellent work. By the way, if you want arrow key control over the mouse, you could wrap my work on the keypad into a quick daemon using libxdo — probably a couple of pages of C code would do it.
Do you know anything about the WG4K model? My ACN is either older or newer and has no SD slot. Can all this be done with my phone?
Thanks!
Mike
Mike, sorry, but I have no experience with that model — but the absence of the SD slot suggests it’s pretty different. Have you looked at the board to see how different it is?
I have not done a side-by-side comparison yet. Nor am I that skilled at this “hacking a proprietary linux board” thing.
My interest are, in priority:
1) Have total control over the unit and install my own linux distro. I do not care if it continues to operate as a phone but if I could have a secret linux machine on my desk that would be awesome.
2) Gut the motherboard *sigh* and replace it with a Raspberry Pi. It would be great to just utilize the screen. Reading about the 3000 series and your site here I think this is my best bet. All I need is that screen to connect to my raspberry pi. Here is an image of the LCD driver:
https://drive.google.com/file/d/0B8lenNhbf9_eNjQxaWJhaUs2d2M/edit?usp=sharing
Notice the flex ribbon cable on the lower right of the image? that is what is connected to the motherboard on the 5000 (IRIS V). I suspect that the ‘fatter’ traces are GND but I’ve not yet tested for that.
Anyway, I wanted to ask if you have, or know of, any resources on either 1) or 2) above for the IRIS V (WG4K) model.
What do you think about the ability to do 2) above?
Mike
Mike, as a primarily software guy, I’d put my money on #1 — but if you’re more comfortable with hardware hacking you could give #2 a try. The thought of working with flat ribbon cables that may or may not be custom doesn’t fill me with joy.
I couldn’t find much on the subject but it looks like yours may be a nearly identical device to the Iris 3000. See e.g. http://pbxinaflash.com/community/index.php?threads/acn-iris-3000-videophone.8620/page-7 for some relevant conversation.
The HOWTO on the source code repo hasn’t even been created, Have you abandoned ship?
Hey, Nathaniel — to be honest I haven’t worked with this since 2014. Are you looking for some specific guidance on hacking the hardware, or wondering about further progress on the specific video-game platform application I was tinkering with?