Unable to establish connection to Arduino

Support for C series TVs that all user could ask. Please do not ask a questions at other forums.
Post Reply

AmbiZOL
Posts: 11
Joined: Sat Jan 04, 2014 4:55 pm

Unable to establish connection to Arduino

Post by AmbiZOL »

I have a problem connecting my Arduino to UE46C7000 hacked over hotel mode. Here is an output of dmesg | tail
SpoilerShow
input: Arduino LLC Arduino Leonardo as /class/input/input0
input: USB HID v1.01 Mouse [Arduino LLC Arduino Leonardo] on usb-ohci-sdp-1
not supported device connected Manufacturer: Arduino LLC Product : Arduino Leonardo
usb 4-1: USB disconnect, address 2
Manufacturer: Arduino LLC Product : Arduino Leonardo
usb 4-1: new full speed USB device using ohci-sdp and address 3
usb 4-1: configuration #1 chosen from 1 choice
input: Arduino LLC Arduino Leonardo as /class/input/input1
input: USB HID v1.01 Mouse [Arduino LLC Arduino Leonardo] on usb-ohci-sdp-1
not supported device connected Manufacturer: Arduino LLC Product : Arduino Leonardo
there should be a new entry at /dev/ttyACM0 but it's not. I even cross compile cdc-acm.ko insmod it but still no result and the same output.
AmbiZOL
Posts: 11
Joined: Sat Jan 04, 2014 4:55 pm

Re: Unable to establish connection to Arduino

Post by AmbiZOL »

Ok I've added supported devices list from "Big" Linux. Recompiled cdc-acm.ko. Now there are some inspiring messages from dmesg | tail
SpoilerShow
usb 4-1: USB disconnect, address 2
Manufacturer: Arduino LLC Product : Arduino Leonardo
usb 4-1: new full speed USB device using ohci-sdp and address 3
usb 4-1: configuration #1 chosen from 1 choice
drivers/usb/class/cdc-acm.c: This device cannot do calls on its own. It is no modem.
cdc_acm 4-1:1.0: ttyACM0: USB ACM device
input: Arduino LLC Arduino Leonardo as /class/input/input1
input: USB HID v1.01 Mouse [Arduino LLC Arduino Leonardo] on usb-ohci-sdp-1
not supported device connected Manufacturer: Arduino LLC Product : Arduino Leonardo
But there is still no /dev/ttyACM0 in a list.
AmbiZOL
Posts: 11
Joined: Sat Jan 04, 2014 4:55 pm

Re: Unable to establish connection to Arduino

Post by AmbiZOL »

Ok. I've find out that there is a way to add a new device to /dev. It is described here http://wiki.samygo.tv/index.php5/Fix_lo ... es_Trident. But the file required to complete the task is missing (God damn external links :evil: )! Does anybody have a copy or an idea how it should look like?
User avatar
juusso
SamyGO Moderator
Posts: 10128
Joined: Sun Mar 07, 2010 6:20 pm

Re: Unable to establish connection to Arduino

Post by juusso »

What file are you talking about? usbcore.ko? or dev.img?
Ah yes, external link... dev.img.

Unfortunately i don`t have this file on my pc and i have no idea what was there inside img file. Maybe you can create it by self using squashfs3.0 -be ?

Or maybe you can try to write email to creator (dksoul) of that wiki article and ask him? No big chance for success, he hasn`t been here for more than two years...

Edit: found some dev.img on my NAS, don`t know where it comes from, might be this is what you need. Check:
http://www.multiupload.nl/Y0LRUAMJDV
LE40B653T5W,UE40D6750,UE65Q8C
Have questions? Read SamyGO Wiki, Search on forum first!
FFB (v0.8), FFB for CI+ . Get root on: C series, D series, E series, F series, H series. rooting K series, exeDSP/exeTV patches[C/D/E/F/H]

DO NOT EVER INSTALL FIRMWARE UPGRADE
AmbiZOL
Posts: 11
Joined: Sat Jan 04, 2014 4:55 pm

Re: Unable to establish connection to Arduino

Post by AmbiZOL »

Thanks for your help. I've followed your suggestion to create it myself and finally managed to add new entry at /dev (it was not too complicated). But still no luck with the main problem.
AmbiZOL
Posts: 11
Joined: Sat Jan 04, 2014 4:55 pm

Re: Unable to establish connection to Arduino

Post by AmbiZOL »

Great news: connection established! There was another problem. I've used wrong primary device number with mknod command. I've figure it out after connecting to the 'Big' Linux.
User avatar
juusso
SamyGO Moderator
Posts: 10128
Joined: Sun Mar 07, 2010 6:20 pm

Re: Unable to establish connection to Arduino

Post by juusso »

Glad to hear! Also awaiting some small how-to ;)
LE40B653T5W,UE40D6750,UE65Q8C
Have questions? Read SamyGO Wiki, Search on forum first!
FFB (v0.8), FFB for CI+ . Get root on: C series, D series, E series, F series, H series. rooting K series, exeDSP/exeTV patches[C/D/E/F/H]

DO NOT EVER INSTALL FIRMWARE UPGRADE
AmbiZOL
Posts: 11
Joined: Sat Jan 04, 2014 4:55 pm

Re: Unable to establish connection to Arduino

Post by AmbiZOL »

Here is small how-to connect Arduino Leonardo to TV Usb and perform serial communications.
My main computer uses Windows. Arduino IDE installed there too. If the same is for you the first thing to do is to test your Arduino connection to a Linux on PC. This is optional but could be useful. Plug your Arduino to Linux PC.

Code: Select all

ls -l /dev | grep ttyACM0

crw-rw---- 1 root uucp    166,   0 xxxx xx xx:xx ttyACM0
The number 166 is major number which is "device type" in my vision.
If you haven't got a row with information on ttyACM0 probably you should add device support to Linux system (see instructions below).
SpoilerShow
# cd to your Linux directory
cd /usr/src/Linux
# add support of USB Modem (CDC ACM)
make menuconfig
# type '/' and 'acm' to search for CDC ACM location below is output
# Symbol: USB_ACM []
# Type : tristate
# Prompt: USB Modem (CDC ACM) support
# Defined at drivers/usb/class/Kconfig:7
# Depends on: USB_SUPPORT [=y] && USB [=y]
# Location:
# -> Device Drivers
# -> USB support (USB_SUPPORT [=y])
#
# I've added it as module support than save and exit
make modules
# the result module located at drivers/usb/class
# now we can load module
insmod drivers/usb/class/cdc-acm.ko
# and now try below to see ttyACM0 device listed
ls -l /dev | grep ttyACM0
To test that everything is fine you can:
SpoilerShow
Upload the sketch below to your arduino:
void setup()
{
delay(2000);
Serial.begin(9600);
}

void loop()
{
Serial.println("Hello world!");
delay(1000);
}

then after typing:

cat /dev/ttyACM0

you should receive incoming Hello worlds every second
Now we should use our cross compilation skills and compile the cdc-acm.ko module for the TV. For me cross compilation is a nightmare, but compiling this module was not the worst one. I've found out that the sources contains the required cdc-acm.c and cdc-acm.h and at a first glance everything seemed to be quite easy. But after building first version my Arduino was not recognized. So some modification should be done to enlarge the rage of supported devices. The source was taken from PC Linux version.
Before:
SpoilerShow
drivers\usb\class\cdc-acm.c part before:

/*
* USB driver structure.
*/

static struct usb_device_id acm_ids[] = {
/* quirky and broken devices */
{ USB_DEVICE(0x0870, 0x0001), /* Metricom GS Modem */
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
},
{ USB_DEVICE(0x0e8d, 0x0003), /* FIREFLY, MediaTek Inc; andrey.arapov@gmail.com */
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
},
{ USB_DEVICE(0x0482, 0x0203), /* KYOCERA AH-K3001V */
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
},
{ USB_DEVICE(0x079b, 0x000f), /* BT On-Air USB MODEM */
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
},
{ USB_DEVICE(0x0ace, 0x1608), /* ZyDAS 56K USB MODEM */
.driver_info = SINGLE_RX_URB, /* firmware bug */
},
{ USB_DEVICE(0x0ace, 0x1611), /* ZyDAS 56K USB MODEM - new version */
.driver_info = SINGLE_RX_URB, /* firmware bug */
},
{ USB_DEVICE(0x22b8, 0x7000), /* Motorola Q Phone */
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
},

/* control interfaces with various AT-command sets */
{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
USB_CDC_ACM_PROTO_AT_V25TER) },
{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
USB_CDC_ACM_PROTO_AT_PCCA101) },
{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
USB_CDC_ACM_PROTO_AT_PCCA101_WAKE) },
{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
USB_CDC_ACM_PROTO_AT_GSM) },
{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
USB_CDC_ACM_PROTO_AT_3G ) },
{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
USB_CDC_ACM_PROTO_AT_CDMA) },

/* NOTE: COMM/ACM/0xff is likely MSFT RNDIS ... NOT a modem!! */
{ }
};

drivers\usb\class\cdc-acm.h part before:

/* constants describing various quirks and errors */
#define NO_UNION_NORMAL 1
#define SINGLE_RX_URB 2
After:
SpoilerShow
drivers\usb\class\cdc-acm.c part after:

static struct usb_device_id acm_ids[] = {
/* quirky and broken devices */
{ USB_DEVICE(0x17ef, 0x7000), /* Lenovo USB modem */
.driver_info = NO_UNION_NORMAL, },/* has no union descriptor */
{ USB_DEVICE(0x0870, 0x0001), /* Metricom GS Modem */
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
},
{ USB_DEVICE(0x0e8d, 0x0003), /* FIREFLY, MediaTek Inc; andrey.arapov@gmail.com */
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
},
{ USB_DEVICE(0x0e8d, 0x3329), /* MediaTek Inc GPS */
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
},
{ USB_DEVICE(0x0482, 0x0203), /* KYOCERA AH-K3001V */
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
},
{ USB_DEVICE(0x079b, 0x000f), /* BT On-Air USB MODEM */
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
},
{ USB_DEVICE(0x0ace, 0x1602), /* ZyDAS 56K USB MODEM */
.driver_info = SINGLE_RX_URB,
},
{ USB_DEVICE(0x0ace, 0x1608), /* ZyDAS 56K USB MODEM */
.driver_info = SINGLE_RX_URB, /* firmware bug */
},
{ USB_DEVICE(0x0ace, 0x1611), /* ZyDAS 56K USB MODEM - new version */
.driver_info = SINGLE_RX_URB, /* firmware bug */
},
{ USB_DEVICE(0x22b8, 0x7000), /* Motorola Q Phone */
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
},
{ USB_DEVICE(0x0803, 0x3095), /* Zoom Telephonics Model 3095F USB MODEM */
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
},
{ USB_DEVICE(0x0572, 0x1321), /* Conexant USB MODEM CX93010 */
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
},
{ USB_DEVICE(0x0572, 0x1324), /* Conexant USB MODEM RD02-D400 */
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
},
{ USB_DEVICE(0x0572, 0x1328), /* Shiro / Aztech USB MODEM UM-3100 */
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
},
{ USB_DEVICE(0x22b8, 0x6425), /* Motorola MOTOMAGX phones */
},
/* Motorola H24 HSPA module: */
{ USB_DEVICE(0x22b8, 0x2d91) }, /* modem */
{ USB_DEVICE(0x22b8, 0x2d92) }, /* modem + diagnostics */
{ USB_DEVICE(0x22b8, 0x2d93) }, /* modem + AT port */
{ USB_DEVICE(0x22b8, 0x2d95) }, /* modem + AT port + diagnostics */
{ USB_DEVICE(0x22b8, 0x2d96) }, /* modem + NMEA */
{ USB_DEVICE(0x22b8, 0x2d97) }, /* modem + diagnostics + NMEA */
{ USB_DEVICE(0x22b8, 0x2d99) }, /* modem + AT port + NMEA */
{ USB_DEVICE(0x22b8, 0x2d9a) }, /* modem + AT port + diagnostics + NMEA */

{ USB_DEVICE(0x0572, 0x1329), /* Hummingbird huc56s (Conexant) */
.driver_info = NO_UNION_NORMAL, /* union descriptor misplaced on
data interface instead of
communications interface.
Maybe we should define a new
quirk for this. */
},
{ USB_DEVICE(0x0572, 0x1340), /* Conexant CX93010-2x UCMxx */
.driver_info = NO_UNION_NORMAL,
},
{ USB_DEVICE(0x05f9, 0x4002), /* PSC Scanning, Magellan 800i */
.driver_info = NO_UNION_NORMAL,
},
{ USB_DEVICE(0x1bbb, 0x0003), /* Alcatel OT-I650 */
.driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */
},
{ USB_DEVICE(0x1576, 0x03b1), /* Maretron USB100 */
.driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */
},

/* Nokia S60 phones expose two ACM channels. The first is
* a modem and is picked up by the standard AT-command
* information below. The second is 'vendor-specific' but
* is treated as a serial device at the S60 end, so we want
* to expose it on Linux too. */
/*{ NOKIA_PCSUITE_ACM_INFO(0x042D), }, /* Nokia 3250 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x04D8), }, /* Nokia 5500 Sport */
/*{ NOKIA_PCSUITE_ACM_INFO(0x04C9), }, /* Nokia E50 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0419), }, /* Nokia E60 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x044D), }, /* Nokia E61 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0001), }, /* Nokia E61i */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0475), }, /* Nokia E62 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0508), }, /* Nokia E65 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0418), }, /* Nokia E70 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0425), }, /* Nokia N71 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0486), }, /* Nokia N73 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x04DF), }, /* Nokia N75 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x000e), }, /* Nokia N77 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0445), }, /* Nokia N80 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x042F), }, /* Nokia N91 & N91 8GB */
/*{ NOKIA_PCSUITE_ACM_INFO(0x048E), }, /* Nokia N92 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0420), }, /* Nokia N93 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x04E6), }, /* Nokia N93i */
/*{ NOKIA_PCSUITE_ACM_INFO(0x04B2), }, /* Nokia 5700 XpressMusic */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0134), }, /* Nokia 6110 Navigator (China) */
/*{ NOKIA_PCSUITE_ACM_INFO(0x046E), }, /* Nokia 6110 Navigator */
/*{ NOKIA_PCSUITE_ACM_INFO(0x002f), }, /* Nokia 6120 classic & */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0088), }, /* Nokia 6121 classic */
/*{ NOKIA_PCSUITE_ACM_INFO(0x00fc), }, /* Nokia 6124 classic */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0042), }, /* Nokia E51 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x00b0), }, /* Nokia E66 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x00ab), }, /* Nokia E71 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0481), }, /* Nokia N76 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0007), }, /* Nokia N81 & N81 8GB */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0071), }, /* Nokia N82 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x04F0), }, /* Nokia N95 & N95-3 NAM */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0070), }, /* Nokia N95 8GB */
/*{ NOKIA_PCSUITE_ACM_INFO(0x00e9), }, /* Nokia 5320 XpressMusic */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0099), }, /* Nokia 6210 Navigator, RM-367 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0128), }, /* Nokia 6210 Navigator, RM-419 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x008f), }, /* Nokia 6220 Classic */
/*{ NOKIA_PCSUITE_ACM_INFO(0x00a0), }, /* Nokia 6650 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x007b), }, /* Nokia N78 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0094), }, /* Nokia N85 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x003a), }, /* Nokia N96 & N96-3 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x00e9), }, /* Nokia 5320 XpressMusic */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0108), }, /* Nokia 5320 XpressMusic 2G */
/*{ NOKIA_PCSUITE_ACM_INFO(0x01f5), }, /* Nokia N97, RM-505 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x02e3), }, /* Nokia 5230, RM-588 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0178), }, /* Nokia E63 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x010e), }, /* Nokia E75 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x02d9), }, /* Nokia 6760 Slide */
/*{ NOKIA_PCSUITE_ACM_INFO(0x01d0), }, /* Nokia E52 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0223), }, /* Nokia E72 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0275), }, /* Nokia X6 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x026c), }, /* Nokia N97 Mini */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0154), }, /* Nokia 5800 XpressMusic */
/*{ NOKIA_PCSUITE_ACM_INFO(0x04ce), }, /* Nokia E90 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x01d4), }, /* Nokia E55 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0302), }, /* Nokia N8 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x0335), }, /* Nokia E7 */
/*{ NOKIA_PCSUITE_ACM_INFO(0x03cd), }, /* Nokia C7 */
/*{ SAMSUNG_PCSUITE_ACM_INFO(0x6651), }, /* Samsung GTi8510 (INNOV8) */

/* Support for Owen devices */
{ USB_DEVICE(0x03eb, 0x0030), }, /* Owen SI30 */

/* NOTE: non-Nokia COMM/ACM/0xff is likely MSFT RNDIS... NOT a modem! */

/* Support Lego NXT using pbLua firmware */
{ USB_DEVICE(0x0694, 0xff00),
.driver_info = NOT_A_MODEM,
},

/* Support for Droids MuIn LCD */
{ USB_DEVICE(0x04d8, 0x000b),
.driver_info = NO_DATA_INTERFACE,
},


{ USB_DEVICE(0x04d8, 0x0082), /* Application mode */
.driver_info = IGNORE_DEVICE,
},
{ USB_DEVICE(0x04d8, 0x0083), /* Bootloader mode */
.driver_info = IGNORE_DEVICE,
},


/* control interfaces without any protocol set */
{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
USB_CDC_PROTO_NONE) },

/* control interfaces with various AT-command sets */
{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
USB_CDC_ACM_PROTO_AT_V25TER) },
{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
USB_CDC_ACM_PROTO_AT_PCCA101) },
{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
USB_CDC_ACM_PROTO_AT_PCCA101_WAKE) },
{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
USB_CDC_ACM_PROTO_AT_GSM) },
{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
USB_CDC_ACM_PROTO_AT_3G) },
{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
USB_CDC_ACM_PROTO_AT_CDMA) },

/* NOTE: COMM/ACM/0xff is likely MSFT RNDIS ... NOT a modem!! */
{ }
};

drivers\usb\class\cdc-acm.h part after:

/* constants describing various quirks and errors */
#define NO_UNION_NORMAL 1
#define SINGLE_RX_URB 2
#define NO_CAP_LINE 4
#define NOT_A_MODEM 8
#define NO_DATA_INTERFACE 16
#define IGNORE_DEVICE 32
Now compile new module and copy onto TV and install it using insmod. After that Arduino should be detected. Try:

Code: Select all

dmesg | tail

# output should contain something like this:

drivers/usb/class/cdc-acm.c: This device cannot do calls on its own. It is no modem.
cdc_acm 4-1:1.0: ttyACM0: USB ACM device
And now we should create the point for accessing the driver in /dev folder. But oops! /dev is readonly in a TV! Now you can go to ways.
First is based on a http://wiki.samygo.tv/index.php5/Fix_lo ... es_Trident article. You can create a copy of a /dev, add there required file with mknod, create a squashfs file and this file can then be mounted on top of /dev . But this way seems to be an overkill. Instead we can create such file in any directory. This is not a good practice but there are already some of such files created in a /dtv directory so I've decided to place it there.

Code: Select all

cd /dtv
mknod ttyACM0 c 166 0
# set the group and owner the same as other files in a /dev folder
usb/sda1/SamyGO/bin/busybox chown 501 ttyACM0
usb/sda1/SamyGO/bin/busybox chgrp 100 ttyACM0
usb/sda1/SamyGO/bin/busybox is my path to busybox which could be other in your case. So everything is ready. If you created "Hello world" test at the beginning you can plug your Arduino to TV and receive some sweet Hello worlds ;) .

Post Reply

Return to “[C] Support”