ATE-NIC project using Pyboard D-series and 20+ I2C

Showroom for MicroPython related hardware projects.
Target audience: Users wanting to show off their project!
User avatar
IamSpartacus
Posts: 6
Joined: Tue Feb 09, 2021 10:22 am

ATE-NIC project using Pyboard D-series and 20+ I2C

Post by IamSpartacus » Tue Feb 09, 2021 12:17 pm

A hearty hello to you all, this is my first posting. Also this is my first uPython project ... which is nearing (first stage) completion as a prototype unit for use at work.

Image

I'ts Automated Test Equipment (ATE) for use by our production department to test Non-Intrusive Current (NIC) sensors. Their existing test equipment is cumbersome, mandraulic and prone to (occasional) errors in record keeping and record preservation.
My magic ATE-NIC reduces unit test time from 2 ~ 3 minutes to under 20 sec and is paperless.

Unit under test is placed in bed of nails (LHS) and test current loop inserted. Serial number is entered on the keypad and (TEST) is pressed. Presto. Lots of white status lights flicker ... culminating with a solid green (PASS) or solid (RED) LED. The user needs to press the GREEN/RED LED button to 'accept' the result. Test Report incl. ATE health, date timestamp, test measurements, userID etc is saved to a .TXT file. These test results are, as needed uploaded to network via USB.

Future enhancements are to (a) print packing slip using central thermal printer, (b) support self-calibration, (c) add barcode scanner to auto-capture partNo & serialNo, (d) RFID detector to register UserID. The barcode scanner will reduce total unit test time to under 5 sec.

Image

Here the options available to the user is context sensitive w.r.t. user access permissions, e.g. Production, Production Manager, R&D, Guest.

Next posting I'll show the innnards.

User avatar
pythoncoder
Posts: 4935
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Re: ATE-NIC project using Pyboard D-series and 20+ I2C

Post by pythoncoder » Tue Feb 09, 2021 1:30 pm

Impressive, that looks like a major project.
Peter Hinch

kevinkk525
Posts: 868
Joined: Sat Feb 03, 2018 7:02 pm

Re: ATE-NIC project using Pyboard D-series and 20+ I2C

Post by kevinkk525 » Tue Feb 09, 2021 1:56 pm

awesome project! Thanks for sharing it!
Kevin Köck
Micropython Smarthome Firmware (with Home-Assistant integration): https://github.com/kevinkk525/pysmartnode

User avatar
IamSpartacus
Posts: 6
Joined: Tue Feb 09, 2021 10:22 am

Re: ATE-NIC project using Pyboard D-series and 20+ I2C

Post by IamSpartacus » Tue Feb 09, 2021 2:45 pm

As I'm a contractor (embedded systems) I need to leave the project in a state for others to maintain & develop it further. That's why I use Python so a good A-level or 1st year University computing course student will be able to maintian it. That all said, MicroPython and the current generation of silicon which supports it all has been ideal for my needs.

Left hand section contains I2C devices .... 4x LED-SmartButtons, 2x ambient light sensors, 4-20mA measurement

Image

The vero board contains power management, relays, and Test Current control (voltage, current & current direction) up to 1Amp 24VDC. The vero board is not mine, it's a bespoke design by our hardware engineers who are (in parallel) crafting it up as a single PCB about side of a cigarette packet.

The central and right hand sections are paired in what I term ATE-CORE. With ATE-CORE for another production device target testing I'll just substitute in a new LHS unit, patch it in and load alternate software build on ATE-CORE.

Here the Central section upper panel contains a thermal printer (not yet hooked up) . In the guts is the 240VAC transformer and I2C devices .... ADC 16bit x4, DAC 12bit x4, GPIOx8 and a FRAM 256Kbit. It's a bit scrappy in here as I'm tuning the ADC and DAC at the mo.

Image

The FRAM is used to store Power-On-Hours, most recent datetimestamp, test statistics, ATE configuration, etc.

User avatar
IamSpartacus
Posts: 6
Joined: Tue Feb 09, 2021 10:22 am

Re: ATE-NIC project using Pyboard D-series and 20+ I2C

Post by IamSpartacus » Tue Feb 09, 2021 3:55 pm

Innards of right hand section.
Pyboard D-series connected (WBUS) to main LCD160CR display. Other I2C devices are 16-key Keypad, several LED-Smartbuttons, Twist rotary encoder, Real Time Clock, and another GPIOx8. Besides the speed and memory of the Pyboard D-series the on-board Wifi/Bluetooth will be used to transfer test reports etc as an alternate to USB as now.

Image

Not yet connected/needed are some of the LED/Buttons, most of the toggle switches, a dual 10k pot slider and the 7-way joypad.
I deprecated a Sparkfun Joystick as although it was useful, it was just too big (and fragile) for its target environment. The 7-way pad is slick.

The secondary display (a LCD16x2 ... I2C addr 0x72 (114) ) was working just finea month ago but as I added more I2C devices it became moodier and moodier. On my layout it will just not coexist with the RTC I2C addr 0x32 (50). Have swapped it all in, out and about. I appreciate that as the I2C devices are sourced from Sparkfun, Adafruit, Seed Stuio, Grove each with their own bus pull up scheme and my bus cable lengths I'm amazed that so many works together as is .

Image

Adding in further devices will be over to our hardware engineers to do all of the bus capacitance measurements, resistor calculations and stuff ... but I'm just happy as so far I've been able to plug and play without lifting a soldering iron at all.

Here's a useful application report from Texas Instruments ... I2C Bus Pullup Resistor Calculation SLVA689 Feb 2015 https://www.ti.com/lit/an/slva689/slva689.pdf

User avatar
IamSpartacus
Posts: 6
Joined: Tue Feb 09, 2021 10:22 am

Re: ATE-NIC project using Pyboard D-series and 20+ I2C

Post by IamSpartacus » Tue Feb 09, 2021 4:21 pm

Appologies for the quaility of the LCD160CR screen images. I use the same colour schemes throughout, but taking photos with 'phone is hit and miss for me.

Won't bore you with all my MENU pages, but here's some other formats I use. This Serial Number (SNUM) parses each subfield for correct format e.g. last 4 digits are MMDD. The user uses the rotary / twist knob walks the focus, BLUE is valid data, RED is invalid and green is the current active field is ready to accept numbers.

Image

Just to keep tabs on the processor I'm tweeking this as I go. Memory usage is high as on power-up I display company logo as a splash screen JPEG. I have no need to conserve power so have highest clock rate set.

Image

If I went down th .MPY route then it'd easily fit into a Pyboard v1.1 .... but then the .MPY toolchain would be an additional complexity for my successor(s) to maintain. KISS principles must apply.

chuckbook
Posts: 129
Joined: Fri Oct 30, 2015 11:55 pm

Re: ATE-NIC project using Pyboard D-series and 20+ I2C

Post by chuckbook » Tue Feb 09, 2021 8:36 pm

Nice Project!
Q: Why are you using an external RTC chip? Isn't the PYBD RTC good enough?

User avatar
IamSpartacus
Posts: 6
Joined: Tue Feb 09, 2021 10:22 am

Re: ATE-NIC project using Pyboard D-series and 20+ I2C

Post by IamSpartacus » Tue Feb 09, 2021 9:16 pm

Mulled over that one for a while as Pyboard RTC is not battery backed. Simplest/cheapest option for me was to go for I2C device with battery ... SparkFun Real Time Clock Module - RV-8803

User avatar
pythoncoder
Posts: 4935
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Re: ATE-NIC project using Pyboard D-series and 20+ I2C

Post by pythoncoder » Wed Feb 10, 2021 5:56 am

IamSpartacus wrote:
Tue Feb 09, 2021 9:16 pm
Mulled over that one for a while as Pyboard RTC is not battery backed. Simplest/cheapest option for me was to go for I2C device with battery ... SparkFun Real Time Clock Module - RV-8803
It is. See this doc. Supply 1.65-3.6V on Vbat. I haven't tested this on a Pyboard D but I have four Pyboard 1.0 boards which have been running for several years with battery backed RTC's. The RTC on a Pyboard D is very precise, and it can be calibrated to achieve timepiece accuracy.
Peter Hinch

User avatar
IamSpartacus
Posts: 6
Joined: Tue Feb 09, 2021 10:22 am

Re: ATE-NIC project using Pyboard D-series and 20+ I2C

Post by IamSpartacus » Wed Feb 10, 2021 12:46 pm

Thankyou, will give it a try. It should kill two birds with one stone .... i.e.my SerLCD16x2 display back running too.

Post Reply