Wednesday, 16 November 2022

Korg Nu:Tekt NTS-1 ma:SSaKred

128mm wide, 78mm deep, 17mm high (excluding controls)

I got this about 100€ tiny brick of a synth, Korg NTS-1, or Nu:tekt. You build the case yourself and it has that rugged circuit board aesthetic. There's also promises of customization, both in hardware and software.

So, is this the Arduino of synths? Well, yes and no.

Yes, because it can be modified, and there are pins for accessing inputs and outputs. Yes, because it is very tiny. No, because the software architecture uses uploaded modules and it is not as "open" as an Arduino is. Yes, because you can also compile your own modules. No, because there's not a huge row of pins to access every meaningful aspect of the synth.

NTS-1 is not unique, there are several build-yourself-a-synth models around. The self-building aspect is at least partly a gimmick. But it's a nice product idea, potentially bringing the cost down a little. NTS-1 was really simple to put together with the instructions, no soldering or extra tools were needed. I used a somewhat larger screwdriver than the one supplied.

There are a few pins and soldering points that can be used to expand the synth. MIDI, audio and the sync clock are present both as ports and on-board connections. The real changes to the sounds and functionalities are done through uploading different modules.

I had somehow thought I could also use Nu:tekt as a MIDI-controlled adjustable filter, something you don't see that often. To my disappointment the audio-in is diverted to after the filter, and you can only select whether you want mod/delay/reverb affect your audio input.

But this is not the end. It is possible to upload new oscillators, modulators, delays and reverbs via the Librarian app. So I could add third party filters from DirtBoxSynth just to fix my grievance. This added some ~€10 to the cost of this device. Whether these filters are as good as the fixed ones, I can't vouch for.

The Librarian app

I also learned the architecture is shared between Korg Prologue and Minilogue, which means there's a wider market for these modules. Not all modules might be applicable for the context of NTS-1.

The Librarian app is only available for Mac and Windows, but fortunately it worked well in my 2012 Mac. A glance at the coding side makes me feel it wouldn't be impossible to compile my own effect (there are tutorials and examples) but it's doubtful I can do the math for anything useful.

Apparently an imported module only fits a particular category, so you cannot upload "bitcrusher" to Delays or Reverbs, it has to go to Mods. If so, I cannot choose to chain the DirtBoxSynth filters with the bitcrusher, it's either/or, because both go to Mods.

Ok, let's look at the more physical side of things.

The headphone is at the other side

The boards and the elements are meant for constructing the default box, so it's not a set of legos. Still, the process is nearly reversible and you are not stuck with the box you built. It should be easy to remove one of the four 1mm side panels, and replace them with your own, for example.

About that "nearly reversible". Because the instructions said so, I cut off the four screw holders from the board corners. As far as I see now they do not need to be removed when making the standard case. So, be aware when building the case you are making a permanent change! 

The controls are integrated to the top panel, which doesn't look too simple. The ribbon keyboard input connector looks a little tricky, attaching an alternative keyboard is probably not going through that route. Either find out what the pins between the top/bottom do, or use MIDI.

Header pins and four screws keep to cover in place.

The NTS-1 has no patch storage, but this is a minor inconvenience, considering all parameters can be transmitted via MIDI Control Change messages. There are Oscillator, Filter and Envelope types, with A and B parameters for each. On top of that you can have Mod, Delay, Reverb, LFO and Tremolo. There is also a rather full-featured Arpeggiator.

Like all the audio and sync ports, the MIDI port is 3,5mm one, with tip-ring-sleeve arrangement. So one of the first customization decisions might be whether you need an adapter cable (be aware of Type A and Type B) or build your own full-size MIDI port using the solder points inside. This is what I did, not long after putting the thing together.

The USB also connects the device to your computer as a visible MIDI device, so whether you even want to use the MIDI port for connecting is up to you.

Adding the full-size MIDI port

The box was even easier to open than to put together. The front or the rear panel needs to be removed before the circuit board can be lifted out.

After removing the board it is easy to access the through-holes for MIDI, AUDIO and SYNC. Note that 5v and 3.3v can be drawn from here too.


I soldered in a header strip for testing. Then I realized the jumper cable heads would not fit under the cover, so I instead added a tiny layer of prototyping board. A ribbon connector might have been helpful here.

This way I can solder/de-solder wires should I need to change them. I wouldn't want to heat the actual Nu:Tekt board too many times.

The MIDI in "tip", "ring" and GND("Sleeve") need to be connected to a MIDI DIN-style connector.

I soldered the wires on the proto pads, as it was too tricky to nudge them from the underside after the board had been fit to place. There's one more layer of that header strip keeping the board higher.

I could have soldered the wires beforehand from the more correct direction, though.

Internally, MIDI channels are 0-15, in hex 0-F, whereas software and documentation refers to them as 1-16. This discrepancy sometimes rears its head and creates confusion, but I've become used to it.

How to change the MIDI channel? Consult the manual. Plug in the Korg and press REVERB at the same time, you get to the parameter menu. Find the parameter CHL with the Type knob and change them using the B knob. Push ARP to store the parameter to the internal memory.



Wednesday, 2 November 2022

Zoo 2022

The largest Finnish Commodore 64 demoscene party, Zoo Party, took place in Orivesi campus 28-30th of October, 2022. Although 2021 saw the mostly-online "World Wide Zoo" event, there really hasn't been a proper Zoo party since 2019.

Given the somewhat lacklustre Assembly 2022, I had mixed expectations. Have sceners been sharpening their weapons and ready to release their pent-up creativity in full pressure? Or do we get to see a small batch of zombified entries?

The Party Bus arrangement made it easy to join from Helsinki to the party location somewhat east of Tampere. A train would have worked well too. It was already known there would be rather many participants, and the bus was quite full. As the evening turned from the depressing grey to night-time darkness, the atmosphere began to build up.

It was nice to see the campus setting had far more space than that hotel at Akaa, and the accommodation was very good.

At this point I have to say the Akaa hotel (2013-2019) had a nice atmosphere and the mezzanine added some "dimension" to the space. Yes, having a sports hall as the main party space just doesn't have that Kaurismäki/David Lynch feel that the tiny hotel had.

But still I'd say overall this location wins and when it comes to sitting in front of your C64 and enjoying the party audiovisuals, the architecture doesn't matter that much. Also, in Akaa the bar in the party hall was something of a mixed blessing.

The responsibility of feeding, when carried by the party organizers, was unclear at times. But as there was an arrangement with the house kitchen, the breakfast and supper were professional. As a welcome bonus, Wide Load additionally provided hot dogs, if you were there at the right time. Now there were no pre-bought beer tokens, and beer did flow freely, up to the rumored 700 liters in total.

Entering the foyer, one was greeted with arcade game selection from Reprocade: Wizard of Wor, Crystal Castles, Tempest and Klax. I was able to try each one quickly during the party. 

The merchandise was there too, notably the obligatory Zoo T-shirts and the new Finnsids II SID album. The exhibition of Game Boy art, displayed on real Game Boys, was an additional curiosity. That's a rather hardcore display format for graphics! The entrance space also hosted the flea market on Saturday, and you could also upgrade your C64 with diverse gear. I bought a replacement PSU and I'll discuss that in another blog post.

As usual, there were a couple of talks. One was Miha Rinne, a long time game industry professional and the author of the graphic novel Journeys in Game Industry (Matkailua Pelialalla). He told of resurrecting a very old C64 game project called Undead, with side-scrolling zombie smashing fun. The completely new version will re-use the concept of that old game with new graphics and sound. Interestingly for me, at least some of the background graphics had been mocked up with Multipaint.

Lasse Öörni AKA Cadaver, of the Goattracker fame, is of course also known for the C64 games such as Metal Warrior and Hessian. He showed interesting details about the tools and cross-development environments he had built for game development.

Both of the presentations seemed to highlight the importance of self-made (or in-house) tools that can be even particular to one game project. In Rinne's case this approach enables the designer to build game content without having to become entangled with the coding. In contrast, Öörni, coding everything on his own, could explore the possibilities of memory- and speed optimized level storage through creating his own map editors.

The musical acts were there too, such as Terracuda (Deetsay/Tero and Barracuda) and 8-bits high. I would enjoy these shows but somehow tend to miss them as there's either something else to do or I'm already asleep. At least 8-bits high are gigging here and there, so you don't have to go to a demoparty to hear them.

Off to the compos.

Zoo Kids was a fun competition for kids, let's say the daughters and sons of middle-aged sceners. The works were submitted remotely (I doubt many would bring their kids to Zoo) And it was nice to see Multipaint used for this purpose too.

For the SID music compo, my seat wasn't probably at the best place so I grew a little weary of the fat kick sounds and had to move farther away. After the party, I enjoyed some of the winning works at the comfort of my home. To me SIDs are best enjoyed in small quantities, and Zoo often has dozens of pieces!

In the graphics compo many reported that Multipaint was part of their tool palette, which was a pleasant surprise. Clearly, over the the years the software has grown steadily in popularity to the point that a number of people came to comment on the software, often with some development ideas.

Cartoonzone

I worked on my compo entry image for quite a while and to me Cartoonzone represents quite well the kind of picture I really want to do currently. It combines Multipaint work with modest sprite multiplexing. Unfortunately it did not do especially well at the compo, I hoped it would land in the top 10.

The more jokey PETSCII, Samantha Fox Strip Poker, actually did reach position 6. Overall the compo had a solid selection of great works, but PETSCII perhaps isn't able to impress me so much as it did back in 2013-2015. Perhaps Peak PETSCII has been reached?

Samantha Fox Strip Poker

Earlier in the autumn, I still had some hopes to contributing to the game compo, but these hopes withered as the deadline loomed. Especially the last few weeks before the party were not conducive to finishing a game project, doing the graphics entry was enough. Although the number of entries was not high, the quality was pretty good. Perhaps not a surprise the more humorous and "demoscene-esque" of the games won (Burger Ninja) rather than the one I felt had a solid game concept (Knight Trap).

And let's not confuse this Game Making compo with the games compos. Lumberjack was surprisingly exciting to follow as the players one-upped in what appeared to be quite an intense and stressful game.

Cosmic Convoy

The disc cover compo doesn't have that many entries, so it wasn't impossible to get into 3rd position. It's a compo I have often wanted to contribute to. But I rarely get into the mood before the party, and when at the party place the time is often spent on other things. This time it was possible and there were some spots where I could advance the drawing while eating and listening to others.

I'm a little confused why Party Feature and Wild Compo need to exist as separate categories, but I guess it's more comfortable to submit to Feature things that would be at the party in any case, such as logo banners. The Wild I guess is still reserved for the video works and alternate computer platforms.

Oh, and by the way why is it ok to play SIDs on top of graphics entries, but not ok to show graphics while SIDs are playing?

The demo compo was so late and we knew there would be a huge number of long-ish demos, so frankly I had a nap during it. But from what I saw the quality and number of the best demos was really high.

So, yes, to answer my question, it looks like Zoo and the C64 sceners were back in full force.

Zoo 2022:  5/5, I'd take part again.

Friday, 21 October 2022

Quickshot Flight Grip

I found this cheap Quickshot Flight Grip aka Quickshot Handlebar aka TecToy Asa. Designated QS-129N, I guess N is for Nintendo. Yes, sadly this is a NES controller, so I can't get instant gratification with playing Afterburner on the C64. Even my only NES machine is a clone that takes in a different kind of connector.

The shape is just irresistible, but it is clear the design is a gimmick and does not work well as a general gamepad.

It's worth noting the idea is not that far from the Playstation 1 controller that became the nearly universal starting point for all subsequent gamepads. It's just the grips are too spreadeagled and the d-pad and buttons are too near the centre. Bonus points for having the B-button as a "shoulder" button here, too.

Unlike the much later Gravis Destroyer Tilt, this Quickshot is NOT a motion-sensor gamepad. And given my experiences with the Tilt, it's perhaps all the better for that.

The size is for smaller hands, but that's not the biggest problem. The d-pad sounds and feels a little lifeless, and sometimes I think the B-button would be better as the principal fire button.

Looking at this from an alternative angle, I can see myself holding it like a boomerang (Batarang?) although then I'm more clearly limited to either the d-pad or the two buttons.


A look inside

Old electronics look often more crude than the outside suggests. The Quickshot is built more like a toy than an object for hardy use.

But it is a clean design. A bunch of screws keeps the outer case together. The circuit board in turn has a couple of tiny screws, after loosing them the whole thing begins to fall apart.

The buttons at front are on a separate board that must be identical to the Atari version of this controller. The NES-relevant stuff is on the central board.

The cable is tied and held fast in a tight curve, and a wide screw helps keep it there. Not sure this is better than having a "stopper" in the cable itself, but it looks firm enough. This also helps me attach whatever cable I need to.

Looking from the other side, the circuit board was quite dirty and I wonder if this would even work without some adjustments.

The main board had the notation "24 Aug 1990" in it, and the tiny board with the d-pad and fire button has the text "Spectravideo 1989".


The Conversion

I felt it should be easy to "downgrade" the gamepad to work in the Atari/Kempston style, as it only requires me to remove the electronics in between and add a different cable.

The first idea was to replace the main circuit board with my own, so I could store the original relatively intact. At the same time I could get to do easy and enjoyable protoboard work.

However, the autofire and select/start buttons require some corresponding physical parts even if they are not meant to work. It is better to keep the original board in place and simply remove the existing connections and replace them with my own.

The only really new thing needed was the cable and 9-pin connector to replace the NES-style connector.

This turned out to be a problem as I didn't have a worse joystick to borrow the cable from!

So, I ordered a lot of four broken joysticks from an auction. I got a possibly recoverable TAC-2 (the most valuable thing in the lot) and another Quickshot brand joystick I might spare. But importantly for my project, a couple of crappy non-brand sticks which I could cannibalize for parts, such as joystick cables.

I de-soldered the ribbon connector and soldered in single wires, which in turn were soldered to the joystick cable ends. The cable had a rubbery stopper which I had to whittle off before I could fit it through the opening in the Flight Grip case.


In the above image I marked the connector wires 1-7.

1: GND
2: Right
3: Left
4: Down
5: Up
6: Fire
7: GND for fire


Testing

I played some games on the emulator through the Arduino adapter box.

Buck Rogers was quite fine as long as I was only turning the ship left and right and firing. When the ship needed to go up and down, it felt far more clumsy.

Buggy Boy worked surprisingly well, as it's also a sort of left-right game. I need to push constantly upwards though and this proved to be a little taxing for the old thumb.

With Stunt Car Racer I experienced first genuine confusion. The acceleration is no longer about pushing up constantly, but has to be managed together with delicate left/right controls. Diagonals are a stretch and I performed considerably poorer than I do these days with a Tac-2.

I also kept missing the 2nd button function, but the question is, what should it do? Replicate fire button? Or replicate Up direction, to give an easier way to accelerate? Hmmm....

Blue Max is one game where I felt a controller like this could be fun. But I'd be lying if I said the Flight Grip delivered here. Blue Max controls are a quirky to begin with and the poor diagonals offered by the controller did not help much.


I also played a couple of games where I expected the controller wouldn't be good at all.

The Great Giana Sisters was not as bad as I expected, but it needs a more accurate controller. It might help to have the second button to be the "Jump" button, so perhaps I'll indeed wire it to "up" and try again.

In Saboteur!, a lot of the movement is left-right only so it was rather good for those portions. However I also have to reach those ladders accurately and this is where the controller failed me and I couldn't bear to play much more.

The controller is a better fit for "3D" games with relatively simple controls. So I wouldn't condemn the Flight Grip concept entirely, it's very clearly not meant to work for all games. If only the buttons and diagonals were more crisp and precise.

Oh, I nearly forgot. I meant to play Afterburner. The game is so atrociously unresponsive it's hard to put the blame on the controller.

I'll get back to this if I solder the 2nd button.

Monday, 17 October 2022

Extenders

It's not worth having a bike or electric kickbike, without also having something to nerd about constantly.

As already mentioned before, I added a handlebar extender that enabled me to shorten the handlebar a little and still place the display to a comfortable position.

The extender has served well, but did not in itself help attaching a phone.

I saw this Wave Bike Clip and bought it off the shelf. Now this might be one of the crap and cheap solutions before I eventually find out I have to buy a Ram Mount anyway.

For me there were two main reasons for getting the phone holder.

First is the idea of having a map more easily accessible, which was one of the problems with the 28km planned journey I had. Stopping to dig out the camera out of the pocket every now and then was a nuisance.

I probably wouldn't even keep the map constantly on, it would be too much of a distraction. But it would certainly be easier to visit the map.

The second reason is to check the speedometer against a GPS-based speedometer app on the phone. This I only needed to do once, really. I confirmed the built-in speedometer is adequate and calibrated correctly. (It can be re-calibrated)

Given this accuracy, strangely enough the internal odometer is not very precise, at least compared to Google Earth. However this would also require more reference points, can I even trust Google Earth?

The Wave Bike Clip is in the middle, in closed position.

Filming video might be one possibility, but I'm not currently that interested in it and also suspect it would be really shaky.

I tried various ways of attaching this phone holder, which unlike the first extender only really fits to the actual 22mm handlebar and not the thicker bolts.

At one point the vertical stem looked like a better place than the crowded handlebar, but the gimbal couldn't provide an angle to do this well.

So, after trying different angles, I just attached the phone holder to the extender like I did at first.

There's also the issue that the collapsed package can also increase in size with these extenders.

The holder is quite shaky even on smooth pavement, and I kept fearing the phone might fall off, which I guess is unlikely.

The shaking may be because I have bashed together an extender on another extender, but it also made me appreciate how sturdy the first extender is.

The phone buttons are a small annoyance, of course they are exactly in the place that prevents me from centering the phone better.


Wednesday, 5 October 2022

8-bit joystick adapter using Arduino

One day, I was looking for a 9-pin joystick ("Atari" or "Kempston") to modern PC adapter. After some disappointments, I googled for a comparable DIY Arduino project and found what I wanted from here:

https://hackaday.io/project/9552-digital-joystick-8-bit-to-usb-adapter

There isn't anything to code, as the functioning joystick examples are already supplied with the library. But as the instructions are a little on the short side I thought I'd add my experiences.

Firstly, the Arduino I had installed from the Linux repository was too old. Most of my time was wasted trying to get the library to work, whereas if I'd just downloaded the latest IDE, I could have added the library very easily.

One way to do this is to download the library as a zip, then use the Add .ZIP library function from the Arduino IDE menu. It's possible the IDE may need to be re-run. If the library has been installed, the GamepadExample can be selected from the File -> Examples -> Joystick submenu.

Not just any Arduino board can do this. Arduino Micro and Leonardo are seen as HID devices, so they can pretend to be joysticks, mice and keyboards depending on what you tell them to do. I had to buy an Arduino Micro to even try this.

ArcadeStickExample may sound attractive, but it requires an Arduino Micro Pro instead! Obviously a single-button arcade style joystick could work here.

The hackaday page isn't very explicit about which wires to connect to which pins, although the GamepadExample.ino will give some pointers.

Adapter port view pins:

 1 - Up to Arduino digital pin 2
 2 - Down to Arduino digital pin 4
 3 - Left to Arduino digital pin 5
 4 - Right to Arduino digital pin 3
 5 - Not Connected
 6 - Fire to Arduino digital pin 6
 7 - 5V (Not Connected)
 8 - GND to Arduino GND
 9 - Not Connected

I'm unsure of connecting the 5V to Arduino 5V, it looks like it was enough to connect the ground (GND).

It's also possible to have multiple joysticks, but I don't need that now.

Quick and unscientific lag-test: On Vice 64 I tried Buck Rogers, Commando, Decathlon, Giana Sisters, H.E.R.O. and Stunt Car Racer and Giana Sisters (again) on Amiga emulator.

With some of the more crisp C64 games I could perhaps see tiny bit of lag but not more than Raspi BMC64 or The 64 Mini/Maxi. All within sensible limits to me, and possibly not even because of the adapter really. Playing 50hz games on 60hz display is all kinds of wrong to begin with, anyway. Stunt Car Racer on the Amiga felt pretty good.


Building the box

I toyed with the idea of placing the Arduino inside my main PC, and have the 9-pin port through the casing. At the other extreme, I thought about putting the adapter inside a joystick.

But it's of course best to have it as a separate adapter after all.

For once, I thought it would be better to build the box from something else than chipboard or wood. Looking around, an old Mini-DV cassette case looked the right size.

I cut a prototyping board with 3x1 islands to the precise inside dimensions of the box so it would be held in place even without screws. The 9-pin connector required a large hole at the other end of the box. As the proto board was now in the way I simply cut a hole in it.

As the wires needed more space this proved to be insufficient and I cut the whole board shorter, as can be seen from the above picture. But it stays in place well enough.

Also, to save space the Arduino had to be soldered directly to the proto board. I cut excess pins from top and bottom as the wires needed some more room. A different positioning could have helped here. I didn't foresee it but in a way longer wires could have been easier to fit.

The micro-USB connector was initially meant to stick out neatly of the box, but because of all the mess with the wires, the port is a little deeper. Another idea was the box would also keep the USB cable in place, but the box is a little too flimsy to help keep the cable in place. Also I didn't want to make the cable a permanent part of the adapter.

So, the usual story, a relatively clean and well-intentioned project becomes messy at the point when soldering and wires are needed. I had to cut and whittle the box in so many places the end result is no longer very robust, but it will do. It keeps the things inside cleanly enough.

Wednesday, 28 September 2022

8-bit beliefs

ZX Spectrum and Commodore 64 were all the rage. Information was not easily available, was in the wrong language, and most importantly I was a kid and had little patience for learning anything.

*

After writing the PRINT "Hello" example from ZX Spectrum manual, I thought the "Hello" on screen was some kind of intelligent response on part of the computer. I think I had a goosebumps moment, and reported this finding to my dad, who to my embarrassment corrected me.


I don't know why I was so sure all BASIC languages were same. I had gained some reputation as a programmer, getting things move on Spectrum screen with key presses. However, when I needed to demonstrate this ability on a friend's Commodore 64, I quickly found out it doesn't understand the PRINT AT x,y construct or the INKEY$ statement, both central to the program. I guess my reputation diminished at that point.

We also enthused about a MikroBITTI magazine article on writing adventure games. I think I knew better already, but somehow we hyped ourselves into believing the descriptions inside the PRINT statements would translate into fantastic animated graphics, sword fights etc. Next day my friend informed me with sage authority that this would not in fact happen.


Although I wrote a few type-in games from magazines, typing was infinitely boring. I had a habit of RUNning the game before the listing was complete, in order to see at least something happening on the screen, as if "half a game" could already be experienced. In some cases something interesting might happen, but it could just as well result in a crash, losing even the little amount that had been typed.

There was a time when I thought the English alphabet is ordered QWERTYUIOPASDFGHJKLZXCVBNM. Because why else would the keyboards be in this order?

Briefly I also had this idea that all computers came from "England", where ever that might be. Soon I knew they also came from USA and Japan. For years, Clive Sinclair was the only "computer genius" I knew by name, and I also thought Sinclair QL must be some kind of ultimate super computer. I guess Jack Tramiel was next but I had less definite idea of his achievements.


Slightly later:

As mentioned, I could do simple BASIC games with moving graphics. However, these tended to be jerky and flickering, based on PRINT AT y,x;"@" and LET x=x+1 statements. This way game elements moved one character at time.

At school, perhaps even during math class, I came up with an innovation: what if I used LET x=x+0.1 instead?! Surely the graphics would move smoothly! I could barely concentrate on the classes at all, and nearly ran to home just to test this hypothesis. I was disappointed. Yes, the character moved more slowly, but still at 8-pixel chunks.


Machine Code was really the final frontier. The ZX Spectrum manual listed all the Z80 Machine Code opcodes, but I couldn't find anything about what they do and how they are fed into the computer. I didn't see the connection between these and the way some BASIC listings used READ/POKE to fill in memory space with machine code.

Obviously they could not be typed directly into a listing, because the Spectrum prevents from typing nonsense. I tried creatively adding these commands after REM statements, because that at least was possible. Of course, nothing happened.

Sunday, 18 September 2022

Anatomy of a Crash

Lately, I have been a little silent about my electric kickbike.

I always felt that since I don't drive drunk in the center of the city in the middle of Friday night, I would be immune to crashing. Not so!

My other pet theory said if I would crash it would likely be a collision with one of those ultra-fast cyclists. Not so either!

All happened in broad daylight through my own actions.

Some background. I had driven for more than 25 kilometers that day, experimenting with maximum range. After loading the battery half-full and getting a lift I headed back home, looking to drive some 10+ kilometers still.

The Grand Tour of Summer 2022

At that point I had my fill of driving for the day and had become tired and a little irritated. I just wanted to get back home quickly.

The crash occurred in middle of a central park, on non-paved roads with trees close by. It is something I'm not that experienced with, although I had survived the area earlier that day going the other direction. I diligently slowed down whenever there were other road users about, but when the coast was clear I often went for the 25km/h.

The story I have been telling since then went something like this:

Suddenly, the road profile changed rapidly from flat to a central bulge. I found myself veering towards the woods and could not brake efficiently enough. Something told me I should not try turning towards the middle of the path. Before halting, I hesitated and kind of semi-jumped off the board, letting the kickbike go over.

The morning of that day, not the actual crash site

I may have reduced the speed to possibly 15km/h or even less. Obviously when my feet hit the ground I could not keep balance, I rolled and fell on my left side, the shoulder taking the brunt of the impact. As my head lolled it took a bit of a knock too.

After swearing loudly and feeling my head for any blood, of which I found none, I lifted the kickbike, eyeballed it for any major damage and started immediately driving again. My two first thoughts were the fairly irrelevant "luckily no one saw this" and the more appropriate "why the fuck I didn't buy a helmet".

I soon felt it's insane to continue and needed to sit down, worrying about possible concussion. Taking stock of the situation, I realized my shoulder is very hurt, but that I could still navigate to home. After reaching there, I lied down and felt my collar bone and shoulder. After some Googling and a phone call it was off to the doctor. They confirmed the suspicion but fortunately the fracture was not major. A few weeks with an arm sling and a total of 6 weeks of recuperation would do.

It is somewhat fortunate the kickbike did not become damaged, although if I could now make a trade I would have preferred to have stayed healthy.

For a month I would not drive at all, and especially did not drive my own kickbike as I absolutely could not carry it in the stairs. So, as a punishment I also lost a lot of good driving weather.


Six weeks later, returning to the site

The evil road, revisited in Autumn

After having the experience I did reflect on it a lot, alternatively blaming myself and yet trying to find blame in the environment.

When I returned to the scene six weeks later, I couldn't really find evidence of that malevolent piece of road that threw me off. I couldn't really even find the exact crash site. Going backwards and forwards I couldn't see much wrong with the surface. To be honest the paths I had navigated in the morning of that day looked far more tricky.

All I can now say is that the path edges were perhaps a little vague. I may have already been sort of off-road when I noticed something is wrong. Or, there was some fairly minor anomaly in the road that could have been easily avoided had I not insisted on driving so near the edge.

Or I was just tired and did not pay attention to the path that looked easy compared to the other more narrow, twisting paths.

I have also thought I could have handled the situation better. But I maybe did the right thing after all, at least in braking first and letting the kickbike take its course, rather than trying to rapidly change the trajectory of a 100kg+ system in full speed. By not jumping off I might have avoided the fall, but it's hard to say what might have happened then.

I finally did get the helmet, though.



Wednesday, 31 August 2022

Blog post written with Protext on Amstrad

The following was written in early June, and I thought I had published it already. I just wanted something out before August ends :)

Text created in Protext begins->

Ok, so this Amstrad typing career has gotten slightly out of hand. But I just had to explore at least some alternatives to the rather slow and old-fashioned Tasword.

This is Protext on the Amstrad 6128, not the CP/M version though.

Already I feel the cursor movement around the paragraphs is more modern. Inserting between text is on by default and performs much like the "auto-insert" on Tasword, that is, as we now expect it to work.

I can insert lines by pressing return, and lines can be removed by using delete at the left edge, so I don't have to remember a separate ctrl-key combination to do these obvious things.

The first time I encountered anything weird was when I tried to backtrack my cursor to the previous line. This cannot be done by using arrow left at the left side of the screen, even if the text is part of the same paragraph. This is curious as I can indeed backspace to the previous line. In fact I can use shift+left arrow to get the cursor there.

My impression with Protext is that it indeed is quite fast and better for editing text than the Tasword. It has less weirdness of the 1980s home computer word processors.

Protext is not entirely free of clunkiness. Again the justify is on by default, adjusted to a particular page width. This width setting is not really even respected, if I for example delete a line to a previous line or I write new words into an already wide line.

But it is possible to use a Ctrl+f to reformat a paragraph. Doing this automatically might have been too slow and behave weirdly. I could also easily turn the justify off and have more normal looking text-editor paragraphs. Perhaps the software works a little faster for it, too.

If I turn off the word-wrap with Ctrl+w (not mentioned on the help bar), the cursor keeps going forever to the right. So only if I press return the pararaph will be completed, which is kind of correct, but it is not visually a very good solution.

I do note that Protext appears to have only about 20K free for text, which is not that much. Remember Tasword running on CPC6128 had more than 60K to work with. I'm not out to write a novel anyway, these tiny blog posts take about 2K.

Saving the file was not immediately obvious, as the Help bar only gives key shortcuts for text editing. Although the Tasword file menu appeared somewhat basic it was actually quite clear. However, the problem was not huge. Pressing ESC gives a kind of command line interface together with the possibility to have HELP. Using S will prompt a filename and save the file.

Moving a paragraph is not more complicated than with Tasword. Bonus points for using the actual COPY key that is featured on the Amstrad keyboard. Shift+COPY creates markers for both start and end, then Ctrl+M moves the area.

A somewhat more general problem with Amstrad text editing is that the computer does not have separate backspace and delete keys, the single DEL key instead acts as a backspace. Pressing shift+DEL does not result in forward delete, unlike I had hoped.

So, on with Protext until something better comes along. I might still give Tasword a chance, given I can find the options for making the software behave faster and better. However, even then the Protext overall typing and text editing experience is much better.


Afterthoughts (written in Blogger)

This time I fixed a few typos in the above text, as they made the sentences unclear. I already know that a few typographical errors, repeats, mannerisms and other brain farts get through when I simply write the whole piece from top to bottom. To me the idea that the text editor might influence overall composition, is more interesting.

I had some trouble with transferring the file to Linux. Firstly, I realized I had to use the PRINTF command to "print" the output of the document to a file, this way there are no command codes and such that might result from using the S-Save command.

The first resulting file was corrupt, but this may have been because the disk image I used in HxC was not valid enough. I'm also thinking the converting tools were not up to the task, as the Protext on Amstrad side seemed to read the files back happily.

Using a more "clean" empty disk image I got the file out. Just as with the Tasword file, I did some manual work removing the returns from line endings, here I also removed the tabbing and page breaks. Again, there was also some junk at the bottom of the file.

Tuesday, 19 July 2022

Handlebar mod

Although I have liked the wide handlebar, at 60cm it's perhaps just a little too wide.

For fun, I also measured the handlebars of various rentals. The measures are not accurate to the millimeter, I used a tape measure and it was not always simple to get an unobstructed measurement.

Voi  60cm
Lime 60cm*
Ryde 55cm
Tier 52cm
Dott 52cm
Bird 52cm

*) The handlebar is curved, I measured the straight line from end to end.

From top left, clockwise: Voi, Tier, Dott, Bird, Lime, Ryde

The comparison isn't very meaningful as I have only tried the Voi. But it looks though the 52cm is more common. 

Interesting though that Voi should increase the width. Last year's Voi rental kickbike had 56cm width (I measured it).... but, strangely enough, this year's model appears to have 60cm wide handlebar.

If there's any new observation to be made here, it's that the handlebars are always somewhat ahead of the stem, which is not the case in the Zeeclo.

The 52cm is likely impossible to achieve, and perhaps not even desirable. But I could comfortably take 4cm off, if possible, making it 56cm.

The major constraint here is collapsing the handlebar, as the two "pull-out" components need some space to move. The above shows the parts (red) extended, demonstrating how little room there are for the various parts on the handlebar.

Although the left side has generous 30mm free room, the right side is crowded. After considering this from a few angles with CAD and pencil sketches, I decided that if I take the display out (the green part) I can do the cut. 

The grips were again pulled out, and this was not as arduous task as last time.

There are plastic caps at the end of the metal pipes, after removing these I created a 20mm trace round the pipe using a vernier caliper and a paper knife.

Then it was just sawing off with the hacksaw. The blade was Sandflex BI-METAL 24TPI, which, judging from the diagram, should be fine for hollow pipes with some material thickness. (22mm pipe with 2.7mm walls here)

I was a little rusty with the saw, but the second cut was already quite fast. With a hacksaw, the angle of the saw is not necessarily the angle of the blade and the cut. I took care to create a good vertical cut from the beginning, so it would act as a guide for the rest of the sawing. 

I guess the ends ought to be covered with paint, but I might still cut off a little more.

Putting the rubber grips back, I noticed it can be useful to cover the "airhole" at the end of the grip with my palm. This creates an airbuffer or something that allows the grip sink in very rapidly and easily. This felt counterintuitive as I thought the hole is there precisely to allow air out.

For a few days the display was simply left dangling around the wires.

Test Drive

I felt this change improved the handling of the kickbike. I could take the tighter turning arcs more comfortably, and it is even possible the handlebar is less shaky.

The height of the stem was accidentally changed too, so I can't attribute everything to just this one change. Looking at past photographs, it's not that different though.

Wait, there's more!

There's the issue of the loose speedometer/computer. The local shops had a surprisingly few handlebar extenders. GoPro camera owners are well catered, but there's scarcely anything else. I couldn't see good parts in the hardware store, so this time I abandoned the DIY angle.

eBay to the rescue. After browsing a while I could find a shop in Ireland that sells these handlebar extension racks in 10cm and 20cm varieties:


The 22mm pipe is extremely flimsy, but it doesn't add much weight either. The clamp is 8.5mm wide, which is rather good.

Below is one of my first attempts. Good sense says the display might be better near the center, or at the right side, but I couldn't resist putting it here among the other controls.

The clamp is in an unorthodox place, around the moving bolt. However at this point I don't have the 1cm space in the handlebar!

As I mentioned this could be fixed by having shorter rubber grips.

These grips are 13cm, but can be easily cut into 11cm without breaking the appearance. These grips didn't feel that great to the skin, but I can at least use them to test the idea.

The grips were not as easy to push in. Halfway through I gave up, and then I couldn't get it out!

Fortunately the material is so rubbery I can roll it inside out. This also gave me an idea of how to install the grips, should I want to use these.

But I will save these thoughts for another time.