Fixed the default overclocking so that the sampling runs at normal speed by default.
lucidcode
Lucid Scribe App lucid dreaming tools Lightened Dream journal for lucid dreamers Halographs dream detection devices Lucid Scribe biofeedback software Lucid Scribe Database open dream research Discord Server research & dev updatesPopular Posts
NeuroSky ThinkGear EEG 0.9.6 (53)
NeuroSky ThinkGear EEG 1.0.9 (35)
Lucid Scribe 1.3.7 (19)
Zeo 0.9.0 (19)
Categories
- Hacking (13)
- Security (3)
- Hardware (12)
- Halograph EEG (1)
- Halograph EOG (8)
- Halograph FM (1)
- Halovision INSPEC (4)
- Research (16)
- Software (279)
- Lightened Dream (28)
- Lucid Scribe (68)
- Lucid Scribe Android (9)
- FILD (4)
- Halovision (2)
- ThinkGear EEG (3)
- Lucid Scribe App (4)
- Lucid Scribe Plugins (173)
- BrainFlow (2)
- Emotiv EPOC (1)
- Halovision (47)
- Hypnodyne ZMax (1)
- InteraXon Muse EEG (6)
- Keyboard (3)
- LightStone IOM (12)
- lucidcode Halograph FM (6)
- Mattel Mindflex (5)
- Microphone (2)
- Milliseconds (3)
- Mouse FIELD (12)
- Muse (2)
- NeuroSky ThinkGear EEG (31)
- OCZ NIA (2)
- OpenBCI (2)
- OpenEEG (14)
- Ping (1)
- Pranayama (6)
- tACS (8)
- TCMP (8)
- tDCS (8)
- TI EZ430 Chronos (3)
- Zeo EEG (13)
- Lucid Scribe Plugouts (7)
- Arduino (1)
- Screen LED (1)
- Yocto PowerRelay (5)
- Hacking (13)
I have tried the ‘overclocking’ in 1.2.8 and it seems to change the display rate more than the sampling rate. The original data is sampled at 512/sec and shows lots of fast activity. Much slower sampling rates will cause aliasing and severe signal distortion that will go unnoticed in frequency band, attention, and meditation displays. What is actually being done in ‘overclocking’? is the sampling rate changed or decimated? Thanks for all your hard work!
Sure!
The overclocking is a bit of a hack. I have had it on my list for the longest time to implement the threading properly in Lucid Scribe. The overclocking is the amount of time, in milliseconds, between when each measurement is taken. So, if it is set to 1000, it will only sample once a second. The default, 100, makes it sample 10 times a second. But because of the threading, it may be off by a few milliseconds each tick.
NeuroSky does some internal calculations on the frequency bands and the eSense mediation and attention channels. And only updates them about once a second:
developer.neurosky.com/docs/…esense_tm_meters. So if we sample them any faster in Lucid Scribe, there will be aliasing.
The raw EEG data is updated a little faster – 128 times a second (every 7.8 ms). So Lucid Scribe would have to be overclocked at 10, or ideally 5 to catch every value from the hardware. But the CPU might not be able to keep up because of the way that I originally implemented the threading of the graphing and saving to LSD files.
The best spot to add any mission-critical code would be here:
github.com/lucidcode/LucidScribe-ThinkGear-EEG…#L92. That event is triggered from and running on a thread separate to Lucid Scribe’s display and logging.
I almost have the Android version of the ThinkGear EEG plugin ready for the Play Store. In it, you can only tap into either the raw EEG data, or the eSense meditation and attention channels, or the brainwave frequency bands.