Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
User Journal

Journal Journal: zx-irc: An IRC client for the Sinclair Spectrum 1

I've got a substantial amount of work done on the Spectranet (Spectrum ethernet card) done recently - as well as building a couple more boards (there are now three in the whole world!) I've also started on writing some practical software, mostly for testing the socket library in the real world and to provide code examples to people who want to do a bit of netcoding on the humble Speccy.

So behold: http://spectrum.alioth.net/doc/index.php/Image:Zxirc.jpg ...a picture of zx-irc running on my +3.

The IRC client is actually written in C - the excellent z88dk (which targets 20-odd Z80 based systems) was used. The C socket library itself is just a wrapper around the assembly language functions in ROM (the ethernet board, as well as containing the ethernet hardware, also has a flash ROM for storing system ROM code, and 128k of static RAM to use as workspace).

So, so far, the Spectranet ROM supports:
- Base:
* The usual BSD socket library calls: socket/listen/accept/connect/send/recv/sendto/recvfrom etc.
* Resolver function - gethostbyname
* Additional console display routine, for 5x8 sized characters.

- Utility ROM
* A configuration utility, to set it up.
* The DHCP client.

And they actually work! (The ROM code is all written in assembly language, writing the resolver and DHCP client in Z80 asm was ... an interesting exercise)

I also recently rationalized the memory paging mechanism, I had been using a 10-bit paging mechanism (256 4K pages, with a chip select register for selecting one of four chips) down to a simpler 8 bit paging mechanism (256 4K pages, with the upper 2 bits being decoded into the 4 chip selects). I love programmable logic - just plug the JTAG lead in, and burn the new logic design to the CPLD.

On the hardware side, the last board I made, I completely assembled using solder paste and hot air. I'm getting a bit better at not putting too much solder paste on the pads, but I still have to wick up a bit of the excess with braid. It's so much faster to do surface mount assembly this way, too. I was also pleased to find my hot air gun didn't blow away the tiny 0603 passives (0603 means 60 thou. inch long and 30 thou wide - or 'mils' as they are sometimes called, but that confuses people over here who shorten millimeters to 'mils'. 0603 in metric is about 1.3mm by 0.7mm or so). The only issue I had with the hot air assembly was one 0.1uF decoupling capacitor 'tombstoned' (the solder on one pad flowed slightly before the other, and the component sat up on its end like a tombstone) and the three decoupling capacitors for 3.3v AVCC on the W5100 IC sort of 'sucked' themselves together, but that's just cosmetic.

User Journal

Journal Journal: en espanol, por favor...

So in preparation for this year's trip with Scary Internet Friends to Palma de Mallorca, I've decided I probably ought to learn at least a bit of basic Spanish.

"Oh you don't need to, everyone speaks English in Majorca", they say.

Well, except they don't, and anyway, I felt like such an Imperialist last year not knowing any Spanish (short of what I saw when living in Houston, such as 'Piso mojado' when the janitor was in, or 'Se habla espanol!' on every used car lot, and things from the Mexican menu like '$RANDOM_THING con queso'. None of those phrases were of much use.) And it resulted in one very confused conversation last year in Palma with a shop assistant who spoke no English. Somehow we muddled through though...and it only would have taken a fairly rudimentary understanding of the language to make it a non-confused conversation.

The BBC has an interesting 'interactive drama' course for beginners, which I'm going through. Most sentences the first time I hear them are still a baffling stream of sound, but I've not even been doing it for a week, and I can now discern some sentences as a collection of words, and even understand some of them, rather than a stream of random sound - so that's a start. I've got another 6 weeks to try and improve on that!

User Journal

Journal Journal: Radiohead and the Spectrum 2

This is absolutely AWESOME. Radiohead's song, 'Nude', from their latest album, played on a Sinclair Spectrum, a set of old hard discs, a flatbed scanner and dot matrix printer. Simply awesome.

http://www.vimeo.com/1109226?pg=embed&sec=1109226

(Incidentally, yes, a rubber key Spectrum *can* do multi channel music through its normal speaker, it's something the demoscene has been doing for a while - even if 'back in the day' most multichannel music was made for later Spectrums with the General Instruments AY chip)

Additionally, on my own Spectrum project front, the Spectrum ethernet card is almost ready for developers to get their hands on - just a bit more testing of the socket library, and building some more examples of the physical hardware and then wonderful things can happen!

User Journal

Journal Journal: Crash!! 4

In between trying to work on the too-many-projects that I need to get done, I did a little bit of RC flying.

It wasn't successful. After not having any crashes in 25 or so battery packs, I crashed the RC heli three times yesterday. Good job wooden rotor blades are only 2 quid a pair when bought in five packs! The worst thing about it was that each crash was down to stupidity on my part.

For your sense of schadenfraude, the heli was actually carrying a camera for the last one:

http://www.youtube.com/watch?v=jJx7AKgZjpI

Oh well. Off to get superglue to fix the frame.

User Journal

Journal Journal: A milestone

I have gone a whole week without having a pilot induced crash with my RC helicopter. A new record! I did have a couple of minor scrapes when the tail rotor came disengaged, but managed to cut the power and the heli, by fortune, ended up in a forsythia bush (flinging leaves and twigs out as the main rotor sliced through the foliage). I nearly had a really big crash tonight though - I took it outside in very gusty conditions to see if I could handle 25mph+ gusts, and found that I couldn't! I got caught in a really squirrely one that nearly had the heli into the wall of the house, and did a semi-aerobatic manoevre to avoid the crash - I think it must have been 60 degrees nose up in my effort to not pile nose first into the wall, with full collective. All I could see was the planform of the heli pointing at the sky. Somehow, I managed to return it to terra firma after wrestling it to the ground (and pruning a small tree). I decided that hovering indoors was a better plan. By contrast, I did OK in the 15 mph gusts this morning, only one or two scary moments!

On the Spectrum ethernet front, I've been doing a little bit here and there, mainly squishing bugs in the socket library (written in assembler, and stored on the board's ROM) and getting the C library to work; so far I've got a simple TCP client and server (and a multiplexed one that handles up to 4 simultaneous connections. On a ZX Spectrum!) I still want to change the CPLD configuration though, I've given it some thought and I think my current design is a bit crap in places. But that's the great thing about using a CPLD rather than a number of 74-series discrete logic ICs - I can change the logic with a JTAG cable, rather than having to change the PCB layout.

User Journal

Journal Journal: Spam 1

Spam is really getting beyond a joke, now.

SpamAssassin filtered over 300 messages from my inbox on one day last week (the first time it's broken 300) and about 30 to 40 make it past the filter. Most other days in the last couple of weeks, it's been filtering around 250 a day. This is AFTER mail has passed through Spamhaus's SBL-XBL, which looking at server logs as a whole, rejects around 50% of all incoming email - my personal mail address is probably subjected to around 600 spam emails per day. If I ignore the couple of mailing lists I use, and count only personally addressed email, less than 0.5% of my email is actaully legitimate.

I've had my current email address for a long time, and I'm loathed to change it, but it's either do that or simply abandon email altogether. The trouble is informing everyone of the change. I would like to put an autoreply instructing people who may still have the old address that it's changed and to phone/text for the new one but this would subject people to backscatter (forged From: headers that point at real addresses).

User Journal

Journal Journal: Soaring pictures from Aboyne 4

It's a bit of a grey day, so no flying today by the looks of it.

However, I've got some pictures from the week so far (not all taken by me).
This is me soaring the ASW-19:

http://www.alioth.net/pics/Aboyne-May-2008/Aboyne-May-2008-Pages/Image16.html

(taken by Brian in the Duo Discus - it's two seat so one can fly and the other shoot pictures, so it wasn't someone trying to thermal in a gaggle and take pictures at the same time!)

Me looking relieved to still have power in my feet after over 5 hours in the ASW:

http://www.alioth.net/pics/Aboyne-May-2008/Aboyne-May-2008-Pages/Image22.html

And all of the pictures so far this week:

http://www.alioth.net/pics/Aboyne-May-2008/Aboyne-May-2008.html

User Journal

Journal Journal: Silver 3

So today, I got my 5 hours duration in the ASW-19. That's the silver badge duration done. (Actually, I flew for 5 hrs and 27 minutes).

5 hours in a glider is a hell of a long time. It was nearly game over once or twice, getting below 1500 feet and desperately scratching for altitude. I think I'll rename the town of Tarland to the town of Tarpit, because I got stuck there for quite some time.

User Journal

Journal Journal: Scratching in the AS-W 19

I've not flown much in slippery, decent performing fibreglass gliders, but today I got to fly an AS-W 19 (the first glider I've flown with retractable undercarriage too).

Wikipedia has an article on it here - http://en.wikipedia.org/wiki/Schleicher_ASW_19 - the photo is of the one I actually got to fly (in a field near to where the glider club we're flying out of at the moment).

I also got a 2 hour 10 minute flight in the Puchacz this morning. The lift was very scratchy, but until the sea breeze started up you could stay up for quite a while.

User Journal

Journal Journal: Soaring in Scotland 2

Unfortunately, it looks like our glider club is going to be grounded for a while. The tow plane is awaiting a new engine to be fitted, and the winch is also waiting for a new engine. Argh.

However, some of the club (including myself) is currently away on a trip to Scotland for a week, at the glider club at Aboyne. I just got checked out in the Puchacz (a two seat fibreglass glider) this morning, but as is always the way, whenever we go somewhere all the lift goes away! I did at least get a half hour soaring flight before the thermals all buggered off. They use Piper Pawnees to tow so it's a bit like being at the Soaring club of Houston again. Well, except the scenery is much better and the club gliders are all fibreglass. There's plenty of hilly terrain around, and when the wind's in the right direction you can get some awesome wave conditions (it's not unknown to exceed 30,000 feet).

User Journal

Journal Journal: Flying, more grey goo, and a bit of bike

I've not written in a while, but here's a quick catch-up.

I've worked a bit more on my ethernet card for the Sinclair Spectrum, specifically, in the hardware department - trying to figure out how much solder paste is just the right amount (and I've still not got it right, and I've also run out of solder wick). It's not far off though and it beats hand soldering fine pitch surface mount components by a mile. The grey goo itself seems to hold up well - I've heard that it has a really short shelf life, but the solder paste I have seems to dispense as easily as the day I received it. The small blob of it I left out on the bench still seems pliable after 2 or 3 weeks! (It probably wouldn't go through the syringe nozzle any more though). I think this paste must be formulated specifically for prototyping/rework, optimised for shelf life rather than holding shape as it heats.

I've worked on the software, too. I'm currently writing the C socket library, with the usual functions you'd expect, as close to the BSD socket library as I can make it. It's basically just a wrapper around the board's ROM functions, though (since arguments are passed on the stack in C - so the functions basically load CPU registers from the stack, then call the ROM routine). The Z88DK is a little bit different than something big like gcc, though, when it comes to writing libraries. Well, especially since I'm writing them in assembly language. But last night I successfully got a Spectrum to load a web page (that's different from *rendering* a web page - I've not written a web browser!)

We've had really nice weather recently, hardly any wind, lots of sunshine - so of course, the main motor on my RC helicopter is more or less dead (basically, it won't get the heli out of ground effect), and the delivery of a new motor just hasn't happened, so I've missed lots of good days to fly it outdoors. However, I did find a brushless motor and ESC on ebay (some soldering required to fit it to a CP2, which is desigend for a brushed motor). The heli is now way overpowered :-) The motor itself which has the same mounting holes to fit the frame as the standard brushed motor, is designed for a 450 sized heli, and mine's a 300 size! So the collective is very much more responsive, and I think it'll soon be time to re-fit the much heavier alloy rotor head since I now have a motor that'll do it justice. I'm glad I got the dual tail motor modification, since it copes with the extra power very happily (I've not dared punching the collective up to full yet...) It's also quieter, and runs a hell of a lot cooler. Unfortunately because I've not flown it for a couple of weeks as a consequence of not having an adequate main motor, I had to take it easy tonight in case I ended up crashing. But I managed to fly a battery and a half without incident.

With the weather being good I've also got out on the bike (which with today's fuel costs, saves GBP4.50 per day or so). It's a pity that so many people seem intent on knocking me off though - last week, a teenager wandered backwards into the road without looking and I had to take swift evasive action (fortunately, his friends yelled at him to stop before he went too far, so I only ended up on the centre stripe of the road trying to avoid the dozy sod). Then two days ago some idiot waved a Land Rover out of a farm entrance without actually looking to see if the road was clear. Fortunately, there was no oncoming traffic so I could swerve out onto the other side of the road, and the driver did eventually see me and stop. Had I been on something faster like a motorbike at the same spot, it would have been a pretty nasty crash - it was fortunate that I was not pedalling all that hard in any case because it was a really close call. Sigh.

Anyhow...off to Aboyne, Scotland tomorrow to try and get some wave soaring in, in a glider. It's not unknown to soar a glider up to around 30K feet there. Hope it doesn't rain!

User Journal

Journal Journal: Ding Dong the Witch is Dead 3

Well, the Cthulhu at work is out of a job. Yay! To be honest she's not been bothering us too much of late, having the hospital as her latest toy to bother, but she failed to get re-elected this week. There was much rejoicing. Unfortunately, the damage she did is already done - she got rid of our ablest manager because he dared to disagree with her...by underhanded tactics - making his job position 'redundant'. None of us were surprised when 18 months later the job suddenly existed again. It all started going wrong for her when she was accused of bullying and assault by a DHSS worker, which seemed rather exquisitely timed...

Anyhow enough of work. This week I got some grey goo. No, not Prince Charles's nanobots that will turn the earth into grey goo, but a small syringe of grey goo. The goo in question is solder paste - a suspension of fine solder particles and flux in some kind of solvent. I got it to see if it made assembling the Spectrum ethernet cards any easier - since I designed it with a lot of fine pitch surface mount chips. And it's been a revelation - the road to Damascus. Lay a fine bead of stuff down (by hand I can't ever hope to put blobs precisely on each pad), place the chip, then use my trusty paint stripper gun(!) as a hot air source to reflow. The paint stripper gun works rather well - on the low setting it's 260 celcius and the blast of air is relatively gentle and won't blow chips around. Peak reflow temperature is 260 celcius. I fashioned a smaller nozzle out of aluminium foil so I could direct the air over a smaller area, I can do a chip at a time with it quite easily. The W5100 chip still turned out to be the hardest - going from 0.5mm to 0.4mm pin pitch seems to make things 100 times harder (in fact after visual inspection seemed to show everything was OK, it turned out not to be the case - there's at least one disconnected pin and it only has to be the most critical. But it's late and I'll probably screw it up if I try to fix it tonight, so I'll leave it tomorrow). But other than that I'm really taken by solder paste and hot air for soldering SMD - it's much neater than using the soldering iron, and leaves far fewer 'bridges' between pins (again, solder wick turns out to be incredibly useful). I'm still learning how best to use it though, it only seems to need really tiny amounts and I tend to put too much down.

Before I got busy with the paste though, yesterday I thought the weather was calm enough to take my Honey Bee CP2 RC helicopter down to a secluded beach and give it a really good work out. I chose Fleshwick Bay, because hardly anyone goes down there, it's quite sheltered, and... hardly anyone goes down there - so if I crashed there would be hopefully no witnesses to embarrass me.

When I got there there was more wind than I expected. Worse of all it was coming *down* the cliffs. Downdrafts, I thought, I probably ought not to fly. But against my better judgement I thought I'd take a sniff and see what it was like. That was the wrong move. The air was extremely turbulent and the downdrafts were actually quite strong. I lurched around the sky for about a minute, and decided to bring the heli back to me when I felt a strong gust of wind coming straight down the cliff...seconds later, I crashed - the heli landed upright on its skids but very hard, and the main rotor chopped the tailboom off, and then the heli rolled on its side and did the 'death thrash' till I managed to kill the power. Walking over to it, I saw that the pretty indestructable plastic blades were actually quite destructable - both shattered, and the tail had been chopped off. Also a ball link from the mixing arms had broken off too.

But this evening when I got home I found a five pack of wooden rotor blades had arrived, so I fixed the heli with superglue :-) The tail boom isn't exactly straight, but it is at least in one piece now. The superglue also worked for reattaching the ball link (which remained within its linkage, fortunately, or it'd have been lost forever). The main motor seems a little tired now, but other than that the heli is flying perfectly after its trauma. Of course I had to fly off three batteries worth to check, sadly though it was far too windy to fly outside so I had to make do with cruising around the living room.

User Journal

Journal Journal: Success and failure

The last few days has been marked by success and failure in various projects.

Fail: Spectrum ethernet project. I had some PCBs made, and I've not had much luck with them. I found one minor bug (and the reason I didn't catch it is it's a simple jumper to enable/disable all execution traps, and it's wrong in the schematic - so when I checked the PCB against the schematic, it looked right but was in fact wrong). However, I can just change the CPLD configuration temporarily to work around that. No big deal.

However, the first one I started assembling all went wrong when I put the memory on and tried to test it. So I thought before getting the hot air gun out, I'd assemble the next one bit by bit and see if it failed when the components for a key circuit were added, but I never got that far. The tip of my soldering iron crumbled, leaving me with the next chip to test only half soldered. The whole sorry story is at http://spectrum.alioth.net/doc/index.php/Current_events. The annoying thing about the PCB that doesn't work at all is that I can't find any electrical faults, and the chip pinouts match their datasheets. So I hot-air'd off the flash chip and it stopped crashing the machine, and the static RAM could be paged, read, written... so a duff flash chip. The trouble is the datasheet is also ambiguous about its TTL-compatibility: it gives two sets of DC characteristics, one for TTL compatible, and one for not - but there's no clue as to the package markings that differentiates them. I may end up having to make a breakout board for the flash chip and testing it separately.

I have decided to get a syringe of solder paste and fine (0.25mm) applicator needles, hand soldering fine pitch SMD components gets old quite fast.

Mixture of success/failure: My RC helicopter. I've spent all weekend crashing. I have the soft plastic rotor blades on at the moment which while making it fly like a blancmange, do mean that crashing seldom hurts anything. Which is a good thing. I'm trying to learn flying nose in, and numerous times I've pushed the cyclic the wrong way and had to jump out of the way while the heli smashed into the wall or other object. This morning I didn't quite get out the way in time and I hit myself (and drew blood). However, I'm getting much better at flying nose in - I had a couple of batteries worth of cruising around the lounge (it's very gusty outside at the moment) where I didn't crash while flying nose in. The trouble with nose in is that your brain has to be working 180 degrees to what you're looking at...and with a helicopter when things go wrong they tend to go wrong in random directions. But I'm getting there.

Success: Since my soldering iron tip crumbled away, and I found I had no spare bits left, I decided to test a small project for the garden. I have a solar power system on the shed roof which I built a couple of years ago to power stuff like garden lights and other things like that. I have a 240 volt pond pump at the moment, which runs off this system via an inverter, but the pump is far too powerful and in any case doesn't really get along all that well with a modified sine wave inverter (once it's running it's fine, but it'll often sit there with the motor jiggling, very little throughput, and huge current draw until you lift it out the pond and swish it around in the water a bit). So I thought I'd get a DC pump, but they are all 24 volt. My solar power system is 12 volts. So I built a little 555-based switch mode boost converter, to boost 12v to 24v. I've over built it on the current side to make sure it's never under any stress, so I wound my own inductor (I got the magnet wire for this when I visited Houston and dropped into EPO) since I only have fairly puny inductors that are factory made to hand. The 555 circuit's pretty neat, it's the one I use for nixie tubes. To change the voltage, just use a different FET (of the appropriate rating) and change the resistor values on the regulation circuit. It's fairly efficient too, close to 90%, but without requiring any uncommon parts (like purpose made SMPS chips). It doesn't regulate as well as a purpose made SMPS chip, but for motors and nixie tubes, it's no big deal.

User Journal

Journal Journal: Audiophools 6

Mein gott in himmel!

http://www.thecableco.com/product.php?id=2672

I could buy a nice *airplane* for the price of 4m of that cable. Who in their right mind buys this stuff? I spotted this link in today's discussion about Monster cables bullying another cable firm (which, as it happens, sells cables at something only one order of magnitude higher than a reasonable price to pay for interconnect cables).

Now consider this. That almost $6K per metre cable is for *digital* interconnects, where good enough equates to perfect. A piece of twisted pair telephone wire would probably work well enough.

User Journal

Journal Journal: Sigh. 2

I snapped at someone last night. I don't do this often (in fact, years may go by between me snapping at someone).

But a combination of an awful 'low productivity week' at work (not a bad week as in stressful, or terrible, or any of the other generic bad work weeks. It was one of those weeks where I've felt there's been lots of lights and noise but NOTHING of any consequence got done). All I wanted to do last night, was play a bit of Enemy Territory to let off some steam, then snuggle up with my cats and sleep for 10 hours straight. But a friend had asked me a favour to make a few copies of a video DVD he had made, which required me to go down to a bar a mile or so away to drop them off. The last thing I wanted to do was have blaring music in my ear while trying to be sociable, conversation only possible at full volume. Having one beer, saying 'hi' to a few people who were in town for the weekend, and going home was my goal.

But of course this woman (who by the time I turned up had already got through quite a bit of booze) that I hardly know starts trying to force me to be sociable and I was just not in the mood. The subtle body language cues and the statement 'no I don't want to dance, thanks' etc. didn't seem to be enough of a hint. But fortunately she left me alone for a bit.

Then she came back and then starts having a go at me like I'm a naughty child for Not Having Fun and Not Being Sociable. I tried to explain that all I wanted to do was say hi to a few people, drop off the DVDs, have one beer then go home, but it wasn't enough and she kept persisting on to You Need Psychoanalysis Because You Are Not Having Fun At This Particular Moment In Time. Finally I had enough of being patronised and snarled at her a bit and got up to leave. I felt so much better after growling at her.

Why do some people think it's such a crime to not _always_ want to be out socializing, and _sometimes_ wanting a quiet night in, and that it's _not_ a crime to be feeling tired and wanting to get a good 10 hours sleep? Grrr.

Slashdot Top Deals

"God is a comedian playing to an audience too afraid to laugh." - Voltaire

Working...