ATE-NIC project using Pyboard D-series and 20+ I2C
- IamSpartacus
- Posts: 6
- Joined: Tue Feb 09, 2021 10:22 am
ATE-NIC project using Pyboard D-series and 20+ I2C
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.
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.
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.
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.
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.
- pythoncoder
- Posts: 5956
- Joined: Fri Jul 18, 2014 8:01 am
- Location: UK
- Contact:
Re: ATE-NIC project using Pyboard D-series and 20+ I2C
Impressive, that looks like a major project.
Peter Hinch
Index to my micropython libraries.
Index to my micropython libraries.
-
- Posts: 969
- Joined: Sat Feb 03, 2018 7:02 pm
Re: ATE-NIC project using Pyboard D-series and 20+ I2C
awesome project! Thanks for sharing it!
Kevin Köck
Micropython Smarthome Firmware (with Home-Assistant integration): https://github.com/kevinkk525/pysmartnode
Micropython Smarthome Firmware (with Home-Assistant integration): https://github.com/kevinkk525/pysmartnode
- IamSpartacus
- Posts: 6
- Joined: Tue Feb 09, 2021 10:22 am
Re: ATE-NIC project using Pyboard D-series and 20+ I2C
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
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.
The FRAM is used to store Power-On-Hours, most recent datetimestamp, test statistics, ATE configuration, etc.
Left hand section contains I2C devices .... 4x LED-SmartButtons, 2x ambient light sensors, 4-20mA measurement
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.
The FRAM is used to store Power-On-Hours, most recent datetimestamp, test statistics, ATE configuration, etc.
- IamSpartacus
- Posts: 6
- Joined: Tue Feb 09, 2021 10:22 am
Re: ATE-NIC project using Pyboard D-series and 20+ I2C
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.
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 .
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
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.
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 .
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
- IamSpartacus
- Posts: 6
- Joined: Tue Feb 09, 2021 10:22 am
Re: ATE-NIC project using Pyboard D-series and 20+ I2C
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.
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.
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.
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.
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.
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.
Re: ATE-NIC project using Pyboard D-series and 20+ I2C
Nice Project!
Q: Why are you using an external RTC chip? Isn't the PYBD RTC good enough?
Q: Why are you using an external RTC chip? Isn't the PYBD RTC good enough?
- IamSpartacus
- Posts: 6
- Joined: Tue Feb 09, 2021 10:22 am
Re: ATE-NIC project using Pyboard D-series and 20+ I2C
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
- pythoncoder
- Posts: 5956
- Joined: Fri Jul 18, 2014 8:01 am
- Location: UK
- Contact:
Re: ATE-NIC project using Pyboard D-series and 20+ I2C
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.IamSpartacus wrote: ↑Tue Feb 09, 2021 9:16 pmMulled 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
Peter Hinch
Index to my micropython libraries.
Index to my micropython libraries.
- IamSpartacus
- Posts: 6
- Joined: Tue Feb 09, 2021 10:22 am
Re: ATE-NIC project using Pyboard D-series and 20+ I2C
Thankyou, will give it a try. It should kill two birds with one stone .... i.e.my SerLCD16x2 display back running too.