-
1Step 1
Detailed construction instructions can be found on the GitHub page.
-
2Step 2
Load and run the Arduino Mega 2560 with the following sketch:
https://github.com/lambdamikel/Busch-2090/blob/master/PGM-EEPROM-MEGA/PGM-EEPROM-MEGA.ino
This will store the Microtronic example programs PGM 7 to PGM C in EEPROM. The emulator will not initialize / start up properly without proper EEPROM contents.
-
3Step 3
Program the Arduino Mega 2560 with the main emulator sketch:
https://github.com/lambdamikel/Busch-2090/blob/master/busch2090-mega-v3/busch2090-mega-v3.ino
-
4Step 4
Set up the hardware - you can set it up any way you like, but I recommend using the laser-cut acrylic front panel. Its blue print can be found in the files section of the project.
-
5Step 5
Set up the hardware - the emulator main sketch shows the pin layout:
// // SD+Ethernet Shield (optional) // #if defined (SDCARD) #define SDCARD_CHIP_SELECT 4 // // software serial interface for Emic 2 TTS module (optional) // #if defined (SPEECH) #define RX_SPEECH A8 #define TX_SPEECH 53 #endif // // momentary N.O. push buttons // #define RESET 47 // soft reset #define BACK 63 #define RIGHT 64 #define UP 65 #define DOWN 66 #define LEFT 67 #define CANCEL 68 #define ENTER 69 // // Status LEDs // #define DOT_LED_1 55 #define DOT_LED_2 56 #define DOT_LED_3 57 #define DOT_LED_4 58 #define CLOCK_LED 39 #define CLOCK_1HZ_LED 41 #define CARRY_LED 43 #define ZERO_LED 45 // // 1 Hz clock digital output // #define CLOCK_OUT 6 // // DOT digital output // #define DOT_1 5 #define DOT_2 3 #define DOT_3 2 // we need pin 4 for SD card! #define DOT_4 18 // PIN 1 didn't work for some reason // // DIN digital input // #define DIN_1 17 #define DIN_2 16 #define DIN_3 15 #define DIN_4 14 // // telephone keypad buttons for DIN input // #define DIN_BUTTON_1 42 // telephone keypad # #define DIN_BUTTON_2 44 // telephone keypad 9 #define DIN_BUTTON_3 46 // telephone keypad 6 #define DIN_BUTTON_4 48 // telephone keypad 3 // // remaining telephone keypad buttons // #define CCE 26 // telephone keypad * #define RUN 28 // telephone keypad 7 #define BKP 30 // telephone keypad 4 #define NEXT 32 // telephone keypad 1 #define PGM 34 // telephone keypad 0 #define HALT 36 // telephone keypad 8 #define STEP 38 // telephone keypad 5 #define REG 40 // telephone keypad 2 // // CPU speed throttle potentiometer // #define CPU_THROTTLE_ANALOG_PIN A0 #define CPU_THROTTLE_DIVISOR 10 // potentiometer dependent #define CPU_MIN_THRESHOLD 8 // if smaller than this, CPU = max speed #define CPU_MAX_THRESHOLD 99 // if higher than this, CPU = min speed #define CPU_DELTA_DISP 5 // if analog value changes more than this, update CPU delay display // // for initialization of random generator // #define RANDOM_ANALOG_PIN A5 // // LCD panel pins // LiquidCrystal lcd(13, 12, 11, 7, 9, 8); // we need pin 10 for SD card // // 2 Adafruit 7Segment LED backpacks // In order to have to LED backpacks, you need // to change the address by soldering a bridge // on one of them - mine are set to 0x70 and 0x71 // See Adafruit instructions for more detail // Both are connected to the I2C bus of the Mega 2560 // (SCL = pin 21, SDA = pin 20) // Adafruit_7segment dispRight = Adafruit_7segment(); Adafruit_7segment dispLeft = Adafruit_7segment(); // // HEX 4x4 matrix keypad // byte colPins[COLS] = {37, 35, 33, 31}; // columns byte rowPins[ROWS] = {29, 27, 25, 23}; // rows
-
6Step 6
... more soon - I am working on the schematics using Fritzing.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.