# Python2 I2C commands fail

**URL:** <https://discuss.blues.com/t/python2-i2c-commands-fail/96>\
**Category:** Notecard API\
**Created:** [January 12, 2021, 2:02am UTC](https://discuss.blues.com/t/python2-i2c-commands-fail/96 "2021-01-12T02:02:52Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Francois](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.blues.com/francois/32/15_2.png) [@Francois](https://discuss.blues.com/u/Francois)\
**Post date:** [January 12, 2021, 2:02am UTC](https://discuss.blues.com/t/python2-i2c-commands-fail/96/1 "2021-01-12T02:02:52Z")

</div>

serial-example.py works fine when toggling the Notecarrier Hat switch for UART to ON

The issue is when trying over I2C  
i2cdetect -y 1 shows that port 17 is available

Using the GitHub unchanged notecard.py and i2c-example.py the response is  
_“Transaction error: line 49: Exception: notecard request or response was lost”_  
This appears right after the “Performing transactions”, so in the line  
_rsp = card.Transaction(req)_

req is {“req”:“card.status”} but the same error occurs when switching to {“req”:“card.version”}

---

<div class="post-metadata">

**Author:** ![bsatrom](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.blues.com/bsatrom/32/3_2.png) [@bsatrom](https://discuss.blues.com/u/bsatrom)\
**Post date:** [January 12, 2021, 2:25pm UTC](https://discuss.blues.com/t/python2-i2c-commands-fail/96/2 "2021-01-12T14:25:22Z")

</div>

Hey @Francois, I’ll take a look and see if I can reproduce this issue today.

---

<div class="post-metadata">

**Author:** ![bsatrom](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.blues.com/bsatrom/32/3_2.png) [@bsatrom](https://discuss.blues.com/u/bsatrom)\
**Post date:** [January 12, 2021, 9:07pm UTC](https://discuss.blues.com/t/python2-i2c-commands-fail/96/3 "2021-01-12T21:07:10Z")

</div>

Hey @Francois thanks again for posting this. Those examples still had some old garbage attributes in the `card.status` request, which was the cause of the issue. I’ve removed those and verified on a pi on my desk that they are working.

---

<div class="post-metadata">

**Author:** ![Francois](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.blues.com/francois/32/15_2.png) [@Francois](https://discuss.blues.com/u/Francois)\
**Post date:** [January 12, 2021, 9:36pm UTC](https://discuss.blues.com/t/python2-i2c-commands-fail/96/4 "2021-01-12T21:36:38Z")

</div>

@bsatrom it works with a simple card.status or  
{“req”:“file.changes”,“file”:“vitals.qo”}  
but it doesn’t with a longer command like  
{“req”: “note.add”,“file”:“vitals.qo”,“body”:{“date”: 1610449350,“mac”: “a4:c1:38:cf:08:f0”,“type”: “scale”,“unit\_measurement”: “kg”,“weight\_result”: 677}}

the longer command above works in serial

---

<div class="post-metadata">

**Author:** ![Francois](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.blues.com/francois/32/15_2.png) [@Francois](https://discuss.blues.com/u/Francois)\
**Post date:** [January 13, 2021, 9:34pm UTC](https://discuss.blues.com/t/python2-i2c-commands-fail/96/5 "2021-01-13T21:34:57Z")

</div>

@bsatrom update: the following steps were required to fix the issue:

1. replace entirely the older version of notecard\_pi.py by the currently posted notecard.py on GitHub – replacing just the OpenI2C function with the code shown in the GitHub example is not enough – long commands will fail or maybe it was:
2. upgrade firmware to 12332 from 12220

---

<div class="post-metadata">

**Author:** ![bsatrom](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.blues.com/bsatrom/32/3_2.png) [@bsatrom](https://discuss.blues.com/u/bsatrom)\
**Post date:** [January 13, 2021, 10:01pm UTC](https://discuss.blues.com/t/python2-i2c-commands-fail/96/6 "2021-01-13T22:01:21Z")

</div>

Thanks @Francois I am fairly confident it was the 12332 upgrade as I was able to repro your issue yesterday with a vanilla Pi and new Pi Kit. Glad that did the trick!
