Home
Downloads
Licenses Contact

OshonSoft

20th Anniversary

2021 - 20th Anniversary of the
OSHONSOFT PROJECT
OshonSoft © 2001 - 2025

Arduino Related

Please note:
This software is not affiliated with or endorsed by Arduino AG.
All references to Arduino are descriptive only.
Arduino is a registered trademark of Arduino AG.

For official Arduino software and documentation, please visit:
https://www.arduino.cc


Quick Arduino Sketch Editor

Quick Arduino Sketch Editor is an OshonSoft-style tabbed editor for Arduino sketches, allowing users to compile and upload code using standard Arduino toolchains within a simulation-ready environment.

This software does not distribute, install, or modify any Arduino tools or files. It connects to the user's existing installation of open-source Arduino command-line tools to perform compile and upload operations.

In Arduino IDE 2.x (e.g., 2.3.6) installations, arduino-cli.exe is used for those purposes. Quick Arduino Sketch Editor can be used with all Arduino boards, because arduino-cli.exe can provide fully qualified board name (FQBN) of the connected board.

In Arduino IDE 1.x (e.g., 1.8.19), arduino-builder.exe and avrdude.exe are used. These tools don't provide FQBN of the connected board with the command-line interface. So, Arduino Uno boards ('arduino:avr:uno' FQBN) can be used only. OshonSoft routine will detect official Arduino Uno boards and CH340, FTDI-based and CP210x clones based on the VID:PID inspection of the existing COM ports.

If Arduino IDE has been installed with the default setup options for all users, it will be automatically detected. An Arduino sketch file must be stored in a folder that has the exact same name as the '.ino' file (Arduino IDE requirement). 'build' subfolder is created in the sketch folder, to store compiler output files.

Tools menu items:
- Compile Sketch - F7
- Upload To Board - F8
- Load To Simulator - F9
- Locate Arduino IDE
- Detect Board

Options menu items:
- Detect Board Before Compile And Upload
- Adjust Delays For Simulation
(Separate hex file will be created for simulation, where all delay() and delayMicroseconds() functions were replaced with delay(1) and delayMicroseconds(1).)
- Editor Options

LcdKeypad1.ino sketch used on the screenshot:

#include <LiquidCrystal.h>

//RS, E, D4, D5, D6, D7
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

void setup() {
    lcd.begin(16, 2); //Initialize 16x2 LCD
    lcd.print("Hello world!"); //Message on the first line
    lcd.setCursor(0, 1);
    lcd.print("LCD Keypad");
    delay(1000);

    pinMode(10, OUTPUT);
    digitalWrite(10, LOW);
    delay(1000);

    digitalWrite(10, HIGH);
    delay(1000);
}

void loop() {
    int x = analogRead(0);

    lcd.setCursor(0, 1); //Second row

    if (x < 50) lcd.print("RIGHT x=");
    else if (x < 200) lcd.print("UP x=");
    else if (x < 400) lcd.print("DOWN x=");
    else if (x < 600) lcd.print("LEFT x=");
    else if (x < 800) lcd.print("SELECT x=");
    else lcd.print("NO BUTTON x=");

    lcd.print(x);

    //Clear any leftover characters if x was smaller previously
    if (x < 10) lcd.print(" "); //Add 3 spaces
    else if (x < 100) lcd.print(" "); //Add 2 spaces
    else if (x < 1000) lcd.print(" "); //Add 1 space

    delay(200); //Simple debounce
}


(screenshot)


Arduino UNO R3 Simulation Tool

Arduino UNO R3 Simulation Tool provides visual simulation and interaction for testing Arduino UNO R3 sketches compiled with standard Arduino toolchains.

The board layout used in this tool is inspired by the open-source Arduino UNO R3 hardware design, and adapted under the terms of the Creative Commons Attribution-ShareAlike license (CC BY-SA 2.5).

Arduino UNO R3 Simulation Tool is based on the standard Microcontroller View Interface in all OshonSoft apps. Starting this tool will automatically select new AVR Simulator IDE option Use Arduino Uno Pin Names, and D0-D19 will become standard pin names in all IDE tools instead of PORTB.0, for example.

The tool offers three window sizes and two modes of showing digital pin states. LCD command sets standard 16x2 LCD Module Shield pin parameters, and starts the LCD Module tool. Keypad command serves to show/hide interface for A0 pin Keypad buttons available on those 16x2 LCD Module Shields. This enables easy simulation of that complete standard Arduino UNO shield.


(screenshot)