Bpi-uno how to program? communicate?


(James Head) #1

I have had one of these boards for about a year and a half. I got it, tried to find any sort of documentation on it and shelved it. Id there any documentation at all concerning interface and communication, i.e. “in order to communicate I2c, do xyz”? This seemed like someone finally married the two systems and then just walked away from it. The questions I have are:

  1. How do you program it? Is there an example?
  2. How do the two boards communicate? Is there and example?
  3. Where is the documentation?

(Hao Wang) #2

BPI-uno? a year and a half? what’s its MCU?


(bpi team) #3

please see here :

https://bananapi.gitbooks.io/bpi-accessories/content/en/unomodule.html


(James Head) #4

sinvoip, this gives a schematic diagram, but does not say anything on how to program the module. It seems similar to arduberry by dexter industries. I mean, you guys made the thing, you HAD to have someone there set it up, hook it up to a banana pi, program it and say, this works great, now lets sell them. So what was their process in doing so? I can program it using an arduino as the programmer, but that defeats the purpose of having the add-on module. The manual/datasheet you sent tells me how it is wired (sort of, it isnt accurate).

so my questions still stand unanswered:

How do you program it? Is there an example?
How do the two boards communicate? Is there and example?
Where is the documentation?

This comes from the document in the link you sent:

"Typical Application:

Automatic control
Arduino learning
Sensor control
3D printer controller
Laser cutter controller
Robot controller
Smart home"

So, do you have any examples of any of these? Did you program it from the Arduino IDE? If not, how did you program it?

Just a minute amount of documentation and examples open up this product to an audience that is larger by 10 fold. I would personally write up a tutorial or getting started manual, if I could get the information I asked for in the first place.

yelvlab,

it has ATmega328. its basically a little arduino that attaches to the pi across a 26 pin gpio header. (or 40).


(James Head) #5

To be fair, the schematic may be accurate. It is so small, it is illegible in some places, I have had to make educated guesses and just use my micrometer to figure it out.

I dont feel that I am asking too much.


(Hao Wang) #6

here’s a post on how to use it ,but it’s chineese


(James Head) #8

Thank you for the link. It says he gets it to program using /dev/ttyS2 and using the reset button. I dont know if you have evertried to porogram an Arduino that way…ever tried to catch a fly with chopsticks? But anyway, I do not get a /usb/ttyS2 when it is attached. I have an Arduberry as well and it is recognized right away and they are both wired the same in regards to their serial pins.

One thing that I found interesting is that the manual that sinoviop posted has a schematic image that is much larger that the ones on the net and I was able to see that DTR and SCLK are tied together on pin 23. checked with my multimeter and found that this is correct. I modified the avrdude conf file and tried to program it that way, but you cant tie the clock pin and the reset pin together and make this work. Any thoughts?

;


(James Head) #9

AVRDUDE output with Arduberry:

sudo avrdude -p atmega328p -C ~/avrdude_gpio.conf -c pi_1 -v

avrdude: Version 5.10, compiled on Jun 18 2012 at 12:38:29 Copyright © 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright © 2007-2009 Joerg Wunsch

     System wide configuration file is "/home/pi/avrdude_gpio.conf"
     User configuration file is "/root/.avrduderc"
     User configuration file does not exist or is not a regular file, skipping

     Using Port                    : unknown
     Using Programmer              : pi_1
     AVR Part                      : ATMEGA328P
     Chip Erase delay              : 9000 us
     PAGEL                         : PD7
     BS2                           : PC2
     RESET disposition             : dedicated
     RETRY pulse                   : SCK
     serial program mode           : yes
     parallel program mode         : yes
     Timeout                       : 200
     StabDelay                     : 100
     CmdexeDelay                   : 25
     SyncLoops                     : 32
     ByteDelay                     : 0
     PollIndex                     : 3
     PollValue                     : 0x53
     Memory Detail                 :

                              Block Poll               Page                       Polled
       Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
       ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
       eeprom        65     5     4    0 no       1024    4      0  3600  3600 0xff 0xff
       flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
       lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

     Programmer Type : GPIO
     Description     : Use the Linux sysfs interface to bitbang GPIO lines

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f avrdude: safemode: lfuse reads as FF avrdude: safemode: hfuse reads as DE avrdude: safemode: efuse reads as 5

avrdude: safemode: lfuse reads as FF avrdude: safemode: hfuse reads as DE avrdude: safemode: efuse reads as 5 avrdude: safemode: Fuses OK

avrdude done. Thank you.


(James Head) #10

AVRDUDE output with BPi-UNO I have changed the rst pin assignment to GPIO 11 since that is where the circuit takes me. BTW, these are done on an RPi 3.

sudo avrdude -p atmega328p -C ~/avrdude_gpio.conf -c BPi-UNO -v

avrdude: Version 5.10, compiled on Jun 18 2012 at 12:38:29 Copyright © 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright © 2007-2009 Joerg Wunsch

     System wide configuration file is "/home/pi/avrdude_gpio.conf"
     User configuration file is "/root/.avrduderc"
     User configuration file does not exist or is not a regular file, skipping

     Using Port                    : unknown
     Using Programmer              : BPi-UNO
     AVR Part                      : ATMEGA328P
     Chip Erase delay              : 9000 us
     PAGEL                         : PD7
     BS2                           : PC2
     RESET disposition             : dedicated
     RETRY pulse                   : SCK
     serial program mode           : yes
     parallel program mode         : yes
     Timeout                       : 200
     StabDelay                     : 100
     CmdexeDelay                   : 25
     SyncLoops                     : 32
     ByteDelay                     : 0
     PollIndex                     : 3
     PollValue                     : 0x53
     Memory Detail                 :

                              Block Poll               Page                       Polled
       Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
       ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
       eeprom        65     5     4    0 no       1024    4      0  3600  3600 0xff 0xff
       flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
       lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

     Programmer Type : GPIO
     Description     : Use sysfs interface to bitbang GPIO lines

avrdude: AVR device not responding avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check.

avrdude done. Thank you.