SAP I computer from basic Logic ICs




Does anyone have an idea about early computers? The age before Micro controllers/ Microprocessors? I have just now completed a project that takes me into that time.

This is an 8-bit Minimum Computer (Computation Machine) [1] that made from simple logic ICs, flip-flops and a few memory modules. It has a memory of 16 bytes and its maximum clock speed is not more than 5 Hz.

The whole design is based on SAP-I Architecture and design was obtained from Ben Eater’s Youtube Channel [2]. Currently, it has 9 instructions (based on Intel 8080 instructions) and can be programmed it using machine language (That means programming from 1s and 0s)

The project was started as a project for CO221: Digital Design Course, Department of Computer Engineering, University of Peradeniya.

All the Printed Circuit boards were designed from the basics by us using Fritzing, fabricated by using the CNC, Builder_V3 and soldered and assembled by us. It took 2 months to complete the fabrications and another month for build motherboard (30x40cm) and debugging.

After the evolution of the project, we hope to make it free and open source under Apache License 2.0

Special thanks to

  • Dr. Kamalanath Samarakoon for giving the idea & source materials about SAP-I
  • Dr. S.D. Dewasurendra
  • Miss. Narmada Balasooriya, Miss. Thilini Dahanayaka and all the instructors on the Department of Computer Engineering
  • My team members; Suneth Samarasinghe, Pubudu Premathilake, Dilshani Karunarathne, Wishma Herath, Pasan Thennakoon & Irfan Mohommad


References:











Pera SAP I Computer




Arduino එක්ක වැඩ කරන හැමෝම Transistors, Integrated circuits, Microcontroller, Microprocessor ගැන එහෙම අහලා ඇති. එ් වගේම Transistors එකතු වෙලා Integrated circuits හැදෙන හැටි වගේම IC එකතුවෙලා Microcontroller හැදෙන හැටිත් අහලා ඇති.

නිකමට හිතලා බලන්න IC එකතු කරලා Microcontroller එකක්, හැදුවෙත් කොහොම තියෙයි ද ? පල්ලෙහා පිංතූරේ තියෙන්නේ අන්න ඒ වගේ පරිපථයක්. තවත් සරලව කිව්වොත් IC පාවිච්චි කරලා හදපු පොඩි Microcontroller එකක්.

ඕනැම Microcontroller එකකට නිර්මිතියක් (Architecture) තියෙනවා. නිතරම ඇහෙන PIC, AVR, ARM වගේ නම් වලින් කියවෙන්නේ ඒ වගේ ජනප්‍රිය architectures කීපයක් තමයි.

මේ නිර්මාණයට පාදක වුණේ SAP-I (Simple As Possible) කියන Architecture එක. මේක ගැන වැඩි විස්තර පොස්ට් එකේ අන්තිමට තියෙන ලින්ක් වලින් දැනගන්න පුළුවන්.

ලොකුවට පෙනෙන පරිපථ පුවරුවේ තව පොඩි පොඩි මොඩියුල 11 ක් තියෙනවා. ඒවා ගැන හැදින්වීමක් ඉදිරි ලිපියකින් කරන්නම්. දැනට නම් විදිහට පමණක් ඉදිරිපත් කරන්නම්.

  • Clock Module
  • Program Counter
  • Registers (RegA, RegB, Instruction Register, Memory Address Register)
  • ALU (Arithmetic and Logic Unit)
  • Output Module (4 digit 7 Segment display)
  • RAM
  • Programmer 
  • Control Sequencer (Control Unit)

මේක නිර්මාණය කරන්න IC 46 ක් පාවිච්චි කරලා තියෙනවා. ඒ වගේම Indicators විදිහට LED Bulbs 76කුත් පාවිච්චි කරලා තියෙනවා.

  • 39 x 7400 Series ICs
  • 4 x 555 IC
  • 3 x AT28C16 EEPROM 
  • 76 x LED 

Circuit Design කරන්නයි, PCB ටික Fabricate කරන්නයි මාස දෙකක් විතර මහන්සි වෙන්න වුණා. ඒ ටික ඉවර වෙලා මේක වැඩකරන තත්වෙකට ගන්න තව මාසයක් විතර මහන්සි වුණා.

මේකේ Performance ගැන කිව්වොත්,

Data Bus
>> 8-bit Bus Architecture

Clock Speed
>> min 1Hz, max 5Hz

Memory
>> RAM : 16 bytes (16x8 bits)
>> Storage: 2 bytes (Register A, B)

Arithmetic Unit
>> Addition, Subtraction only

ඇත්තටම මේ අගයයන් සංසන්දනය කලාම Arduino Uno Board එකේ තියෙන “Atmega328” AVR IC එක මේක වගේ x16,000,000 ගුණයක් වේගවත්. Memory එක (Flash Memory) x2,000,000 ගුණයක් විතර වෙනවා.


Atmega328
> Clock Speed ----- 16 MHz
> Flash Memory --- 32 KB
> SRAM -------------- 2 KB
> EEPROM --------- 1 KB

හැබැයි Digital Logic Design, Computer Architecture, Microcontrollers ගැන ඉගෙනගන්න කැමති කෙනෙක්ට නම් මේ වගේ දෙයක් හදලා ගන්න Experience එක සෑහෙන වටිනවා.

මේක වැඩකරන විදිහ , Machine Language එකෙන් Programming කරන විදිහ ගැන වෙලාව ලැබෙන විදිහට කියාදෙන්න බලන්නම්. Eater.net කියන site එකේ සහ Ben Eater' Youtube Channel එකෙනුත් මේ ගැන හොද පැහැදිලි විස්තර හොයාගන්න පුළුවන්.

මේ Project එක කලේ පේරාදෙණිය ඉංජිනේරු පීඨයේ Computer Engineering Project (2nd Year) එකක් විදිහට. මේ වගේ නිර්මාණයක් කරන්න මුලින්ම අදහසක් දුන්න Dr. Kamalanath Samarakoon සර්ටත්, නිර්මාණ කටයුතු සදහා උදව් කරපු Digital Design Lab එකේ Instructors ලා හැමෝටමත්, මගේ Project Team එකේ හැමොටමත් ස්තූතිවන්ත වෙනවා.



Special thanks to
  • Dr. Kamalanath Samarakoon for giving the idea & source materials about SAP-I
  • Dr. S.D. Dewasurendra
  • Miss. Narmada Balasooriya, Miss. Thilini Dahanayaka and all the instructors on the Department of Computer Engineering
  • My team members; Suneth Samarasinghe, Pubudu Premathilake, Dilshani Karunarathne, Wishma Herath, Pasan Thennakoon & Irfan Mohommad


References:












All-in-one Robot Board : Minbot-Nano v1.0






Robotics කරන අයට ගොඩක් වැදගත්වෙන දෙයක් තමයි අද මම ගෙනල්ලා තියෙන්නේ. සාමාන්‍යයෙන් Arduino Board, Motor Drive, Power Supply, Sensors වගේ පොඩි පොඩි මොඩියුල් ගොඩක් Jumper Cables වලින් අමුණලා තමයි රොබෝ කෙනෙක්ව හදන්නේ. රොබෝ පොඩ්ඩක් එහෙ මෙහේ වුණ ගමන් අර වයර් බුරුල් වෙනවා. ලෙඩේ හොයාගන්න සෑහෙන වෙලා යනවා. Sensors වල වයර් බුරුල් (Loose Connection) වුණාම Readings වලටත් ලොකු බලපෑමක් එනවා.

මේ ප්‍රශ්න වලට විසදුමක් විදිහට තමයි මම මේ පල්ලෙහා රූපයේ තියෙන විදිහේ පොඩි Development Board / Shield එකක් නිර්මාණය කලේ. මේ Board එකේ සාමාන්‍ය රොබෝ කෙනෙක්ට තියෙන්න ඕන හැම උපාංගයකටම අවශ්‍ය ඉඩ තියෙනවා.



Development බෝර්ඩ් එක විදිහට පාවිච්චි කරලා තියෙන්නේ Arduino Nano එකක්. Nano එක වෙනුවට NodeMCU දාපු බොර්ඩ් එකකුත් ඉදිරියේදී Design කරන්න අදහසක් තියෙනවා.

Arduino Nano Board

Motor Driver එක විදිහට පාවිච්චි කරලා තියෙන්නේ TB6612FNG කියන මොඩියුල් එක. මේකෙන් 1.2A වෙනකම් ධාරාවක් ගන්න මොටර් Control කරන්න පුළුවන්.  N20 වගේ පොඩි මෝටර් වලට මේක හොදටම ප්‍රමාණවත්. ගෙන්නගත්තේ eBayඑකෙන්. වටිනාකම $1.37 (~Rs.220) විතර වෙනවා. (eBay Link: https://ebay.us/NOoW81)

TB6612 FNG Module


Voltage Regulator එක විදිහට පාවිච්චි කරලා තියෙන Unit එක ගෙන්නගත්තේ Aliexpress එකෙන්. වටිනාකම $0.69 (~Rs.110) විතර වෙනවා.
DC DC Step Down Buck Converter



මේක PCB Toner Transfer විදිහට හදාගන්න ඕන කරන Files, /printable_files folder එකේ තියෙනවා.

Online Service එකකින් හදාගන්න කැමති නම් ඒකට ඕන කරන gerber files,  /gerber_files folder එකේ තියෙනවා.

මේ Board එකට ගැලපෙන Sample Code එකක්, /program-nano folder එකේ තියෙනවා.

Board එකට components පාස්සගන්න ඕන විදිහ ගැන විස්තර, /Minbot_v1_Doc.pdf  කියන PDF එකේ තියෙනවා.



මේ Design එක, CEYKOD Research & Development මගින් GPLv3 බලපත්‍රය යටතේ නිදහස් හා විවෘත නිර්මාණයක් (Free and Open Source Design) විදිහටයි ඉදිරිපත් කරලා තියෙන්නේ.


Download Full Design from GitHub:







මේ වගේ තවත් Open-source Designs ගැන දැනගන්න, CRaD FB Page එකට Like කරන්න.









74 Series IC Datasheets




Logic Gates එක්ක වැඩ කරලා තියෙන කෙනෙක් නම් 74 Serial එකේ IC ගැන නොදැන ඉන්න විදිහක් නෑ. AND, OR, NOT වගේ මූලික තාර්කික ද්වාර වල ඉදලා Counters, Multiplexers, Registers වගේ පුළුල් පරාසයක IC වර්ග 74 serious එකේ අන්තර්ගත වෙනවා.

මේවත් එක්ක වැඩ කරන ගොඩක් අයට තියෙන ප්‍රශ්නයක් තමයි මේ IC වලට අදාල datasheet හොයාගන්න එක. ඒ ප්‍රශ්නෙට පොඩි විසදුමක් විදිහට තමයි මම මේ Android app එක නිර්මාණය කලේ. දැනට සුලබව පාවිච්චි වෙන 74 series එකේ IC 150+ කට අධික ප්‍රමාණයක pinout diagrams වගේම ඒවායේ datasheets download කරගන්න direct links මේ ඇප් එකේ අන්තර්ගත වෙනවා. 

4.26 MB වෙන මේ ඇප් එකේ කිසිම වෙලද දැන්වීමක් නෑ. 100% ක් ම නොමිලේ (free) ලබාගන්න පුළුවන්. ඉදිරියේදී මේ App එක open-source විදිහට ලබාදීලා community contribution මගින් තව දියුණු කරන්නත් බලාපොරොත්තු වෙනවා. 

කැමති හැමෝම මේ Link එකෙන් Android App එක Download කරගෙන බලන්න. පාවිච්චි කරන ගමන් Review එකක් දෙන්නත් අමතක කරන්න එපා. :-)


Get it on Google Play:


Screenshots:

 



අධ්‍යාපනය (මුදලට) විකුණන උපාධි කඩ වහා අහෝසි කරණු...




එලියෙදි: අධ්‍යාපනය මුදලට විකුණන SLIIT,..., උපාධි කඩ වහා අහෝසි කරණු.
ඇතුලෙදි: 80% ට මුවාවී සිදුකරන ශිෂ්‍ය මර්ධනය වහා නවතනු.

ප්‍රයිවට් කැම්පස් වලට IESL පිලිගැනීම දෙන්න එපාලු. හැබැයි රජයේ විශ්ව විද්‍යාලවල 80% බලන්නත් එපාලු. (ඉංජිනේරු පාඨමාලාවක ගුණාත්මකභාවය පවත්වාගැනීම සදහා තමයි IESL හා UGC එකෙන් මේ 80% ක පාඨමාලා සහභාගීත්වය අනිවාර්ය කරලා තියෙන්නේ.)

⁣මාත් ඉංජිනේරු ශිෂ්‍යයෙක්. ඒත් වැරැද්දක් දැක්කම ඒක සාධාරණීකරනය කරන්නේ නැ. මේවා බලාගෙන පැත්තකට වෙලා ඉන්නත් ලැජ්ජයි.

තමන් A/L සමත් වෙලා 5% කට පමණක් හිමිවෙන විශ්ව විද්‍යාල වරම ලැබුනා නම්, තමන්ට ඒ අවස්ථාව ලබාගන්න උපකාර කරපු මේ රටේ බදු ගෙවන අහින්සක ජනතාවගේ දහඩිය මහන්සියට සාධාරණයක් කරන්න ඕන. ඒකට තියෙන හොදම විදිහ තමයි විශ්ව විද්‍යාලයේ අධ්‍යාපනය උපරිමයෙන් ලබාගෙන හොද ඉංජිනේරුවෙක් වෙලා රටට සේවය කරන එක.

හැබැයි ලකුණක් දෙකක් මදි වෙලා විශ්ව විද්‍යාල වරම් අහිමිවුණ මධ්‍යම පාන්තිකයින් ට තියෙන එකම විකල්පය වන "දේශීය පෞද්ගලික විශ්ව විද්‍යාල" වහලා දාන්න කියලා කොළඹ පාරවල් වල පෙලපාලි යන ගමන්, තමන් ඉගෙනගන්න ඉංජිනේරු පාඨමාලාවේ 80% Attendance බලන්න එපා, Attendance නැතත් විභාගේ ලියන්න දෙන්න කියලා ඉල්ලමින් විභාග වර්ජනය කිරිම තරමට වඩා කුහක කමක් තියෙන්න පුළුවන් ද?

විශ්ව විද්‍යාලයක්/ පිඨයක් වහලා තියෙන දවසක් ගානේ නාස්ති වෙන්නේ මේ රටේ ඉන්න දුප්පත් මිනිස්සුන්ගේ සල්ලි නෙවෙයි ද? අහිංසක දෙමාපියන්ගේ බලා⁣පොරොත්තු නෙවෙයි ද?

බහුතරයක් මේක අනුමත කරන්නේ නෑ. හැබැයි සුළුතරයක පටු අරමුණු ඉටුකරගන්න ඔවුන් Batch Fit එක අයුතු විදිහට පාවිච්චි කරනවා නම් අපි ඒකට විරුද්ධ වෙන්න ඕන නැද්ද?

විප්ලවය හෝ අරගලය කියන්නේ අන්ධානුකරණයෙන්, පොස්ටර් බැනර් උස්සගෙන කොලයක ලියලා දුන්න සටන්පාඨ කියවන එක ද?




එළාර-ගැමුණු හා මහින්ද-ප්‍රභාකරන්

Image result for mahinda and prabhakaran




එළාර ආක්‍රමණිකයෙකි
ප්‍රභාකරන් ත්‍රස්තවාදියෙකි.
දෙදෙනාම යුධමය ක්‍රියාමාර්ග මගින් ලංකාව පාලනය කලහ.


ගැමුණු රජ හා ජනපති මහින්ද ලක්දිව එක්සත් කල පාලකයින් දෙදෙනෙකි.
  • එළාර තම අවසන් සටනේදී ගැමුණු රජු හා ද්වන්ද සටනකට ඉදිරිපත් ව ගෞරවාන්විතව පරාජයට පත්විය.
  • ප්‍රභාකරන් අවසන් සටනේදී මිනිස් පලිහකට මුවාවෙමින් ජීවිතය රැකගැනීමට උත්සාහ කොට පරාජයට පත්විය.

  • ගැමුණු රජ, එළාරගේ නායකත්ව ගුණ අගය කරමින් නිසි ගෞරව සහිතව ආදාහනය සිදුකලේය.
  • මහින්ද, ප්‍රභාකරන්ගේ දුර්ගුණ වලට සුදුසු පරිදි අවසන් කටයුතු සිදුකලේය.

එළාර රජුගේ ගුණ අදටත් ඉතිහාස පොත්වල වර්ණනා කරයි. ත්‍රස්තවාදී නායක ප්‍රභාකරන් සමරන්නන් අදත් සිටී ???

ගැමුණු රජු අද "දුෂ්ඨ ගාමිණ - දුටුගැමුණු " ය. මහින්ද ජනපති අද "මහින්ද හොරා" ය.

වැඩිමහල් සොයුරාගේ රාජ උරුමය පැහැරගැනීම්ට උත්සාහ කල තිස්ස අද, "සද්ධාතිස්ස" ය. (කෙසේ වුවත් ඔහු ගැමුණු රජුගේ ප්‍රතිපත්ති ඉදිරියට ගෙනයමින් රට දියුණු කිරීමට කටයුතු කලේය.)

මෛත්‍රි ජනපති ගැන _______________________









Sri Lanka, Forever




මේ පිංතූරේ බැලුවම විහිළුවක් වගේ පෙනෙයි. හැබැයි අපිට හරි දැක්මක් යටතේ එකතු වෙලා වැඩ කලොත් අපේ රට, ශ්‍රී ලංකාව, වකන්ඩාවක් කරන එක අමාරු දෙයක් නෙවෙයි.

අපේ මුතුන්මිත්තන් මුහුදු වගේ වැව් නිර්මාණය කලෙත්, පුරාතන ලෝකයේ ගීසා පිරමීඩ වලට පමණක් දෙවෙනි වෙන මහා චෛත්‍ය හැදුවෙත් අපේම දැනුම හා තාක්ෂණයෙන්. (තවමත් ජනප්‍රවාදයක් විදිහට තිබුණත්, රාවණාගේ ලංකාපුර රාජධානිය ගැනත් එහි පැවති තාක්ෂණය ගැනත් අමතක කරන්න බෑ.)

හැබැයි හැමදාම කලා වගේ අතීතය ගැන උදම් ඇනීම නතර කරලා, අද දවසත් අනාගතයත් රටේ දියුණුව වෙනුවෙන් කැප කරන්න පුළුවන් නම් වකන්ඩාවක් ගොඩනැගීම අපහසු ඉලක්කයක් නෙවෙයි.


"Sri Lanka, Forever"


(වකන්ඩා = Marval චිත්‍ර කථාවල සදහන් වන අප්‍රිකානු රටකි. පිටතින් 3 වන ලොකයේ දිලිදු රටක් ලෙස පෙනුනත්, බටහිර තාක්ෂණයෙන් වියුක්තව, වයිබ්‍රේනියම් නම් මුලද්‍රව්‍යය මුල්කරගත් අති දියුණු තාක්ෂණයකට ඔවුන් හිමිකම් කියයි.)

Image from the Black Panther 2018 Film

Image result for wakanda
Image from the Black Panther 2018 Film

How to program STM32F103CB by USB directly (Windows)



Usually, we need a USB to TTL programmer (AKA Serial Programmer) or STLink programmer to program STM32 based boards.

But you can direct program STM32F103CB Blue Pill Board (As shown in above picture) through its built-in micro USB port using a custom bootloader.


1. Connect the hardware as below. You can use any USB to TTL Converter.

Programmer        Device
Tx ----------------> A10
Rx ----------------> A09
5V ----------------> 5V
Gnd --------------> GND




2. Set boot pin, BOOT0 to '1 position' (Right most 2 pins)

3. Reset the board using the reset button

4. Download following zip file and extract it.



5. Goto the extracted directory and run the following command on terminal/command line (Change the COM Port to your available COM Port)

./stm32flash.exe -w ./generic_boot20_pc13.bin COM7





6. After the success message, power off the board and set BOOT0 pin to '0 position' again.

7. Connect USB Mini cable.

8. Open the Arduino IDE and select the board STM32F103C (Watch this video to know how to install STM32 Package: https://www.youtube.com/watch?v=K-jYSysmw9w)


9. Now select following settings from Tools menu


10. Select the USB Port which is introduced with name within the brackets

               Ex:  'COM # (Maple Mini)'

Note

If you unable to find this special port, you need to install Maple Mini Drivers. For that, please go to Arduino install directory. (Mine is C:\Program Files (x86)\Arduino)

Arduino install directory > hardware > Arduino_STM32 > drivers > win

(Example: C:\Program Files (x86)\Arduino\hardware\Arduino_STM32\drivers\win)

Then run the file named, install_drivers.bat


11. Now you can upload a sketch to the board and get a fun :-) 

















හොද නරක vs. බටහිර චින්තනය



හොද -   නරක  
යහපත -    අයහපත  

මේවා තීරණය කරන්නේ කවුද?


ජර්මනිය/ජපානය, වෙනත් රටවල් අල්ලන්ට යුද්ධ කරන එක වැරදියි. එතකොට එයාලා සතුරු පාර්ශවය. බ්‍රිතාන්‍යය, ඇමරිකාව මිත්‍ර පාර්ශවය.

ඒත් ක්‍රි.ව. 1500-1900 ගණන්වල බ්‍රිතාන්‍යයේ/ ප්‍රංශයේ/ ස්පාඥයේ/ ඕලන්දයේ යටත් විජිත ව්‍යාපාරයේ කිසිම වැරැද්දක් නෑ.

ජර්මනියේ හිට්ලර් යුදෙව්වන්ව ගෑස් කාමර වල දාලා මරපු එක වැරදියි. හැබැයි ඇමරිකාව පරමාණු බෝම්බ දාලා හිරෝෂිමා නාගසාකි නගර පිටින් විනාශ කරපු එකේ වැරැද්දක් නෑ.


ඉතිහාස පොතේ උගන්වන්නේ එහෙමයි.

මේක තමයි බටහිර චින්තනය. එයාලට හරි කියලා හිතෙන දේවල් අපිත් හරියි කියලා පිලිගන්න ඕන.


#thinkOut_of_the_Box



Windows Photo Viewer ආපසු ගමු...




Windows 10 වලට Update කරපු ගොඩක් අයට තියෙන ප්‍රශ්නයක් තමයි Windows Photos App එක  Load වෙන්න ගොඩක් වෙලා යන එක. එහෙම නැත්නම් Slow ගතිය. Windows 7 කාලේ තිබුණ Windows Photo Viewer එක ආයෙත් ගන්නේ කොහොමද කියන එකයි අද Post එකෙන් කථා කරන්නේ.

මුලින් ම කියන්න තියෙන්නේ  මේ Windows Photo Viewer එක Windows 10 වල තියෙනවා. හැබැයි හංගලා තියෙන්නේ. මේ පියවර කීපය අනුගමනය කරලා ලේසියෙන් ම ඒක ආපසු Active කරගන්න පුළුවන්.


Step 1: Download the Script

මේකට Windows Registry එක Edit කරන්න ඕන. හැබැයි මේ පහල තියෙන PhotoViewer.reg කියන File එක Download කරලා Run කලාම Edit කරන්න ඕන Registries ටික Auto Update වෙනවා.

Download



Step 2: Run Script

දැන් මේ Script එක ක්ලික් කරලා Run කරන්න. Edit Permission ඉල්ලුවොත් Permission දෙන්න.



Step 3: Goto Windows Settings

දැන් Windows Settings වලට ගිහින් රූපසටහේ තියෙන විදිහට Apps අයිකනය  ෝරන්න.





Step 4: Select Default Apps Tab

දැන් Default apps කියන Tab එක ක්ලික් කරලා එතනින් Photos තෝරන්න.





Step 5: Select Windows Photo Viewer

දැන් පෙන්නන ලැයිස්තුවෙන් Windows Photo Viewer තෝරන්න.







වැඩේ සම්පූර්ණයි. "Old is Gold" කියනවා වගේ දැන් Stuck නොවී photos open කරගන්න පුළුවන්.