This is an example post, extracted from my
OneNote Notebook with specifics on getting micropython working on
Please excuse any typos below… there
are my notes after all, and I only am publishing them as an example of
what is possible with OneNote.
on Esp8266 Tutorial
Wemos D1 with esp8266MOD
WROOM v2 (aka ESP-13, aka ESP8266MOD
With 4MB SPI flash
wemos d1 pro
module, 16M SPI flash
Install / load / reinstall micropython on
the Wemos D1
Install the driver-
The wemos d1 uses a cheap
installing python on pc, need to install python and then use the
ESPtool to install or reflash / update the firmware to the wemos d1. it
may ship with NODEMCU or AT commands.
help using python pip install and packages
This guide uses 2.7 as of the writing of this install. This is
installed on the PC you are using. Do not use python 3 .
Make sure that it installs / registers itself in the local path so that
you can use the reguar “cmd” prompt. Else it might cause issues.
If things don’t work restart.
open the python command line
esptool from the python command line.
If this command does not work, then you need to figure out how to get
are the esptool github details if you need to do it manually, or refer
hex dump file using a hex capable editor (notepad++ with hex edit
method… use the GUI for esp8266
use nodemcu-flasher (https://github.com/nodemcu/nodemcu-flasher)
the esp8266, install image.
From windows Cmd prompt
(optional… dum it again and verify the memory is all ff ff ff ff)
to see if it installed.
Check device manager for com port – Open com port
Open Putty (serial / console software) settings
Connect using (usb) serial console
115200 / 8 / no parity /1 stop/no flow ctl
show up on wifi. Don’t connect yet.
will now be using the Putty Terminal to type commands.
This is called the REPL (Read Execute Python Language)
Once you open the connection:
Hit the Enter key at the cursor and wait for the prompt >>>
Try the hello world program
If the last output value is True, the firmware is OK. Otherwise, it’s
lets set up WEBREPL so that we can do this from a browser
After a fresh install and boot the device configures itself as a WiFi
Wifi connection of the device is
There is no webpage. It will go nowhere. You can only connect by
we install the webrepl client on your Computer.
Here is an example of what it would look like once installed. You could
use this if your computer is hard wired or connected to the same wifi.
Otherwise, we will install this on your local machine.
Install it locally using this link
Extract the files to a folder
Open the html file
Click the connect button
Enter the password you setup earlier of the serial console
with the simple LED on the board
cannot simply copy and paste code into the repl console. It will throw
To enter a special “paste mode” hit
This will allow you to paste in chunks of text.
Use CTRL D
to exit this mode and execute the code as entered
code you enter at the REPL does not persist past reboot unless you save
it to a file. Say for example the entered the led toggle code above.
After unplugging and re-pugging in the code, you cant call the toggle
function. If you have your board connected over serial and hot the
reset button, you will see it reload in the console window.
To have your code persist, you would need to start creating files to
make the code permanent.
To view the files on the esp8266 , type the following:
Additionally, you can upload a file from your computer using the
all available commands
This is some stuff ND SOME THINGS LJSKLJSADFKLJSDLKJSDF
Somewhat recently, Microsoft automatically enabled notifications for all of my onenote notebooks. I was on vacation in Scarborough, Me recently, and the notification emails drove me nuts! It really is a nice idea, but as I am in my onenote all day, deleting emails saying “Here’s a summary of recent activity in your notebook” is not exactly how I want to spend my free time.
I also happen to have multiple onedrive accounts, so when I am working in my own shared OneNote, it appears like someone else is making changes.
The fix is very simple.
Part 1. Fix the problem.
- Click the update notification settings link at the bottom of one of those annoying emails.
- Disable / Enable notification for your desired OneNote Notebook, or disable them all.
Part 2. Prevent Future Outbreaks.
- Log in to your personal onedrive account (the one where the onenote notebook is located
- Go to options > Notifications
- Uncheck the box for “someone makes changes to files I shared”
ta-da, No more emails.
Alternative title: How you can still use your windows 10 pc and stay sane.
I hate notifications on my pc.
Traditionally, the audio clips Microsoft “designed” for notifications have been the most annoying creations possible. The new visual notifications are also something dredged from the lowest swap. Combined, these will drive you insane!
|Microsoft Spoiler:||Go to “Notifications & Actions” settings, then “Show notifications from these apps”.
Turn off the “Send to OneNote Tool”.
Disable notifications for specific apps:
Depending on your settings, OneNote notifies you EVERY TIME you take a screen clipping with an audio and visual notification.
The fix is easy. Search for notifications and turn them off the onenote tool.
Alternative title: One easy trick bloggers don’t want you to know!
Writing blogs does not have to be an arduous process. The number one nuisance for me is saving and uploading images. With OneNote (desktop), that problem is eliminated, as images are uploaded to your blog automatically when you post directly.
It only takes a few clicks to set up (assuming you have already set up a blog or website). Write up your article, insert your photos, and click send to blog!
You will be presented with a screen asking what provider you are using. Blogger, wordpress, and sharepoint are the top three supported platforms.
After that, simply type in your website in place of the carots and enter your credentials. (Don’t worry if you get an error, just check your spelling and try again… it took me 4 tries to realize I typed my own website address wrong.)
Once you are connected, you will be presented with a Word document containing your post, allowing one final look before you release it to “the cloud”. Find the publish button at the top left.
I like to upload my articles as a draft first, as there can be a few spacing and formatting issues that are not obvious from within OneNote / Word.
From there, simply log in to your blog, review for formatting and do a final check of links and spelling, and publish!
Catchy internet marketing titles aside, this article shows you how to use msra.exe to remotely connect to computers that you control.
Tired of walking through the snow and rain to help with simple helpdesk requests?
Behold the power of Remote Assistance, built right into windows! This feature can be implemented for your environment, assuming that you are using Active Directory and Group Policy with your windows 7/8 environment. This allows you (or your minions) to remotely offer assistance to a user, initiating an “unsolicited” interactive remote desktop connection, with the option for you to request control of their machine. This does not, however, allow you to force remote control of the user’s computer. (There used to be a trick for Windows XP, but it does not work with windows 7/8)
- The computer is connect to a windows domain that you have control over.
- You / the helper must have domain credentials with local admin permissions to the remote computer.
- You must be a domain admin, or have rights to create and manage Group Policy Users and Groups.
- You may need to configure additional GPO settings for windows firewall and UAC
Step 1 – (for you, the helper)
- Create a shortcut to C:\Windows\System32\msra.exe /offerra
Step 2 – (on your Domain)
- Create a group that will be allowed to initiate connections.
- Example “Offer Remote Assistance Helpers”
- Add users to the group who will have permission to remotely assist others.
Step 3 – create a new GPO in an OU containing computers, called “Remote Assistance Policy”
- Edit the GPO for Computer Configuration.
- Computer Configuration > Policies > Windows Settings > Security Settings > Restricted Groups
- Right click/ Add Group
- Type in or Browse for the Active directory group you created above.
- Go to Computer Configuration > Administrative Templates > System > Remote Assistance and click Configure Offer Remote Assistance.
Enable the policy
- Permit remote control of this computer using “Allow Helpers to remotely control the computer”
- click Show… next to Helpers
- Enter the names in domain\user or domain\group format.
- Enter the group name you created earlier
- Permit remote control of this computer using “Allow Helpers to remotely control the computer”
Or in 2012 R2, is is Configure Offer Remote Assistance
- In the same settings folder, enable Solicited Remote Assistance
- This setting may also be found under
- Computer Configuration > Administrative Templates > System > Remote Assistance and click Solicited Remote Assistance.
- Computer Configuration > Administrative Templates > System > Remote Assistance and click Solicited Remote Assistance.
- Go to Computer Configuration >Administrative Templates> Windows Components >Remote Desktop Services>Remote Desktop Session Host>Connections
- Enable “Allow users to connect remotely using Remote Desktop Services”
- Apply this GPO to target computers. This can be done at the root of the domain, or under each OU, depending on desired deployment strategy and security considerations.
- Perform a Gpupdate on server and clients and test to see if the settings work.
- When a user asks for help, launch the msra from the icon using the shortcut you created (C:\Windows\System32 msra.exe /offerra)
On your PC, launch the new icon
Enter the Computer Name and click next
The user will be prompted with the following:
Once the user clicks Yes, you will see the following.
Notice their desktop image has gone black. This is to preserve network bandwidth for smooth operation. The background will be restored once the support session ends.
You can select the “Request Control” screen
Which prompts the user for permission once again.
(Tell the user to ignore the checkbox for UAC, unless the user you are helping is a local administrator on their PC. If they do not have local admin rights, they will get a popup asking for credentials, and you will get a black screen with an pause icon. Alternatively, look here)
Once you are done, you or the user may close the Windows Remote Assistance box to end the session!
Three days before Christmas, just as I was falling asleep, I had a vision of a led Christmas tree card. I imagined it would have a number of charliplexed LED’s blinking in a decorative fashion. I had a few ATtiny85 microcontrollers on hand from prior projects, and decided to give it a go.
First off came the experimentation with the Charliplex circuit. I have not played with charlies in a while. A quick google search revealed some interesting sample code specifically written for the ’85. It has also been a long time since I used my ISP programmer, so I needed a quick reference of the pinout diagrams, for and the 6 pin ISP programming connector and the ISP pins on the ATtiny.
First off was locating some spare parts:
- 5mm Red and Green LEDs
- Atmet Tiny85
- USBTinyISP programmer
- Small flat speaker
- momentary push button
Reference Code used:
The ISP Connections:
Once the ISP Pins were plugged into the micro with jumpers, it was time to program the ATTiny.
Step 1 – Upload Bootloader and select ATtiny85 board, 1 mhz.
Step 2 – Upload simple “Blink” Program
Step 3 – use sample Charliplex code and LEDs
A few quick jumpers on a breadboard yielded some blinkenlights.
First, we try out the sample Charliplex Code
Video – Charliplex code sample
Next, we locate some code that can play back simple tones using a single pin of the ATtiny.
Connecting the speaker is simple
Video: a simple Chromatic scale
Next was determining what notes sounded like Christmas Time Is Here from Charlie Brown Christmas.
I played around with a keyboard to find simple tones (not chords) that sound similar to this tune.
To my untuned, musically challenged ear, the beginning sounds somewhat like A, F , F, D, D.
To get the timing right, I added a new “note” called Z which results in an inaudible frequency when played.
I included note Z to add delays between notes.
The final result sounds like this
Video: Christmas Time Is Here
Because code generated using the Arduino IDE is single threaded, you can only play music or flash LEDs using the above code, not both at the same time. Also…this was 2 days before Christmas, I simply did not have enough time to figure out how to do it the right way. I opted for the “hacky” solution, simply alternating between led lights and tunes. Alternativly, I did experiment with two chips, one playing the tunes and one flashing the lights, as seen in the following video.
Video: two AtTiny 85 chips
Next, I assembled the basic card structure ( a Christmas Tree with LEDs) and wired up 4 pairs of LEDs, arranged with the reverse polarity of its sibling.
Each row has two LED pairs. These pairs will be charliplexed to 4 pins on the micro.
The hookup is roughly as follows for each pair, plus one single LED.
And the messy wiring
I added a simple momentary push button switch to connect the 3v lithium cell to power the circuit. I taped a penny behind it for rigidity.
Finished product – “Christmas Time is Here” with LEDs
Mom loved it.
When I was at the World’s Maker Faire in NY this past fall, the kind people at Sparkfun gave me several free Arduino’s and WS2811/ws2812 RGB LED breakout kits to give away.
This is a very brief collection of resources needed to get new users started using a programmable RGB LED. The beauty of these units is their ability to be chained together.
Take a gander at the goods:
And this is what the end product of this tutorial will look like.
High level overview: You will be installing the Arduino IDE, copying the neopixel library folder into the arduino libraries folder, then opening the example project file and upload it to the arduino.
You will need the following items:
- WS2811 Breakout Board
- Arduino or Arduino compatible board
- Arduino Programming environment
- The Adafruit Neo Pixel library
- A USB cable
Download and install the latest Arduino environment.
Download the Neo Pixel library.
Install the library by copying it to the correct folder for your Arduino IDE. This varies by operating system. The following instructions are for PC.
Mac holds its files in a different location. Instructions for installing a library on Mac are located here.
Linux users probably won’t be reading this article.
Locate your downloaded .zip file and extract it to a folder.
Open the folder and change the name of the folder to Adafruit_NeoPixel, removing the -master, otherwise you will receive an error.
Copy the folder and Paste it into your libraries folder. (My Documents/Arduino/libraries)
Close and re-open the Arduino program
If you receive the following message, you missed step #4
If all goes as expected, you should be able to open the “strandtest” NeoPixel example code from the File> Examples> menu.
You should see the following code:
I would like to call your attention to the comments in the code. They tell you two pieces of information you need to update before uploading your code.
The first is what pin the LED breakout will be connected to.
This is the first line after the include statement:
#define PIN 6
(btw, that is how you use a library, you have to invite it to the party by using the #include.)
We are going to go ahead and hook up the DI pin of the breakout board to digital pin 6. We are going to keep it at pin 6 in the code. If you want to use a different pin number, this is where you would change it.
On the breakout board – DI for Digital In. DO is for digital out.
We are going to physically connect the DI (Digital In) to Pin 6 (digital pin 6) on the Arduino.
We will also set up the number of LEDs. In this instance we only have 1 of these breakout boards connected. If we had more than 1, they could be connected in series.
Change this single line of code from a 60 to a 1
Adafruit_NeoPixel strip = Adafruit_NeoPixel(1, PIN, NEO_GRB + NEO_KHZ800);
Verify that the wiring and environment to ensure we do not perform a smoke test.
Connect the USB cable.
Tech Tip: If this is your first time connecting the Arduino, your computer may have to load or install a driver to allow your computer to communicate with the Arduino. This driver should be included in the Arduino IDE. If you have problems getting the board to be recognized, you’re gonna have a bad time. See here and here for additional troubleshooting and information. Oh and here. Communication between the Arduino (Atmel Mega328) and the computer is done over a serial connection. Most Arduinos with a USB connection utilize some form of USB to serial adapter. The board I am using in this particular example uses an FTDI chip to do the USB>serial communication for us. Other boards may use another AVR microcontroller or even implement serial directly in code using v-usb.
Click tools > Serial Port and select your COM port.
I tested COM3 – no go.
COM8 is our man
Select the board type from the Tools >Board menu. The Sparkfun Redboard that I am using is Arduino Uno compatible.
If it works you will see some LEDs on the Arduino flashing. On mine it was the red and yellow RX /TX LED’s.
Wonder of Wonders, it works!
If you get errors like this when uploading, go back to step #11. You may have to go back and select a different COM port or a different board.
If your board had a few flashes of lights but no activity on the breakout board, double check the 5v, ground, and DI wire are securely connected and plugged in to the correct pins on the Arduino.
-Connect multiple WS2811’s in a matrix
This post was composed and uploaded from Microsoft OneNote 2013
I was listening to a podcast recently and the topic of the internet and the accessibility of information was posed, along with a question…
Does the vast availability of simple answers (on the internet) condition us to be unable to ask bigger questions?
Are we losing the ability to concentrate on a topic or even read a whole book on a subject without needing all of our questions answered immediately. Are mobile devices an enabler for our shortened attention spans?
Data without structure is useless, it needs to be organizzed to become information.
podcast in question.. approx 12 minutes in
[This post should have been published 2 years ago… oops]
In an earlier post I began working on a Server Room Environmental Monitoring based on an Arduino.
This project was started just for fun- I wanted to learn more about micro controllers (specifically the arduino platform), and partially because I didn’t have room in my technology budget at work to do it the “right way” (not even sure what way that is for a small business…netbotz?). I wanted to improve on my original idea by having it accessible remotely via my network. Thus we end up with our first semi-finished prototype:
This device monitors the temperature and ambient light readings and displays the values on an LCD and displays them in a browser windows rendered in html. I have the 2nd iteration pretty much completed, just working through some of the programming issues. [At the time] I wanted to expand the sensors to include multiple i2c temperature sensors, and possibly make the LCD display wireless via Xbee. Later posts will show I ended up using a Nanode with Grove sensors [but I digress as this is documenting the original build.]
Arduino Duemilanove (ATMEL 328p)
DFRobot Ethernet Shield DFR0110, Powered by a Wiznet W5100
Sparkfun Protoboard (v2)
TEMT6000 Ambient Light Sensor by Vishay via the Sparkfun Breakout Board
JK Device HD44780 Compatable 2 x 16 Char LCD display
Sparkfun SerLCD I2C backpack
Adafruit Arduino enclosure
I had to add the Xbee out of necessity (I had them from another project, but when I burned out the FTDI chip on the Arduino I had no way of programming it, but it turned out being rather convenient!)
Two Xbee with a chip based 1mw antenna.
Xbee Explorer Regulated
Xbee Explorer USB
Generic PIR Sensor module from ebay – looks very similar to this.
I have most of the code working. I made the code available as a download. It includes the two libraries for the I2C Serial LCD backpack controls and the LibTemperature library for the I2c temperature module:
Arduino_Environmental_Monitoring_Webserver [this is a .zip file]
The code is also available here in plaintext [here]
This is how it works:
pull in the libraries for all the different modules
set up the variables to store numbers
some code to control the LCD
Set the pins for the LCD and for the LED
Setup the MAC and IP for the Ethernet Shield
read the sensors and store the values to the variables
convert the C temperature to F and store to a different variable.
Print the values to the display
Send the values inside HTML to the browser
Send the browser a command to refresh every X seconds.
When using my Arduino for another project I was testing a large number of SMT led’s all at once, pulling a decent amount of current through the 3.3v regulator, far exceeding the 50Ma spec of the L.D.O inside the FTDI. I inadvertently short circuited or over drive the 3.3v line , burning out the FTDI USB to RS232 chip on the board. I ended up utilizing two Xbee modules and connecting one to the TX /RX lines for serial connection. This worked out great, because It forced me to get the Xbee working! I now have 2 Xbee units paired for serial communications.
There were some small issues with the Ethernet Shield. #1. The pin map on this particular model uses (Arduino) pins A4 and A5 to access the SD card, which I am currently using for my I2C temperature sensor communication. There were also issues with the bottom of my proto-shield hitting the ethernet plug and grounding out, so I extended the pins the quick and dirty way by extending it with pin headers.
The enclosure from Adafruit fit great, but the end plate did not work with the Ethernet shield. I had to discard the plate for the connectors.
Dirty Coding Schemes:
I was getting some odd looking numbers on the LCD screen when testing it in a variety of light and temperature ranges. The number would “print” to the screen, and when it poured over to the 3rd digit, that digit would stay on the screen, regardless of what was being written to the block immediately to the left.
I didn’t bother figuring out how to erase data or clear the screen between refreshes, so in my code I had it over-write 4 blank spaces, then go back to the beginning and write the data value. probably a very dirty way of clearing that part of the screen.
the arduino code strings together the HTML and streams it to your browser. there is a small snippet of meta html HTTP-EQUIV “REFRESH” that tells your browser to refresh every few seconds to see the new values gathered in the loop code.
[Hard Coded IP Address]
Unfortunately, I found that the DHCP library did not work so well for me. I decided to hard-code my device. this has certain advantages, but makes it less portable. Not everyone uses a class B /16 subnet at home.