Hacking Digital Calipers
notion.so
notion.so
1. If user's computer has a different keyboard layout that will enter garbage instead of numbers. For example, in Russian keyboard layouts there is usually a letter "ю" on the key which is used for dot on US keyboards, so instead of 7.31 you will get 7ю31.
2. Excel accepts numbers only if they are entered with a proper decimal separator which depends on Windows number format settings which are part of regional settings. So for example in Russia (and apparently most of the world: https://en.wikipedia.org/wiki/File:DecimalSeparator.svg) decimal separator is comma instead of dot, so even if user would switch to US keyboard layout Excel will not accept the numbers with decimal dots, it will think that they are just strings.
Both problems can be solved by using numpad keys instead: they are the same in all keyboard layouts and KEYPAD_PERIOD key will enter a proper decimal separator for Excel to accept.
What I couldn't figure out was how precisely the sensing worked, because it looked like it would have to measure capacitance at the femtofarad levels, and nothing I had access to could measure a capacitance that small - or monitor the sensing process without adding enough capacitance to mess it all up. It also looked like it'd be really sensitive to the distance between the plates, but it didn't seem to control that particularly precisely.
If anyone here knows how they measure such small capacitances and how control for the distance between the plates, I'd be fascinated to hear more about it!
Distance control is sort of weak which is why these are no good against vibration.
Another way is to use contact resistance with very accurate bridge temperature corrected voltmeter. More expensive. Essentially a potentiometer. Dimensionality is less important, but contact still is. To do that you need a high-ish impedance wiper you can slide over.
As for the distance between plates, a caliper ought to be made to a high degree of repeatability. PCB thickness not so much though, probably 10%? To first order capacitance goes as ~1/d. But again, the measurement is relative, not absolute. As long as all the capacitances are affected by the same distance factor, the scheme still works.
Anyway, that's an informed guess based upon those scope shots.
[1] https://www.yuriystoys.com/p/arduino-basic-dro-controller.ht...
From the diagram in the post, the clock signal seems to just be identical blocks of 4 bits.
Edit: Found the answer in one of the linked articles:
> Between each series of 24 bits there is a longer period during which CLK remains HIGH
void loop () {
// if clock is LOW wait until it turns to HIGH
//
while (digitalRead(clockpin)==HIGH) {}
tempmicros=micros();
// wait for the end of the HIGH pulse
//
while (digitalRead(clockpin)==LOW) {}
// if the HIGH pulse was longer than 500 micros
// we are at the start of a new bit sequence
//
if ((micros()-tempmicros)>500) {
decode(); //decode the bit sequence
}
}
so it looks like the 24 bit sequence is indicated by a 500 us pause between a falling edge and a rising edge of the data stream.[1] https://sites.google.com/site/marthalprojects/home/arduino/a...
To me it looks like an obvious bug and first glance, since the CAPITALIZED sigal states don't match between code and comments.
Glad I read the article first. :)
But yes, I suspect USB like you suggest.
No need to second-guess anything.
I use the keyboard to navigate articles frequently. This site intercepts keyboard commands - page up/down does nothing, arrow keys select specific elements rather than letting me scroll down. Worse, the article does not load at all if you turn javascript off. I spent a few minutes trying to figure out where the actual content loads from (since the page itself doesn't contain it and just references JS) - but gave up.
I can't see why they've made these choices, it doesn't seem to give any better UX than just having HTML and some CSS would.
Though it's possible to "publish" or share your notes it doesn't look like a well designed use of the platform.
Though it's possible to "publish" or share your notes it doesn't look like a well designed use of the platform.
If you are actually editing the content then I agree that using JS makes sense and could be obligatory; but then, sharing/publishing content in what should obviously be a read-only form should really turn it into a static page. It'd save them some bandwidth too, given that readers really do not need all the functionality the JS has. (The app-*.js on that page is over 4MB!) Unfortunately common sense is not so common.
Literally the worst web application I've ever used, and that's saying something. Even the most basic Markdown supporting wiki outclasses it by far.
Using Firefox, the simplest things are completely broken (eg middle mouse click to open a new tab doesn't work).
Page up/down (as you mention), let alone home and end keys. All broken.
Apparently they weren't aware of the problem, and test on Chrome, Firefox, and Safari.
Yet this is basic 101 functionality. So pretty solidly doubt they have any kind of release testing at all.
If anyone out there is considering Notion, for a not-100% Chrome using audience, look elsewhere. It's crap and will actively annoy your audience.