I wanted to play Turrican 2 the other day so I fired up an Amiga emulator, but playing it via the keyboard really wasn’t cutting it, so I broke out a USB game pad I had floating around the place. That also didn’t feel quite right 🙁 What I needed was an old Atari style joystick to really get my Turrican 2 craving licked. I looked around and sure enough I had one, but how could I get it working with my Mac? I needed an Atari joystick adapter. A little googling and ebaying later I found that 1. they are pretty easy to make, and 2. those available online are too expensive. Time to break out the soldering iron and whip one up myself. The hardware is pretty simple, just a PIC32MX220F32B and a handful of other components.
I even found a nice box to put it into!
Once I’d removed the guts of the ADSL filter, it had just enough room to fit all the parts I needed 🙂
After coding up a simple HID based USB joystick (and forgetting yet again that the reason I couldn’t read some of the bits in PORTB was due to the analog inputs being enabled by default) I had a working USB joystick adapter. Time to play Turrican 2!
FRAK! Why can’t I jump?!? It turns out the plastic shaft inside the joystick has a crack in it which means that the UP direction doesn’t work reliably making Turrican 2 unplayable 🙁
I think I have another Atari style joystick about the place, but if not, it looks like ebay may be my only option 🙁
I have to admit is a little disappointed with the phone when I got it. I updated the firmware as far as it would allow me, but the more recent versions of the software would not install 🙁 After a bit of googling I found that there was supposedly a procedure for updating the old firmware to one of the newer sets, but that it was a secret. That got me really interested so I dug a little deeper. I found a PDF that contained a link to a Yealink FTP server which I’m not sure is supposed to be publicly available. On the FTP server was a set of files that detailed in rather broken English the process. Basically you put the phone into a special mode that causes it to download a new firmware from a TFTP server running on the same network and off it goes with the new firmware.
My phone now says is has firmware version 220.127.116.11 and it now has all the features I was hoping to get. From what I can see it now has pretty much the same software as the new VP530.
Happy now 🙂
I also tested the technique used to get root on the old firmware and it is no longer available, however the technique used for the T38G now works.
Yesterday I took delivery of a Yealink VP-2009 VIOP phone. I was hoping it would be a nicer phone than it actually turned out to be. I have a Yealink T38G and was really happy with it. Unfortunately a lot of the features I like in the T38G are not present in the VP-2009. Ah well, live and learn I guess 😉
To the meat of it. When I plugged the new VP-2009 in to my network and attempted to configure it there was a weird caching issue with my browser as it took the same IP address as the old T38G which resulted in an error page being shown. Initially I thought the phone by broken in some strange way, so I started to investigate a firmware download for the phone. After extracting the firmware using binwalk I found the HTML for the web interface and found that there is a back door that allows arbitrary commands to be executed on the phone. The first thing I did was remove the password on the root user (passwd -d root) so I was able to telnet into the device. Once on the device I was able to poke around and see all sorts of interesting stuff.
I was interested to see if there was anything like this back door in the T38G. It turns out there is, although it isn’t as easy to use as the one in the VP-2009. There is a hidden page that allows the telnet server to be turned on, and the same code can be exploited to remove the root user password 🙂
I took a few more pictures of the failed boards and sent them to the fantastic people at circuits.io. They have very generously offered to send me new ones at no charge 🙂 Hopefully these new boards will work out.
I also had a quick go at getting one of the boards working. After soldering lots of wires on the bottom of the board I powered it up and let the magic smoke out of my voltage regulator, so it looks like I may have a crook connection somewhere. It could also be because I didn’t have the right regulator available so tried another with a slightly different pinout. I put some heat shrink over the input lead and bent it into the right position. Maybe I didn’t get it quite right. The interesting thing is that the Mac I had it plugged in to didn’t complain about the device drawing too much current, so I don’t quite know what went wrong. Time to head out to Jaycar and get the part I actually need I guess 😉
Funky clock is installed and working really nicely 🙂
I had a little trouble with the digital inputs as the pull down resistors I used were 100K instead of 10K. Also for some reason I was unable to read port E2 at all. Once I moved that input to port C4 and replaced the resistors everything started working as expected 🙂