 So, I've got this computer. This is a Dana Alpha Smart. It's a Parmos-based portable machine with a decent keyboard, a nice big touchscreen and a fast 33MHz 68000 processor. It's been on my list of machines to try and do something interesting with for a while now and it recently got bumped up the list rather because I discovered that the chip it's based around is a off-the-shelf system on a chip that is surprisingly well documented and has a bunch of interesting debugging features which should make this machine really quite easy to hack. So, what I'm going to do today is do a bit of exploration to see if I can make these debugging features work. So, I wish me luck I suppose. To start, let's just take the lid off. So, here we are zoomed in on the motherboard. This is the processor, the system on a chip. It's got presumably RAM flash. This I think could be the Wi-Fi chip, although the Wi-Fi on this isn't really much good. I do not know what this is but it's probably driving one of the peripherals over on this side. I'm not quite sure what. I should go and look those up. Now, this machine has a USB host and device and I would expect there to be a PHY chip for that. It's got an infrared module which is here and I think this is probably the Wi-Fi for that. This I assume will be connected up to one of the system on a chip's UART. It does have another UART as well. We've got the twin SD card slots that will probably be connected up by SPI unless this is a dedicated SD card controller. The bits I'm particularly interested in are this unpopulated header here which looks very much like a debug connector of some kind. And here we have the pin out of the chip. These pins along here have to do with the debug interface. Now this pin pin 30 emu brook is the particular one I'm interested in. If you hold that one down when the system boots then rather than running any code out of ROM or Flash what it does is it waits for commands on either UART and you can send it instructions to load memory, run programs etc. Now if I was designing this I would put in an easy way to get at that for de-bricking and debugging. So that is these tiny tiny pins here. Let's actually get even more zoom on this. So here we are up to maximum and in fact you will have a rather better view than I will. But these pins here from the bottom up is VSS. This one is LVDD. This one is X-TAL. This one is E. This next one is E-X-TAL. Then we have two ordinary VSS lines and then I think it's these ones that don't look like they're connected to anything. At least on this side of the chip are the ones I'm interested in. If we move further up about here we have UART 1 and some SPI stuff. This is all pointing approximately now. I can't actually count these things. And here we have UART 2. So if I were designing this thing the Urder port would be connected to one UART and the other one would be connected to somewhere where you could get at it in emergencies such as this. So let's get out the continuity tester and just do a bit of poking. So this is pin one which has traditionally got a square connector to it. Let's see if I can find some power pins. Nothing there. That's ground. You can't see where I'm poking in the SD card. It might not be connected to anything. Well I suppose we can just do this way. It does not seem to be connected to any of these. This will only of course detect direct connections. So if there are any passive components in the way it won't show up. Great. I think that's VSS and there's another batch further up. Yeah. So that's the voltage supply. That suggests that this one is going to be ground. Although I can never get VSS and VDD straight in my head. They're both terrible names. Okay. So these two pins are power supplying ground in some order or other. But it doesn't appear that anything is directly connected to the any of the debug pins here which is a shame. So it's possible that these are just not connected to anything. I can always like patch a wire in but well technically one would be capable of patching a wire in but I'm really not sure I could. Over here there's a few interesting things such as these unpopulated resistors. There's some pad here for an LED3 that's not there. So I think I will look up some of these components such as whatever that is and see if I can locate the PHY for the order is probably this to be honest. Well I looked up the chips. You'll be unsurprised to know that I was wrong. This is RAM. This is flash. This is the USB controller. This is the power supply and battery charger. Why it is there and nowhere near either the battery contacts or the power supply I have no idea. This is a 8k flash chip and I have no idea what it's for. So there may be more chips in the bottom of the board because I certainly can't see anything looks like a PHY for the order and I also want to see if there are any wires underneath the chip. So let us do that. So it should be fairly simple matter of taking these screws out. This thing is really nicely designed for access and maintenance. Like the back goes on with simple screws. There are no clips or anything. It's magical to work with. Okay I think I do want to unplug these. These are the connectors for the... This one is the keyboard matrix and this one is the screen. So what have we got? Nothing. This is indeed a Wi-Fi module. Here is the processor with lots and lots of wires. Okay let's see if we can roughly identify where the pins we care about are. So there's three in a row there. That's these three and then there are... At least there are lots of them. Of course we have no idea what the other side of these are connected to. They are at least going in approximately the right direction because here is our mysterious connector. So what is this thing fastened on with? Sticky pad? It's not a screw. I know that. Yes it's a sticky pad. So we pry it off carefully. That's the Wi-Fi antenna and it's fastened to the board using... Well it's soldered to the board using wires. That's very interesting. It's also probably impossibly delicate so I do not think I want to... I think I do want to be very careful with this. However this is not actually a very good Wi-Fi module and at least with the Palmos software that comes with this thing it won't connect to a WPA network. Okay what have we got here? I'm looking at the... Here is our CPU. The pins we care about are about here so they could be connected to these tracks. Let's just go about to here but that's probably all got to do with the flash chip because all these tracks go up rather than down. Now these two pins were our power and ground so it's the other ones we don't know what they do. So that's these. These are connected to something. So pin one here comes through to that via which is here which connects up to some of those pins. It seems to be approximately where some of the LCD controls are. So this is suggesting that this is in fact nothing to do with debugging at all. I wonder what the others... if the others are connected here. That one is... Hang on a second. Ha! I am an idiot in precisely the right way. You see I have been working on the orientation of this thing based on the label which you can see is printed there and it is upright. And here is my pin out with the label upright except that's not how you do it. You go by this thing which indicates where pin one is. That's there. So that means that the pins I care about for the emulation and bootstrap mode are here not here. So I actually think that these are they. So that one is... One, two, three, four, five, six along. Two, three, four, five, six. Yes, that is emu break. That is the one... Where's it gone? This one. That is the one you have to hold low to get it to go into bootstrap mode. So what about the other ones? That's about halfway along. That's a UART. That is UART1. So got emu break UART1. This one is probably UART1 transmit. Receive transmit. Sorry. This one was... What was this one? I think that this is receive and transmit. Yeah. So what's this one? Not connected to the processor in a way I can find. So we've got power here. This was connected to probably RTS or CTS. I suspect this one to be the other one. So there's four connected to the UART. Yeah, I think that one's CTS. Okay. So this one remains mystery. It is connected to something. This chip whatever it is. It's got four pins. It's probably some exotic MOSFET or transistor or something. You know what I bet that is? I think you strobe that pin to power it on or reset it. I think this is an all-in-one debug port with emu break, reset, and all the UARTs. Okay. I think we're getting somewhere. So let's just stick this thing back on before something horrible happens. We now want to solder some pins on to here. There's a possibility that the back won't go back on if I do that. The back goes here. So I might need to cut a hole to get access to the pins. They'll come up somewhere around there. Okay. Here are the header pins we're going to attach. They need to go in like this. And we want to keep them straight. So what I'm actually going to do is to use this old piece of ribbon cable. So we simply attach our two headers like so. We can then, actually let's put that on the other end of the ribbon cable, that will then flip upside down with this attached, and this will then hold the pins in place. It's not quite as solid as I would like. Let's actually do it this way around. Is that any better? To tuck all the delicate ribbon cables out of the way. That's good enough to tack it on. Then we'll need to straighten it up later. So soldering iron and solder. That tips in poor shape. Yes. I forgot that I am in fact soldering on two separate connectors and not one combined connector. So in fact, I need to tack both rows down. Okay, that is both rows. And they are in fact hugely warped. And in fact, while we're doing that, let's just put the thing roughly back into place before we do anything else with the headers. And let's just see if the back goes on. I do not believe it does. So yes, we will have to drill a hole unless I can do something else. Because I'm thinking at this point, because I can take these off again now, because they're the only attached on with a single solder joint. Once I put more than one solder joint in, they become immovable. So this is what I've actually ended up doing. I've soldered on this piece of ribbon cable. It's completely garbage piece of soldering, but it should expose these pins to this connector. I can then route the connector and ribbon cable out through the hole that the power ad usually goes in. That is actually connected via a light pipe and which is heat staked in. So this will just pull off like so. I can put it back on again later easily enough. And that will allow me to close up the board, close up the machine, but still get access to debug port. That should make things much easier. I'm really not happy with that piece of soldering. The insulation in these ribbon cables is rather melty and there's an occasional metal strand which needs, which is escaping. I don't want to short anything, not to mention hair. There we go. I think that will do. So let me reattach all the various things, which is this is the screen. Come on. Put the board back into the right place. Screen pushes into the connector. Clamp goes down. Keyboard pushes into the connector. Clamp goes down. And let's just do up the various screws. Okay, let's plug the power in and press the on button and see what happens. Let's socket gone. On. Well, we're powered on automatically. Excellent. Okay, so now let's get the voltmeter out and check the voltage rails and our debug connector. Now I've ensured that pin one is marked here with the red stripe. So our two power pins were the ones next to it. So let's get the voltmeter on camera and what do we get? 3.3 volts. That's exactly what I was expecting. Right. So we now need, let me think, we now need to be able to bring our bootstrap pin low and have the other pins connected to a UART. So let's rig something up. So here's what I came up with. The debug port is broken out onto this breadboard here and I've identified what all the pins do. Pin eight as expected is a reset pin. You can see here the the AlphaSmart Dana thing is actually running. If I ground the reset line it resets and should now be showing the prompt as it goes through its boot up procedure. Pin four is the bootstrap enable line. So that is currently not grounded. So what we're going to do is simply connect that up to the zero volt line and now when I reset it it will not start up. It'll go into bootstrap mode. The serial port itself the TX and RX lines are connected to this USB serial adapter which is in turn connected to my trusty old little Chromebook. So let's give it a try. Reset. Watch the screen here. Now we should be in bootstrap mode. It's waiting for an input to one of the UARTs. If I press the return key well eventually we get an app sign. That is correct. That is what is produced by the bootstrap code when it receives a byte on the UART. It waits for a byte so that the bootstrap code firstly knows which of the two UARTs is being used for the bootstrap but also it's used to configure the board rate. So this means it's working. We have successfully put this machine into bootstrap mode and actually I should be able to yeah if I type and send serial bytes in they get echoed back which is good. So we can successfully force the machine into bootstrap mode so now by working the bootstrap ROM we should be able to basically do anything to the machine and we can upload code, run it, upload code, download those code. So that is the hardware all done. What's left now is just a software issue which frankly I am better at than hardware. So that is what I am going to be doing next. I hope you enjoyed this video and please let me know what you think in the comments.