Swimming, 28th August 2018

First time in the water for a week, thanks to the bank holiday and to spending over an hour in the dentist’s chair on Thursday after which I was advised to avoid strenuous exercise for 24 hours. Advice I didn’t really need as it turned out, given how awful I felt for the next couple of days 🙁

Anyhow, back to my USRPT set:

400m front crawl warm-up
25 x 50m front crawl, target time 51s, rest interval 24s
200m front crawl swim down

And today it was a total disaster 🙁 First rep was over 51s, then the eighth and finally the tenth, at which point I stopped. I just couldn’t find any speed today and felt very tired. Let’s hope it goes better next time.

USRPT distance this year: 52,700m
Total distance this year: 129,950m

Posted in Swimming | Tagged , | Leave a comment

Geeetech Prusa i3 Aluminium axis calibration

My first step in calibrating the printer was to check the filament feed rate. There didn’t seem much sense working on anything else if filament wasn’t getting to the nozzle at the correct rate. So once again I removed the motor and extruder from the printer, leaving the motor connected up.

To run the test I aligned the end of the filament square with the bottom face of the extruder, then started up Repetier Host and sent the G-Code command “M302” to allow filament to be extruded without the nozzle being up to temperature. That done I hit the button to extrude 100mm of filament and measured the length actually extruded using calipers. I repeated the test six times, five times getting sufficiently close to 100mm that I couldn’t tell the difference. Once I got 99.1mm, but as that was not reproduced at all I assume it must have been my error.

So, I have some faith in the extruder being accurate. Hopefully for the last time for a while it all went back together.

The next step was to print out this test cube. The faces are all supposed to measure 20mm. According to my calipers my first cube came out at 19.35mm for the X and Y axes and 20.25mm for the Z axis. I wasn’t entirely happy about the print though, so I tried a second time. This one I measured at three different places across each face and obtained the measurements for X: 19.45, 19.35, 19.45; Y: 19.35, 19.35, 19.35 and Z: 20.3, 20.3, 20.2.

I’d read on several web pages that sending the G-code command “M501” would display the existing X, Y and Z values for the number of steps per millimetre for each axis, but that turned out not to work for me. Fortunately “M503” did display the figures, along with quite a few others. The settings for my printer were X: 78.74, Y: 78.74, Z: 400. There’s also an “E” figure, but I’m going to leave that alone for now (it was 95).

Based on the formula new value = old value x expected size / actual size, this gave me new figures for the axes of 81.09, 81.39, 394.67. I set these new values and saved them to the EEPROM using:


M92 X81.09 Y81.39 Z394.67 E95
M500

Then kicked off another cube print. This time the X and Y faces were 20mm as close as I could tell, but the Z dimension was way too small at 19.55mm. As this would have resulted in the above formula giving a figure greater than 400 (which I already knew looked as though it was too large) I just decided to bump the Z figure up to 398 this time.

As I was about to print another test cube, someone suggested to me trying an object a little like this one, but in fact the one they gave me had 100mm sides. I printed that out, measured the sides using my calipers again and plugging values back into the above formula finally settled on these values

X: 79.73
Y: 80.19
Z: 400

Which I have now set in the EEPROM as above. I’ll keep these under review as I continue testing.

Posted in 3D Printing | Tagged , | Leave a comment

Building an observatory. Construction #13

I hadn’t realised that we have a bank holiday weekend coming up, so in the hope that I’ll have a little more time available I decided to get some of the parts for the rolling roof ordered.

First up are the V-groove wheels and track. So many people have recommended these that it seems silly not to.

And then the steel for making the roof frame. I’ve chosen 25mm square section steel tube with a 2.5mm wall. I think that should be sufficient. Just hope I can lift the roof on once it’s made 😀

Posted in Astronomy, Observatory, Projects | Leave a comment

Uploading Geeetech Sanguino firmware from Mint 19/Ubuntu 18.04

This evening I dared to hit the “upload” button after compiling Geeetech’s firmware. I was immediately faced with a huge number of timeouts and other errors that all looked quite horrible, but somewhat reminiscent of a baud rate mismatch.

Enabling verbose mode for the upload showed avrdude being given a speed of 115,200 for uploading the firmware image. A bit of a hunt on the Internet suggested that the actual speed for uploading to my printer should be 57,600, but there’s no obvious place to set the comms rate for the serial device (/dev/ttyUSB0 in my case).

Further hunting revealed that the speed is set in the support files for the Sanguino board I’ve posted about downloading already. In my case I needed to edit $HOME/.arduino15/packages/Sanguino/hardware/avr/1.0.2/boards.txt and change the line that reads

sanguino.menu.cpu.atmega1284p.upload.speed=115200

to

sanguino.menu.cpu.atmega1284p.upload.speed=57600

Restarting the IDE and hitting upload once again resulted in a clean compile and upload to the printer which subsequently restarted itself quite happily.

Now time to do some calibration, I think.

Posted in 3D Printing | Tagged , , , | Leave a comment

Compiling the Geeetech Sanguino firmware with a recent Arduino IDE

As I have posted previously, trying to compile the Geeetech Sanguino firmware with a recent version of the Arduino IDE results in the following errors:

In file included from sketch/SdFile.h:27:0,
                 from sketch/cardreader.h:8,
                 from sketch/Marlin_main.cpp:44:
SdBaseFile.h:38: error: using typedef-name 'fpos_t' after 'struct'
 struct fpos_t {
        ^
In file included from sketch/Marlin.h:10:0,
                 from sketch/Marlin_main.cpp:30:
/usr/local/arduino-1.8.5/hardware/tools/avr/avr/include/stdio.h:950:33:
note: 'fpos_t' has a previous declaration here
 __extension__ typedef long long fpos_t;
                                 ^
exit status 1
using typedef-name 'fpos_t' after 'struct'

The recommendation repeated often on the Geeetech forums is to use v1.0.1 of the IDE because the code is written specifically for that version, but that’s hardly practical and a little misleading, I’d suggest. It’s more the case that the code happens to compile with that version of the IDE and won’t with later ones because of the above error which is presumably due to changes within the compilation environment.

In fact, the problem is relatively easy to fix by changing the name of the variable in the firmware source code. It’s only used in two files, SdBaseFile.cpp and SdBaseFile.h, so they’re easy enough to edit by hand changing all the occurrences of “fpos_t” to something else. Because I couldn’t be bothered to edit them, I changed to the firmware source directory and ran the following to change “fpos_t” to “gt_fpos_t”:

sed -i.bak -e 's/fpos_t/gt_fpos_t/g' SdBaseFile.cpp SdBaseFile.h

That done, recompiling gives the result:

Archiving built core (caching) in: /tmp/arduino_cache_531416
/core/core_Sanguino_avr_sanguino_cpu_atmega1284p_9d0b33a4df3327bd721e7d4e4de1171e.a
Sketch uses 92644 bytes (71%) of program storage space. Maximum is 130048 bytes.
Global variables use 4029 bytes (24%) of dynamic memory, leaving 12355 bytes for local
variables. Maximum is 16384 bytes.

Happy days. Next comes the scary step of seeing if I can upload it successfully.

Posted in 3D Printing | Tagged , , , | Leave a comment

Swimming, 21st August 2018

Another busy afternoon session at the pool, though for a change I think there were more adults than children. Doing my USRPT set would have been a nightmare so it was just as well that I’d planned more tumble turn practice. At one point I was asked to move over so someone else could do a couple of lengths for some assessment or other and I had to swim between the lane lines. It took a few lengths to get the hang of turning without the “T”.

USRPT distance this year: 52,300m
Total distance this year: 128,950m

Posted in Swimming | Tagged | Leave a comment

Building an observatory. Construction #12

A last bit of frame building before I get onto other work. Probably getting the roof sorted so it can be made passably weatherproof.

The internal warm room wall is now in place, with a door to get in and a window to give a view into the rest of the observatory from it. I decided to raise the end wall of the warm room by 150mm to give a little more headroom, giving me a fifteen degree slope on the roof. I cut all the rafters for the warm room roof to give a generous overhang and they are also now in place.

At this point either the warm room roof has to go on, in which case I need something to cover it with to stop the weather damaging it or I need to get on with the rolling roof. My feeling is that I’m going to go for the latter, so I’ll start gathering all the necessary bits together.

Posted in Astronomy, Observatory, Projects | Leave a comment

Mint19/Ubuntu 18.04 configuring arduino IDE to work with Geeetech Sanguino

Before I start work tuning my Geeetech Prusa i3 clone I thought I’d best get to the point where I can rebuild the firmware supplied by Geeetech. Their firmware appears to be based on an early version of the Marlin firmware and whilst I’d like to upgrade to the latest release in the fullness of time, getting the original to work first seems like a good plan.

I ran into an immediate problem with the 1.0.5 version of the Arduino IDE in the Mint19 and Ubuntu 18.04 repositories because it doesn’t allow me to set the Sanguino board type before I compile the code. There appears to be no fix for this but to download the latest version from the Arduino website (I have v1.8.5) and install it according to their instructions. Unfortunately it’s not quite that easy. Even the 1.8.5 version doesn’t know about the Sanguino, but unlike 1.0.5 it allows us to add some board definitions from external URLs.

After starting the IDE the first thing to do is to go to File->Preferences and near the bottom of the Settings tab there’s a box labelled “Additional Boards Manager URLs”. Into that paste https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json and click “Ok”.

Next go to Tools->Board->Boards Manager... and in the search box it should be enough to enter “sang” to find the right one: “Sanguino by Kristian Sloth Lauszus”. Clicking on “More info” brings up an “Install” button. Do the obvious 🙂 If like me you have a piece of damp string for an Internet connection, you may want to go and make yourself a drink at this point. It can take a while.

Once installed, close the window and go back to the Tools->Board menu. Sanguino should now be selectable right at the bottom of the list. After that the processor must be selected from Tools->Processor. My aluminium printer model has a 16Mhz 1284P so obviously that’s the one I chose.

Unfortunately my problems did not end there. Selecting an arduino project to open, I navigated to the firmware directory and opened Prusa_I3_A.ino. Attempting to compile the firmware throws the following errors:

Build options changed, rebuilding all
In file included from sketch/SdFile.h:27:0,
                 from sketch/cardreader.h:8,
                 from sketch/Marlin_main.cpp:44:
SdBaseFile.h:38: error: using typedef-name 'fpos_t' after 'struct'
 struct fpos_t {
        ^
In file included from sketch/Marlin.h:10:0,
                 from sketch/Marlin_main.cpp:30:
/usr/local/arduino-1.8.5/hardware/tools/avr/avr/include/stdio.h:950:33:
note: 'fpos_t' has a previous declaration here
 __extension__ typedef long long fpos_t;
                                 ^
exit status 1
using typedef-name 'fpos_t' after 'struct'

which looks like some of the firmware files use a variable name that clashes with a system name. More of that in another post.

Posted in 3D Printing | Tagged , , , | Leave a comment

Building an observatory. Construction #11

Tough day at the coal face, and I felt a bit “glow in the dark” as a result. The forecast was predicting 28C and I’d not be surprised if it didn’t go a bit higher than that. However, using a sash clamp extension made life easier to hold the frame components in place whilst I fixed them and this is how far I managed to get:

Which was pretty much as far as I’d hoped to get. Obviously I now need to go back and fill in the noggings and braces, but that’s quite a trivial thing compared with getting the basic framework in place and can happen as and when I have the odd ten minutes rather than the few hours required to cut and fix all the major timber components of a wall.

Amusingly despite the yellowing grass there’s quite a clear path forming between the observatory and the workshop 🙂

I do also need to find a bit of scrap wood to prop the extensions where the roof will roll off so they don’t sag downwards.

I’ll soon have to start thinking about covering it so it doesn’t get rained on, but this summer there seems little chance of that.

Posted in Astronomy, Observatory, Projects | Leave a comment

Building an observatory. Construction #10

After validating my choice of wall height there wasn’t much time left, but I was determined to make some visible change no matter how small. I had a few bits of scrap 18mm ply that used to be part of the cricket club scorer’s hut. I’ve put those on top of the joists just to give me something easier to stand on. More importantly however, I have most of one end wall in place!

It still needs some bracing and suchlike, but by this point I’d run out of charged batteries for my cordless screwdriver so I’ll get those done soon. I also cut all the wood for the other end wall.

I did consider doing the wall on the left in the bottom photo first as it would be easier to get into position first, but it will be nearly 5m long and has the support for the rolling roof rail. The “beer shack” walls are of similar construction and length (though slightly taller) and the long sides were a pig to get into place without anything to support them, so I’m hoping that having the end walls already in place will make life easier this time around.

Posted in Astronomy, Observatory, Projects | Leave a comment