Proffieboard V 2.9 "monitor touch" does nothing?

I’ve used the default configuration from: Proffieboard V2
I specify a 3-star blue blue white, with a crystal chamber, and the only button I defined is the touchbutton.
Turning it on and off is finicky, does not seem to work.
If I short the BUTTON1 pin to ground (battery neg), it registers beign held to ground/latched.
However, if I touch, it is mostly unresponsive.
So 1700 may be too high???
So I followed ProffieOS Documentation: Single-page documentation which mentions monitoring the touch with “monitor touch” but I do not see anything reported for touch activity.
The wiki, git, and the page I just linked all have numerous things different (such as “#define ORIENTATION ORIENTATION_USB_CCW_FROM_BLADE” vs “#define ORIENTATION ORIENTATION_SDA_TOWARDS_BLADE”… Im confused where to go to get correct documentation, and for the immediate interest, how do I “monitor touch” so I can set a value?

Not sure what’s confusing.
The page shows the current use, which is USB_
CCW, but the image also says “Previously known as” for SDA version.
Either will work for that orientation.

DISABLE_DIAGNOSTIC_COMMANDS can not be active in your config for moitor to work.
You should see “whut?” if the command is not accepted.

On the former, the confusion was the official git page (dated in 2022) called it SDA but the pod.hubble.net referred to that as “previous”. So which page is more accurate information? I just want to use one reference if possible. There is quite a few pages referencing each other and its a bit confusing.

On the former, when I typo, I do get a “Whut?”" prompt, but when I enter “monitor touch” without quotes, I do not get a “Whut?” prompt, and yet, nothing ever is displayed for some touch value? Even when I turn it on while monitoring.
Other things are reported, such as “unit” “channel” “humstart” etc… but nothing obviously related to touch triggering (yet it turned on!).

The GitHub wiki is deprecated, use https://pod.hubbe.net/

Did you remove/comment out define# DISABLE_DIAGNOSTIC_COMMANDS from your config then upload for it to take effect?
Once that’s not there, you can monitor any of these things:

Thanks for replying quickly, thats really awesome.

In my config, there isn’t a “DISABLE”
So " define# DISABLE_DIAGNOSTIC_COMMANDS" isnt there.

The current only slightly mofidied version from the generator link is this:

#ifdef CONFIG_TOP
#include "proffieboard_v2_config.h"
#define NUM_BLADES 2
#define NUM_BUTTONS 1
#define VOLUME 2500
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 1.2
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define ORIENTATION ORIENTATION_USB_CCW_FROM_BLADE

#endif

#ifdef CONFIG_PRESETS
Preset presets[] = {
   { "TeensySF", "tracks/venus.wav",
    StyleNormalPtr<CYAN, WHITE, 300, 800>(),
    StyleNormalPtr<WHITE, WHITE, 300, 800>(), "cyan"},
   { "SmthJedi", "tracks/mars.wav",
    StylePtr<InOutSparkTip<EASYBLADE(BLUE, WHITE), 300, 800> >(),
    StyleNormalPtr<WHITE, WHITE, 300, 800>(), "blue"},
   { "SmthGrey", "tracks/mercury.wav",
    StyleNormalPtr<RED, WHITE, 300, 800>(),
    StyleNormalPtr<WHITE, WHITE, 300, 800>(), "red"},
   { "SmthFuzz", "tracks/uranus.wav",
    StylePtr<InOutHelper<EASYBLADE(OnSpark<GREEN>, WHITE), 300, 800> >(),
    StyleNormalPtr<WHITE, WHITE, 300, 800>(), "green"},
   { "RgueCmdr", "tracks/venus.wav",
    StyleNormalPtr<WHITE, RED, 300, 800, RED>(),
    StyleNormalPtr<WHITE, WHITE, 300, 800>(), "white"},
   { "TthCrstl", "tracks/mars.wav",
    StyleNormalPtr<AudioFlicker<YELLOW, WHITE>, BLUE, 300, 800>(),
    StyleNormalPtr<WHITE, WHITE, 300, 800>(), "yellow"},
   { "TeensySF", "tracks/mercury.wav",
    StylePtr<InOutSparkTip<EASYBLADE(MAGENTA, WHITE), 300, 800> >(),
    StyleNormalPtr<WHITE, WHITE, 300, 800>(), "magenta"},
   { "SmthJedi", "tracks/uranus.wav",
    StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>(),
    StyleNormalPtr<WHITE, WHITE, 300, 800>(), "strobe"}
};
BladeConfig blades[] = {
 { 0, SimpleBladePtr<CreeXPE2BlueTemplate<240>, CreeXPE2BlueTemplate<240>, CreeXPE2WhiteTemplate<550>, NoLED, bladePowerPin1, bladePowerPin2, bladePowerPin3, -1>(),
    SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, bladePowerPin6, -1, -1, -1>()
  , CONFIGARRAY(presets) },
};
#endif

#ifdef CONFIG_BUTTONS
TouchButton PowerButton(BUTTON_POWER, powerButtonPin, 1000, "pow");
#endif

monitor touch should work with this config file.

(More information here: ProffieOS Documentation: Touch Buttons)

If it doesn’t, I have to wonder if you are actually uploading?

(ProffieOS Documentation: Is it uploading?)

It definitely uploaded… lol, because my lightsaber got “uber” dark with this config. My previous config it was bright. I will check both links tho.

Yes it uploads, (I knew it was but wanted to do the steps suggested to make sure ya’ll trust it) and show the response…

c:/users/fatal/appdata/local/arduino15/packages/proffieboard/tools/arm-none-eabi-gcc/9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe:C:\Users\fatal\AppData\Local\Arduino15\packages\proffieboard\hardware\stm32l4\3.6\variants\STM32L433CC-ProffieboardV2/linker_scripts/STM32L433CC_FLASH.ld:224: warning: memory region `SRAM2' not declared
c:/users/fatal/appdata/local/arduino15/packages/proffieboard/tools/arm-none-eabi-gcc/9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .bss by 24 bytes
c:/users/fatal/appdata/local/arduino15/packages/proffieboard/tools/arm-none-eabi-gcc/9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .bss by 24 bytes
c:/users/fatal/appdata/local/arduino15/packages/proffieboard/tools/arm-none-eabi-gcc/9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .bss by 24 bytes
c:/users/fatal/appdata/local/arduino15/packages/proffieboard/tools/arm-none-eabi-gcc/9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .bss by 24 bytes
c:/users/fatal/appdata/local/arduino15/packages/proffieboard/tools/arm-none-eabi-gcc/9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .bss by 24 bytes
Sketch uses 170200 bytes (64%) of program storage space. Maximum is 262144 bytes.
1
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuERROR, status = 10
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash  "
Downloading to address = 0x08000000, size = 170208

Download	[                         ]   0%            0 bytes
Download	[                         ]   2%         4096 bytes
Download	[                         ]   3%         6144 bytes
Download	[=                        ]   4%         8192 bytes
Download	[=                        ]   6%        10240 bytes
Download	[==                       ]   8%        14336 bytes
Download	[==                       ]  10%        18432 bytes
Download	[===                      ]  12%        20480 bytes
Download	[===                      ]  13%        22528 bytes
Download	[===                      ]  15%        26624 bytes
Download	[====                     ]  16%        28672 bytes
Download	[====                     ]  19%        32768 bytes
Download	[=====                    ]  20%        34816 bytes
Download	[=====                    ]  21%        36864 bytes
Download	[======                   ]  24%        40960 bytes
Download	[======                   ]  26%        45056 bytes
Download	[=======                  ]  28%        49152 bytes
Download	[=======                  ]  30%        51200 bytes
Download	[========                 ]  32%        55296 bytes
Download	[========                 ]  34%        59392 bytes
Download	[=========                ]  36%        61440 bytes
Download	[=========                ]  37%        63488 bytes
Download	[=========                ]  39%        67584 bytes
Download	[==========               ]  40%        69632 bytes
Download	[==========               ]  42%        71680 bytes
Download	[==========               ]  43%        73728 bytes
Download	[===========              ]  44%        75776 bytes
Download	[===========              ]  45%        77824 bytes
Download	[============             ]  48%        81920 bytes
Download	[============             ]  50%        86016 bytes
Download	[=============            ]  52%        90112 bytes
Download	[=============            ]  55%        94208 bytes
Download	[==============           ]  56%        96256 bytes
Download	[==============           ]  58%       100352 bytes
Download	[===============          ]  60%       102400 bytes
Download	[===============          ]  61%       104448 bytes
Download	[===============          ]  63%       108544 bytes
Download	[================         ]  64%       110592 bytes
Download	[================         ]  66%       112640 bytes
Download	[=================        ]  68%       116736 bytes
Download	[=================        ]  70%       120832 bytes
Download	[==================       ]  72%       122880 bytes
Download	[==================       ]  74%       126976 bytes
Download	[===================      ]  77%       131072 bytes
Download	[===================      ]  79%       135168 bytes
Download	[====================     ]  80%       137216 bytes
Download	[====================     ]  81%       139264 bytes
Download	[=====================    ]  84%       143360 bytes
Download	[=====================    ]  85%       145408 bytes
Download	[=====================    ]  87%       149504 bytes
Download	[======================   ]  89%       151552 bytes
Download	[======================   ]  90%       153600 bytes
Download	[=======================  ]  92%       157696 bytes
Download	[=======================  ]  95%       161792 bytes
Download	[======================== ]  96%       163840 bytes
Download	[======================== ]  97%       165888 bytes
Download	[======================== ]  98%       167936 bytes
Download	[=========================] 100%       170208 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state

Following this, I can type garbage into the serial monitor and I get “whut?”:

Scanning sound font: TeensySF done
Activating polyphonic font.
Activating SmoothSwing V2
Accent Swings NOT Detected: 
unit = 0 vol = 0.50, Playing TeensySF/boot.wav
Welcome to ProffieOS v7.14
For available serial commands, see:
https://pod.hubbe.net/tools/serial-monitor-commands.html
Welcome to ProffieOS v7.14
For available serial commands, see:
https://pod.hubbe.net/tools/serial-monitor-commands.html
Whut? :onitor
Battery voltage: 3.05
Whut? :garnage
Whut? :garbage
Battery voltage: 3.05

Now, if I type “monitor touch” (without quotes, nothing changes…

I did this more than a half dozen times, resetting the board, toggling the serial monitor port, and suddenly it finally reported data for about a good 10s or so?.. it looked like this:

Touch pow = 6930 (6925 - 6933)
Touch pow = 6931 (6917 - 6931)
Touch pow = 6919 (6910 - 6932)
Touch pow = 6923 (6911 - 6924)
Touch pow = 6917 (6910 - 6921)
Touch pow = 6918 (6900 - 6922)
Touch pow = 6905 (6912 - 6919)
Touch pow = 6916 (6901 - 6914)
Touch pow = 6907 (6903 - 6911)
Touch pow = 6885 (6891 - 6908)
Touch pow = 6910 (6900 - 6911)
Touch pow = 6894 (6887 - 6905)
Touch pow = 6892 (6889 - 6904)
Touch pow = 6885 (6875 - 6895)

But it only worked for more than a few seconds then stopped.

Is there a timeout it will stop streaming data or do I have some serial comms issue?

Thanks again for the help

This is what you want to see!

That is very weird.

There shouldn’t be a timeout, and serial comms are based on USB, which should make them pretty stable…

What version do you have of the arduino-proffieboard plugin?

Aeduino IDE 2.3.3,
Plugin v3.6 from https://profezzorn.github.io/arduino-proffieboard/package_proffieboard_index.json
Proffie OS 7.14

It’s been a while since I used that code, so I’m going to give it a try this weekend. We’ll see if it behaves or if I get the same problems you do.

Thanks!
It’s interesting that it worked once even for a few seconds.

The touch is currently set to 1000 seems to be working well (for me touching a bare wire). I realize the suggestion is to wrap the exposed metal such that you dont make direct contact. I presume this has served you well so far? ESD can get pretty large spikes I’d presume wrapping it might not be sufficient in the worst enviroment.

My Obi-wan ANH is a really tight fit. I have A crystal chamber, tri-cree, 4W speaker, 18650 with pogo-pin interface & Proffie V2 all in a Rudi pando hilt. There’s no room to breath in there and I really like the idea of exposing a touch surface on the bubble strip.

There is a lot of ways for touch sensors to work. Proffieboards use a capacitive touch sensor, similar to what your phone uses. (Your phone just has a lot of them.) When you touch the wire, it’s not really a capacitor anymore. Instead, it’s as if the wire is grounded through a resistor or something. I’m surprised that even works, because I would have thought the capacitance would go down, not up.

When your finger is close (but not touching) a metal plate, that plate becomes a better capacitor than if your finger wasn’t there, which is the effect that the touch sensor hardware inside the proffieboard tries to measure. It does this by seeing how many times it has to fill up the plate-finger capacitor, and then drain it into a 0.1uF before the 0.1uF capacitor is full. It does this repeatedly over and over, each time remembering how many “scoops” it took to fill up the capacitor. When you use “monitor touch” the range presented is how many scoops it took.

Since capacitance changes, not only based on the size of the plate, how thick the insulator is, and what surrounds the plate, you have to calibrate the on/off threshold with the plate in it’s final location. Whatever value you come up with when testing may work, but it may not.

Even if leaving the touch sensor not insulated actually works, you’re going to break the board by doing that sooner or later. The board has some minor ESD protection, but without that insulator between the plate and your finger, it’s not enough. I don’t know how long it would take, but eventually the board will stop working.

Even a very thin layer of tape should be enough, although I have not done the math to see if there is still a risk to the board.

We are agreeing. I was sharing that even isolating the PB6 input pin with an nsulator can be insufficient against an ESD hit. Simply walking across a carpet or getting out of an office chair in a winter environment is easily > 20000V. So coming “close to” (but not) touching even an isolated interface is enough to jump the gap and zap it (if its the desired path) for an ESD hit.
I one was once working on a VCR’s (TV input tuner), I was grounded, the mat was grounded, but… the isolated tuning screwdriver had not been (I didn’t even think of that), and it jumped nearly a 1/4" gap and fried the tuner.
So I can safely suggest there’s always a risk :slight_smile:

Anywhoo - did you have any luck with the monitoring? I will be trying it again tomorrow.

Unfortunately it’s been a busy weekend, so I haven’t gotten around to trying the “monitor touch” thing yet.

As for ESD though, I’m not sure how to calculate that. An insulated part basically never going to be hit directly by a static electricity spark, because it’s not going to be the path of least resistance. Also, even if it did get hit, no static electricity is going to have enough punch to break down the tape material and go all the way through to the metal underneath.

That said, electric sparks could hit the tape, or something nearby, and the change it the electric field would cause electrons to move in the touch plate. This is after all how capacitors work, and so some amount of electric chock will travel straight through the plastic by way of the EM field. I can think of two possible ways to calculate this, but both relies on the physical properties of the sensor in the math involves multiplying and dividing a bunch of large numbers, so the result could easily vary by many orders of magnitudes.

So can 20kEV of static electricity hurt a touch sensor? I really don’t know. I know a good chunk of it is going to dissipate along the way, but I have no idea if it’s enough or not.

What I do know is that my packing-tape covered touch sensor has worked well for a couple of years, and hopefully something like it will work for other people too.

I’ve only ever ESD damaged one thing in all my years (and I shared what that was and how). So I’m confident “it can” but I completely agree and for the cost of the board I think the few good measures you’ve listed on the other site are 100% better than nothing.

When I play with it tonight I’m hoping I can get the montior touch working and stable so I can do exactly that and find a good insulator as well as #### to use so it doesn’t phantom turn on or off.

the monitor command is working reliably.

I didn’t do anything of merit that I can think of. Still using the same cable, I’m running on a fresh battery but not sure. There was a Windows update this weekend so maybe its related? (hard to believe but who knows).

I’ve tried the default 1700, then 1000, 900, 500, 100, then I even tried 6000, 6500, then -6000 and -500. I cannot get it to turn on. I don’t intend to use a clamp card (sticking with the bubble strip for ANH).
For now (testing) I just have a long wire, nearly 3/4" stripped, and used packing tape as you suggest. With the Monitor Touch serial stream working well, the “no touch” numbers are ~6800-6900. When I touch the tape, it drops to 5400-5500.

How do I find documentation of what these values can be and how they are interpreted?

I might end up doing a switch solution like in the videos you shared as a reference for your build:

You need to use a number in between these ranges for it to work, like 6000.

Also, it will work better if it’s a surface, not just a bare wire.

If you’re going to use a bubble strip, where is the touch part going to go?

The reason why I’m considering the switch holder method is I would “unclamp” the graflex, slide the bubble strip, and reveal a button. Even better, I’m considering having it flush with the base of the graflex clamp, still under the bubble strip, but rotated 90 degrees so that no clamp shennanigans is necessary. (just press the button at the base of the clap on its edge).

For the touch button idea, I was contemplating the same thing, if I can float the wire in the tape, the tape would be in the slot with the strip, but postioned all the way towards the bottom of the strip. With the wire to the edge, it “shouldn’t” take much to basically touch that spot.

If I get it working I will certainly share photos. I will try values in the 5000-7000 range, aiming closer to the touch end of it… although, I did try 6000 and it did not work. With it set to 6000 I saw it reporting battery level and a steady 6807, 6809, 6819, 6824 thereabouts. And when I would touch the taped wire, I saw it drop to <5600 in fact I held it and was seeing a few numbers around 4894, but most were at 5380-5490. But it didn’t turn on.

nevermind, its working. The file I was testing with tonight was a copy (with the same name ina backup folder) lol.

It works. I’ll get some solid testing done. Thank you for all the help.