2982RE: [Raspberry_Pi_4-Ham_RADIO] Latest TNC-Pi documentation?
- Mar 26, 2014
I’m glad I’m not the only one who had problems with this –
“Out of the box”, my TNC-PI was “deaf and dumb” to the Async interface – it wouldn’t do anything. When I loaded up the I2C diagnostics and modules, I was able to look at the I2C bus and found it as device 3. Once I SET things correctly, I can use the TNC-PI through the async interface just fine.
Very much, thank you.
I think two things threw me off. One was that my device was at bus 1 device 3, when the documentation said it would be at 0-0. The other thing was my incorrect assumption that since this is a KISS device, config would always happen over i2c, even when the async serial port is used for data.
The tool was giving a different error message for device 0 than for a valid i2c address where there was no device. My assumption that config was always over i2c had me concerned I would no longer be able to configure it once at address 0, but more likely the different error message was due to failure to get a response on the serial port instead of not finding the i2c device. The tool must send some escape sequence over the serial port to send configuration.
I understood the concept of changing i2c addresses, it was the handling of address 0 where I was confused.
I am currently set at address 5, the difference in error messages here concerned me, but it all makes sense now:
root@raspberrypi:/home/pi/tnc-pi# ./pitnc_getparams 1 3
poll failed: Input/output error
root@raspberrypi:/home/pi/tnc-pi# ./pitnc_getparams 1 0
On Mar 25, 2014, at 10:58 AM, Tadd Torborg <tadd@...> wrote:
It is important to discuss the difference between an I2C device and an async device. The device address # 3 (or greater) limitation is an I2C limitation. I2C is multi-drop, meaning you can have many TNC-PI stacked. The TNC-PI defaults to being async and you can only have one of those on the Raspberry PI at a time. I2C devices show up on the I2C bus which has a different bus # than the I2C bus. Both are addressable using the tncpi_setparams and getparams applications.
So.. your TNC-PI should be at 0 0 until you assign it an I2C address at which point it takes whatever address you gave it. After you assign it an I2C address, and then reboot the TNC-PI it will be an I2C device and will show up on the I2C bus scan (I can't remember the terminology -- I'm at the office and don't have one handy).
pitnc_getparams 0 0 is asking for parameter dump from the TNC-PI on the async bus.
pitnc_getparams 1 3 is asking for parameter dump from the TNC-PI on the i2c bus at address #3.
pitnc_setparams 1 3 1 15 will write to I2C bus#1 to address #3 to parameter #1 and set it to 15 hex. I don't remember the parameter numbers off hand but that's the general idea. If you do a getparams the response will tell you the parameter numbers and current values.
If you address the TNC-PI as an I2C device and set its address back to 0, I suspect it will now be an async device on bus 0 device 0 again.
From your email it sounds like the TNC-PI was already set to I2C address 3 when you put it together?
Does this help?
Tadd/KA2DEW in Raleigh NC USA
On Mar 25, 2014, at 10:45 AM, mcarland@... wrote:
Just built a TNC-Pi, was up until the wee hours figuring out it was at bus 1 device 3 and not 0-0 per the documentation. I see at least one other on this list had the same problem.
Is there a source of updated documentation for it? My Pi would get angry if I forced it to poll device 0, would freeze on reboot. The i2c-tools seem to want to start at device 3 unless you override it. I am concerned if I change the TNC-Pi to use device zero to use the async port, that I will no longer be able to communicate with it via pitnc-setparams at device 0. Or if I change it to zero, will it use the async port, but still take commands as device 3?
- << Previous post in topic Next post in topic >>