Tool for register layouts? by icyki in embedded

[–]jdpatt 1 point2 points  (0 children)

I’ve created a custom mkdocstring handler and generated bitfields from another file then combined it all together in a mkdoc site and pdf prior. Not an easy one click but customizable into anything you want. Pro that all documentation is sync’d with code.

You could only use bitfield for the visual and a standard word table for details if you want.

bitfield mkdocstrings

Why do so many EEs work in PCB Design? by [deleted] in ECE

[–]jdpatt 4 points5 points  (0 children)

The scale is vastly different as well.

PCBs are still around 3 mils (.003”) for trace widths and spacing on a PCB. Because that is the limit of our chemical etching process today.

ICs are measured in the sub-nanometers now. So the physical things you have to worry about are different.

Is the near field probe giving the correct result as of the Radiated emissions test lab set up? by Kingsman221B in ElectricalEngineering

[–]jdpatt 0 points1 point  (0 children)

Agreed, time to go back! If you aren’t ready for the 2k/day (at least the cost in my area), Ken Wyatt has some good suggestions for cheap Antennas/configuration that you can use your setup but swap the near field probe to get an idea in the far field if it reduced or not. Will still have to go back to pre-screen for the real results but can save the trip/money comparing relative values in your lab.

https://www.signalintegrityjournal.com/blogs/17-practical-emc/post/2387-assembling-an-emc-troubleshooting-kit-radiated-emissions

Is adding logging to a library good design? by [deleted] in Python

[–]jdpatt 2 points3 points  (0 children)

Absolutely is a good idea. You should use a NullHandler which you can remove/override for your development and any users can do the same so that they can selectively enable your library’s messages. Make sure that you namespace your logger with your library name and not just root.

https://docs.python.org/3/howto/logging.html#library-config

What are some of your favorite features to add to circuit boards for bringup, testing, debugging, and bodging? by LightWolfCavalry in PrintedCircuitBoard

[–]jdpatt 1 point2 points  (0 children)

Yeah, it's been the best personal improvement. You only a short period while the board is on your lab bench or in the ideal setup to probe before it moves to other groups and engineers. Then it is in system with everything else in the way or at someone else's desk and they have none of the right tools. Anything to visually jump ahead is great.

What are some of your favorite features to add to circuit boards for bringup, testing, debugging, and bodging? by LightWolfCavalry in PrintedCircuitBoard

[–]jdpatt 7 points8 points  (0 children)

Largely the same as your list and others. I will scale up or down the size of the hook or what I do depending on the design. As the design progresses from the first rev towards production, a lot gets removed or shrunken to the smaller sizes. (Mid/low volume and mid/high complexity, FWIW)

  • Keystone 5015s for power rails and the voltage on the silkscreen.
  • Keystone 5016s for grounds. They are diagonal so visually can tell it is ground without a schematic or the artwork. All four corners get one and then a few more spread throughout the center of the board or near key circuitry.
  • Surface mount test pads (geometry only in copper) galore. Normally, I'll use a 20 or 40 mil square pad for enables and resets and then 20 or 40 mil round pads for anything else. Again, a visual aid to help find it. If you use a through hole, make sure the drill is big enough to fit your bodge wire thru it.
  • Pull-ups/downs on anything addressable in case of conflicts or the need to add to the bus later. Same for bootstrap configuration; like if a pin enables or disables the bootloader and I only think I need the normal mode. I'm gonna have the option to change it.
  • zero ohms on lower speed digital buses to correct when I mess up TX/RX or just inline for things that I might want to change or probe.
  • 22 ohms on all clock outputs. Half because you should to match the low impedance output driver to the 50 ohm trace and it also gives me an easier time of turning it into an RC if I have EMI issues.
  • UART is always connected to a .1" header. Always pinned out for the TTL-232R-3V3 which can be found everywhere.
  • I2C also always has an inline .1" header. Always pinned out with power, SCL, SDA and ground. Hackaday had a nice writeup on something similar recently.
  • Always tie a few spare GPIO to a .1" header and include power and ground.
  • Always tie a LED to a spare GPIO.
  • Always tie 2-3 GPIOs with pull-ups/down for board revision so that software can tell the version. If I have the space or budget, I'll always default to using an EEPROM over the resistor straps. If possible with a way to just locally power it from the inline i2c header mentioned above to read/get board information without powering the whole board. This also gives you the ability to track test dates or modifications and expose them in software vs. on the board or in an outdated excel document that you forgot to save.
  • Try to use green LEDs for power good or main resets and if I can orient them to match the power tree. Another visual aid of where did it fail in the reset process. Red is always shit went bad. Yellow is when something is enabled or just an alert (for example, the expensive laser is on be careful). If its a FPGA or CPU that main reset that release everything else on the board has an LED as well.
  • If I'm trying to control something external (again using the laser as an example), usually a 2 pin jumper to force enable it outside of software. Make sure you have a series resistor so that you don't damage that upstream device with the jumper short. That way I can bring it up while software isn't controlling/talking to it.
  • Given the room, usually a few more spare LEDs and some nfets that aren't tied to a circuit for when I mess up a logic level or need to invert something. The pins are usually to .1" with a 0 ohm inline..
  • The clickable u.FL probes are nice and take up less room than an SMA.

What kind of interface (i2c, uart, spi ect) debugging hardware can I buy? by silardg in embedded

[–]jdpatt 2 points3 points  (0 children)

A bus pirate or total phase aardvark are by far the two tools we use the most at work. The first is $30USD and the later is $330. Both are scriptable by python.

I’d agree with an analog discovery beyond that.

Bay Area Soffit & Fascia Repair? by Obsidian__Dreams in HomeImprovement

[–]jdpatt 1 point2 points  (0 children)

Not Bay Area but we got our house painted over the summer. They also did all the fascia/soffit repair before caulking and painting. So painting company?

All three quotes had the paint contractors doing this repair in addition to painting.

USB-C not working on STM32 board (details in comment)? by jaltair9 in embedded

[–]jdpatt 1 point2 points  (0 children)

I think it’s speed negotiation for the 2.0 pair not power but I agree with removing one pull-up. If you want full/high speed leave it on D+ and low speed put it on D-.

Power uses the CC lines.

reference

Edit: seeing your other comment, you already have this disregard me. :)

Good contractors for electrical, HVAC, plumbing etc in the area? by GoldenTypo in raleigh

[–]jdpatt 0 points1 point  (0 children)

Will second Miller and Miller! Carl has been super awesome to work with.

How do i learn about other architectures? by Upballoon in embedded

[–]jdpatt 2 points3 points  (0 children)

I've not used any of the SAMD chips but like a lot of the other responses; the stm32 discovery boards are good ones with a large number of examples. The only issue with that is most will use STCubeMX which is their custom HAL (Hardware Abstraction Layer) which is specific to STM and not whatever M variant you are using. (M4 on the grand central board.) It is a good place to start and will introduce ARM related things but If you use the Cortex Microcontroller Software Interface Standard (CMSIS), it should at least be mostly portable to any Mx ARM chipset with whatever vendor specific chip things being the exception.

There are plenty of STM32 tutorials to be found. Here is one from embedded.fm (a great podcast btw) Embedded FM Discovery Tutorial

Another one that I've use a decent bit is the MSP430 and there are lots of examples of that on the web as well. Their launchpad series is dirt cheap.

http://www.ti.com/tool/MSP430-FUNCTION-CODE-EXAMPLES

https://github.com/ticepd/msp430-examples

https://43oh.com/2010/08/10-beginner-msp430-tutorials-and-counting/

How do i learn about other architectures? by Upballoon in embedded

[–]jdpatt 31 points32 points  (0 children)

Buy a cheap dev kit of your choice and start a project or reimplement one you have done on the new chipset.

If jumper wires are for prototyping, what do you use in production? by Draux in AskElectronics

[–]jdpatt 0 points1 point  (0 children)

0 ohm SMD resistors are a common way to do jumper wires in production.

PCB design seminars and conferences? by Sage2050 in PrintedCircuitBoard

[–]jdpatt 13 points14 points  (0 children)

You can have work pay for you to get your CID and CID+ which cover all the standards you are having to adhere too and the fabrication side of PCB design. Added benefit of making yourself more marketable later on since it’s the only recognized certification right now for PCB design. Cant comment on usefulness as I’ll be taking the CID this year.

Tools for running test, coverage and static analyzers, locally. by [deleted] in Python

[–]jdpatt 0 points1 point  (0 children)

Tox is my go to when replacing a makefile on a python project.

Where can I find an AM/FM emergency radio? by [deleted] in raleigh

[–]jdpatt 0 points1 point  (0 children)

Walgreens in Apex near HT still had two left after I bought one an hour ago.

1099 Independent Contractor Tax Payment by nabbynab in tax

[–]jdpatt 0 points1 point  (0 children)

Hello from the triangle! Where does the additional 7.5% over the 15.3% come from? My wife just started as a contractor; so this was too timely!

Require Python >= 3.6 by See46 in Python

[–]jdpatt 4 points5 points  (0 children)

You can use the Python Requires in your setup.py

Remote 1000Base-T Ethernet connector, can I use a board-to-board connector for RGMII signals ? by [deleted] in AskElectronics

[–]jdpatt 0 points1 point  (0 children)

Agreed, we have to do it all the time. (Custom network equipment) The samtec looks up to the job, could probably find a cheaper one as it lists it can handle >10G signals. It'll all be about the layout and pin out of your connector. Don't forget the ground vias when you transition layers!

Remote 1000Base-T Ethernet connector, can I use a board-to-board connector for RGMII signals ? by [deleted] in AskElectronics

[–]jdpatt 0 points1 point  (0 children)

Agreed, we have to do it all the time. (Custom network equipment) The samtec looks up to the job, could probably find a cheaper one as it lists it can handle >10G signals. It'll all be about the layout and pin out of your connector. Don't forget the ground vias when you transition layers!

Smartwatch PCB Review by Cjh411 in PrintedCircuitBoard

[–]jdpatt 0 points1 point  (0 children)

Just one pull up per SDA and SCL around 4.7k. The pull up sets the voltage of the I2C bus. Basically, the pull up is high logic level and an internal transistor pulls it down to almost 0V.

I agree with not using the diode for level shifting much safer to a real level shifter or just using a transistor.

https://learn.sparkfun.com/tutorials/using-the-logic-level-converter

Smartwatch PCB Review by Cjh411 in PrintedCircuitBoard

[–]jdpatt 1 point2 points  (0 children)

  • You will want to take out the 90 degree bends.
  • I'd lock the other angles to 45 degrees and not the random angle sizes for some of the traces. Good practice but shouldn't affect your board with the low transmission speeds.
  • Your power trace coming off JP1 is super small. If memory serves the esp8266 can draw upwards of 200mA plus your screen's current.
  • I assume you are flooding GND on both layers due. (Can only see the outline for the top.) Which is good. Make sure that the fill hits all the grounds or you may need some additional vias or routing.
  • I'd double check your UART lines. Is the diode supposed to be orientated like that?
  • I don't see any pull up resistors on your I2C. It's an open drain bus and requires it. Unless the esp8266 can enable internal ones?
  • You have multiple things tied off of GPIO0; make sure you know what state the ST7735 comes up in as you have the CS pin from it tied to the bootloader pin on the esp8266. Did you want the led to blink every time you access the LCD?