') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); add HMC5883L driver for 3-Axis Digital Compass IC by livius2 · Pull Request #6 · pycom/pycom-libraries · GitHub
Skip to content
This repository was archived by the owner on Sep 10, 2024. It is now read-only.

add HMC5883L driver for 3-Axis Digital Compass IC - #6

Closed
livius2 wants to merge 6 commits into
pycom:masterfrom
livius2:livius2-HMC5883L
Closed

add HMC5883L driver for 3-Axis Digital Compass IC#6
livius2 wants to merge 6 commits into
pycom:masterfrom
livius2:livius2-HMC5883L

Conversation

@livius2

Copy link
Copy Markdown
Contributor

First version of driver
without compensate, selftest and calibration but good point to start.
Slightly optimized form memory allocation in every m.readAxes()

@Bucknalla

Copy link
Copy Markdown
Contributor

Looks good! 👍 I'll give this a test when I get back to the office and take a look at the merge conflicts!

@livius2

Copy link
Copy Markdown
ContributorAuthor

You can write somwhere that this is e.g. in popular GY-271 because not all know what is HMC5883L ;-)

@Bucknalla

Copy link
Copy Markdown
Contributor

Hi @livius2 I've ordered a HMC5883L to test this out! Should arrive Monday - I'll give your code a test and then get it committed into the repo.

@Bucknalla

Bucknalla commented Mar 26, 2017

Copy link
Copy Markdown
Contributor

Hi @livius2, I'm having trouble getting your lib to run on my GY-271. I'll give it another try on Monday but in the meantime, can you please create a new pull request for just the HMC5883L lib and test script (more the onewire.py to a new pull request)?

Thanks!

Alex

@livius2

livius2 commented May 2, 2017

Copy link
Copy Markdown
ContributorAuthor

@alex i do not know how i ommit this message from you
I found it now in my spam e-mail folder

May knowledge about git is strongly limited i do not know how to do separete pull request.
Please contact me directly throught forum chat or by e-mail.
We can talk in more detail there.
PS. for me GY-271 work ok

regards,
Karol

@Bucknalla

Copy link
Copy Markdown
Contributor

@livius2 No worries! :) I'm happy to help you!

I would suggest creating a pull request from your fork from commits:
Create HMC5883L.py - 3283064
Create testCompass.py - 65537c9

This way you're only pushing what you have been working on. I've linked to the git documentation so you can see how to make a pull request with start and end commits!

https://git-scm.com/docs/git-request-pull

Thanks!

@livius2

Copy link
Copy Markdown
ContributorAuthor

I will look into git docs and back to you.
But may i ask what problem do you have with GY-271?

@livius2

Copy link
Copy Markdown
ContributorAuthor
S:\GITHUB\pycom-libraries [livius2-HMC5883L ?]> git request-pull -p 3283064b05b2
62e39a62098f8ca08c5f519100ae https://github.com/pycom/pycom-libraries.git 65537c
9724f14a0d92155f4c0bbe09bebf66d2f3
warn: No match for commit 65537c9724f14a0d92155f4c0bbe09bebf66d2f3 found at http
s://github.com/pycom/pycom-libraries.git
warn: Are you sure you pushed '65537c9724f14a0d92155f4c0bbe09bebf66d2f3' there?
The following changes since commit 3283064b05b262e39a62098f8ca08c5f519100ae:

Hi, i tried without any success. More hints about?

@livius2

Copy link
Copy Markdown
ContributorAuthor

done this differently
I have created new branch from pycom/master
then i have cherry-pick "this two commits"
push
and then i have created separate pull request #8

@livius2

Copy link
Copy Markdown
ContributorAuthor

I have added also separate pull for onewire #9
now this #6 can be closed as replaced by #8 and #9

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@livius2@Bucknalla