• Please review our updated Terms and Rules here

Dynabyte Basic Controller expansion schematic

I would be very interested in any ZIBL programs that anyone can find. I liked the one above and the asm language cassette routine. But I would really like to find more. It's my own damn fault for not doing a better job of keeping things together over the years.
 
I feel nothing proprietary about it. Go for it!

If you give me the eBay name of the buyer I can try to talk him into it. Maybe my connection to the Basic Controller will be persuasive....

Mike Watts
I've no idea how to identify a buyer Mike but hopefully someone will know. It would be a great shame if this unique opportunity was missed! :)
Perhaps your persuasive edge might get the seller to reveal the buyer? I think that to pay so much the buyer must surely be a true enthusiast and therefore amenable to preserving zibl !
 
I've no idea how to identify a buyer Mike but hopefully someone will know. It would be a great shame if this unique opportunity was missed! :)
Perhaps your persuasive edge might get the seller to reveal the buyer? I think that to pay so much the buyer must surely be a true enthusiast and therefore amenable to preserving zibl !
Yes, he might be a former Dynabyte employee. Maybe even Hank Skawinski or Ed Riddle. But I have not been able to figure out how to make eBay tell me who the buyer was...

Mike Watts
 
Can anyone help with this please? it would be a great shame to miss this unique opportunity. How to contact the buyer of an ebay item?
 
I have been preoccupied with some things, but Phil_G I have no idea how to find that out and I do appreciate Mike's position. Hopefully something will turn up.
 
Last edited:
Oh, well. However, this thread has made me think about the Basic Controller, something I have not done in many years.

It started almost as a lark, but now it's getting serious. I'm making a "reincarnated" version of ZIBL for use with ESP32 processors. I call it the "Modern Industrial Control Language", or MICL. Pure coincidence that my name is Michael. :-)


ZIBL was forced to reside in 8kB of ROM and had access to 4kB (could be upgraded to 16k) of RAM. MICL can use 7 MB of Flash (today's PROM) with 512kB or RAM and 8MB of PSRAM (psuedo static ram). So it is greatly freed up. It also has floating point. In integer mode it runs about 80 times faster than the Z80 did. In floating point, it is in finitely faster since FP had to be done in software on the Z80 - so it's probably 4 orders or magnitude faster than the Z80 would have been in floating point.

I like this language! :-)

FWIW: Here's a portion of a sample program in MICL for controlling a batch mixer: The whole file is attached. Regardless of the .micl extension, it is just a text file so you can read it with notepad or whatever.


REM ================================================
REM BATCH MIXER CONTROLLER
REM ================================================
REM
REM Process:
REM 1. Fill ingredients A-F sequentially
REM 2. Stage 1: Heat to 150F, mix for 5 min
REM 3. Stage 2: Heat to 200F, mix for 10 min
REM 4. Stage 3: Heat to 250F, mix for 15 min
REM 5. Cool to 180F while mixing
REM 6. Stop mixing at 180F
REM 7. Cool to 120F
REM 8. Drain batch
REM 9. Log and repeat
REM
REM Sensors:
REM LOAD_CELL: 0-10V = 0-1000 lbs (0.01V per lb)
REM TEMP_SENSOR: LM35-style, 0.545V @ 0°C, 3.110V @ 40°C
REM LEVEL_C, LEVEL_D: Digital, HIGH when full
REM TANK_EMPTY: Digital, HIGH when empty

REM ===== DEVICE DECLARATIONS =====
10 DEVICE LOAD_CELL = INPUT ANALOG PIN 32
20 DEVICE TEMP_SENSOR = INPUT ANALOG PIN 33
30 DEVICE LEVEL_C = INPUT DIGITAL PIN 12
40 DEVICE LEVEL_D = INPUT DIGITAL PIN 13
50 DEVICE TANK_EMPTY = INPUT DIGITAL PIN 14
60 DEVICE VALVE_A = OUTPUT DIGITAL PIN 21 SAFE LOW
70 DEVICE VALVE_B = OUTPUT DIGITAL PIN 22 SAFE LOW
80 DEVICE VALVE_C = OUTPUT DIGITAL PIN 23 SAFE LOW
90 DEVICE VALVE_D = OUTPUT DIGITAL PIN 24 SAFE LOW
100 DEVICE VALVE_E = OUTPUT DIGITAL PIN 25 SAFE LOW
110 DEVICE VALVE_F = OUTPUT DIGITAL PIN 26 SAFE LOW
120 DEVICE HEATER = OUTPUT DIGITAL PIN 27 SAFE LOW
130 DEVICE MIXER = OUTPUT PWM PIN 15 FREQ 1000 SAFE 0 MIN 0 MAX 100
140 DEVICE DRAIN_VALVE = OUTPUT DIGITAL PIN 28 SAFE LOW NEVER HIGH

REM ===== RECIPE PARAMETERS (CONSTANTS) =====
200 REM Ingredient targets
210 INGREDIENT_A_LBS = 50
220 INGREDIENT_B_LBS = 25
230 REM Ingredients C and D are level-based (binary)
240 INGREDIENT_E_LBS = 10
250 INGREDIENT_F_LBS = 15
260
270 REM Stage 1 parameters
280 STAGE1_TEMP_F = 150
290 STAGE1_TIME_SEC = 300
300 STAGE1_MIXER_SPEED = 40
310
320 REM Stage 2 parameters
330 STAGE2_TEMP_F = 200
340 STAGE2_TIME_SEC = 600
350 STAGE2_MIXER_SPEED = 60
360
370 REM Stage 3 parameters
380 STAGE3_TEMP_F = 250
390 STAGE3_TIME_SEC = 900
400 STAGE3_MIXER_SPEED = 80
410
420 REM Cooling parameters
430 COOL_TEMP_F = 180
440 COOL_MIXER_SPEED = 30
450 DRAIN_TEMP_F = 120
460
470 REM Safety limits
480 MAX_WEIGHT_LBS = 500
490 MAX_TEMP_F = 300
500 FILL_TIMEOUT_SEC = 600
510 HEAT_TIMEOUT_SEC = 1800
520 TEMP_TOLERANCE_F = 5

REM ===== PROGRAM =====
600 REM Initialize variables
610 BATCH_NUMBER = 0
620 LAST_STATUS_TIME = 0
630 CURRENT_STATE = "IDLE"

700 REM Main control loop
710 MAIN_LOOP;
720 GOSUB READ_SENSORS
730 GOSUB CHECK_SAFETY
740 GOSUB RUN_STATE_MACHINE
750 GOSUB PRINT_STATUS_PERIODIC
760 WAIT 1000 MS
770 GOTO MAIN_LOOP

800 REM ==========================================
810 REM Read all sensors and convert to units
820 REM ==========================================
830 READ_SENSORS;
840 REM Convert load cell (0-10V = 0-1000 lbs)
850 CURRENT_WEIGHT = (LOAD_CELL / 10) * 1000
860
870 REM Convert temperature to Fahrenheit
880 CURRENT_TEMP_F = VOLTS_TO_FAHRENHEIT(TEMP_SENSOR)
890 RETURN

...
 
Last edited:
Back
Top