10 years ago I made my first post to this site. When I did, I had such hopes about all the great content and all the amazing projects I would post. What I didn't anticipate is how busy life would keep me otherwise, and how challenging it would be to find the extra energy at the end of the day to keep going on the projects I was dreaming up. With that, I look on to the next 10 years, and take the lessons from the last 10 to keep learning and growing.
I designed a PCB for the Wireless Temperature Monitor (WTM) and entered it in the Hackaday Take Flight with Feather contest near the start of December 2019.
Here's the link to the Blinkerton Labs submission. https://hackaday.io/project/168937-temperature-humidity-battery-sleep-feather-wing PCB Github Files https://github.com/blinkertonlabs/temperature_feather_wing/tree/master/PCB/HumidTempSleep_Feather Hackaday recently announced the winners, https://hackaday.com/2020/01/22/winners-of-the-take-flight-with-feather-contest/ The WTM is a fairly simple project compared to some of the other great and ingenious projects, so it's no surprise that the WTM was not on the list, but it was still entertaining to get reacquainted with Eagle. I have enough components on hand to build several monitors with the Adafruit Feather Prototype Shield, so I will likely work some more bugs out of the design prior to ordering PCBs. I'm putting together a new project, which monitors a temperature and uploads the readings to an Adafruit.IO site.
Eventually, I would like to use many of these devices to record the temperature in every room, to gain better insight into my home's energy usage. Here's a link to the project page. Wireless Temperature Monitor
While at work, I'm usually sitting in a cubicle listening to headphones.
If a colleague needs my attention, they usually have to knock on my cube, which may or may not work. To help out, I created a cubicle doorbell that flashes when a doorbell is pressed. The doorbell button will be mounted on the outside of my cube wall, and the lights will be mounted around my monitors. An Arduino monitors for an amperage change in the power supply to the BlinkM, and will blink a strand of LED lights when the current exceeds a threshold. A BlinkM was added in the doorbell button for a little added flair. Github Repository â New phone, new case.
I went back to Carved , as I was really happy with my last wood accented case. This time, I noticed that there was an option to add a custom graphic to the wood on the back of the case. I wanted to have a resistor icon on the case, but couldn't find one that I liked through image searches. The Carved site would allow the upload of a custom graphic, but it needed to be a SVG file. I wound up using Processing to design my own resistor icon, and then export it as an SVG. Here's a link to the Github repository with the Processing code, and output SVG image. github.com/blinkertonlabs/processing-resistor-phone-case For an upcoming Arduino project, I thought it would be handy to define an array of structs as a header file to include in the sketch. Searching for "struct array arduino" turned out to be pretty helpful.
In the first result forum post, the struct is populated in the loop() function. For the header file, I found that the struct array still needs to be populated in a function. So I created the following function in the header file. typedef struct{ double Lat; double Long; } RouteData; #define ROUTEDATALENGTH 2 RouteData RouteArray[ROUTEDATALENGTH]; void DefineRouteArray(){ // For some reason, struct arrays need // to be defined in a function. RouteArray[0] = (RouteData) {-68.975363, -71.614769}; RouteArray[1] = (RouteData) {-69.852626, -75.018339}; } Then I added the DefineRouteArray() function to the setup() function in the main Sketch, and was able to compile. It recently occurred to me that there were quite a few home theater devices plugged in all the time at our home. I used a Kill-a-watt meter to measure the standby power usage of the devices, and came up with the following results.
Sub-woofer Sitting Idle: 6.5 W (Watts) Playing Music: 9.5 W on average for pretty loud music Chromecast Audio Sitting Idle: 1.3 W Streaming Music: 1.4 W CD Player Sitting Idle: 5.5 W Receiver Sitting Idle: 0.3 W On - No Sound 40.0 W Large Sony Speakers Sitting Idle: 9.0 W On - No Sound 9.0 W Record Player Sitting Idle: 1.8 W Of all the devices listed, we only use the Receiver, Chromecast Audio, and Sub-woofer. The Sony speakers need a line level input and I have not been able to get that out of the Receiver, so they're never turned on. Plus, the display on them has been long gone, so that doesn't help anything. Unplugging all the unused devices saves 16.3 W. Since the Chromecast Audio and Sub-woofer are only used when the Receiver is on, and together consume 7.8 W, I decided to get a switched surge protector for $28. Smart Strip SCG-3M Energy Saving Surge Protector with Autoswitching Technology, 7-Outlet The switched surge protector itself consumes 1.4 W just sitting there. Using the Receiver as the switched port, the Sub-woofer and Chromecast Audio can be turned on with the receiver. This saves about 6.5 W, since the switched surge protector is a wash with the Chromecast. I used the following site to calculate some cost savings based on the purchase, assuming the average cost of 12 cents per kWh. http://www.rapidtables.com/calc/electric/energy-cost-calculator.htm The following site can be used to look up the average energy cost in each state, for a little better accuracy. http://www.eia.gov/electricity/state/ By unplugging the unused devices, we're saving $1.41 per month, or $17.13 per year! The switched surge protector helps to save $0.56 a month, or $6.83 per year. This equates to a payback on the switched surge protector of 4.1 years. In the future, if we start to use all the other devices again and plug them all into the switched surge protector, it would reduce the payback period to 1.17 years! I bought a Raspberry Pi a while ago, and finally decided to boot it up and get it working.
I chose the Raspbian image from the following link. http://www.raspberrypi.org/downloads/ There is a great guide at the following link that I used to flash the SD card and get the Os running. http://www.raspberrypi.org/documentation/installation/installing-images/windows.md After flashing the SD card with the utility, I connected a USB mouse and keybaord, and a monitor with a HDMI-to-DVI connector. Powered the board and it booted up on the first try. In all, pretty painless. I then plugged the Pi into my router directly with an Ethernet cable. After some initial exploring, I wanted to be able to remote into the Raspberry Pi over my network. Also, because I don't have a dedicated workspace right now, and the monitor was taking up living room space. It wasn't appreciated much connecting the Pi to the television. Going through the tutorial at the following link allowed me to SSH into my Pi using its IP address. https://learn.adafruit.com/adafruits-raspberry-pi-lesson-6-using-ssh/overview The SSH only gets you to a terminal, but I wanted to view the desktop. From here I read some of the Getting Started with Raspberry Pi book, and found a good passage on page 31. There it says to use TightVNC to get a desktop, and recommended the following link. http://elinux.org/RPi_VNC_Server I followed all the instructions and was able to get a vncserver up and running as far as I could tell. I downloaded TightVNC for my Windows 7 desktop and tried connecting with the Pi's IP address as suggested in the instruction, but received an error about the device actively rejecting the connection. More specifically... Error in TightVNC Viewer: No connection could be made because the target machine actively refused it. The following IP address ports were tried with no luck. ::1 ::2 ::5900 Through some searching I found the following tutorial, saying much the same as the original link I followed. https://learn.adafruit.com/adafruit-raspberry-pi-lesson-7-remote-control-with-vnc Then I tried the TightVNC viewer again, instead using the Raspberry Pi's network name, raspberrypi, with the port, and it worked! For example,,, raspberrypi:1 Some of the tutorials explained how to write a script so the vncserver starts up at boot time, but for now, I'm still ok to SSH in and start one manually. Short version: only use 8 characters for file names when using the Arduino SD library.
Recently, I added the Adafruit SD Shield to a project so i could log some GPS data. The Adafruit site has a great code walk through of how to use the shield. The Arduino reference site has some great information about the SD Library as well. The first time I tried writing files to the SD card, I was trying something like "20140829144001_File.txt", and it did not work at all. Through some experimentation, I found that the file name "SomeFile.txt" worked. I took a look at the example Adafruit code and found the following. // create a new file char filename[] = "LOGGER00.CSV"; for (uint8_t i = 0; i < 100; i++) { filename[6] = i/10 + '0'; filename[7] = i%10 + '0'; if (! SD.exists(filename)) { // only open a new file if it doesn't exist logfile = SD.open(filename, FILE_WRITE); break; // leave the loop! } } I noticed their file name was 8 characters, the same as my "SomeFile.txt" that worked. After doing some research I came across the following information about working with the SD shield from the Arduino site. "FAT file systems have a limitation when it comes to naming conventions. You must use the 8.3 format, so that file names look like “NAME001.EXT”, where “NAME001” is an 8 character or fewer string, and “EXT” is a 3 character extension. People commonly use the extensions .TXT and .LOG. It is possible to have a shorter file name (for example, mydata.txt, or time.log), but you cannot use longer file names." One thing I must have passed over on the Arduino site the first time I looked at the SD library reference was the following. "The library supports FAT16 and FAT32 file systems on standard SD cards and SDHC cards. It uses short 8.3 names for files." I would really like to use a date field in the file name to keep track of things, but I just put that in the first column of the data. Since I couldn't make unique file names, I would have to iterate like the Adafruit strategy. Instead of limiting the max file count to 100, I wanted to do 1000. So I modified the Adafruit to do the following. // create a new file for (uint8_t i = 0; i < 1000; i++) { int indexHolder = i; filename[7] = indexHolder%10 + '0'; indexHolder = indexHolder / 10; filename[6] = indexHolder%10 + '0'; indexHolder = indexHolder / 10; filename[5] = indexHolder%10 + '0'; if (! SD.exists(filename)) { // only open a new file if it doesn't exist break; // leave the loop! } } On a recent project, I wanted to make something a little more permanent, so I decided to try to design a PCB instead of sticking to the tried and true breadboard.
I've previously worked with PCB123 through my job, and found the experience to be good. Their included software was easy to use and in no time I had my first PCB designed and ordered. I was really excited when the finished PCB arrived in the mail, which turned almost immediately to disappointment when I found out I had screwed up the dimensions and it wouldn't work. i redesigned the PCB, printed out a true to size version of the layout, confirmed the sizing, and ordered again. I was happy to find out the second one was the correct dimensions, and after soldering, it worked well for its purpose. For my personal project I drifted more towards Eagle from CADsoft as there are several batch PCB houses that will manufacture the PCB for fairly cheap, if you're willing to wait a bit longer. The PCB houses all accept files from Eagle to manufacture your design. The last time I checked, you could get the same Gerber files from PCB, but it would be $50. You can use Eagle for free as long as you're not going to use it for a commercial venture, so I gave it a shot. PCB123 delivered me a great board in a short time, but was also rather expensive compared to what I wanted to spend on a personal project where time wasn't really a factor. I just checked their rates again, and seem to be similar, but still more. Once done with my design, I ordered through OSH Park. I'll update once the boards come in. In the meantime, here's a link to the PCB design reference page. PCB Design I've had the idea of starting a site dedicated to the random projects I work on in my spare time for a while. Only recently though did I start asking around and doing some research about what exactly I wanted. Most of all, I was hoping to find an easy way to share all the stuff I learn along the way while working on things. It's rare that I'm working on something and cannot find the answer with some googling, but finding everything I need together in one spot is fairly uncommon. Almost every project teaches me something new, so i am just hoping to compile all that helpful knowledge in one area.
What I had in mind was basically like Evernote, but with a domain. After some research, I finally happened upon Postach.io, which looks exactly like what I wanted. By time I saw this, I had already seen some of the other options and was fairly intrigued in those as well. I checked out some web hosting sites, but when I started going through the process, it look like more work than I was anticipating. I'm happy to learn new code, but would rather concentrate on code other than HTML, CSS, Java for the time being. Here are some links I found that was helpful for web hosting. http://lifehacker.com/5911651/five-best-web-hosting-companies http://reviews.cnet.com/web-hosting/ Here are my specifications.
After seeing a demo of Weebly, I like the idea of drag and drop design. I learned long ago that I'm not very good with aesthetics, so having some themes I could choose from seemed helpful. Wordpress was recommended as well, but I was slightly turned off by the a-la-cart upgrades. More googling provided more blogging providers, but all seemed fairly similar, and I was getting tired of researching... Weebly was cheaper providing more features, so I went with that. Through the sign up process of getting my own domain, I was disappointed at how much a custom domain turned out to be, but oh well, it's mine for a couple of years now. Let the adventure into the world wide web begin. I'm only 8 to 10 years behind the time?.... |
AuthorMainly random electronics projects. Sometimes other topics. Archives
January 2020
Categories |