It's for me - just feel I ought to take a look at Arduino, or something similar; seem to be various uses as parts of ham radio test systems.Whos it for or rather what are you wanting out of it?
I'm just banging my head on this one at the moment. I bought a v0.3 board and want to run tunerstudio on a raspberry pi 4. It's not straightforward and programming isn't a skill I possess!I was looking at some Speeduino car ECU projects, would mean learning a new programming language though as I like to tinker.
Arduino and the official IDE is not programming, it's more like learning how kids type texts on their phones.
The only thing that doesnt work is a nano that actually said[i didnt notice at the time] uses an equivalent
chip to an atmega;
I clearly havent emptied the bin for years, so I fished it out.Easy peasy. It is just a driver required. All the clones are like that and they work perfectly. The thing that might have got you is the boot loader. From China, many need the "old" boot loader, switchable from the IDE .
Can anyone recommend a good starter kit? Prices seem to vary quite a lot!
Thanks
I call that a headache. (On a £47k salary it gets boring quite fast!). Please google uncle Bob. Small well named functions, SOLID agile code etc.. use the language as intended. Yes on embedded theres a tiny overhead, but the compiler is better than you can dream. Esp32 easily manages any overheads vs arduino.How do you come up with that opinion? Arduino is C++ with slight differences. I call that programming...
<code>
void setup()
{
pinMode(5, OUTPUT); // Digipot power
pinMode(10, OUTPUT);// Digital ouput on pin 12
pinMode(11, OUTPUT); // RING
pinMode(12, OUTPUT); // PTT
pinMode(A6, INPUT_PULLUP); // Sense test mode
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(115200);
digitalWrite(digipot, HIGH); //Currently does nothing useful
Wire.begin();
Wire.beginTransmission(0x2F);// Put digipot out of range at 100K
Wire.write(0x7F);
Wire.endTransmission();
ibus.setIbusSerial(Serial); // Tell library which serial port is used for IBUS. Must be HardwareSerial port.
ibus.setScrollSpeed(1500, 1000, 200, 2); // Start delay, End delay, scroll speed & number of repeats. Defaults to 2000, 1000, 200, 2 if no alternatives specified
ibus.setIbusPacketHandler(packetHandler); // Define callback function. This is the function that is called by the library when it has a complete IBUS packet/message.
//ibus.sleepEnable(60); // Enable sleep timer, and set sleep time in seconds. Comment out/delete line to disable timer.
//debugSerial.begin(9600); // Set debug Baud rate
//ibus.setIbusDebug(debugSerial); // Tell library which serial port is used for DEBUG. Comment out line if debug disabled in IbusGlobals.h
//debugSerial.println(F("--IBUS reader V2--"));
attachInterrupt(digitalPinToInterrupt(9), startTimer, CHANGE);
pinMode(ledPin, OUTPUT);
}
void loop()
{
if (!runOnce)
{
delay(1000);
ibus.write(IKE_STATUS_REPLY_GLO, sizeof(IKE_STATUS_REPLY_GLO));
// ibus.write(IKE_STATUS_REPLY, sizeof(IKE_STATUS_REPLY));
proc_SourceSave();
runOnce = true;
}
ibus.run(); // This keeps the IbusSerial library running.
if (millis() - ringTimer > interval && digitalRead(RING) == HIGH) {
digitalWrite(RING, LOW); // needs to time out after 9 seconds
}
}
// This is where we compare the received message with all the message bytes
// in IbusGlobals.h, or to known source/destination, and respond accordingly.
void packetHandler(byte *packet) // callback function
{
byte source = packet[0];
//length = packet[1];
byte destination = packet[2];
byte command = packet[3];
byte data4 = packet[4];
byte data5 = packet[5];
byte data = packet[6];
proc_CDCtransmit(); // Transmit a status request to the CD changer every ten seconds.
// ************************** MID to RAD status handler ******************************
// Request from MID to RAD for its status
if (memcmp_P(packet, RAD_STATUS_REQUEST, 5) == 0 ) {
#if defined(FaceLift)
ibus.write(RAD_STATUS_REPLY, sizeof(RAD_STATUS_REPLY));
#endif
}
// Reply from CDC to LOC with its status
if (memcmp_P(packet, CDC_STATUS_REPLY, 6) == 0 ) {
CDC = true;
}
if (!runOnce)
{
</code>
digitalWrite(digipot, HIGH); //Currently does nothing useful
I'm just banging my head on this one at the moment. I bought a v0.3 board and want to run tunerstudio on a raspberry pi 4. It's not straightforward and programming isn't a skill I possess!