• Production files

    Dimitar09/15/2024 at 12:23 0 comments

    Hello together,

    Here you can find the necessary files to create your own boards. Since the design is two layer only it is possible to CNC the boards. You should only take care to isolate the back of the board where the scale is sliding with some tape:

    Here is the link: https://github.com/MitkoDyakov/Calipatron/tree/main/Hardware/V1.2

    You will find:

    • gerber files 
    • POS files
    • Schematics
    • mounting diagram
    • BOM
    • KiCAD footprints
    • step models 
    • 3D renders

    If you like the project and you want to join now is a good point. Still the project has a long way to go and it could be improved, but I feel the HW is in a working state and could be used in POC for your intended use. 

    Cheers,

    M

  • We are still kicking!

    Dimitar09/11/2024 at 11:28 0 comments

    Hey everyone,

    I know it is been a while. The project is still alive. I just had a rough patch designing PCBs for the project. For some time I did not had s solution for the noise problem, but now I do and here is the update. I tried addressing it with a the twin t-notch filter. That was not eliminating the problem, but rather putting a band-aid on it. Also fixed a few other minor things.

    • T-scale bar was wrong. The board was kind of working with the old one (on top) so it did not made an impression on me at first. But digging into the project it was getting clear that there was something off with the signal we puck up. Also for bonus points I added millimeter scale silkscreen.
    • On the front of the board. I finally fixed the display pinout. It took me a few tries. I added the twin T-notch filter and ran the ground closer to the excitations signals. We have a name "CALIPATORN" - I did not come up with the name :|
    • The big big change is on the back of the board and the one that brings the major improvement. What should strike you is the keep out area around the excitation/pickup pads. The ground plane was the source of the 50/60hz noise.  When the T-scale was out of alignment it coupled with the ground and introduced the AC signal through the op-amp which amplified it and we could clearly see it on the measurement

    The board above is our technology demonstrator. There are many other MCU on the market that are both cheaper, faster and with more feathers than the STM32F103. There are also people that don't like ST MCU in general. To address this I am working on this board. This contains the power supply and the op-amp part of the tech demo, but has a socket that holds XIAO style board. The good part is that you can have Arduino, Raspberry Pi or ESP-32 powered Calipatron. This board has a few glitches to iron out, but I will get there soon. 

    I now feel good about the CALIPATRON V1 that I recommend interested people to get some boards to experiment with. To do this in the near future I will upload schematics, gerbers, component position files, BOM and assembly schema. If on other hand you want a complete board you will be able to find some on the tindie shop. 

    Cheers,
    M

  • Adding Twin-T notch filter

    Dimitar07/27/2024 at 16:51 0 comments

    Hello all,

    I decided to add a twin-t notch filter between the op-amp and ADC input of the MCU. This is the schematics of the filer and values used:

    I build the on a proto board, cut the trace between the op-amp and MCU and connected everything together, with thin wires. 

    And running the software from the repo, we get the following results on the Serial Oscilloscope:
     

    I think this is quite workable. From now on I think it is battle with the software :)

    **But thinking more and more we need to count pulses anyway. If we write the software cleverly enough we might get away even without the filter.**

    Cheers,
    M

  • Project udpate

    Dimitar07/23/2024 at 19:51 0 comments

    Hello all,

    First lets do a resume of what I have done so far. 

    • All 8 pins of GPIO Port A (10-17) are connected to the excitation plates of the sensor. We are implementing bit banging to run excitation pins. TIM2 is set to interrupt every 15us. In the timer ISR the pins are changed according to the array with predefined values. The pattern repeats indefinitely. The pin state array is populated according to what we see from the caliper disassembled before.
    • ADC1 channel 9 on pin 27 is used to measure the voltage of the pick up plate
    • I2C1 is supposed to be used for the display, but I still managed to wire it the wrong way. See earlier log for more info.
    • USB is working and we use as CDC. We can use it in collaboration with Serial Oscilloscope to see the output of the pick up plate.
    • UART1 is wired to a header, but not used at the moment.
    • SPI2 is connected to the Op Amp, gain can be adjusted.
    • SWD for programming and debugging both with CubeMX and Arduino.  

    The challenges that stand before us 

    • I went through a bunch of patents. In all of them they say that this frequency of 15us is determined on the physicals size of the sensor. Unfortunately it does not gives a formula to determine the frequency. In my ignorance I made the sensor a bit larger thinking it might be easier to manufacture. If we compare the signal from the original caliper and our they are similar but not the same. Some experimentation might be need so that the output match.
    • Since we added the op amp we have 50Hz noise on the analog input of the MCU. I would assume this is due to the noise of the AC power all around us. In the States people might pick up 60Hz. This could be fixed in two ways. One is to implement a Notch Filter in software and the other would be to do it in hardware. This means a new version of the PCB which I cant justify right now. We have not gotten all out of this one. 
    • We are changing pin state every 15us. ADC conversion takes 2-3us and transmitting 5 chars total of 40bits over 115200 baud rate UART takes 347us without accounting for function calls and such. This means that we could not use Serial Oscilloscope to "see" in real time. Rather we could take a snapshot using DMA and then transmit the values over UART. This is picture of the 50Hz noise using the Serial Oscilloscope. You can clearly see when I am touching the board.

    Since a few people have asked me I have uploaded the working version of the software both CubeMX and Arduino. Note that we do not have a algorithm for working out the distances yet as I was working out the signal conditioning schema.  


    Cheers,
    M

  • Hardware V1.1

    Dimitar06/29/2024 at 18:11 0 comments

    Hey!

    We have new hardware version for the main board of our caliper. There are two major update.

    1. There is an op amp on the board for signal conditioning. You can take a look at the schematics

    2. Update regarding mounting the board. You can find more from Ryan's post

    Other smaller changes include:

    • Fix for the display
    • Power is only supplied from the USB and go through low noise LDO
    • Boot selector pins are removed and solder jumpers are put instead on the back
    • Removed the SN65LVDS1DBV
    • Rearrange the debug header, so that a ribbon cable assembly can be used instead of jumper cable (for stlink v2 only)
    • Added vias on the peripheral of the board to help with noise. 

    If you want to join the project you can get hardware from PCBWay. Gerbers are available on GitHub if you want to use fab house of your choice. 

    Next major steps would be to actually get a measurements from the thing :) 

    Cheers,

    M

  • Mechanical Assembly Update

    ryry9807705/04/2024 at 21:33 0 comments

    Working on the back of Mechanical Stuff project log; we worked on giving the caliper's T-scale a solid backing to create a stiff backing. 

    We started with the idea shown below but it was going to be a expensive part to machine given the 3 faces that would be machined. 

                                                        Overly Complex Rail/T-scale backing

    Given that we wanted a slider and rail set up, we didn't re-invent the wheel and I did a mock up for an assembly using a linear rail. This would provide a cheaper and higher tolerance slider and rail then anything I could custom design. The assembly consists of 6 main parts; rail, slider, base plate, 4x posts, T-scale PCB (Green), and the caliper PCB (Blue).  

    The rail critical dimensions are wider then 18mm and thinner the better. Looking at Hiwin, THK, or Misumi to find a high quality linear rail. 

    We also need to figure a good way to adhere the T-scale PCB to the rail. It is possible that PCBway or JLCpcb has adhesive coated PCBs off the shelf, double sided tape, or super glue.

    The posts shown below are from McMaster, part  no: 93655A718 or 98952A065. These are the 22mm tall but might change to 21mm depending on what will work best. 

    The base plate is a planar part so it can be laser or water cut to make it cheaper part to machine. I want to see if we can get it made from Aluminum MIC6 given the greater flatness then most stock materials, although probably going to make it either from plastic or Aluminum 6061 T6.  The position of posts on the lower half are closer to the linear rail's block to prevent any droop of the caliper PCB. 

  • Notes for the next version.

    Dimitar04/21/2024 at 16:45 0 comments

    Hey!

    I am waiting for some parts to arrive and in the meantime I decided to get the display running. Unfortunately I messed up the footprint and wiring was backwards. A quick work with the cutters and the soldering iron I turned the display 180° and it worked just fine! Now you can't push the buttons - but this I can fix on the v1.1 of the board.

    Shout out to afiskon for creating a lib that runs on STM32 for the SSD1306 controller. You can find the code at his git hub repo. It was a breeze integrating it!

    Cheers!
    M

  • Signal conditioning - part 1.

    Dimitar04/16/2024 at 11:13 0 comments

    Hello all,

    I have asked for help on the electronics stack exchange on what would be the best approach for the measurement of the resulting signal would be and also to solve the mystery of the negative voltage. I was given a task to make buffer so that a proper snapshot of the signal could be taken. This is the schema:

    And this is how it looked on the board, some "mad" soldering skills there :D

    And the resulting signals is as follows:

    Offset of nearly 2V

    We still have a little bit of 60Hz oscillation in there, but nothing too bad I guess.

    And now we wait,
    Cheers

  • Mechanical stuff

    Dimitar04/12/2024 at 19:41 2 comments

    At first I was very pleased with concept I came up with

    Since I was about to hookup a scope and a debugger, I made a plan to move the scale instead of the sensor board.

    In the CAD world it worked amazing, but in real world we have an issue. The long boards are not flat at all.

    This had two side effects, it made sliding of the scale hard and "sticky". And the second and more problematic: we can't keep even gap between the plates. Since the capacitance is directedly effected by space between two electrodes the signal strength varies a lot.

    In the caliper I dissected, the T-scale PCB was very thin. At first I thought it would be because it is less material - easy to install and cheaper. Now I find that it has another reason: when it gets glued to the metal chassis it will conform to it and the gap will be maintain. 

    With mass produced digital calipers they want to bring the price down as much as possible. They would not do anything unless absolutely needed.  The fact they decided to put his two extra parts (some sort of guards), speaks a lot about the necessity to keep this gap clean and even. 

    For the prototype I still find it useful to move the t-scale, but I have to come up with an idea to maintain this gap small and constant. 

    Cheer,
    M

  • Read out of HW v0.1

    Dimitar04/11/2024 at 13:53 0 comments

    Hello all,

    I have cut the trace going from the sense pad to the ADC pin of the STM32F103 to be able to get a good reading with a scope. 

    When I aligned the T scale with the "positive" pads I get the following signal on the scope.  

    If I move to one side I get this

    and when I move it to the other I get this

    So the sine wave is being shifted from one side to the other, signals are being generated the way they are supposed to.

    This is great news! This means that we have successfully validated the footprints for our caliper. 

    Next step that (I have overlooked on HW v0.1) is signal conditioning. We will need to shift this signal up since is going to -300mV and also would be nice to add a splash of amplification. 

    On that note if someone has any suggestion how to do that, please write me a comment or drop me a message!

    Cheers!

    M