#avr | Logs for 2014-01-05

Back
[08:29:16] <The_Coolest> hey guys, does anyone have any experience with the 1284P and bootloaders? I'm trying to get USBASP loader to work on my chip. It uses V-USB. If I (compile and) flash it to offset 0 it works, but if I try to flash it as a bootloader with a 0x1F000 offset, it doesn't work as it's supposed to. I'm getting Unknown Device from Windows, but the code in 'main' seems to be running fine.
[08:29:42] <The_Coolest> Also when I compile and flash this bootloader on my 328P it works fine.
[08:52:44] <Jan-> I have a 328p with a bootloader already on it, but I probably can't be any help really :/
[08:53:24] <The_Coolest> yeah. I don't get it
[08:53:53] <Jan-> I have no experience actually putting bootloaders on things.
[08:54:05] <PoppaVic> The_Coolest: it flashes in both cases and runs, but the flasher whines in the offset-case?
[08:54:20] <The_Coolest> no
[08:54:27] <The_Coolest> everything is flashed properly
[08:54:45] <The_Coolest> it just doesn't work as a bootloader, Windows says Unknown Device instead of USBasp
[08:54:57] <PoppaVic> huh
[08:54:58] <Jan-> um, er.
[08:55:19] <Jan-> sounds like the problem is in how it's being flashed
[08:55:30] <The_Coolest> nah
[08:55:31] <Jan-> unless it's a hardware problem on your 168
[08:55:58] <The_Coolest> flashed it with both a usbasp and a arduinoisp, both are fine.
[08:56:10] <The_Coolest> it's not a 168
[08:56:17] <Jan-> er, whatever it is that isn't the 328
[08:56:35] <Jan-> is it possible it's just borked
[08:56:44] <The_Coolest> doubt it
[08:56:54] <Epsilon-Auriga> is there something in the code that doesn't like the 1284 bootloader section?
[08:57:28] <The_Coolest> Epsilon-Auriga if there is I can't see it. what's the difference code wise?
[08:57:59] <Epsilon-Auriga> shouldn't be much but I suspect a setup on the 1284 being an issue.
[08:58:03] <PoppaVic> hmm.. Well, you got the relative-address issues, and you got the bits and bytes and fuses issues.
[08:59:54] <The_Coolest> fuses are correct, as it boots into the bootloader ok.
[09:00:56] <Epsilon-Auriga> I would check with the vusb guys.
[09:01:06] <PoppaVic> Makes me wonder if it relocated the identity bytes somewhere
[09:04:18] <The_Coolest> Epsilon-Auriga I used some newer source code of this bootloader and the v-usb part actually worked correctly.
[09:04:57] <The_Coolest> so I'm pretty sure this isn't a v-usb issue. It's probably something stupid that I'm missing
[09:05:09] <Epsilon-Auriga> "used some newer code" ??? you mean you modified the code?
[09:05:25] <The_Coolest> yes, there's a github fork
[09:05:39] <Epsilon-Auriga> oh.
[09:05:42] <The_Coolest> but it has a few other issues and downsides, so I want to use the old one
[09:06:10] <Epsilon-Auriga> vusb in general has issues and downsides...but that's beside the point.
[09:06:27] <Epsilon-Auriga> Sorry, but no clue...I suggest asking the guys at obdev.
[10:06:57] <The_Coolest> i think i found it
[10:07:08] <The_Coolest> it's a config in v-usb... :\
[10:09:34] <PoppaVic> oh?
[10:10:43] <The_Coolest> and of course that was it
[10:10:50] <The_Coolest> USB_CFG_DRIVER_FLASH_PAGE
[10:10:58] <PoppaVic> And?
[10:11:03] <The_Coolest> works
[10:11:08] <PoppaVic> ahh, the offset/page value?
[10:12:38] <The_Coolest> yes
[10:12:54] <The_Coolest> Gonna flash it now and see if it works.
[10:13:15] <The_Coolest> i flashed a test firmware as bootloader and it was fine
[10:13:31] <The_Coolest> now testing the actual bootloader that I want
[10:13:40] <PoppaVic> gotta' mark/comment hell outta that ;-)
[10:13:58] <The_Coolest> it's in usbconfig.h
[10:14:09] <The_Coolest> #define USB_CFG_DRIVER_FLASH_PAGE (FLASHEND >> 16)
[10:14:16] <The_Coolest> hmmm.
[10:14:26] <The_Coolest> hold on.
[10:14:38] <The_Coolest> that will only work for bootloader config
[10:15:20] <The_Coolest> yep it works now :D
[10:15:23] <The_Coolest> finally. :D
[10:15:56] <PoppaVic> Make sure you write it up and save the next poor SOB ;-)
[10:16:15] <The_Coolest> write it up where?
[10:16:30] <Jan-> are switch statements any faster than a bunch of ifs, or does it compile down to the same thing
[10:16:32] <PoppaVic> gods know - the arduino blogs? avr blogs?
[10:16:45] <The_Coolest> #avr logs should suffice :P
[10:17:08] <PoppaVic> The_Coolest: I doubt it. But, whatever
[10:18:04] <The_Coolest> I know
[10:18:14] <The_Coolest> but I don't know where I should even mention this
[10:18:50] <The_Coolest> it should be straight forward, I'm just dumb for not going over the usbconfig.h file properly.
[10:21:19] <The_Coolest> This is what I did PoppaVic http://pastebin.com/5x5rSfHb
[10:22:22] <The_Coolest> #else, not #elif
[10:41:28] <The_Coolest> PoppaVic http://forum.arduino.cc/index.php?topic=205322.msg1533994#msg1533994
[10:43:28] <PoppaVic> good deal
[14:33:35] <_abc_> can someone tell if stk500 always uses 115kbauds?
[14:33:42] <_abc_> Or does it autobaud for some reason?
[14:33:57] <_abc_> I have code for a stk500 clone which autobauds but I do not like the idea
[16:06:42] <bighead123> Hi folks, I need to build AVR 16 bit wav player from Micro SD as soon as I can, promised to my girl to build one for her and now I have to make it anyway
[16:07:57] <bighead123> I have no any ATtiny-s, I want to rewrite this http://elm-chan.org/works/sd8p/report.html for ATMEGA88
[16:10:27] <Epsilon-Auriga> bighead123: so, what's the problem?
[16:11:21] <bighead123> Epsilon-Auriga: don't understand how to build this project at all? there is a few makefiles and no one got worked
[16:11:31] <bighead123> http://elm-chan.org/works/sd8p/rc/sd8psrc.zip
[16:12:28] <The_Coolest> Epsilon-Auriga did you see that i found the problem :P
[16:12:36] <Epsilon-Auriga> The_Coolest: yeah.
[16:12:40] <bighead123> Epsilon-Auriga: how to build it for this scheme http://elm-chan.org/works/sd8p/rc/sd8p_hr.png ?
[16:13:13] <bighead123> i.e. seems I need to build "Makefile_hr" makefile
[16:13:20] <Epsilon-Auriga> bighead123: you will have to rewire to fit the chip you want.
[16:13:30] <Epsilon-Auriga> what chip are you planning on using?
[16:13:53] <The_Coolest> Epsilon-Auriga>> heh, well now on to a new challenge. My bootloader now is 2186 bytes, I want it to be at or under 2048. I doubt I'll be able to do it without a crap load of optimization/assembly which I can;t do
[16:14:23] <bighead123> Epsilon-Auriga: ATMEGA88, but at first I need to build project http://elm-chan.org/works/sd8p/rc/sd8psrc.zip as is
[16:15:16] <bighead123> Epsilon-Auriga: and I don't know how to build, just running "make" in project dir, does nothing
[16:15:33] <Epsilon-Auriga> what error do you get?
[16:16:51] <bighead123> just for "make" >> make: *** No targets specified and no makefile found. Stop. and for "make Makefile_hr" make: Nothing to be done for `Makefile_hr'
[16:17:18] <bighead123> Epsilon-Auriga: didn't understand how to build this project at all
[16:17:34] <Epsilon-Auriga> do make clean first
[16:17:46] <Epsilon-Auriga> then make Makefile_hr
[16:19:43] <Epsilon-Auriga> when it says nothing to be done then it means the output files are there already.
[16:20:10] <Epsilon-Auriga> you have to do a make clean, assuming your makefile has the clean, to get it to clean things out so a make can rebuild things.
[16:20:20] <Epsilon-Auriga> might want to just rename makefile_hr to makefile
[16:20:23] <Epsilon-Auriga> makes life easier.
[16:21:40] <bighead123> Epsilon-Auriga: Added AVR toolchain /bin folder to PATH, renamed makefile_hr to makefile and moved folder on system volume in folder named "prg"
[16:21:56] <bighead123> Epsilon-Auriga: and at least got error
[16:22:30] <bighead123> main.c: In function 'play':
[16:22:30] <bighead123> main.c:164:2: warning: passing argument 2 of 'xsprintf' from incompatible pointer type [enabled by d
[16:22:30] <bighead123> efault]
[16:22:30] <bighead123> In file included from main.c:22:0:
[16:22:30] <bighead123> xitoa.h:52:6: note: expected 'const int *' but argument is of type 'const char *'
[16:22:31] <bighead123> make: *** [obj_hr/main.o] Error 1
[16:22:37] <Epsilon-Auriga> compiled fine for me.
[16:23:03] <Epsilon-Auriga> using avr-gcc 4.3.3
[16:23:39] <The_Coolest> [00:06] <bighead123> xitoa.h:52:6: note: expected 'const int *' but argument is of type 'const char *'
[16:23:41] <Epsilon-Auriga> and I just grapped that zip file, extracted, copied makefile_hr to makefile
[16:23:58] <Epsilon-Auriga> and ran make.
[16:27:38] <Epsilon-Auriga> porting that code from the attiny85 to the atmega88 is gonna be lots of fun though.
[16:28:01] <Epsilon-Auriga> because the core of the software is writtein in assembly for the attiny85 with a USI, which the atmega88 does not have.
[16:29:31] <bighead123> heh, I noticed that too, what to do?
[16:30:02] <Epsilon-Auriga> well, unless you have read and understand both attiny85 and atmega88 datasheets and know avr assembly, time to start learning.
[16:30:34] <Epsilon-Auriga> or you could find someone to convert it for you.
[16:32:00] <bighead123> I want to use 16bit pwm (atmega88 has one such), I know Assembler fine and read already datasheets too, but I need some actually sparkling ideas how to make this in one day or two
[16:32:48] <Epsilon-Auriga> start converting.
[16:32:54] <Epsilon-Auriga> or, write it from scratch.
[16:35:10] <bighead123> heh, right, seems there is no easier way :D
[16:36:57] <Epsilon-Auriga> to convert this project from attiny85 to atmega88, you will have to rewrite some of those assembly routines....there is no magic POOF way to convert them.
[16:37:12] <Epsilon-Auriga> I suppose you could pray and hope god converts it but that might take a couple thousand years.
[16:37:45] <bighead123> nop, anyway that would be harder then just writing it from scratch
[16:37:50] <Epsilon-Auriga> the biggest issue between the two chips is the SPI communications system.
[16:38:08] <Epsilon-Auriga> on the attiny85 it is an USI..universal serial interface.
[16:38:09] <bighead123> all I need is to out 16 bit value to PWM
[16:38:17] <Epsilon-Auriga> on the atmega88 there is actual SPI hardware.
[16:38:23] <Epsilon-Auriga> the
[16:38:36] <Epsilon-Auriga> the SPI interface is used for talking to the SD card.
[16:39:14] <bighead123> I know how to use fatfs with SD, I just don;t know audio part
[16:39:26] <Epsilon-Auriga> that is also in that assembly file..
[16:39:34] <Epsilon-Auriga> asmfunc.S
[16:39:34] <bighead123> never used atmegas pwm too
[16:39:38] <Epsilon-Auriga> way at the bottom.
[16:40:00] <Epsilon-Auriga> that's your second issue....the timer and pwm on the two chips is likely setup and run somewhat differently.
[16:41:47] <Epsilon-Auriga> two parts...part 1 is filling the audio fifo...part 2 is an interrupt that reads the fifo and sets the pwm output.
[16:42:32] <bighead123> no, I can use pwms in general after a few hours of learning, but I don't understand a few things there, PWM is set to WAV sample rate frequency? i.e. 48khz?
[16:44:34] <Epsilon-Auriga> I have no clue on that....
[16:44:43] <Epsilon-Auriga> I haven't read the article
[16:46:33] <bighead123> Seems actually I need to out 16 bit value to PWM but, don't understand if this works so simple and fine, why are not using PWMs instead of DACs everywhere?
[16:48:23] <Epsilon-Auriga> saves hardware.
[16:48:40] <Epsilon-Auriga> I might recommend reading some articles on PWM audio generation.
[16:49:10] <bighead123> how it saves hardware, dacs cost usually much more than pwms
[16:49:21] <bighead123> that's right
[16:57:49] <myself> PWMs have poor linearity and dynamic range
[17:07:47] <tzanger> anyone have a sonsivri invite?
[17:13:25] <Epsilon-Auriga> tzanger: never heard of sonsivri.
[19:38:06] <abcminiuser> If I was to make a LUFA getting started video, what should be in it?
[19:39:05] <Epsilon-Auriga> abcminiuser: english?
[19:39:11] <abcminiuser> :P
[19:39:31] <atom1> you
[19:39:51] <carabia> your shades for one
[19:39:52] <atom1> i think it would take a whole series of videos
[19:40:02] <DarkSector> Hey guys, so according to this https://www.sparkfun.com/datasheets/DevTools/AVR/ATmega128RFA1%20Dev%20Board-v11.pdf The XTAL is connected to a 16MHz crystal. Does it means its an external clock or transceiver oscilator
[19:40:09] <abcminiuser> I'm thinking a quick start video for the AS extension
[19:40:10] <DarkSector> I am tyring to understand what the fuses have to be
[19:40:27] <abcminiuser> "Here's how to make a demo, how to install the help, configure the modules, etc"
[19:40:27] <Epsilon-Auriga> if it says crystal then it's a crystal, not an oscillator.
[19:41:33] <carabia> the intro should be a horatio style shades: on with the who on the background
[19:41:35] <Epsilon-Auriga> DarkSector: I see no connections.
[19:42:16] <abcminiuser> No face, screencast only :P
[19:42:17] <DarkSector> Okay so how do I get a clock of more than 1MHz?
[19:42:49] <carabia> you set the fuse to use the external xtal
[19:42:55] <Epsilon-Auriga> hook up a crystal and set the fuses to external crystal.
[19:43:22] <carabia> and your xtal is >1mhz
[19:43:43] <carabia> derrrp...
[19:44:33] <Epsilon-Auriga> aahh,,there's connections now..
[19:44:34] <DarkSector> Epsilon-Auriga, No connection? https://www.sparkfun.com/datasheets/DevTools/AVR/ATmega128RFA1%20Dev%20Board-v11.pdf
[19:44:34] <carabia> i took a peak into my magic 8ball and i5 said theee would be a smoking mega1284 in the near future
[19:44:49] <DarkSector> It's on XTALs with two capacitors
[19:44:50] <Epsilon-Auriga> DarkSector: that pdf is damaged...firefox doesn't seem to work with it.
[19:45:04] <DarkSector> Uh, it's off sparkfun's website
[19:45:09] <DarkSector> https://www.sparkfun.com/products/9734
[19:45:13] <carabia> peek*
[19:45:14] <DarkSector> Schematic
[19:45:34] <Epsilon-Auriga> so, you set the fuses for external high speed crystal.
[19:45:47] <N2TOH> sparkfun is considering the 1284p
[19:46:04] <Epsilon-Auriga> and turn off the prescaler.
[19:46:07] <carabia> the slow startup is ur best bet
[19:46:54] <carabia> what did u guys do to beaky
[19:46:56] <DarkSector> Okay, so this is not right. I don't see an option for external crystal in the fuses http://www.engbedded.com/fusecalc
[19:48:04] <Epsilon-Auriga> apparently it's called transciever oscillator t
[19:48:06] <Epsilon-Auriga> there.
[19:48:25] <DarkSector> Ah!
[19:48:27] <DarkSector> That
[19:48:40] <DarkSector> That was what I was wondering. It's not mentioned in the Datashee either
[19:48:52] <DarkSector> I mean it's not called external oscillator
[19:49:17] <Epsilon-Auriga> if you select atmega128a then you see the external oscillator.
[19:49:40] <Epsilon-Auriga> but the atmega rf thingie is different.
[19:49:53] <DarkSector> Oh damn okay
[19:50:10] <Epsilon-Auriga> it will be in the datasheet,,,what the fuses should be set to.
[19:50:34] <DarkSector> Yeah, I saw that. But it was for transceiver clock so that got me confused
[19:50:55] <DarkSector> You also mentioned slow startup time would be better. But it says if I were to enable BOD then that could be avoided?
[19:50:59] <DarkSector> Is that correct?
[19:51:45] <Epsilon-Auriga> BOD and slow startup are different things....granted, enabling BOD will solve the problem of startup with slow ramp up power..
[19:52:40] <DarkSector> I see. Okay, so I will enable the BOD but I will keep the startup time high as well
[19:52:47] <DarkSector> Just to be safe
[19:54:54] <DarkSector> Wow, there are so many questions I have. I hope I am not annoying you guys with this
[19:55:29] <Epsilon-Auriga> that RF chip is a bit more complex than your average avr.
[19:56:33] <DarkSector> Well I have to get it working. So onwards
[19:59:56] <Epsilon-Auriga> read the datasheet.
[19:59:59] <Epsilon-Auriga> it's all in there.
[20:00:24] <Epsilon-Auriga> clock info starts on page 150 of the datasheet.
[20:01:06] <DarkSector> yeah going through it now
[20:04:05] <DarkSector> Okay stupid question but what does 16K CK imply?>
[20:04:14] <DarkSector> I mean CK what is that?
[20:04:29] <Epsilon-Auriga> clock.
[20:04:38] <Epsilon-Auriga> what page?
[20:04:54] <DarkSector> Pg 154 - 155
[20:05:05] <DarkSector> Startup time from power down and power save
[20:05:18] <Epsilon-Auriga> that's the number of clock cycles.
[20:05:46] <DarkSector> Okay so it forgoes 16K clock cycles before beign stable?
[20:05:55] <Epsilon-Auriga> 16K CK would be 16000 clock cycles.
[20:06:31] <Epsilon-Auriga> so if you want BOD on and long startup time, go with cksel0 of 1 and sut1:0 of 01
[20:07:04] <DarkSector> OKay what abotu CKSEL3:1 then?
[20:07:08] <DarkSector> It mentions only CKSEL0
[20:07:14] <DarkSector> Do the others have to be 0?
[20:07:44] <DarkSector> All CKSEL fuse values have the same significance
[20:07:50] <DarkSector> So 0001
[20:08:09] <DarkSector> and CKDIV8 should be 0 to turn the prescaler off
[20:10:34] <DarkSector> Okay so this is the value I have used -U lfuse:w:0xe7:m -U hfuse:w:0xd9:m -U efuse:w:0xfe:m
[20:10:51] <Epsilon-Auriga> did you double check that on the fuse calc page?
[20:10:54] <DarkSector> Yeah
[20:11:18] <DarkSector> E7 D9 FE
[20:12:13] <DarkSector> So now what should my F_CPU be? 16000000UL? Or does it still has to be divided by 8? Even though CKDIV8 is 0
[20:13:32] <Epsilon-Auriga> you set F_CPU to whatever the clock speed is driving the core....if you have clock divider prescaler off then it gets the full 16MHz of the crystal oscillator.
[20:15:46] <DarkSector> Sweet, so now it's 16MHz with 16K CK + 4ms SUT and BOD at 1.8 V and 4096 Bytes of programmable memory
[20:16:00] <DarkSector> Now, I need to figure out how to send and receive basic data through RF
[20:16:07] <DarkSector> Thanks Epsilon-Auriga
[20:16:28] <Epsilon-Auriga> programmable memory?
[20:16:35] <Epsilon-Auriga> I thought it had 128K of flash.
[20:16:57] <DarkSector> sorry 4096 words boot flash section size
[20:17:11] <Epsilon-Auriga> you might double check those fuses...
[20:17:34] <DarkSector> Uh okay, why so?
[20:17:41] <DarkSector> Do you see any issues?
[20:17:53] <Epsilon-Auriga> what BOD level did you select?
[20:18:04] <DarkSector> VCC at 1.8 V
[20:18:07] <Epsilon-Auriga> and do you want on chip debug or jtag enabled?
[20:18:20] <DarkSector> Not now
[20:18:32] <DarkSector> Right now I am just programming using SPI, no JTAG
[20:18:44] <Epsilon-Auriga> I get FC D8 FE
[20:18:54] <carabia> does anyone know how low can you discharge lifepos?
[20:19:24] <DarkSector> Epsilon-Auriga, FC D8 FE leaves clock unprogrammed
[20:19:25] <Epsilon-Auriga> carabia: several ways,,some safe, some not...
[20:20:05] <carabia> what?
[20:20:12] <Epsilon-Auriga> leaves which clock unprogrammed?
[20:20:40] <Epsilon-Auriga> carabia: short it with a piece of heavy wire..it will discharge...energetically.....
[20:21:00] <Epsilon-Auriga> carabia: or use a large resistor and do it slowly.
[20:21:13] <carabia> thats what
[20:21:22] <Epsilon-Auriga> carabia: but don't listen to me because I know jack squat about lithium batteries except how to blow them up.
[20:21:27] <carabia> thats not what i asked
[20:21:36] <DarkSector> I am using this calculator http://www.engbedded.com/fusecalc when you have FC D8 FE, it shows the clock option as unprogrammed
[20:21:42] <Epsilon-Auriga> oh...sorry,,,missed the low.
[20:21:46] <carabia> i know how to discahrge even lipos safely
[20:22:23] <carabia> i meant how low a voltage can you discharge the cell so it will still charge back up
[20:22:40] <DarkSector> Also, BOOTRST is selected
[20:22:46] <Epsilon-Auriga> oops...misstype...F7 D8 FE
[20:23:27] <DarkSector> Yeah when D8, BOOTRST is selected, I don't want that, right? I mean I am not using a bootloader
[20:23:55] <Epsilon-Auriga> then why select 4K of bootloader memory?
[20:24:10] <Epsilon-Auriga> aahh..nevermind...it's irrelevant.
[20:24:26] <Epsilon-Auriga> so turning bootrst off gives you all the memory for program.
[20:24:36] <DarkSector> Also, I am using 4.1ms not 65 ms startup time
[20:24:44] <DarkSector> Yeah, BOOTRST off
[20:24:51] <Epsilon-Auriga> go for it.
[20:24:57] <DarkSector> Awesomeness
[20:24:58] <DarkSector> Thanks
[20:25:24] <carabia> all the stuff i find of lifepos are from rc forums and they know jack shit
[20:27:08] <carabia> its "look guis more mah means more time and torque(?) and more s meanz more pwr!!! woot"
[20:27:53] <myself> carabia: the cell datasheet will tell you that and is the only source you should trust
[20:28:06] <myself> if your battery supplier can't give you datasheets, find a new supplier
[20:29:02] <carabia> hard to track them. and you can either buy packs from rc suppliers or china
[20:29:05] <carabia> mostly
[20:29:52] <carabia> some suppliers then sell large batches
[20:30:53] <carabia> which i dont need. and usually there are ballpark figures for lithium-x cells within a few 1/10 volts
[20:32:45] <carabia> some say you cn run them flat
[20:33:38] <carabia> i.e my dcdc step up would give it a sort of a limit but i wouldnt have to worry abt damaging the cell
[20:35:12] <myself> some chemistries are more tolerant of that than others, but in general, lithium should *never* be run flat. that's how you get metallic tendrils growing between the plates, and that shorts things out and blows things up.
[20:35:29] <myself> that and overcharging
[20:35:44] <PoppaVic> run them flat, and you better plan to buy more ;-)
[20:47:44] <DarkSector> Okay, so can I have 2 ATMega128RFA1 communicate each other? Sending simple ASCII data? Or do I need Bitcloud for that?
[20:48:01] <PoppaVic> huh?
[20:48:04] <myself> Nope. Radios generally can't communicate with other radios.
[20:48:18] <PoppaVic> I thought they held books down.
[20:48:34] <DarkSector> Eh?
[20:48:36] <myself> I use Miss Anatasia to communicate with my 128RFA1's.
[20:48:45] <myself> She costs a lot though, so I usually just run wires.
[20:49:39] <DarkSector> myself, wait, radios can't communicate with other radios? Sorry, are you being sarcastic?
[20:50:00] <myself> It turns out that sometimes, indeed, there are stupid questions.
[20:50:12] <DarkSector> Ah
[20:50:14] <DarkSector> Hehe
[20:50:21] <DarkSector> Thanks myself
[20:50:24] <myself> Any time!
[20:51:20] <myself> I'm surprised that the chip's demo code doesn't immediately have you run the code on two units and then demonstrate communication between them. That's, like, the most basic function of an RF-enabled thing.
[20:52:09] <PoppaVic> that was my plan, if I got transcievers.
[20:52:19] <PoppaVic> and text is simple and debuggable
[20:52:42] <PoppaVic> once THAT proves out, using binary makes sense if the density/speed is required.
[20:52:44] <DarkSector> Yeah, I can't find any sample code that works out of the box, so I am trying to read the datasheet to get basic communication working