Rack Mounted Raspberry PI 5 2024
Auto Antenna switched
Hardened GPS NTP and 10 MHZ Nanosecond Time Source.
with 1 Hz an 10 MHz 50 ohm BNC outputs
Accurate to -+0.000 000 001 second,
compared to averaged GPS time.
Designed by Mike Cutts for B2C Labs, Humber Polytechnic
(I just reaized that the board on the right side is rotated 180 degrees.)
THE ULTIMATE BREAD BOARD
Final project for Humber Polytechnic
Electronics Engineering Technology
Spring 2024
The transparent Plexiglass base was laser cut.
Testing Function generator. Sine wave output. Bottom of main board view
The case was from an old electronics kit from the 1970's. The system runs on a laptop adapter and contains 5 buck and boost regulators.
They supply -+ 15 volts for testing OP Amp circuits, +12 Volt, +5 volts for the computers and displays, and overload protected +5 Volts and +3.3 Volts.
I had to add an expansion board (above, bottom left) because some of the 5 volt chips were not 3.3 volt input tolerant.
Touch Screen Arduino LCD board shield adapter (Left) and MEGA 2560 (Right). Also showing the level shifting components 74LS08 and resistors (Left)
Main CPU Board showing voltage shifting mods (Left) and Raspberry Pico
Main Power Supply and output board showing the 12 Volt Regulator (Top Left) , the -+15 Volt booster (Top Center),
the two 5 Volt regulators and the 3.3 Volt regulator (Top Right) The board was still missing the BNC driver transistor)
Creating touch screen buttons for the Arduino and showing serial data flow on the CPU board. 500 ns makes the data pulse width 100 ns (10 MHz bitrate)
Bridge Clock designed and built at home while caring for my mother with dementia in 2023
Based on an Arduino UNO, I wrote my own drivers for the display that could be flipped over. I created my own font and drivers for the display for plotting, bar graph, static words and scrolling left, right, up and down. I wrote software that encodes and decodes the date and time, representing the number of days passed since January 1, 2000 and another to count the number of seconds since midnight. It was more of a challenge to write the code than to just use existing libraries.
It took several months of coding and I built it without a schematic. I bought 16 of the 8x8 displays and soldered them together. I also used it to scroll messages like "WELCOME TO * IEEE @ HUMBER *" The other reason that I built this project was because Cornel had dementia and he kept asking me what time it was with the clock below on top of the TV. I put this clock on the coffee table in front of him showing the time, then scrolling the date.
Humber First Semester Electronics design class Clock (2020)
Initial project proposal block diagram
First time powering up working aand actual drawing of case submitted to Humber
Original case drawn in SketchUp that could not be drawn in Solid works and final schematic of ESP32, Touch Switches, Infrared detector, light sensor and power supply.
The Coding was the hardest, I had never hard coded a dynamic webpage interface inside of code before. The ESP32 allows you to host a webpage. It took me a month to figure out how to override the webpage hosting update when you press the submit button.
This is an edited screenshot of the actual webpage clock alarm interface. When the clock boots every morning at 5 AM, it gets a DHCP address from the 2G network and the current time from an NTP time server. It displays the IP address on the display for a few seconds.
The white image was saved on a website that is no longer hosting. That image would appear with a running time clock in the middle of the picture.
The 3 alarms allows you to set the alarms and enable them. When you click the submit button at the bottom, whatever was typed into the boxes gets sent back to the program. The program saves the information into NV ram in case there is a power failure, it loads the alarm times from the memory chip on power up.
The biggest challenge that I had was that when you update the alarm times into memory variables and update the NV ram, the hosting program would repaint the website with the old alarm times and you had to refresh your screen every time to get the new alarm times. I evetually figured out a way to detect if the screen was just updated so I created a counter at the bottom left. The count here is 43064 seconds (about 12 hours) If the time is around 10 seconds, The wrong webpage is loaded in a tiny dot web page frame beside the Submit button and the main page is reloaded with the correct information.
When the alarm is triggered, the whole premise of this project, it makes you have to get out of bed and either open or close the bedroom door, then it displays a 3 digit code on the LED display. You have to take and one of several remotes and punch that code in to shut off the alarm.
There are 3 touch switches built in. The top one turns on and off the external 12 volt LED strip. The sides make the light brighter and dimmer.
There is an Infrared detector. During alarm it reads the remote control code to turn off the alarm. It also reads the TV channel and Volume buttons to increase and decrease the 12 Volt LED strip. There is a setup mode that tells you the 8 digit code of every remote control button it sees so that you can program it for all remotes. The setup mode also displays 3 power voltages, brightness levels, touch sensor status and a bunch of other things.
There is an Cadmium Sulfide sensor (CdS) on the front that senses the amount of ambient light and adjusts the brightness of the LED display to match it.
There is also the alarm speaker. The program has 6 songs hardcoded. The main one is Silent Night, number 0 on the remotes, that is played for the alarm tone.
The music is encoded similar to MIDI files and the computer is programmed to start playing a tone until the calculated microsecond time has passed, then it turns off the tone or pause note length. It does this in the main loop that is broken down into milliseconds, hundredth of seconds, tenth of seconds and seconds.
The main program, including the webpage interface coding is just over 2,600 lines. The rest of the students did not modify the code much and just sutomized the webpage. Nobody else added any hardware to the CPU, Switch and Speaker design. In the default code, the NTP time was downloaded for Czech time zone and subtract 7 hours in code. I changed the configuration string to be for GMT -4 EDT.
Final result of that design, 3D print, Laser cut front plexiglass and presentation was 102 % Humber changed the final mark to 100 % Most of the other students came from high school and had no electronics background.
Stereo Backlight Controller
This was an interesting project. I heard about semiconductors creating current from light in things like Solar Cells and Photodiodes and Phototransistors.
I thought why not an LED generating current?
I just rebuilt my old stereo from 1983 for the bedroom and replaced the burned out lights with white LED's and connected the ideas.
I built it on my breadboard and it worked surprisingly well so I moved it onto a small projectboard. You can see the lights dim when you put your hand over the sensor LED's. I was correct in assuming that 2 LED's generate twice as much current. This circuit plugs in the back of the stereo and is in series with the 12 Volt power and 3 20 mA LED's on the front panel.