Saturday, May 26, 2018

Indirect Ophthalmoscopy Using a Raspberry Pi -- Part 2

As I discussed in my earlier post on this topic, my brother and I are attempting to build an inexpensive, easy to operate, fundus camera that can be used to screen for diabetic retinopathy. Also as I said earlier, we didn't have much luck with a device I built by stacking up a raspberry pi camera, a raspberry pi, and a 7" touchscreen. Therefore we took a new approach.

Optical bench showing various adjustments
I  built an optical bench that allowed many adjustments for the distances and alignments of the components. It held the camera, the LEDs to illuminate the eye, the 20 diopter condensing lens, and the patient's head. The Raspberry Pi and some other components were attached to one or another of these devices via cables. Let me talk about these things in turn.

Camera with adjustable focus lens and LED board ahead of it
Camera -- We did not actually use the official Raspberry Pi camera. The official camera has a fixed lens. That is, it is not meant to have its focus changed from its factory setting, which is more or less at infinity. We want to be able to focus more effectively on nearby objects. The lens can actually be turned using a pair of tweezers and thus the focus can be brought nearer but this is a fiddly process, and not very convenient. Instead we used a camera sold by UCTronics. It uses the same sensor as version 2 of the Pi Camera but has a lens that can be easily focused manually. I purchased an extra long camera cable from Adafruit allowing me to mount the camera on the bench and still reach the Pi.

Board containing prototype bi-color LEDs
Board containing conventional LEDs

LEDs -- I built two versions of the board containing the LEDs. One contained two of bi-color prototype LEDs (white and infrared) that I mentioned last time, and one contained two each of conventional through-hole white and infrared LEDs. Through experimentation we found that a single LED of each type was able to provide sufficient light. The reason we decided to have two, at right angles to each other, is an attempt to overcome specular reflection from the various optical components. The highlights of these LEDs potentially hide important information in the image so we felt it was important to deal with it. More about that later. There is a ribbon cable that runs from the LED board to a breadboard that contains the circuitry that drives the LEDs based on control signals from the Pi. There are also two potentiometers that can be used to control the brightness of the LEDs.
Infrared and White LED brightness controls

Condensing Lens -- This lens provides the primary magnification for the image of the retina. Other focal length lenses are sometimes used but this seems to be the most common for this type of screening test.

Chin and head rest as well a condensing lens
Patient Fixture -- This is simply an adjustable chin rest and head rest meant to hold the patient's head in a fixed position.

Raspberry Pi --

Hardware -- We used a Pi 3 Model B Version 2. Using GPIO pins it is connected to the circuit board that drives the LEDs mentioned above. It is also connected via USB cable to an Arduino. We wanted the ability to control a number of Pi Camera parameters on the fly. (See Software below) We did this by using four potentiometers as voltage dividers, read the voltage via the analog to digital converters on the Arduino, and then pass that information to the Pi via the USB.

Brightness, Contrast, Sharpness and ISO camera controls
Software -- The Pi is programmed using Python. The program starts out (using the Python camera interface) to set up a camera preview and then enters a tight loop reading the desired settings for brightness, contracts, sharpness, and ISO from the Arduino based on the positions of the potentiometers. It sets the given parameters in the camera software and then loops back to read the information from the Arduino again. There is a normally open button connected to a GPIO pin on the Pi that works as a shutter button. When a button is pushed an interrupt on the Pi is triggered. The Pi takes a picture, turns off the preview, and displays the picture in a browser window on the Pi. When the shutter button is pushed again the camera preview is re-enabled and the process starts over. The pictures are numbered consecutively so they are not overwritten.  Using hardcoded variables in the Python program the action of the LEDs can be controlled. For instance, the eye can be illuminated in IR during the preview but have the white LED flash as the picture is taken. Or the eye can be illuminated in white light during the preview and when the picture is taken. Or it can be illuminated in IR continuously. Or no illumination can be provided.

Here is an example of a picture we took using our device. The optic nerve is the yellow circular area in the upper left of the picture. This picture is not perfect, of course. You can see evidence of the specular reflection I mentioned earlier. We are, however, pleased with the resolution and the field of view. Also we still haven't been able to achieve sharp focus using the IR LEDs so it should be noted that this photo is taken with a chemically dilated pupil.

Next time I'll talk about what we're doing about that.

Oh, and one other thing. There is a group that has made excellent progress on this type of device. If you're interested in the topic be sure to look here.

Sunday, April 29, 2018

Indirect Ophthalmoscopy using a Raspberry Pi -- Part 1

Periodically your ophthalmologist will want to perform a dilated retinal exam on you. He or she will put a drop in each eye to dilate the pupils, wait about twenty minutes and then use a lens and light to examine your retina. The retina is the light sensitive tissue on the inside of the eye. Generally this is a screening exam for, among other things, diabetic retinopathy. Retinopathy is a disease of the retina, and thus diabetic retinopathy is such a disease caused by diabetes.

These are important examinations but are unpopular among patients for a few reasons. They require extra time for the eye drops to take effect, and then that effect lasts for several hours. During that time the eyes are particularly sensitive to light, and the vision is often blurry making it difficult to drive and to read.

My brother is an ophthalmologist and he pointed out to me an article written by a couple of doctors at the University of Illinois (here) in which they described building a non-mydriatic fundus camera. Mydriasis is the dilation of the pupil and in this case fundus refers to the inside back of the eye. These instruments are available but they are extremely expensive. The interesting thing about this article is that it describes building such a camera using a Raspberry Pi with a Pi Camera.

The key idea in the article is that instead of using a chemical to dilate the patient's pupil, the patient is placed in a darkened room and the pupil is allowed to dilate naturally. The problem with this approach is that in the dark the examiner cannot see to focus the camera, and because the dimensions involved are so small, the focus is critical. However, the article describes using a combination infrared and white LEDs for illumination. Generally, electronic cameras are sensitive to infrared light but human eyes are not. Thus, the examiner illuminates the eye in infrared light and viewing the image from the camera is able to focus, and then flashes the white LED to take the picture. The white light produces an image with good color rendition, an important factor in performing the exam, but the flash is so fast that the patient's pupil doesn't react until after the picture is taken.

A significant advantage of an inexpensive fundus camera is that the retina could be imaged in settings other than a doctor's office. Clinics, schools and so forth could capture the images and they could then be reviewed by a retina specialist at a later time. My brother suggested that we try to build one of these camera systems, and therein lies a tale.

One of the trickiest parts of taking a picture of the retina is the fact that it must be taken through the pupil. Even when dilated that is an opening of only a very few millimeters. Through this tiny opening light must be shone to illuminate the retina as well as the picture taken. That means that the light must be very close to the main axis of the camera lens. The University of Illinois group used a prototype of a tiny LED made by a Japanese company that can emit both IR light as well as white light. With the help of a Japanese friend of mine we undertook to obtain a few of these prototypes. Pending their arrival we did some experiments using a group of conventional LEDs and a partially silvered mirror (left). The idea was that the camera would take a picture of the eye as reflected in the front of the mirror while the eye was illuminated by LEDs behind the mirror. Thus the LEDs could be made precisely collinear with the camera.

Now, the way the retina is usually examined is that the ophthalmologist uses a 20D hand lens that he or she holds close to the patient's eye. At the same time the doctor observes the image in the hand lens using a light source and another magnifying lens that is often worn as a headlamp. Getting a good view is tricky business because it involves moving the two lenses and light such that the image is appropriately magnified, while maintaining an adequate field of view as well as having the image in focus. This is complicated by the fact that if the patient is near sighted or far sighted the correct position of the lenses changes. With practice doctors develop a good facility for this. As you might imagine, however, doing this with a camera, screen and light as well as the 20D condensing lens can be a challenge.

We built such a device and experimented around with it. We were completely unsuccessful at getting a clear view of the retina in IR light and thus could not get a good picture. Try as we might there were just too many variables, including the number of LEDs, the focus of the lens on the Pi Camera, the distances, the size of the device, etc., etc.

Around this time the Japanese LEDs arrived. We replaced the conventional LEDs that we had been using. These new LEDs were SMT (surface mount technology) and so had tiny solder pads and presented their own challenges but we were able to get them closer to collinear with the camera and so eliminated the partially silvered mirror. Nothing else changed, including our results.

We thought it might make sense to go back to first principles so we started from scratch. This time we built an optical bench that we could use to do more precise experimentation. I'll show you that in my next post.

Sunday, September 24, 2017

Rolling Ball Sculpture

Like so many things, and I suppose life in general, if I could do it over again I would be much smarter about how to do my first rolling ball sculpture. On-line there are many fine examples and much excellent documentation about how to make these things. Rather than attempt to duplicate the documentation that is already out there I thought I would show a few pictures and mention a few things that I figured out along the way.

For those of you who don't care how these things are made but want to see what it looks like when it's done, here is a link to the YouTube video.

Where do you start

I took two approaches to this. First, there were some features that I had seen in other people's sculptures that I wanted to duplicate and some ideas of my own that I wanted to try out. I made prototypes of these.

I soon realized, however, that the performance of many of these features was dependent on the speed of the marble.

That led me to the second approach as to where to start. I figured that I would just follow the path of the marbles, adding and testing features as I went. That meant I had to decide how I would lift the marbles to the top of the sculpture.

I decided on a design that is analogous to Archimedes Screw for lifting water. I had seen a number of versions of this in YouTube videos and thought I understood how it worked until I tried to build it. Between the loading and unloading of the marbles and structure required to push them up the screw I kept getting confused as to the interaction of the screw mechanism that was turning and the rest of the structure that was not.

 Here again I built a prototype. I had also read on-line that this type of lift worked best if it was kept to 24 inches or shorter, and I wanted mine to be almost twice that.

With the courage of the naive I plunged ahead figuring any problem the extra length caused could be solved by a bigger motor. I added a thrust bearing at the bottom of the screw (it's amazing what you can find on Amazon.)

It seemed to work fine with a few marbles and figured I had the design licked until I loaded it full of marbles. The motor I had was powerful enough but the problem was elsewhere. In this picture you can see the two vertical rods, one on either side of the screw. As the screw turns the marbles can't fit between those vertical rods and the central shaft of the screw and thus the marbles are pushed up hill.

It turns out that with a full load of marbles there was so much pressure on the vertical rods that they started to flex. Eventually a marble would get wedged between the rod and the screw. The motor kept turning and the marble would pop past the rod. The rod would snap back and marbles would go flying like corn in a popper.

I despaired having to replace those rods with something heavier. As luck would have it, my sister Monica and her husband Jim were visiting and I was whining to them about the problem. They suggested  just putting a wrap of wire around the outside of the rods...problem solved.

Once I had the lift working I just started adding things from the top to the bottom, factoring in the features I wanted and experimenting with fit, marble speed, aesthetics and so forth.


I learned a few things here as well. Maintaining the proper separation between the rails is obviously very important. Some people have some small, elegant pieces to do this, and my plan was to do something similar. Try as I might, though, I couldn't design a clamp that held the separator piece in place, held the tracks at the proper separation, and still gave me enough room to get in there and solder everything together. To the right is a picture of one of my earlier (and uglier) efforts.

 Then my friend Jim and I hit on just using rings. They were much easier to clamp and indeed in many circumstances I could just put the track upside down on the bench and the ring would hang in the right position for soldering. I had originally planned to cut off the part of the ring that is above the rails after they were soldered in place but I decided I like the look of them and so left them.

I also realized that if the rails were close enough together then the marble would not extend below below the rails as it rolled along, and thus I could use straight wire to, for instance, connect the loops of a spiral so this one turned out nicer than the one shown above.

That brings up something else I wanted to mention. When making curved track, there are a couple of ways it can be designed. The first I call "safe" track. In this approach a marble is held on track both dynamically and statically. By that I mean that when a marble is rolling around a curve two of the forces working on it are gravity and momentum. The gravity is, of course, pulling it downward. Its momentum, sometimes called centrifugal force, tries to keep it going in whatever direction it is already going. Thus, curved tracks are usually banked to keep the marble from flying off. For a typical curve, the two rails can be configured such that the outside rail is just above the center of the marble and the inside rail is just inside of the center of the marble. Thus no matter how fast or how slow the marble is moving it won't fall off the track. In the case of a loop, so the track is actually above the marble in order for the track to be "safe" a third rail is required, usually opposite the other two, in case the momentum of the marble is not adequate to counteract gravity.

"Unsafe" track, on the other hand, is arranged so that for a given speed the combination of the rails, gravity, and momentum will support the marble. This type of track can be much more tricky to implement because you need to know how fast the marble will be going when it hits that section of track. In my opinion, the "unsafe" track is more fun to watch but it is most noticeable on loops.

Overall Structure

There is one more thing I think is worth mentioning. As my sculpture neared completion I found that sometimes some features would work and sometimes not. Marbles would fall out of loops, or would stop on flat sections of track. Other times they would work perfectly. I came to realize that this was due to vibrations in the sculpture. Sometimes the period of those vibrations was such that they would absorb enough energy from the rolling marble that it wouldn't  have enough speed to complete the feature. To solve this problem I had to add a bunch of braces just to stiffen everything. I know this picture is kind of confusing to look at but if you look closely you can see a couple of these braces in the foreground.

Ok, that's about it. There are some much more well executed and much more beautiful sculptures on-line. As I said at the outset, my second one would be much nicer, but I had tons of fun building this one, and if you're planning to make one yourself I hope the tips are useful.

Here, again, is a link to the YouTube video of the sculpture in action. Oh, one final thing. I realize why all the videos you see are set to music. It's because these things are as noisy as a can factory. My dog hides under the bed every time I turn it on.

Tuesday, November 8, 2016

Music & Me -- Part 5

Had a great time at the Orlando Maker Faire October 22nd and 23rd. The pipe organ proved to be very popular with several hundred people stopping by to ask about how it worked and how it was made.

 It was especially popular with the kids.

Also, I was interviewed by Caleb Kraft of Make Magazine. Here is a link to the interview.

My friend Jim, who has been helping me, and our wives came along. Here you can see the Maker of Merit award that we got.

Finally, after the interview Caleb Kraft suggested that adding LEDs to the organ indicating the note that was playing would make it more interesting to watch. I did that and here is a YouTube video showing the newly added LEDs.

Monday, October 10, 2016

Orlando Maker Faire

I will be displaying my Player Pipe Organ at the Orlando Maker Faire on October 22nd and 23rd. If you're in the area please stop by. Or, better yet, volunteer at the Maker Faire (and get in for free.)

Sunday, April 3, 2016

Music & Me Part 4 -- Version 1.0 is complete

It's finished, completed, accomplished, discharged, ended, concluded, done.

For those of you who have not been following along at home, please check out the first three installments of this project. Since my last post I finished the plumbing, again with the help of my friend Jim. You may remember from earlier posts that the wind chest has valves that control the flow of air to the organ pipes. Here you can see them with white leaf springs holding them closed. The air then needs to actually get to the pipes, which sit over the holes some of which you can see in the top of the picture.

This was accomplished using pvc plumbing pieces as shown here. The underside of the wind chest is on the left and the organ pipes sit atop the plumbing on the right.

Here is my source of air or as the organ folks say, wind. I couldn't afford a real organ blower so I went with the Shop-Vac solution. I built this box to accomplish two things. First, one could hardly hear the organ over the roar of the Shop-Vac so I needed to do something about the noise. Second, the higher the pressure in the organ the higher the pitch of the pipes. Therefore, a pressure regulator is needed to limit the changes in pressure that occur as different numbers of pipes are playing at one time. The lower box contains the Shop-Vac and muffles its noise. The upper box further muffles the noise and regulates the pressure.

Let's start with the pressure regulator first. My friend Jim used to have an HVAC (Heating, Ventilating, and Air Conditioning) business and he showed me how they regulate pressure in those systems. You can see an example on the left side of the top box. There is a door, hinged at the top. Sticking out of the door is a rod, and on the rod is a weight. When the system is running, most of the time it produces more air than the organ needs. The excess air shoves the door open and escapes. If the pressure starts to drop, as it does when more pipes are playing, the lower pressure can't hold the door open as much so the door closes a little and that boosts the pressure. The pressure can be regulated by sliding the weight in or out on the rod.

Now for the sound deadening. Here is a picture of the upper box (left) and one of the lower box (right) with their tops removed. The air inlet is on the left side of the upper box, near the top of the picture. I have sound deadening insulation near the opening because I found that there was some noise from the airflow, and some from the Vac, and insulation near the opening seemed to quiet it. The air is drawn into the hole on the left near the bottom of the picture, down to where the Vac is. Now looking at the picture of the lower box the opening from the upper box opens into the large compartment where the Vac is. The discharge from the Vac goes through the short white tube into the small compartment on the upper left of the picture. It then passes through an opening into the small compartment on the upper right. From there it flows back up into the upper box through the hole you can see in the upper right of the left picture. This compartment has the pressure regulating weighted door. The air that doesn't escape through the pressure regulator flows through the round hole through a hose to the organ. All those twists and turns, with insulation at strategic points cause the sound to be dramatically reduced, from about 90dB to about 73dB.

After getting the organ working, Jim and I went through endless sessions of tuning the forty-two pipes. We used an app called Pano Tuner, a screen shot of which is shown here. The app worked beautifully, the organ somewhat less so. After much trial and error we learned that the pipes were so close together that their sound was impacted by the pipes around them. Also, at first we were playing around with the pressure and every time we changed it we had to re-tune all the pipes. Even after we chose a final setting for that, though, we would tune the organ in the morning and when we came back in the afternoon the pipes would all be sharp or flat. We figured it may have to do with temperature and humidity. I live in Florida and the organ is in my garage so those parameters can vary quite a bit but I haven't brought it indoors yet to test that theory.

And that's it. Here are me (on the right) and Jim relieved that version 1.0 is complete. Now, those of you who have stuck with me this far get either a reward or punishment depending on your perspective. Here is a link to a YouTube video of the organ in action. Thanks for reading my blog.

And thanks once again to Matthias Wandel at and Raphi Giangiulio at I stand on the shoulders of giants.

Wednesday, January 27, 2016

Music and Me Part 3

Around two years ago I wrote about building a pipe organ in a post called Music and me continued. At the end of that post I said that the number of solenoids that I would need would cost quite a bit of money and I wasn't sure when I would get back to it (i.e. I am too cheap to spend that kind of money on the project.)

Well, my friend Jim from across the street came over just before Christmas and I was showing him the pipes that I had made and he asked what the next step was in the project. I said that solenoids were too expensive to take it any further and by way of illustration I called up the Electronic Goldmine website ( and what to my wondering eyes did appear but solenoids on sale for $5 each. I quickly penned a letter to Santa and there, under the tree on Christmas morning were 42 solenoids. I was back in motion once again.

Jim and I spent hours working on designs for the configuration for the solenoids and eventually hit on something that we thought would work, and here it is in the flesh.
In the lower part of the picture is the "wind chest" that I mentioned in my last post on this topic. This is a design that I pretty much just stole from Matthias Wandel from his website. For springs I used hacksaw blades because they are made of spring steel. You can see that there are two rows of valves with the (mostly) white hacksaw blades pressing them down (closed). Above the wind chest you can see that there are two aluminum angles, the bottom one is populated with solenoids, the top one not yet.

Running down from the solenoids you might be able to spot thin wires attached to the valves. When the solenoid is powered it pulls on the wire and opens the valve.

So far so good. How do I play music? I mentioned in an earlier post that I planned to use MIDI (Musical Instrument Digital Interface). This is a standard that is more than 30 years old. It is used to control digital musical instruments like synthesizers, to manage stage lighting and pyrotechnics that are coordinated with music and so on. There are many thousands of songs in MIDI format available for free online. These are not sound files, though. They are instructions on what notes to play, when, for how long, and at what volume. Here is an example of some lines from a MIDI file converted to text.

   4: 1:  0  |On Note | chan= 3   | pitch=C#2 | vol=66
   |On Note | chan= 3   | pitch=C#1 | vol=64
24 |On Note | chan= 3   | pitch=F#2 | vol=52
43 |(Off) Note  | chan= 3   | pitch=f#2
48 |On Note | chan= 3   | pitch=G#2 | vol=56
61 |(Off) Note  | chan= 3   | pitch=g#2
72 |On Note | chan= 3   | pitch=E 3 | vol=88
   |On Note | chan= 3   | pitch=B 2 | vol=76
   |On Note | chan= 3   | pitch=F#2 | vol=76
   |On Note | chan= 3   | pitch=G#2 | vol=68
90 |(Off) Note  | chan= 3   | pitch=g#2
91 |(Off) Note  | chan= 3   | pitch=b 2
94 |(Off) Note  | chan= 3   | pitch=c#2
95 |(Off) Note  | chan= 3   | pitch=e 3
   |(Off) Note  | chan= 3   | pitch=f#2
      2:  8 |(Off) Note  | chan= 3   | pitch=c#1

The numbers on the left are timing. Then comes the instruction. The channel is the instrument, then the note, and finally the volume. This particular MIDI file breaks each beat into 96 increments. So, for instance, the first line says "at the beginning of the first beat of the fourth measure, for instrument number 3, start playing C# in the second octave at a volume of 66". The next line says "at the same time start playing C# in the first octave". Then after 24/96ths of a beat (or actually 25/96ths of a beat because the counting starts at 0 rather than 1) start playing F# in the second octave. Then 19/96ths (43-24=19) of a beat later turn of F# in the second octave. And so on, and so on.

I had an Arduino Due microcontroller and hooked up an SD card reader to it and put a MIDI file on the SD card.

Here is the Arduino. It has 53 output pins. Under program control it can turn each of these on or off. I wrote a program on the Arduino that assigns each note to a pin. Then it reads the file and turns the pins on and off with the correct timing. Since I only have 42 notes on the organ I only need 42 pins. These pins can only supply a tiny amount of electricity, however, not nearly enough to trigger a solenoid.

My sister Monica and her husband Jim happened to be visiting, and she and he and I built this board.
The main components are 42 transistors. These work like electronic switches. The tiny amount of electricity from the Arduino can turn on a transistor, and a transistor can switch enough electricity to trigger a solenoid.

I still have to wire all this stuff together but I'm pretty confident that it will work

And what about all those pipes, you might ask. Not tons of progress on that front, with one exception. Again, I have been using the information provided by Raphi Giangiulio's YouTube videos on how to make wooden organ pipes.

In looking at his specifications there was something that didn't make sense to me. As the pitch gets lower the pipes get bigger until we get below C below middle C. Then they are significantly smaller. I didn't understand that so I sent an email to Raphi and he generously responded and explained that Bourdan pipes are stoppered. That means there is an airtight stopper put into the pipe and that lowers the frequency. It's counter-intuitive but it works. Here are a series of five pipes in order of frequency with the lowest on the left.

And here is a shot of a couple of stoppers.

I have only 18 pipes of the 42 pipes made, and so I am not nearly finished with the project but I am re-invigorated. I'll keep you up-to-date.

Thursday, October 15, 2015

Matching headboard

Regular readers might remember that sometime back I built a bench for the foot of our bed. At the time I mentioned that we had a queen size mattress but were thinking of upgrading to a king size. The issue was that Peg likes a firmer mattress and I like a softer one. I thought about one of those Sleep Number beds where each side is adjustable as to firmness. I priced them, however, and realized that it would be cheaper to buy a car and sleep in there. Then, as luck would have it we were up visiting Abigail in Washington D.C. We stayed in a Marriott hotel and we both liked the bed. I looked for a tag on the mattress. It was a Serta but didn't have a model name or number. Peg looked on the Serta website and they said that if you stayed in a hotel and liked the mattress you could call Serta and order the same model direct from them. So I did.

Now, however, the pressure was on. I had to actaully make the headboard to match the bench that I had been talking about. I had enough cherry left over, and enough caning so I did it, and here are the pictures to show you.

I didn't have any 8/4 cherry so I made the posts by doubling the 4/4. These are the posts with mortices for the lower rail.

I cut one of the two 4/4 pieces shorter than the other giving me a way to overlap the upper rail. Here you can see one of the completed posts with a groove cut for one of the panels. You can also see the three stiles with their tenons and grooves cut.

Here's how I made the panels. I used half inch plywood. I glued the caning to one side and cut rabbets along the edges of the other side to fit into the grooves.

 Here is the lower rail with tenons and groove cut.

And here you can see one of the mortices in the lower rail, cut to accept the tenon on the stile.

Here are most of the pieces, ready to assemble.

And now the posts, lower rail, and stiles are glued together and ready for the panels to be inserted.

As no good deed goes unpunished I imposed on my friend Jim (who helped me with the Historic Spanish Point benches) to help me glue on the top rail. This glue-up was particularly exciting because we had to get the tenons on the three stiles into the three mortices, while at the same time getting the top rail aligned exactlly with the posts all before the glue dried. You can never have too many hands or too many clamps.

Next I cut grooves to fasten the header to the top rail using biscuits. To the uninitiated, buscuits are oval shaped pieces of compressed wood. When glue is applied to the grooves and the biscuit inserted, it swells and that in combination with the glue hold the joint firmly.

Six coats of polyurethane later and it's ready to go.

Ta-Daa. The finished product, matching bench, and hotel mattress.