jkominek / piano-conversion

Hardware, and some firmware, for acoustic piano to MIDI controller conversion.
Other
42 stars 6 forks source link

Sensor board PCB #44

Open jkominek opened 3 years ago

jkominek commented 3 years ago

I produced a bunch of variations on the sensor board very quickly, to account for the changes in my mechanical plan. Improvements:

Additionally, I'd like to make a variation on some of them that uses the EAITRCA6 from Everlight. It's a similar, but much thinner sensor. Looks like it could be surface mounted, which would allow the sensor PCBs to rest flush against their support. That should eliminate flex when the hammer impacts.

davidedelvento commented 3 years ago

Another idea on the topic of "avoid hammer impact", especially if the last 1mm is still too close to get any useful data. Have you tried if Plexiglas (or other transparent plastics) are transparent to these wavelengths? Usually these materials tend to be brittle, so they will need some support, but still it can be a viable alternative.

jkominek commented 3 years ago

Another idea on the topic of "avoid hammer impact", especially if the last 1mm is still too close to get any useful data. Have you tried if Plexiglas (or other transparent plastics) are transparent to these wavelengths? Usually these materials tend to be brittle, so they will need some support, but still it can be a viable alternative.

I have not, but it's worth giving a go at some point. A thin sheet of polycarbonate glued over top of my 3D printed support would help ensure heavily worn hammers can't slip into the sensor holes. And I'd expect polycarbonate to last forever under these forces.

I'll root around and see what I've got in my piles of materials, and maybe take a quick trip to Home Depot before we're all snowed in. :smile:

davidedelvento commented 3 years ago

While playing with my hammers alignment, I've got more solid details on the ideas we floated on how to "screen" the sensors from hammer impact.

The first is doable if you can make the 2040-centered-4x for a 30x60 extrusion (which should be pretty easy, since the latter is bigger). This option uses two https://us.misumi-ec.com/vona2/detail/110300466750/?ProductCode=HFSFIL5-3020-500 placed in front of the sensors leaving a slit for the sensor/LED to "see" the hammer. In this design the slit width is adjustable, and hopefully it's possible to make it thin enough to not let the hammers too much in, while at the same time large enough for the sensors/LED to see through.

The other option, would use a 2080 with the sensor board mounted in the two innermost slots of the 80mm side and a number of polycarbonate sheets like https://us.misumi-ec.com/vona2/detail/110302696070/?ProductCode=PCTTA6H-70-70-5-F30-G60-N4 would be mounted on the two outermost slots. Kind of expensive though, so it gotta work well to be worth it.

I can make some sketches if you'd like.

EDIT: for the first option, the sensors should be rotated 90 degrees (and corresponding tracks on the board changed accordingly) because the slit will need to be oriented that way. Also, 1.5mm-2mm should suffice (both of these, if the 3D view of Kicad is accurate enough)

davidedelvento commented 2 years ago

Hi @jkominek -- have you looked into the EAITRCA6 option more? I can't find it in neither LCSC nor EasyEDA which JLCPCB uses. I can look around to see if there is anyone else who'd do a SMT assembly of those, but perhaps you already have?

On the other hand both providers have the CNY70.

I'll be happy to buy a bunch of sensorboards with either sensor, or some boards of each, and do some tests regarding flex, but again, perhaps you already have?

jkominek commented 2 years ago

It looks like you've already investigated this, but for completeness' sake I'll note that I haven't done anything with other sensors, but I think I do have a few EAITRCA6 laying around. Considering the shape of the leads, I'm not surprised that EasyEDA wouldn't have it, I don't think it could be used in automated assembly.

davidedelvento commented 2 years ago

I have 10 'CA6 and I doing some tests with it. Already investigated is an overstatement, but I have done something, which I reported https://pianoclack.com/forum/d/243-diy-piano-sensors and in the PR #45

I thought the 'CA6 had another option with regular surface mount seagull leads, but I can't find it at the moment. Alternatively, the QRE1113 could be an option: that comes in two slightly different forms, with either through hole or seagull leads. My results with it haven't been very good, but that was only one sensor and I might have mishandled or broken it, so it's worth investigating for the automated assembly.

jkominek commented 2 years ago

3d1d8aee updates the 4x versions of the board for the parts of this that I still wanted to do, and introduces a version of the hammer sensor board with the sensors rotated 12 degrees, to make life easier with bass hammers.

And here's a PDF of the footprint for the QRE1113GR. I'm unclear if you had purchased any of them, but if you have, printing this at 100% and checking the correctness would be helpful. It's a non-standard footprint, so I had to make it from scratch, and I like to check parts against a printout before ordering PCBs. (The PCBs are cheap, I just hate wasting the turnaround time.)

QRE1113GR.pdf

davidedelvento commented 2 years ago

I don't have any loose QRE1113GR at the moment, but I do have a couple of them soldered to the SparkFun board (see below). I could print the PDF on transparent paper (I should I have printable transparent plastic slides form the "good ole times", if not I can scavenge for the thinnest, semi-transparent paper I have in home, and hope the printer does not jam). With that, I should be able to check the match even if it's soldered to the board -- if you think it's useful -- since the sensor is thin, it may be better-than-nothing and good-enough.

Otherwise, I am making an order to DigiKey in the next couple of days and I can add one QRE1113GR.

Alternatively, we can do an all-software check with the data at https://github.com/sparkfun/QRE1113_Line_Sensor-Analog which is the board I have.

Yet another option: I have low-quality-but-usable setup to take super-close-up pictures, and I can take several of the QRE1113GR attached to the board, and placing close to it my "piano-caliper" (effectively a thinly marked ruler)

Let me know if any of these would be of any use (feel free to switch to email, if you think it's more efficient for this purpose)

jkominek commented 2 years ago

I picked up some more QRE1113GR. The footprint matches just fine.

I don't have the energy to keep track of what you're doing mechanically; is it sufficient for the new layouts to match the existing ones, just with this sensor replacing the CNY70?

davidedelvento commented 2 years ago

I picked up some more QRE1113GR. The footprint matches just fine.

Awesome, thanks!

I don't have the energy to keep track of what you're doing mechanically; is it sufficient for the new layouts to match the existing ones, just with this sensor replacing the CNY70?

I think mechanically I am doing exactly what you are doing:

I was not planning to use the 12 degrees boards, because I see my hammers do not all have the same orientation (which I have not measured). Heck some are even oriented in the opposite direction! If it cost you zero effort, make those too which might turn useful anyway to me or to someone else, but otherwise only the "straight" boards will suffice.

Thanks a lot!

davidedelvento commented 2 years ago

Have you placed the QRE1113GR (or EAITRCA6) footprints in kicad_mod format anywhere in the repo? I'm trying to make PCB of the sensorboards with either of them and I can't find the appropriate footprint, but you must have made it already, since you posted the PDF in this thread. Thanks!

jkominek commented 2 years ago

Here's the one I made:

QRE1113GR.zip

But I believe it is identical to the builtin footprint for the "OnSemi_CASE100CY", in the OptoDevice library. (Thought I mentioned that somewhere, but I can't find a record of it.)

davidedelvento commented 2 years ago

Great thanks! Now I need to figure out the headers and mounting holes, which KiCad apparently cannot find (sigh)

Error: Cannot add J1 (footprint 'Pin_Headers:Pin_Header_Angled_1x10_Pitch2.54mm' not found).
Error: Cannot add H6 (footprint 'Mounting_Holes:MountingHole_3.2mm_M3' not found).
Error: Cannot add H5 (footprint 'Mounting_Holes:MountingHole_3.2mm_M3' not found).
Error: Cannot add H4 (footprint 'Mounting_Holes:MountingHole_3.2mm_M3' not found).
Error: Cannot add H3 (footprint 'Mounting_Holes:MountingHole_3.2mm_M3' not found).
Error: Cannot add H2 (footprint 'Mounting_Holes:MountingHole_3.2mm_M3' not found).
Error: Cannot add H1 (footprint 'Mounting_Holes:MountingHole_3.2mm_M3' not found).
davidedelvento commented 2 years ago

If others have the same problems, I found the holes at https://gitlab.com/kicad/libraries/kicad-footprints/-/tree/master/MountingHole.pretty and the headers at https://raw.githubusercontent.com/KiCad/Pin_Headers.pretty/master/Pin_Header_Angled_1x10_Pitch2.54mm.kicad_mod -- note that the latter are from an older version of KiCad, because newer versions don't have that. Current v6 loads it ok, See https://raw.githubusercontent.com/KiCad/Pin_Headers.pretty/master/README.md for details. It seems to work, but I am not sure if there are some unintended consequences.