Richard Memory Build Log

This is an item Iā€™m becoming more aware of as well. I still havenā€™t learned enough about where the points should be.

Yes, fully agreed. Iā€™ve thought for example about adding through holes at ā€œstrategic locationsā€, into which I could just simplistically solder a header pin, where I could attach a probe. That said, I think I can see a few potential issues:

(1) As you mention, where to put them will definitely require some up front thought, and ā€œup front thoughtā€ isnā€™t always my strong point :slight_smile:
(2) Extra stuff takes up actual real estate on the board. For this situation, its not a big deal because real estate isnā€™t at a premium, but on a very high density board it could easily become a problem.
(3) Should they be removed for during production, non-development boards (if so, how best to handle this).
(4) At what frequencies does the added test point become a problem, either with a trace or the pin itself becoming an antenna. I suspect I donā€™t have to worry about this scenario for a while yet :wink:
(5) Is a ā€œheader pinā€ the best idea in the first place, or are there other/better/industry standard mechanisms to use?

I think of test points like I think of mounting holes. I needed to take a few lumps in order to realize I should be prioritizing them on every board. I also like the idea of checklists and have written about it in the past, I think itā€™s relevant for doing something like that before sending off boards like this.

https://medium.com/supplyframe-hardware/users-implementing-hardware-checklists-36c918601169

Chris, given my lack of soldering skills (and little interest on my part in improving my skills in this area), what are your thoughts about the wisdom (or not) of investing in a reflow oven, and designing my future boards accordingly? For example,

http://www.whizoo.com/reflowoven

I realize there are reasons why this has some disadvantages. For one it means I cannot attach components to the back side of a board, at least not easily. I suspect you can point out others. I am just weighing the pros and cons.

Soldering isnā€™t a task I particularly enjoy, my solder connections are ā€œbuggyā€, and it takes me much longer than Iā€™d rather spend, thus possibly reflow might free up more of my time working on aspects I care more about.

1 Like

Thatā€™s the one that I have, as do @Steve_Mayze and @hedrickbt. Canā€™t say I use mine all that much because I have one at my new workspace, but the Whizoo seems like a decent controller (and recently got a product refresh, now on rev 3). Honestly, nothing is going to replace soldering skills and there are certain things you should not be doing reflow for (small one offs, tacking on wires for monitoring voltages, etc).

2 Likes

That whizoo diy reflow oven works great. I havenā€™t had any issues with uneven heating, tombstoning, etc. so far. Great results each time. I laser cut my own mylar stencils too on a, modded, cheap eBay machine, so I am not even using the super-accurate stainless steel stencils so far.

1 Like

@hedrickbt, thank you very much for you comment on installing the I2C libs on the ā€œI2C TEMP SENSORā€ project :-). That was very helpful.

I was able to verify my DS7505 is functional.

Temp: 25.00*C	77.00*F
Temp: 25.00*C	77.00*F
Temp: 25.00*C	77.00*F

Using my oscilloscope, with its I2C function, I triggered on the SDA line, also monitoring the SCL line, and I watched the data transmit to and from the device.

Additionally, thanks for the feedback from both @hedrickbt and @ChrisGammell regarding the whizoo reflow oven. It has officially entered my queue of things to buy/build.

FWIW, despite my whining on soldering, I do find the task of through-hole soldering itself to be kind of fun. Where most of my difficulties/frustrations arise are in the area of soldering SMD components.

All of that said, I have the following next steps in mind. @ChrisGammell, Iā€™d like to hear your views (or anyone else as well). These are listed with no particular order of priority, the numbers are for ease of reference ā€¦

  1. Design a second generation sensor board. The primary purpose of the second generation board is to design with reflow in mind, and also to introduce a SPI device. I am not yet sure what this might be, suggestions are welcome. For example, an LED display.

Possibly I might also somehow consider how the devices (ie. shift register, LEDs, light and temp sensors) might be used together or interactively. All thoughts are welcome here.

Also, as part of the design, I want to include test points, and generally follow the hardware checklist mentioned by @ChrisGammell above, and refine the overall hardware design process use.

Alternatively, I can also move on to a totally different hardware design as well.

  1. Using the current hardware, implement drivers for all three devices using the Teensy C interface and gcc compiler.

  2. Develop a much deeper understanding of how to use and debug with my oscilloscope, in addition to using it as a logic analyzer. This can be accomplished with the current sensor board hardware.

1 Like

As for a redesigned sensor board, you could potentially do it on a hot plate first; this would be easier if all the parts were on the top side, but you could always reflow the top and then hand solder parts on the bottom of the current board. The hotplate is a 20 dollar investment and would be a good chance to practice solderpaste application (and obviously ordering stencils).

2 Likes

As Chris mentioned, there will always be a need for actual hand soldering skills. Another option Iā€™ve used for one offs and prototypes though was just using a hot air rework station and solder paste. I have a syringe filled with solder paste that I dispense by hand on each individual pad. Then Iā€™ll go over that area with the rework station to reflow the components to the board.

2 Likes

Thinking a bit more, for the second rev of the hardware, Iā€™d like to add a goal to be able to perform JTAG or SWD debugging.

It appears from various forum entries, this isnā€™t explicitly supported by the currently available Teensy boards (although it seems JTAG support (with a header) might be coming at some point in the not too distant future). For the time being, the primary goal of the Teensy hardware seems to be to support the Arduino IDE, which I suspect is likely the vast majority of Teensy users (Iā€™m likely the oddball here).

I have found one guy who did some serious reverse engineering to be able to use the Teensy 3.1/3.2 with his JTAG, but it requires cutting through the PCB substrate to gain access to certain traces. Iā€™m just not super interested in going to those lengths to support JTAG.

On the Teensy 3.6 on the other hand, it appears there are a couple of pads on the backside of the board intended to support SWD debugging.

In this image, on the back side of the Teensy_3.6, there are pads for DD (Debug Data) and (Debug Clock), and a third called DE (Debug Enable). These are SWD signals. It seems the purpose of the DE pin is to allow an external debug device to pull that signal low, and disable the chip responsible for communicating with the Arduino IDE, essentially allowing the external debug device to take over control.

Unfortunately, it seems the DE pin doesnā€™t quite yet work as advertised. The following blog provides some additional details on adding debug support on a Teensy 3.6. Summary: It can still be done, but a warranty-breaking removal of the Ardunino communication chip with a heat gun, which I donā€™t yet own, will be required. I donā€™t necessarily mind ā€œbreaking the warrantyā€, but Iā€™ll need to find a heat gun.

Attaching Debugger to Teensy 3.6

In other words, the next gen ā€œsensor boardā€, or whatever it will be called, will be built using a Teensy 3.6 and not the 3.2.

The probe I have been looking at is this one. Its relatively inexpensive.

Interesting! You could make a conversion board for the 1bitsy to the CE header. This is the ARM board designed to work with the Black Magic Probe (I had the chance to talk to Piotr about it on TAH)

1 Like

Thatā€™s good info.

On a related topic, when you get a chance, Iā€™d like to work with you to come up with the specs and requirements for this new board.

Cool, I think the main thing would be ā€œtake the pinout of the 1 bitsy and hook it up to the CE headerā€ but maybe thereā€™s more? The benefit would be that the sensor board could stay the same. But maybe you mean you want to rework a new sensor board?

Iā€™m dreaming big at the moment, with a total rework and lots of ideas :slight_smile:

@ChrisGammell (or anyone :slight_smile: ), how do I go about adding a test point to my layout? It doesnā€™t necessarily seem something that needs to be added to the schematic, and can just be added directly to the layout. I am thinking in terms of a single through hole pin per test point, plus one for ground as well. Presumably I add a through hole pad, which isnā€™t connected to anything on the schematic, and add it to a particular net?

@rmemory,

I add a single 1x1 pin header for a single through-hole test point. There are options for a SMD pad as well. I add it to the schematic and let it flow through annotation, cvpcb, and finally to pcbnew.

I do this as it can avoid confusion later when there are differences between the 3 tools. It also help to visualize the purpose of the test point by showing it in the schematic. You can run into issues if you decide to re-import the netlist in pcbnew. If you arenā€™t careful, you will lose any of those items you have added to the layout which donā€™t also exist in the schematic.

That said, you can just ā€œadd footprintā€ in pcbnew if you desire. I wouldnā€™t recommend it as part of a normal workflow.

@hedrickbt, thank you. That is very useful info. I do agree the best practice is to add them from the start in the schematic, for the reasons you mention. Exceptions are not a good ā€œbest practiceā€.

All that said, I figured out the ā€œadd footprintsā€ method you mention yesterday, and created my first revision of the layout using that method. However, after reading this, I think I will go back and do it right.

1 Like

The board looks nice. I really like the label usage in the schematic too.

1 Like

Thanks!

I am pretty excited to try out the 1bitsy and the Black Magic Probe. I donā€™t yet have a full vision of where this is headed, but Iā€™m excited. For the time being, the next step is to integrate it with my existing sensor board. And from there I plan to create a few iterations of the sensor board, using different and new kinds of sensors, servos, analog sensors or filtering, etc. Eventually, I would like to create a layout which puts everything on a single board (my layout skills are still pretty low-end). I might create a port to Yocto Linux. And I might even switch to a Cortex M0 at some point. The reflow oven is still out there as well to play with. There are endless possibilities to have fun with.

IMHO, for me and my interests, this is sooooooo much more interesting than messing with a Raspberry PI or Beagle Bone. But to each their own. Everybody has their interests :slight_smile:

1 Like

I have started a new project. Given Adafruitā€™s lengthy list of very cool development boards, I am working on a prototype sensor network.

These boards are wonderful for lightweight applications like sensors, and they have a bunch of variants to choose from, with a ton of documentation.

For my network, I am using Lora for wireless communication to what I am calling my Lora Gateway. I am not (yet) using LoraWan.

At the moment, the end nodes, use a Feather which uses the ATmega32u4 and a Lora radio. One end node measures ambient temperature, while another is a simple motion detector (I am keeping it simple for the initial prototype).

Each node has its own unique Lora address, and communicates back to the gateway. I am using a ā€œsend with ackā€ mechanism. Here is the Lora stack I am using which includes drivers and packet manager.

For my so-called Lora Gateway, I am using a Cortex M0 based Feather which includes a WiFI chip, and a separate Lora radio which connects to the board using SPI.

As the gateway receives Lora packets from each sensor, it re-packages them into an MQTT packet, and forwards it to a public MQTT server (broker) at Adafruit. Likewise, the MQTT server can send data to the Lora Gateway.

Both Lora and MQTT are designed for low bandwidth applications only (no video and no audio). But they both work well for any application I have in mind. And the range of Lora is impressive (some are reporting ability to transmit over 20km distances).

Lots of questions still to be answered, but its fun.

3 Likes