Welcome to the BMH world!
BMH is the original acronym for Bare Metal Hacking. As the name suggests, I launched this project to convey to everyone the fun and enjoyment π of hacking bare-metal devices and micro-controllers by understanding their basic mechanisms from the ground up.
I am sorry for the delay; my name is Dr BMH, and my real name is Wataru Nishida. I am an internist and diabetologistπ©Ί, but I am one of those who fell in love with computers when I was young and have been fascinated by "system programming" ever since. In the past, I wrote a series of articles for a magazine specializing in programming and published a book π titled "Our Game Boy Awakening from Linux".
It has been 40 years since I first encountered personal computers, and their performance has evolved dramatically and become too complex π» for a beginner to understand. However, the fundamentals of computers have not changed at all, neither 40 years ago nor today.
All applications are extensions of the basics. When you explore the BMH world, I am sure you will get to the heart of things π‘ and find so much joy and pleasure π that you will want to shout with delight.
Standing beside me is Hack-chan ("chan" is a term of endearment for children in Japanese). He doesn't know much about programming yet, but he will become a master of I/O operations and the basics of system programming while learning antBASIC, just as I did 40 years ago.
Our development home base is
Raspberry Pi 400
The concept of BMH has been in the works for more than ten years π, but the last thing I had to worry about was the programming environment π§. A good development environment is essential for learning programming. However, since personal computers are expensive πΈ, children π¦π§ cannot have them all to themselves as "My Computer". Therefore, BMH adopted the "Raspberry Pi 400 β¨" by the Raspberry Pi Foundation in the UK π¬π§ as its development environment.
The quad-core processor is more than fast enough π, and the central unit with a USB hub is inside the keyboard, so simply connecting a display π₯ and mouse π± makes it a fine "$70 My Computer". The GPIO header, essential for I/O programming, is another major attraction π not found in modern PCs. Moreover, since the OS on Raspberry Pi utilizes the Linux kernel and Debian packages, we can enjoy the best programming environment for free π.
It is inexpensive yet high-performance and excellently designed. I sincerely thank the Raspberry Pi Foundation π for bringing to the world a development environment π children π¦π§ and schools π« can easily purchase.
Doctor BMH
Wataru Nishida, M.D.π©Ί, Ph.D.π
πΎ antBASIC GitHub
πΊ BMH on YouTube
Happy breadboarding!
-
β³ What is a breadboard?
Coming Soon -
β³ The basics of wiring
Coming Soon -
β³ GPIO connector is a window leading to the external world
Coming Soon -
β³ How to get BMH gadgets?
Coming Soon
antBASIC programming
-
β³ History of the BASIC
Coming Soon -
β³ How to install antBASIC?
Coming Soon -
β³ Number and String
Coming Soon -
β³ How to remember?
Coming Soon -
β³ How to communicate with users?
Coming Soon -
β³ Write down the procedure
Coming Soon -
β³ How to calculate?
Coming Soon -
β³ Repeat and repeat!
Coming Soon -
β³ Judge and choice
Coming Soon -
β³ Make a loop
Coming Soon -
β³ Make a subroutine
Coming Soon -
β³ How to communicate with the WORLD?
Coming Soon
Preparing for GPIO hacking
-
β³ Materials
Coming Soon -
β³ WHAT NOT TO DO
Coming Soon
GPIO programming
-
β³ Sound a buzzer
Coming Soon -
β³ Light a LED
Coming Soon -
β³ Read a switch
Coming Soon -
β³ Display numbers on a 7-seg LED
Coming Soon -
LCD 1β£ β³ The anatomy of LCD
Coming Soon -
LCD 2β£ β³ HD44780 data sheet
Coming Soon -
LCD 3β£ β³ Draw charcters on the screen
Coming Soon -
LCD 4β£ β³ Scroll the screnn
Coming Soon -
LCD 5β£ β³ Make your own characters
Coming Soon -
SPI 1β£ β³ What is SPI? (read the protocol)
Coming Soon -
SPI 2β£ β³ Code the SPI protocol
Coming Soon -
SPI 3β£ β³ EEPROM 25LC320 programming
Coming Soon -
I2C 1β£ β³ What is I2C? (read the protocol)
Coming Soon -
I2C 2β£ β³ Code the I2C protocol
Coming Soon -
I2C 3β£ β³ EEPROM 24LC01 programming
Coming Soon -
I2C 4β£ β³ DS1621 thermostat programming
Coming Soon -
SPI 4β£ β³ ATtiny13 serial programming
Coming Soon -
SPI 5β£ β³ LED blink on ATtiny13
Coming Soon