Close
0%
0%

EOS RP repair

Lion vs the mighty ERR 01

Similar projects worth following

The lion kingdom suspects most of the EOS RP's in the world are dead or going to die after short lifespans.  The environmental shielding isn't there.  The lion kingdom's EOS RP died after being splashed with a small amount of water.  It would be useful to document the repair as no-one does teardowns & repairs anymore.  They just take out home equity & buy a new camera.

  • EOS RP rides again

    lion mclionhead07/12/2022 at 18:03 0 comments

    There was some confusion in the chinese to english translation.  


    Because for normal, the colored area will be opened and not covered the coverlay. So if your design is opposite, please kindly note it as " Colored area on solder mask layer is covered with coverlay"

    Not easy to decipher, but it seems the stl to kicad converter needs to generate polygons for the holes in the solder mask.  The last board from Eagle did indeed have polygons over the uncovered areas.  That entailed another week of back & forth as the lion tried to figure out what they were talking about, but at least an animal caught the mistake.

    1 thing that would help is if they photographed the board before shipping it.  Then the lion could decide to pay the $30 for shipping or scrap it.  Of course, it would entail an extra delay while waiting for the animal to view the photo.

    After 17 days, the new flex cable arrived.

    The edge connector ended up .33mm thick while the stock edge connector was .35mm.  They said .35 was very thick for an edge connector so the lion kingdom requested a 0.15mm BOT PI stiffener + a 0.15mm FPC thickness to get .30mm.

    Surprisingly, some of the copper curves ended up very jagged while others ended up smooth.

    1st test passed as it fit in the lens assembly.

    This revealed a crack in a cheap ABS part.  The EOS RP is built to a price.

    It was a tighter fit than the original part, but it fit.  The edges might have been measured a hair fatter, but it was still very accurately manufactured.  The extra 1.5mm of length might have been just right to make it easier to install.  The extra stiffener length was definitely needed.  The stock stiffener was built to a price.

    A bit of scotch was added for insurance against corrosion.

    Then after some claw biting & 2 stripped screws, the camera came back to life.  ERR 01 was gone & the lens worked again.  It worked on the 1st design.  The eyepiece was left out to make it lighter.  It might need a 3D printed part to keep dust out.  The lion kingdom got 9 spare cables just so other animals wouldn't need to go through manufacturing a cable.

  • STL to kicad to gerber

    lion mclionhead07/05/2022 at 08:16 0 comments

    There was a guy who transferred a DXF file from fusion 360 to kicad, 4 years ago.  

    It's now the File->import->Graphics dialog.  Helas, these vector graphics formats are limited to sketches while the traces in the camera board are fusions of sweeps & extrusions.

    So a C program evolved over several days to convert STLs to kicad polygons.  

    https://github.com/heroineworshiper/utils/blob/master/stl_to_pcb.c

    https://github.com/heroineworshiper/utils/blob/master/3dstuff.h

    Brute force mangling of polygons is brutally slow in python.  The theory was the vertical triangles define the outlines so just sorting the vertical triangles would give the outline of the polygon.  The reality is the freecad sweep tool doesn't generate contiguous outlines of vertical triangles.

    It generates many segments of walls with gaps where the segments overlap.  It needs an extra step, searching for horizontal triangles joining the ends of 2 outlines.  There are 4 possible ways 2 outlines can be joined at the ends.  Then it needs to pick the way with the shortest path.

    Then there was the problem of defining holes inside polygons.  Kicad doesn't have pen up/pen down, boolean modes.  The only way of doing it is drawing a line from the outer wall to the inner hole, around the inner hole, & back to the outer wall.  Kicad treats the inner contour as an extension of the outer wall with the joining line invisible.

    Changing "fill solid" to "fill none" allows the joining lines to be viewed.  There's still the problem of separating polygons which need subtraction from overlapping polygons which don't need subtraction.  For the ribbon cable, these cases can be hard coded.  There were some cases where overlapping polygons ended up subtracting unintentionally.  Those involved fudging the model.

    Then there's another step which converts an STL file into vias.  The lion just guessed the via dimensions with calipers.

    So the program ended up taking a command file with input STL files, destination layers, subtraction modes, fill modes, via modes.  Then, it outputs a complete kicad_pcb file.  The workflow is to create a kicad project with an empty schematic.  Then create the entire board in freecad & convert it from STL files to a kicad_pcb file.

    The result was a complete ribbon cable with more accuracy than what could be done in the kicad bitmap converter, though it still appears to do some quantization.  The mane problem would have been lining up all those bitmaps with different resolutions & offsets.

    All kicad does is convert that to gerber files.  There was a shareware program for going directly  from stl to gerber  https://www.artwork.com/gerber/stl2gbr/index.htm but it's a rarely needed, hard enough problem that no-one ever bothered.

    Sadly, there's no practical use for this STL to kicad converter besides ribbon cables.  That's the only case which requires large numbers of parameterized curves & doesn't use standard footprints.

    The next step was printing a size test on paper.

    The model was 1.4mm longer than the original.  The lion kingdom originally wanted it 1mm longer. A bitmap editor would be easier to change length in.  Kicad would have been much harder.  Kicad requires an option to print 1 layer per page & doesn't have persistent settings for gerbers, which makes exporting gerbers hard.  

    The last PCB lions ordered was $50 for a 4 layer FR4 from seeeeeeed.  It took 2 weeks to get it.  Only pcbway does flat flex cables.  It's expected to take over 1/2 the price of a new camera to get it right.  

    The mane shocker was how they jacked up the quoted price.  The $76.27 had a .06mm track spacing & the .1mm track spacing wasn't an option, so it was probably a catch all for jacking up the price.

    Their most expensive option is...

    Read more »

  • Flex cable design in kicad

    lion mclionhead07/02/2022 at 03:43 0 comments

    It might have been Dave Jones or Louis Rossmann, but there was a rumor about a guy who photographed a cable & instantly got a gerber file out of it for a new cable.  It's not that easy.  There's parallax distortion in a photo.  The edges aren't exact.  There might be a way with a flatbed scanner & manually tracing outlines.

    The lion kingdom wanted to migrate to kicad, which further complicated matters.  The journey begins by creating lens & connector symbols.

    Then creating a schematic connecting the symbols.

    The trick is creating the footprints.  The Kicad footprint editor has simple freepaw polygons, an ortho array tool, but no history.  Supposedly, animals manually draw every pad, using the grid & ruler tools.   Lions made all their footprints for geda-pcb in a text editor just to get reproducible dimensions.  Freecad has constraints,  polar arrays, mirrors & history.  There's a tool in the Image toolbox to scale the image to mm.

    There is a way to draft the pads in freecad, save it as a PNG file, & import the bitmap into kicad as a silk screen.  It requires having the footprint editor & image converter side by side.  Create a new library & footprint in the footprint editor.  Load the image in the image converter.  Export the image to the clipboard.  Paste the clipboard in the footprint editor.

    The only way to scale the image in kicad is calculating pixels/mm in a spreadsheet.  To transfer it to a copper layer, you have to edit the footprint in a text editor.  Then add pads on top of the drafted pads to assign them to pin numbers.  The lion kingdom ended up using a text editor to change the pad sizes.

    That might have been easier by manually tracing the footprints instead of using the array tool.

    This was made of an array of dummy pads of sensible dimensions.  The photo was rotated & scaled until the dimensions agreed with what the calipers saw & reasonable pad dimensions.  Then polygons were added to join the pads.  The pads ended up being .5mm spacing with .07mm gaps.  

    We have the footprint spreadsheet, bitmap converter, & footprint editor on 1 of many iterations of the footprint.

    With the board layout, we have the problem of polygons made of parametric curves.  Kicad can only make simple freepaw polygons out of straight lines so attention turned to freecad.  

    The fact that the lock tool puts the numbers 10mm away from the polygon while the horizontal & vertical contraint tools put the numbers in a sensible place is a serious bug.  

    Once again, the photo dimensions were slightly off of the caliper dimensions, so merely tracing the photo wouldn't work.  The same routine of capturing PNG screenshots, loading into kicad's bitmap converter, computing sizes in mm, copying to the clipboard, pasting into the PCB editor, changing the layer in a text editor, yielded the board outline.  

    Eventually kicad fell over after importing a trace layer.  The navigation just isn't up to editing such a complicated nest of fine pitched, curved traces.  The text boxes in the image converter just aren't accurate enough.  There's no way to directly enter the DPI.  It tries to vectorize the bitmaps, which adds more error.  It has the usual newby mistakes when programming an object oriented drawing program, differentiating between zoom & translation, differentiating between grab & move, unreliable selections, text boxes which don't immediately update the layout.  It can't flip the board over & view from the back.  It only brings the active layer to the front.

    The board except for the drill holes was easier to fully model in Freecad.  What's needed is a way to directly export gerber files & drill files from Freecad.  The leading idea is exporting every layer as an image of equal...

    Read more »

  • EOS RP Teardown

    lion mclionhead07/01/2022 at 07:55 0 comments

    The lion kingdom made a sensor protector.  It's not necessary for the teardown since all the screws come from behind.  It was necessary for probing the lens signals.

    The journey begins with the eyepiece rubber

    Then the viewfinder screws.  The viewfinder was never used & won't be reinstalled.

    4 around the I/O ports.

    1 screw is under the left rubber.  Only the corner has to be removed.

    3 on the right.  The right rubber doesn't have to be removed.


    The rear rubber is the only one which has to be removed to get 1 screw.  The lion kingdom will be leaving that screw out so the rubber doesn't have to be removed again.


    5 on the bottom.

    1 ribbon cable connects the back to the front.  

    Water entered the tripod hole & got on the lens connector, just mm away from the sensor connector.

    The connector seems to have survived but

    the ribbon cable from the lens to the mane board got corroded & 4 traces were gone.  

    The good news is custom flat flex PCB's can be made for a reasonable cost, but replicating the dimensions will be hard.  Maybe the camera could have been opened & dried out before it corroded, but it was a lot of work.  Lions can't do that every time it gets wet.  The sensor cable would have been hard to replace.  

    There's no weather sealing of any kind.  Even the $400 T4I had better weather resistance.

    The mane board after cleaning.

    Extracting the lens cable begins by popping all the connectors & 2 screws holding the board in.

    Battery shield comes off.

    Viewfinder is permanently retired.  Of course, this means setting the menus to never use the viewfinder.  Accidentally reset the menus to viewfinder mode & you'll need the viewfinder again.

    Sensor comes off.  That's $998.  The rest of the camera is $1.99.

    Shutter comes off.


    Lens cable comes off.  In a very optimistic scenario, you could solder wrapping wire from the 4 floating pogo pads directly to the solder joints of the ZIF connector.  The mane board would no longer be easily removable but it would probably work for the rest of the camera's lifetime or until someone else started making ribbon cable replacements.

    It's screwed into the back.  It has 12 pogo pins.  Weather sealing on top isn't very optimistic.  The next task is replicating the ribbon cable in a CAD file.

  • Voltage tests

    lion mclionhead06/30/2022 at 18:01 0 comments

    The lion kingdom uses the cheaper commlite adapter.

    It has some passive components.  There's a tank circuit & shottky diode connecting the logic ground to the battery ground.  There's a 1k pullup resistor R3 generating the lens detect signal. R4 is 22k.  R2 is 500R.  Everything was intact.  There was hard water staining around the pins facing the camera but nowhere else.  The camera was untouched.

    There is a low effort, incomplete teardown on 

    https://kolarivision.com/the-canon-eos-rp-disassembly-and-teardown/

    The mane idea is it's not designed to be serviceable as all the adhesive rubber sections have to be removed, but he didn't document all the screw locations.  Once inside, there are no panels which have to be desoldered or hidden ribbon cables.  He didn't document any of the lens mount or anything in high enough resolution to figure out pinouts.  

    The EF protocol was reverse engineered here:

    https://gist.github.com/marcan/858c242db2fc595da1e0bb70a05192fc

    There is a clearer description of the signals here:

    https://web.media.mit.edu/~bandy/invariant/move_lens.pdf

    The lion kingdom once dreamed of manually controlling an EF lens & making a video camera.  It took 20 years for someone to finally reverse engineer the EF protocol & 3D printing finally makes it possible to mount an EF lens on a custom sensor.  Unfortunately, all modern cameras already have video.


    The RF lens protocol has never been reverse engineered but is believed to use DRM.  The lion kingdom determined the 5 SPI signals of the EF to be passed through the RF pinout, along with a strange pulse waveform.  The DET pin comes from some combination of SPI pins.  

    Having 2 working EF cameras allowed good signals to be compared to the dead EOS RP signals.

    A series of voltage tests convinced the lion kingdom that the RP body was damaged & not the lens adapter.  With no lens attached, DET & MOSI had a strange pulse waveform, MISO had 3V, CLK had 0.  With the lens attached, MOSI had 0, MISO had 5V & CLK stayed 0.  Water was on the lens adapter but not the body, so it was probably damaged by a short circuit.

    There's no pulse waveform on the good cameras.  With no lens attached, MISO has 5V, MOSI has 0V, DET has 5V.  When a lens is attached, CLK sends a bunch of 8 bit bursts & gives up.

    It was surprising that the RP has no protection for the lens pins.

View all 5 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates