Weekly Update: May 20, 2017

So.

I did this:

My reflow oven isn’t the best, so running it on the automatic settings generally doesn’t work. Putting it on manual typically works like a charm. Unless you set it to heat, step out of the room, and get distracted. I think the thing was well over 300C, probably 350C, before I caught it. As you can see, that’s well beyond rated temperatures. Also, it smelled. Oh boy, did it smell.

Anyway, that was the first test of the V3 Prototype 2 board. Getting the CP2102 soldered on correctly is being a complete bear, so I’m likely to bypass it for the next test, just to make sure everything else is working correctly. I only have one more ESP8266 module not attached to something, so if I fry this one I’ll have to wait until Monday when more arrive.

Honestly, at this point, the biggest holdup is the CP2102. Getting it to solder properly has been a bear. I have a new, fine-point tip ordered for my soldering iron that may help with any bridges that form, but as long as I can get the device itself working, I’m less concerned about the UART bridge. Thankfully, the minimal equipment to test is, well, very minimal – A handful of resistors, two transistors, and the ESP12 module. That’s enough to make sure the ESP’s wired correctly, and once that is confirmed I can go from there.

Now that I have the boards, I’ll be back to prototyping and testing, and I expect a more substantial update next week. You can find me on Discord, on Twitter, and/or Facebook before then.

Weekly Update: May 13, 2017

Updates, updates, updates!

Last week I mentioned the project I was working on for the lightsaber interior. I can happily say that they are all assembled, tested, and working and will be shipped out soon. Look, I even have a picture!

I managed to impress myself with this one, as usually there’s at least one device that needs to be fixed or tweaked to make it work. These guys all worked like a charm, first time. Granted, they’re super simple, consisting of an ATTiny85, a 10k ohm resistor, and a MOSFET, but I’ve learned to never underestimate my ability to make some stupid mistake and put something in backwards.

The test PCBs for the V3 won’t be here until Monday, and given the way things are going that means I probably won’t be able to touch them until Wednesday. I’ve been busy at my regular job (I don’t recommend working in a grocery store during the holidays… and there are a lot more of them than you think), so haven’t had a chance to really fiddle with the code much either.

So instead, I want to talk about the next product I want to develop, once I have the funds and the V3 is finished. It’ll take a significant amount of time to work out, but I’ll be able to work off of the V3 as a base to get it working a lot quicker. It’s also something that Michael (Who I made the ATTiny/MOSFET boards for) has been prodding me for a while to make.

What is it? Why, a tricorder! To be fair, it’s not actually a tricorder from Star Trek, but it is along similar lines. Simply put, I’m going to be taking as many sensors as I can get my hands on and jamming them into a single handheld device. An accelerometer, magnetometer (AKA, a compass), GPS unit, temperature and humidity, barometric pressure, a variety of gas detection sensors, distance measurements… While this list includes a number of things I want to include, it doesn’t include everything. And just because something is on this list doesn’t mean it’ll be on the final board. I do intend on having some designated expansion slots on the device as well, as there are some things that are simply too expensive to include in a base device. Take, for example, the LinkSprite JPEG Color Camera – It can output to an RCA display, and can also take JPEG pictures. Incidentally, the ESP8266 can display JPEG pictures, allowing it to display directly the images this camera takes. It’d be a cool addition, but not worthy of adding $50 to the pricetag. On the other hand, if someone wants to add it to their device, that’s  great!

I’ll be back to talking about the V3 next week. You can ask me questions about the V3, the ATTiny/MOSFET, the tricorder, or any number of things on Discord, on Twitter, and/or Facebook! See you next week!

Weekly Update: May 6, 2017

Greetings, everyone, and welcome back!

This week, we have a handful of things to talk about. I did the “last” testing required to get the V3 design to where I could send it off to get another set of prototypes printed. I also worked a little on the code, getting the badge code and Pride Flag code functioning. I still have to re-implement image and slideshow modes, along with rebuilding the menu system, but that can take some time to be done. I also am having issues with GPIO0 on this device, but even with those issues I can still upload code so I’m not terribly worried. Just annoyed. Hopefully those PCBs, along with the others, won’t take terribly long to get here so I can start testing them out.

On Sunday I mentioned a secondary project. This one requires a little bit of explanation, since while it’s a simple device, it’s incredibly specific in its purpose and design. My friend Michael is part of the Golden Gate Knights, a group of Star Wars Lightsaber enthusiasts who train in the proper methods of saber combat and stage choreography. Michael is working on a saber for a friend of his, and wants to introduce a slight flicker to the blade. These blades aren’t your typical saber blades, because as mentioned in their web page, blades with LEDs going their whole length tend to have LEDs die under repeated impact. Instead, they use high-powered LEDs at the hilt – Enough to require a heatsink and a significant power supply.

So, while the requirement was fairly straightforward – Apply PWM to the feed of one of the LEDs – the power required made it outside of almost all “Standard” approaches. To that end, he contacted me, seeing if I had any input. My design was fairly simple – As the LED uses close to 3v of power, I can hijack that to run an ATTiny85. The ATTiny then runs its PWM output to a MOSFET, which controls the LED. I ordered the parts to prototype it, confirmed the design worked, and then sent off for the PCBs. The device is super simple – ATTiny85, a 10k resistor, and a MOSFET, along with programming pins, power pins, and LED pins. This device won’t be on the store soon, as the V3 is taking priority funding, but it’ll be there eventually. I have a bunch of ideas for saber bits and bobs that I’ve tossed back and forth with Michael, so don’t be surprised if something else shows up, too. If you have any ideas, feel free to toss them out. And, if you want something custom built, I’m completely down for that as well. It’s not always cheap – Michael purchased the entire production run – but I’m willing to work with you to see what we can build. Especially if I can sell it later.

That’s all for now. As always, you can hit us up on Discord, on Twitter, and/or  Facebook!

Weekly Update: April 29, 2017

So, this one’s a bit late. It’s also going to be a bit short: Nothing happened. That’s condensing things a bit, but is generally true. I had a tooth out (Stupid wisdom tooth… Maybe the other three will stay in line now!), which ate up my days off. My primary job’s schedule didn’t leave me a lot of time, either, and spring has not played kindly with my head. A bunch of factors led to nothing happening, but oh well.

I have received more parts to test with – Some diodes will let me experiment with the power enable pin and make sure that works as intended. I’ve received pricing and availability on the regulators (High to low) that I sent off, so I’ve picked the one I want and I’ll be integrating that into the design as well. Beyond that, I’ll be chipping away at getting the code back to a functional state, as the new TFT library doesn’t like everything I had in the old one. And since I don’t know which part of the old one it didn’t like, and the code can definitely be improved a lot, I’m just re-writing it all.

End-goal by the end of the week is to have another prototype design ready to be sent off. I’ll also be updating you on a simple side-project I’ve got going for a friend. It’s specific and niche, but I’m sure some of you will love finding ways to bastardize it.

And that’s it for this, ah, last week. See you on Saturday! Or, if you’re impatient, hit us up on Discord, on Twitter, and/or  Facebook!

Weekly Update: April 22, 2017

Oh man, another “late” one!

I’ve done a lot of things this past week. The prototype parts came in on Sunday, and I started fiddling with them on Tuesday and Wednesday. As of now, my prototype consists of a dual-breadboard setup with loads and loads of wires and about 90% of the prototype parts. I’m not using the NodeMCU ESP8266 breakout any more, as I have the ESP12-E module on a straight breakout, connected to all of the other components.

I figured out that the digital inverter I was using for the card detection on the SD card wasn’t quite up to spec – Instead of pushing a high signal with a low input, it went into high impedance mode. Thankfully, there’s an inverter that does exactly what I want to do, made by the same manufacturer and with the same footprint and pinout, so it was an easy replacement.

I also discovered that with the way the digital potentiometer works, I have to hook it up to the cathode(s) of the backlight LEDs, instead of the anodes. This meant a bit of re-wiring for the PCB, but that’s not a terribly big deal. I did make sure the device itself worked, so I don’t necessarily need to have it hooked in to the prototype just yet.

In additional news, I’ve decided to put a simple linear regulator on the board, to drop 5v down to 3.3v, either from a USB or outside source. The device is inexpensive, so it shouldn’t have a significant effect on the price of the device.

Speaking of price of the device, I’ve done some research into packaging! I was originally going to try to be extra cheap and try to get a simple box with a cardboard wrap around it that had the art/design/whatever printed on it. Then that was a bit pricey, so I though using stickers would work. Then that was also a bit pricey, so I looked into full printed boxes, and they’re a little more expensive – But totally worth it.

As far as expenses are going, the V3 badge is a bit pricier than I hoped, but ultimately this helps me a lot. Once the design is worked out, I can simply e-mail the manufacturer and have them produce a bunch. And with a printed box, packaging, shipping, and storing is a lot easier for everyone involved. Overall, it saves me a ton of time – And as they say, time is money. It’ll mean the turnaround time for conventions and the like will be a lot lower, allowing me to go to a lot more – And the more conventions I go to, the more sales I have, which means I can build up money reserves, which means I can build up stock, making me able to go to more conventions… You get the picture.

That wraps up this week. As always, you can join us on Discord, on Twitter, and  Facebook. Until next week!

Weekly Update: April 15, 2017

It’s time for another round of Good News, Bad News!

Let’s jump right into things. The first set of Good News is that soldering the QFN chips was actually pretty easy with my reflow oven. I just made the board look a bit nasty with the flux. That, combined with a bunch of hand-soldered parts, had me connected to the chip fairly quickly.

It went downhill from there, however. There’s an issue with the circuit board design, and the result is that the ESP module can’t be programmed. That is more than a bit unfortunate. I’m still tracking down the exact problem, and the prototype parts for that have been ordered and should be here on Sunday. Hopefully, I’ll have it squared away fairly quickly and will be able to put in the modifications I need to get the board working. I also noticed a few other issues that will need to be addressed with the board, so those will be fixed from there.

In more Good News, MintShard on Discord mentioned a speedy TFT driver for the ESP8266. Testing it out showed some great improvement to the programmed badges – The Adafruit libraries took about 750ms, give or take, to display a badge. After a few tweaks to the eSPI driver, it was displaying those at about 45ms.  That’s something like a 94% improvement in speed. It wasn’t perfect, though, as BMPs didn’t load well at all. They weren’t positioned correctly, and the colors were several types of wrong. And they weren’t any faster, either, taking about 1600ms instead of 1780.

I poked around a bit, and found the author of the driver also had a JPEG Decoder. And boy, is it great. The V2/V1 aren’t capable of running the code to do it, but the ESP8266 on the V3 is, and that’s one of the reasons I chose it. Testing showed it was much, much faster as well. Two JPEG images I tested it with displayed at 509ms and 265ms. As JPEG images are compressed, the speed will vary from image to image, but that’s still about a 70-85% improvement in speed. Additionally, being JPEG compatible makes it a lot easier for end-users to put their own images on the device. I haven’t checked to see if there are restrictions on JPEG image types like there are on the V1/V2 BMP restrictions, but I haven’t seen anything indicating such.

I’ll still be looking in to seeing if I can fix the BMP display with the new driver, but that’s honestly a low priority. Right now, I’m mostly concerned with figuring out the issues with the board and resolving those as quickly as possible.

As always, you can join us on Discord, on Twitter, and  Facebook. Hopefully, next week will have some updates on figuring out the board issues, but I’m not going to guarantee anything.

Weekly Update: April 8, 2017

Greetings!

Some important updates today, although not the ones I had really wanted. There’s a little hiccup that I’ve come across, but although it slowed me down, it won’t be terribly problematic.

First up: I received the first V3 prototype boards! They look fantastic in the new black silkscreen I chose, and I immediately noticed some a problem: The outline for the screen is slightly off where it should be. This makes it not line up properly at all with where it should be. Only by a few millimeters, but at this board’s tolerances, that’s a lot. Additionally, the milling that made room for the backside of the screen’s flex connector is a bit too small. It needs to be a bit taller, and nudged a little bit outwards. Things like these are why you prototype. Additionally, the buttons are a little smaller than I expected. This may need to be addressed by moving them a little further away from the board, but I have to assemble one completely first to see.

And speaking of assembly, the hiccup. Soldering the QFN chip will be a few types of interesting. It’ll be possible, for sure, but it won’t be easy. These connectors are tiny! I’m going to try hand-soldering one chip, but I’m expecting to have to use my reflow oven. Unfortunately, this is a very critical component, so I can’t just skip it and assume it works. I’ll be heading to my lab shortly to start working on these, and odds are I’ll be posting about it on the usual channels as soon as I get it working – Provided I haven’t completely screwed up in the design.

So long as everything works together, I’ll be able to get all of the components working together code-wise, and be able to adjust the PCB for a better fit. If things need to be moved around, I’ll go for  a second prototype. Otherwise, I feel comfortable enough that I should be able to order the first batch if it’s only the screen needing adjustment.

As mentioned, I’ll probably be posting results of testing as they happen on Discord, on Twitter, and possibly on Facebook.

Weekly Update: April 1, 2017

Hello again!

This week was, for the most part, uneventful. Early in the week, I received the ADCs and a benchtop power supply to test/break them with. I have to say, I’m loving the MCP3021 library that I found. It has a built-in function to return the voltage of the ADC, and since I’m using it to monitor the battery, this is perfect. It also means that updating the code to include it involved only six lines of change.

After ensuring the device was working, I took it over to the power bench and found out how high I could take the ADC pin before releasing the Magic Smoke. Turns out, it’s a little over 18v, more than 3x the recommended operating voltage of the device. Plugging the device back in, it surprisingly still “Worked” – Although the ADC pin was fried, it would still generate spurious data occasionally. After soldering another ADC together to the testing board, I put the ADC pin on a constant 3.3v with the input voltage for the ADC disconnected. At that point, I left it on and went to do other things – Played a bit of Mass Effect: Andromeda, along with helping my father set up protection for some seedlings so the birds don’t tear them apart. About 8 hours later, I pulled the device from the power supply, tested it, and it still worked like a charm. So, thankfully, the ADC circuit doesn’t need to be modified to protect it.

In other news, I’ve decided to leave PCBWeb behind for future designs. Due to the amount of work I’ve put in to the V3, I’ll still be using it to finish off this design (And probably several revisions), but I’ll be teaching myself KiCad to replace it. Now, I’m sure you’re going to ask why, so here’s the answers:

First and foremost, PCBWeb lacks a number of features that are incredibly useful in designing PCBs. While it’s easy to learn and use, it lacks advanced things such as being able to cut holes into a circuit board like what is needed for the ribbon connector on the V3 screen (So the screen will sit flat), and its outline is either an all-angle design or a circle. There are no options for rounded corners, of all things! There are numerous other things which I’ve never needed, but I’m sure I’ll find useful.

Beyond that, and the direct impetus to switch, is that they switched from a DigiKey Library to an Arrow Library. Before I go much further, I’ll say that it’s not the library switch that irritated me, it’s how they did it. There was zero warning – I even searched their website, twitter, and Facebook for any hint of it and found nothing. Additionally, this update meant that the 250+ part library that I had hand crafted needed to be updated with Arrow part numbers. Manually. And when I went to pull DigiKey Part Numbers from them, they had all been removed. Now, the Manufacturer’s Part Number was still there, but in many cases DigiKey has multiple products for the same item – Different packaging options, along with things like buying the whole reel vs individually. It’s nice to know which one of those I had selected.

Hopefully, early next week I’ll be getting the first prototype boards of the V3 and will be able to assemble and test them. As always,  feel free to join us on Discord, on Twitter, or on Facebook.

Weekly Update: March 25, 2017

Ah! I’m late! Totally forgot to write this on Friday, then yesterday had a few things crop up and didn’t have the time.

Anyway, what have I learned in the past week? Well, for one, of the four ESP8266 modules that I had bricked, none of them actually were. As it turned out, I had the wires to the screen in such a way that they were causing it to not start properly. Changing the wires (And the PCB itself) fixed that issue, so now I have four working ESP8266 prototypes!

This DID lead to an important lesson: The ADC on the ESP8266 only reads in on 0-1v, give or take. The boards I had used had built-in voltage dividers which I had missed. Thankfully, I spotted this after the Feather Huzzah I got ended up with weird readings. So, now the V3 has the appropriate voltage dividers. While I was thinking about resistors, I went and double checked – Turns out, I had also missed the I2C pullup resistors, so those have been added in as well

I also posted the preliminary files for the V3 onto GitHub. They’re a bit sparse, since they’re not finished, but if you want to toss code at me or point out circuit board flaws, I’m perfectly fine with that. In fact, MintShard on Discord pointed out a potential issue with the battery ADC – As it’s continually monitoring the battery voltage, the ADC pin will be out of spec with a much higher voltage than it should have when the device is off. To test this, I finally got around to purchasing a benchtop power supply along with some breakout boards and ADCs to test. I’ll figure out the breaking point for these things, and see if I have to modify the design of the circuit board to compensate.

I’ve also started the order for the first prototype circuit boards. Those should be here early next week, and at that point I’ll be able to put together and test the V3 design. If all goes well, it’ll work. But as the V2 and V1 have shown, all rarely goes well the first time.

On Saturday I’ll be putting up the results of the ADC testing, along with whatever else I manage to do this week. I’ll be honest, while there is still stuff I can do with the programming, a lot depends on the circuit board, so I’ve been playing a bit of Mass Effect: Andromeda lately.

As always,  feel free to join us on Discord, on Twitter, or on Facebook – See you next week!

Weekly Update: March 18, 2017

Greetings everyone!

Welcome to this week’s update. Like last week, it’ll be pretty short, since much of what I accomplished was destruction. What type of destruction? Well, three ESP 8266 boards in the span of just a few days.

The first one I managed to toast when trying to measure the power usage. I also learned that the multimeter I have for this doesn’t do it very well, so I’ll be looking into something to measure better. This happened on Monday evening, so I overnight shipped two replacements – A WEMOS D1 Mini, a bit smaller than the nodeMCU design I was using, and one identical to the design I had.

On Tuesday, a wonderful snow and ice storm rolled in and caused problems. I was out of power for most of the day (Not that I could fiddle with the prototype anyway, since I fried the board), and the shipments were delayed. Instead of getting them Wednesday, I got one on Thursday and one on Friday. I spent some time on Wednesday poking through packaging options (More on that later), and when I got the D1 Mini on Thursday, I set about making sure it worked properly.

Fantastic! It did! But the on-board voltage regulator wasn’t that grand, and the screen was having some issues. So I tried to supplement it with the breadboard power supply I have… Less than an hour after opening the box, I had managed to fry the board again. ESP8266 devices are really sensitive to higher voltages – I hadn’t connected the 5v to the 3.3v line, but apparently in the process of plugging things in I caused a spike of sufficient power to kill it. Oops.

Friday comes along, I get an absurdly large envelope for the nodeMCU board. I know this board decently well by now, so I plug it in, upload the sketch, and then plug it in to the breadboard. At this point in time, it’s dead. I honestly have little idea what could have caused this, but the serial monitor repeatedly showed the same fatal exception issue, which is unrecoverable as far as I can tell.

So later today I’ll be going down to MicroCenter and picking up an Adafruit HUZZAH feather board. Hopefully I won’t fry this one. I’m glad that I’m using two AAA batteries and boosting the power, though. Unboosted, the power still falls easily between the 1.7v and 3.6v that the ESP8266 requires, and boosted it’s at the safe level of 3.3v. There will be a “Raw” input, but that’s for hackers and if you fry the board that way, then that’s not my fault.

I mentioned packaging earlier, and while I’m not going to delve into specifics, it’s a lot cheaper than I expected. Things are likely to change, but it’s pretty simple so far. No custom molded interior, sadly, but the box will be tight enough, and the anti-static foam should keep them secure and stable.

The question I have now is with lanyards. I’ve previously found the most inexpensive lanyards I could get my hands on, and I have not exactly been pleased with them. They have a tendency to fray, and they also look cheap, which is not a good thing. I have the option of looking into higher-quality lanyards, which may or may not affect the price, custom lanyards, which would either be sold separately or would definitely affect the price if included, or simply not have a lanyard option.

You can leave your feedback via a comment here, on Discord, on Twitter, or on Facebook. And, as always, you’re welcome to join our discussions at any of those locations.